From fa8dd6f56bca64d168735d0314fc90c1fe93b4e3 Mon Sep 17 00:00:00 2001 From: Fred Emmott Date: Sat, 6 Jun 2020 17:35:19 -0700 Subject: [PATCH 1/5] Remove library code, build system, and build artifacts --- Release/com.elgato.cpu.streamDeckPlugin | Bin 469265 -> 0 bytes Sources/Common/EPLJSONUtils.h | 153 - Sources/Common/ESDBasePlugin.h | 39 - Sources/Common/ESDConnectionManager.cpp | 314 - Sources/Common/ESDConnectionManager.h | 67 - Sources/Common/ESDLocalizer.cpp | 63 - Sources/Common/ESDLocalizer.h | 29 - Sources/Common/ESDSDKDefines.h | 173 - Sources/Common/ESDUtilities.h | 32 - Sources/Common/ESDUtilitiesMac.cpp | 188 - Sources/Common/ESDUtilitiesWindows.cpp | 278 - Sources/Common/main.cpp | 108 - Sources/Vendor/asio/COPYING | 4 - Sources/Vendor/asio/INSTALL | 5 - Sources/Vendor/asio/LICENSE_1_0.txt | 23 - Sources/Vendor/asio/Makefile.am | 19 - Sources/Vendor/asio/Makefile.in | 780 - Sources/Vendor/asio/README | 4 - Sources/Vendor/asio/aclocal.m4 | 1171 - Sources/Vendor/asio/compile | 348 - Sources/Vendor/asio/config.guess | 1476 -- Sources/Vendor/asio/config.sub | 1801 -- Sources/Vendor/asio/configure | 6474 ----- Sources/Vendor/asio/configure.ac | 186 - Sources/Vendor/asio/depcomp | 791 - Sources/Vendor/asio/doc/asio.png | Bin 3164 -> 0 bytes Sources/Vendor/asio/doc/asio/examples.html | 54 - .../doc/asio/examples/cpp03_examples.html | 635 - .../doc/asio/examples/cpp11_examples.html | 434 - .../doc/asio/examples/cpp17_examples.html | 62 - Sources/Vendor/asio/doc/asio/history.html | 2058 -- Sources/Vendor/asio/doc/asio/index.html | 4988 ---- Sources/Vendor/asio/doc/asio/net_ts.html | 1240 - Sources/Vendor/asio/doc/asio/overview.html | 155 - .../Vendor/asio/doc/asio/overview/core.html | 84 - .../doc/asio/overview/core/allocation.html | 135 - .../asio/doc/asio/overview/core/async.html | 279 - .../asio/doc/asio/overview/core/basics.html | 166 - .../asio/doc/asio/overview/core/buffers.html | 234 - .../asio/overview/core/concurrency_hint.html | 167 - .../doc/asio/overview/core/coroutine.html | 83 - .../doc/asio/overview/core/coroutines_ts.html | 147 - .../asio/overview/core/handler_tracking.html | 414 - .../doc/asio/overview/core/line_based.html | 157 - .../asio/doc/asio/overview/core/reactor.html | 78 - .../asio/doc/asio/overview/core/spawn.html | 145 - .../asio/doc/asio/overview/core/strands.html | 160 - .../asio/doc/asio/overview/core/streams.html | 120 - .../asio/doc/asio/overview/core/threads.html | 123 - .../asio/doc/asio/overview/cpp2011.html | 64 - .../asio/doc/asio/overview/cpp2011/array.html | 62 - .../doc/asio/overview/cpp2011/atomic.html | 47 - .../doc/asio/overview/cpp2011/chrono.html | 58 - .../doc/asio/overview/cpp2011/futures.html | 74 - .../asio/overview/cpp2011/move_handlers.html | 83 - .../asio/overview/cpp2011/move_objects.html | 101 - .../doc/asio/overview/cpp2011/shared_ptr.html | 47 - .../asio/overview/cpp2011/system_error.html | 49 - .../doc/asio/overview/cpp2011/variadic.html | 48 - .../doc/asio/overview/implementation.html | 490 - .../asio/doc/asio/overview/networking.html | 52 - .../asio/overview/networking/bsd_sockets.html | 545 - .../asio/overview/networking/iostreams.html | 111 - .../overview/networking/other_protocols.html | 151 - .../asio/overview/networking/protocols.html | 203 - .../Vendor/asio/doc/asio/overview/posix.html | 46 - .../asio/doc/asio/overview/posix/fork.html | 76 - .../asio/doc/asio/overview/posix/local.html | 103 - .../overview/posix/stream_descriptor.html | 85 - .../asio/doc/asio/overview/rationale.html | 96 - .../asio/doc/asio/overview/serial_ports.html | 82 - .../asio/doc/asio/overview/signals.html | 75 - .../Vendor/asio/doc/asio/overview/ssl.html | 188 - .../Vendor/asio/doc/asio/overview/timers.html | 86 - .../asio/doc/asio/overview/windows.html | 46 - .../asio/overview/windows/object_handle.html | 94 - .../windows/random_access_handle.html | 75 - .../asio/overview/windows/stream_handle.html | 78 - Sources/Vendor/asio/doc/asio/reference.html | 591 - .../doc/asio/reference/AcceptHandler.html | 104 - .../asio/reference/AcceptableProtocol.html | 87 - .../AsyncRandomAccessReadDevice.html | 127 - .../AsyncRandomAccessWriteDevice.html | 128 - .../doc/asio/reference/AsyncReadStream.html | 128 - .../doc/asio/reference/AsyncWriteStream.html | 125 - .../reference/BufferedHandshakeHandler.html | 89 - .../asio/reference/CompletionCondition.html | 105 - .../doc/asio/reference/CompletionHandler.html | 98 - .../doc/asio/reference/ConnectCondition.html | 98 - .../doc/asio/reference/ConnectHandler.html | 104 - .../asio/reference/ConstBufferSequence.html | 129 - .../doc/asio/reference/DynamicBuffer.html | 256 - .../asio/doc/asio/reference/Endpoint.html | 251 - .../doc/asio/reference/EndpointSequence.html | 93 - .../doc/asio/reference/ExecutionContext.html | 122 - .../asio/doc/asio/reference/Executor1.html | 289 - .../reference/GettableSerialPortOption.html | 94 - .../asio/reference/GettableSocketOption.html | 174 - .../asio/doc/asio/reference/Handler.html | 149 - .../doc/asio/reference/HandshakeHandler.html | 107 - .../doc/asio/reference/InternetProtocol.html | 162 - .../doc/asio/reference/IoControlCommand.html | 108 - .../doc/asio/reference/IoObjectService.html | 169 - .../reference/IteratorConnectHandler.html | 117 - .../reference/LegacyCompletionHandler.html | 99 - .../doc/asio/reference/MoveAcceptHandler.html | 96 - .../asio/reference/MutableBufferSequence.html | 129 - .../doc/asio/reference/ProtoAllocator.html | 47 - .../asio/doc/asio/reference/Protocol.html | 176 - .../asio/reference/RangeConnectHandler.html | 117 - .../asio/doc/asio/reference/ReadHandler.html | 112 - .../doc/asio/reference/ResolveHandler.html | 114 - .../asio/doc/asio/reference/Service.html | 73 - .../reference/SettableSerialPortOption.html | 93 - .../asio/reference/SettableSocketOption.html | 154 - .../doc/asio/reference/ShutdownHandler.html | 105 - .../doc/asio/reference/SignalHandler.html | 112 - .../reference/SyncRandomAccessReadDevice.html | 125 - .../SyncRandomAccessWriteDevice.html | 125 - .../doc/asio/reference/SyncReadStream.html | 102 - .../doc/asio/reference/SyncWriteStream.html | 100 - .../asio/doc/asio/reference/TimeTraits.html | 197 - .../asio/doc/asio/reference/WaitHandler.html | 104 - .../asio/doc/asio/reference/WaitTraits.html | 129 - .../asio/doc/asio/reference/WriteHandler.html | 112 - .../asio/doc/asio/reference/add_service.html | 104 - .../asio/reference/asio_handler_allocate.html | 94 - .../reference/asio_handler_deallocate.html | 64 - .../asio/reference/asio_handler_invoke.html | 114 - .../asio_handler_invoke/overload1.html | 46 - .../asio_handler_invoke/overload2.html | 46 - .../asio_handler_is_continuation.html | 77 - .../asio/reference/associated_allocator.html | 148 - .../reference/associated_allocator/get.html | 46 - .../reference/associated_allocator/type.html | 54 - .../asio/reference/associated_executor.html | 149 - .../reference/associated_executor/get.html | 46 - .../reference/associated_executor/type.html | 54 - .../doc/asio/reference/async_completion.html | 174 - .../async_completion/async_completion.html | 47 - .../async_completion/completion_handler.html | 43 - .../completion_handler_type.html | 175 - .../reference/async_completion/result.html | 43 - .../doc/asio/reference/async_connect.html | 144 - .../reference/async_connect/overload1.html | 133 - .../reference/async_connect/overload2.html | 109 - .../reference/async_connect/overload3.html | 123 - .../reference/async_connect/overload4.html | 182 - .../reference/async_connect/overload5.html | 130 - .../reference/async_connect/overload6.html | 187 - .../asio/doc/asio/reference/async_read.html | 125 - .../asio/reference/async_read/overload1.html | 147 - .../asio/reference/async_read/overload2.html | 153 - .../asio/reference/async_read/overload3.html | 130 - .../asio/reference/async_read/overload4.html | 140 - .../asio/reference/async_read/overload5.html | 128 - .../asio/reference/async_read/overload6.html | 138 - .../doc/asio/reference/async_read_at.html | 104 - .../reference/async_read_at/overload1.html | 148 - .../reference/async_read_at/overload2.html | 157 - .../reference/async_read_at/overload3.html | 125 - .../reference/async_read_at/overload4.html | 135 - .../doc/asio/reference/async_read_until.html | 169 - .../reference/async_read_until/overload1.html | 179 - .../reference/async_read_until/overload2.html | 179 - .../reference/async_read_until/overload3.html | 183 - .../reference/async_read_until/overload4.html | 223 - .../reference/async_read_until/overload5.html | 176 - .../reference/async_read_until/overload6.html | 176 - .../reference/async_read_until/overload7.html | 179 - .../reference/async_read_until/overload8.html | 219 - .../asio/doc/asio/reference/async_result.html | 175 - .../reference/async_result/async_result.html | 50 - .../async_result/completion_handler_type.html | 53 - .../doc/asio/reference/async_result/get.html | 43 - .../reference/async_result/return_type.html | 53 - .../async_result_lt__Handler__gt_.html | 141 - .../async_result.html | 49 - .../async_result_lt__Handler__gt_/get.html | 43 - .../async_result_lt__Handler__gt_/type.html | 53 - ...lipsis__rp__gt__comma__Signature__gt_.html | 154 - .../async_result.html | 45 - .../completion_handler_type.html | 54 - .../get.html | 44 - .../return_type.html | 54 - .../asio/doc/asio/reference/async_write.html | 140 - .../asio/reference/async_write/overload1.html | 132 - .../asio/reference/async_write/overload2.html | 157 - .../asio/reference/async_write/overload3.html | 117 - .../asio/reference/async_write/overload4.html | 139 - .../asio/reference/async_write/overload5.html | 116 - .../asio/reference/async_write/overload6.html | 138 - .../doc/asio/reference/async_write_at.html | 116 - .../reference/async_write_at/overload1.html | 138 - .../reference/async_write_at/overload2.html | 163 - .../reference/async_write_at/overload3.html | 123 - .../reference/async_write_at/overload4.html | 145 - .../reference/asynchronous_operations.html | 384 - .../asynchronous_socket_operations.html | 76 - .../asio/doc/asio/reference/bad_executor.html | 101 - .../reference/bad_executor/bad_executor.html | 42 - .../doc/asio/reference/bad_executor/what.html | 43 - .../asio/reference/basic_datagram_socket.html | 930 - .../_basic_datagram_socket.html | 47 - .../basic_datagram_socket/assign.html | 52 - .../assign/overload1.html | 47 - .../assign/overload2.html | 48 - .../basic_datagram_socket/async_connect.html | 110 - .../basic_datagram_socket/async_receive.html | 58 - .../async_receive/overload1.html | 110 - .../async_receive/overload2.html | 100 - .../async_receive_from.html | 60 - .../async_receive_from/overload1.html | 110 - .../async_receive_from/overload2.html | 99 - .../basic_datagram_socket/async_send.html | 58 - .../async_send/overload1.html | 109 - .../async_send/overload2.html | 99 - .../basic_datagram_socket/async_send_to.html | 60 - .../async_send_to/overload1.html | 110 - .../async_send_to/overload2.html | 97 - .../basic_datagram_socket/async_wait.html | 104 - .../basic_datagram_socket/at_mark.html | 48 - .../at_mark/overload1.html | 70 - .../at_mark/overload2.html | 71 - .../basic_datagram_socket/available.html | 48 - .../available/overload1.html | 71 - .../available/overload2.html | 72 - .../basic_datagram_socket.html | 92 - .../basic_datagram_socket/overload1.html | 63 - .../basic_datagram_socket/overload2.html | 79 - .../basic_datagram_socket/overload3.html | 83 - .../basic_datagram_socket/overload4.html | 86 - .../basic_datagram_socket/overload5.html | 69 - .../basic_datagram_socket/overload6.html | 72 - .../reference/basic_datagram_socket/bind.html | 50 - .../basic_datagram_socket/bind/overload1.html | 85 - .../basic_datagram_socket/bind/overload2.html | 82 - .../basic_datagram_socket/broadcast.html | 80 - .../basic_datagram_socket/bytes_readable.html | 69 - .../basic_datagram_socket/cancel.html | 48 - .../cancel/overload1.html | 103 - .../cancel/overload2.html | 104 - .../basic_datagram_socket/close.html | 48 - .../close/overload1.html | 72 - .../close/overload2.html | 86 - .../basic_datagram_socket/connect.html | 50 - .../connect/overload1.html | 91 - .../connect/overload2.html | 88 - .../basic_datagram_socket/debug.html | 80 - .../basic_datagram_socket/do_not_route.html | 80 - .../enable_connection_aborted.html | 82 - .../basic_datagram_socket/endpoint_type.html | 53 - .../basic_datagram_socket/executor_type.html | 213 - .../basic_datagram_socket/get_executor.html | 46 - .../basic_datagram_socket/get_io_context.html | 61 - .../basic_datagram_socket/get_io_service.html | 61 - .../basic_datagram_socket/get_option.html | 54 - .../get_option/overload1.html | 90 - .../get_option/overload2.html | 87 - .../basic_datagram_socket/io_control.html | 54 - .../io_control/overload1.html | 90 - .../io_control/overload2.html | 87 - .../basic_datagram_socket/is_open.html | 46 - .../basic_datagram_socket/keep_alive.html | 80 - .../basic_datagram_socket/linger.html | 82 - .../basic_datagram_socket/local_endpoint.html | 48 - .../local_endpoint/overload1.html | 77 - .../local_endpoint/overload2.html | 84 - .../basic_datagram_socket/lowest_layer.html | 50 - .../lowest_layer/overload1.html | 59 - .../lowest_layer/overload2.html | 59 - .../lowest_layer_type.html | 862 - .../max_connections.html | 47 - .../max_listen_connections.html | 46 - .../message_do_not_route.html | 46 - .../message_end_of_record.html | 46 - .../basic_datagram_socket/message_flags.html | 56 - .../message_out_of_band.html | 46 - .../basic_datagram_socket/message_peek.html | 46 - .../basic_datagram_socket/native_handle.html | 51 - .../native_handle_type.html | 53 - .../native_non_blocking.html | 56 - .../native_non_blocking/overload1.html | 144 - .../native_non_blocking/overload2.html | 157 - .../native_non_blocking/overload3.html | 149 - .../basic_datagram_socket/non_blocking.html | 56 - .../non_blocking/overload1.html | 64 - .../non_blocking/overload2.html | 83 - .../non_blocking/overload3.html | 75 - .../reference/basic_datagram_socket/open.html | 50 - .../basic_datagram_socket/open/overload1.html | 82 - .../basic_datagram_socket/open/overload2.html | 79 - .../basic_datagram_socket/operator_eq_.html | 56 - .../operator_eq_/overload1.html | 69 - .../operator_eq_/overload2.html | 71 - .../out_of_band_inline.html | 80 - .../basic_datagram_socket/protocol_type.html | 53 - .../basic_datagram_socket/receive.html | 62 - .../receive/overload1.html | 107 - .../receive/overload2.html | 97 - .../receive/overload3.html | 89 - .../receive_buffer_size.html | 80 - .../basic_datagram_socket/receive_from.html | 65 - .../receive_from/overload1.html | 106 - .../receive_from/overload2.html | 94 - .../receive_from/overload3.html | 86 - .../receive_low_watermark.html | 80 - .../basic_datagram_socket/release.html | 48 - .../release/overload1.html | 73 - .../release/overload2.html | 74 - .../remote_endpoint.html | 48 - .../remote_endpoint/overload1.html | 77 - .../remote_endpoint/overload2.html | 84 - .../basic_datagram_socket/reuse_address.html | 81 - .../reference/basic_datagram_socket/send.html | 62 - .../basic_datagram_socket/send/overload1.html | 107 - .../basic_datagram_socket/send/overload2.html | 97 - .../basic_datagram_socket/send/overload3.html | 89 - .../send_buffer_size.html | 80 - .../send_low_watermark.html | 80 - .../basic_datagram_socket/send_to.html | 65 - .../send_to/overload1.html | 106 - .../send_to/overload2.html | 94 - .../send_to/overload3.html | 86 - .../basic_datagram_socket/set_option.html | 54 - .../set_option/overload1.html | 89 - .../set_option/overload2.html | 86 - .../basic_datagram_socket/shutdown.html | 50 - .../shutdown/overload1.html | 87 - .../shutdown/overload2.html | 84 - .../basic_datagram_socket/shutdown_type.html | 72 - .../reference/basic_datagram_socket/wait.html | 51 - .../basic_datagram_socket/wait/overload1.html | 75 - .../basic_datagram_socket/wait/overload2.html | 81 - .../basic_datagram_socket/wait_type.html | 75 - .../asio/reference/basic_deadline_timer.html | 407 - .../_basic_deadline_timer.html | 47 - .../basic_deadline_timer/async_wait.html | 90 - .../basic_deadline_timer.html | 68 - .../basic_deadline_timer/overload1.html | 63 - .../basic_deadline_timer/overload2.html | 67 - .../basic_deadline_timer/overload3.html | 66 - .../basic_deadline_timer/overload4.html | 69 - .../basic_deadline_timer/cancel.html | 48 - .../cancel/overload1.html | 92 - .../cancel/overload2.html | 93 - .../basic_deadline_timer/cancel_one.html | 48 - .../cancel_one/overload1.html | 93 - .../cancel_one/overload2.html | 94 - .../basic_deadline_timer/duration_type.html | 53 - .../basic_deadline_timer/executor_type.html | 210 - .../basic_deadline_timer/expires_at.html | 56 - .../expires_at/overload1.html | 46 - .../expires_at/overload2.html | 102 - .../expires_at/overload3.html | 94 - .../expires_from_now.html | 56 - .../expires_from_now/overload1.html | 46 - .../expires_from_now/overload2.html | 102 - .../expires_from_now/overload3.html | 94 - .../basic_deadline_timer/get_executor.html | 43 - .../basic_deadline_timer/get_io_context.html | 58 - .../basic_deadline_timer/get_io_service.html | 58 - .../basic_deadline_timer/operator_eq_.html | 71 - .../basic_deadline_timer/time_type.html | 53 - .../basic_deadline_timer/traits_type.html | 53 - .../reference/basic_deadline_timer/wait.html | 48 - .../basic_deadline_timer/wait/overload1.html | 59 - .../basic_deadline_timer/wait/overload2.html | 60 - .../doc/asio/reference/basic_io_object.html | 270 - .../basic_io_object/_basic_io_object.html | 48 - .../basic_io_object/basic_io_object.html | 62 - .../basic_io_object/overload1.html | 48 - .../basic_io_object/overload2.html | 56 - .../basic_io_object/overload3.html | 46 - .../basic_io_object/executor_type.html | 210 - .../basic_io_object/get_executor.html | 43 - .../basic_io_object/get_implementation.html | 47 - .../get_implementation/overload1.html | 42 - .../get_implementation/overload2.html | 42 - .../basic_io_object/get_io_context.html | 58 - .../basic_io_object/get_io_service.html | 58 - .../basic_io_object/get_service.html | 47 - .../get_service/overload1.html | 42 - .../get_service/overload2.html | 42 - .../basic_io_object/implementation_type.html | 53 - .../basic_io_object/operator_eq_.html | 57 - .../basic_io_object/service_type.html | 53 - .../doc/asio/reference/basic_raw_socket.html | 929 - .../basic_raw_socket/_basic_raw_socket.html | 47 - .../reference/basic_raw_socket/assign.html | 52 - .../basic_raw_socket/assign/overload1.html | 47 - .../basic_raw_socket/assign/overload2.html | 48 - .../basic_raw_socket/async_connect.html | 110 - .../basic_raw_socket/async_receive.html | 58 - .../async_receive/overload1.html | 110 - .../async_receive/overload2.html | 100 - .../basic_raw_socket/async_receive_from.html | 60 - .../async_receive_from/overload1.html | 110 - .../async_receive_from/overload2.html | 99 - .../basic_raw_socket/async_send.html | 58 - .../async_send/overload1.html | 109 - .../async_send/overload2.html | 99 - .../basic_raw_socket/async_send_to.html | 60 - .../async_send_to/overload1.html | 110 - .../async_send_to/overload2.html | 97 - .../basic_raw_socket/async_wait.html | 104 - .../reference/basic_raw_socket/at_mark.html | 48 - .../basic_raw_socket/at_mark/overload1.html | 70 - .../basic_raw_socket/at_mark/overload2.html | 71 - .../reference/basic_raw_socket/available.html | 48 - .../basic_raw_socket/available/overload1.html | 71 - .../basic_raw_socket/available/overload2.html | 72 - .../basic_raw_socket/basic_raw_socket.html | 92 - .../basic_raw_socket/overload1.html | 63 - .../basic_raw_socket/overload2.html | 79 - .../basic_raw_socket/overload3.html | 83 - .../basic_raw_socket/overload4.html | 86 - .../basic_raw_socket/overload5.html | 69 - .../basic_raw_socket/overload6.html | 72 - .../asio/reference/basic_raw_socket/bind.html | 50 - .../basic_raw_socket/bind/overload1.html | 85 - .../basic_raw_socket/bind/overload2.html | 82 - .../reference/basic_raw_socket/broadcast.html | 80 - .../basic_raw_socket/bytes_readable.html | 69 - .../reference/basic_raw_socket/cancel.html | 48 - .../basic_raw_socket/cancel/overload1.html | 103 - .../basic_raw_socket/cancel/overload2.html | 104 - .../reference/basic_raw_socket/close.html | 47 - .../basic_raw_socket/close/overload1.html | 72 - .../basic_raw_socket/close/overload2.html | 86 - .../reference/basic_raw_socket/connect.html | 50 - .../basic_raw_socket/connect/overload1.html | 91 - .../basic_raw_socket/connect/overload2.html | 88 - .../reference/basic_raw_socket/debug.html | 80 - .../basic_raw_socket/do_not_route.html | 80 - .../enable_connection_aborted.html | 82 - .../basic_raw_socket/endpoint_type.html | 53 - .../basic_raw_socket/executor_type.html | 213 - .../basic_raw_socket/get_executor.html | 46 - .../basic_raw_socket/get_io_context.html | 61 - .../basic_raw_socket/get_io_service.html | 61 - .../basic_raw_socket/get_option.html | 54 - .../get_option/overload1.html | 90 - .../get_option/overload2.html | 87 - .../basic_raw_socket/io_control.html | 54 - .../io_control/overload1.html | 90 - .../io_control/overload2.html | 87 - .../reference/basic_raw_socket/is_open.html | 46 - .../basic_raw_socket/keep_alive.html | 80 - .../reference/basic_raw_socket/linger.html | 81 - .../basic_raw_socket/local_endpoint.html | 48 - .../local_endpoint/overload1.html | 77 - .../local_endpoint/overload2.html | 84 - .../basic_raw_socket/lowest_layer.html | 50 - .../lowest_layer/overload1.html | 59 - .../lowest_layer/overload2.html | 59 - .../basic_raw_socket/lowest_layer_type.html | 862 - .../basic_raw_socket/max_connections.html | 47 - .../max_listen_connections.html | 46 - .../message_do_not_route.html | 46 - .../message_end_of_record.html | 46 - .../basic_raw_socket/message_flags.html | 56 - .../basic_raw_socket/message_out_of_band.html | 46 - .../basic_raw_socket/message_peek.html | 46 - .../basic_raw_socket/native_handle.html | 51 - .../basic_raw_socket/native_handle_type.html | 53 - .../basic_raw_socket/native_non_blocking.html | 56 - .../native_non_blocking/overload1.html | 144 - .../native_non_blocking/overload2.html | 157 - .../native_non_blocking/overload3.html | 149 - .../basic_raw_socket/non_blocking.html | 56 - .../non_blocking/overload1.html | 64 - .../non_blocking/overload2.html | 83 - .../non_blocking/overload3.html | 75 - .../asio/reference/basic_raw_socket/open.html | 50 - .../basic_raw_socket/open/overload1.html | 82 - .../basic_raw_socket/open/overload2.html | 79 - .../basic_raw_socket/operator_eq_.html | 56 - .../operator_eq_/overload1.html | 69 - .../operator_eq_/overload2.html | 71 - .../basic_raw_socket/out_of_band_inline.html | 80 - .../basic_raw_socket/protocol_type.html | 53 - .../reference/basic_raw_socket/receive.html | 62 - .../basic_raw_socket/receive/overload1.html | 107 - .../basic_raw_socket/receive/overload2.html | 97 - .../basic_raw_socket/receive/overload3.html | 89 - .../basic_raw_socket/receive_buffer_size.html | 80 - .../basic_raw_socket/receive_from.html | 65 - .../receive_from/overload1.html | 106 - .../receive_from/overload2.html | 94 - .../receive_from/overload3.html | 86 - .../receive_low_watermark.html | 80 - .../reference/basic_raw_socket/release.html | 48 - .../basic_raw_socket/release/overload1.html | 73 - .../basic_raw_socket/release/overload2.html | 74 - .../basic_raw_socket/remote_endpoint.html | 48 - .../remote_endpoint/overload1.html | 77 - .../remote_endpoint/overload2.html | 84 - .../basic_raw_socket/reuse_address.html | 81 - .../asio/reference/basic_raw_socket/send.html | 62 - .../basic_raw_socket/send/overload1.html | 106 - .../basic_raw_socket/send/overload2.html | 96 - .../basic_raw_socket/send/overload3.html | 88 - .../basic_raw_socket/send_buffer_size.html | 80 - .../basic_raw_socket/send_low_watermark.html | 80 - .../reference/basic_raw_socket/send_to.html | 65 - .../basic_raw_socket/send_to/overload1.html | 106 - .../basic_raw_socket/send_to/overload2.html | 94 - .../basic_raw_socket/send_to/overload3.html | 86 - .../basic_raw_socket/set_option.html | 54 - .../set_option/overload1.html | 89 - .../set_option/overload2.html | 86 - .../reference/basic_raw_socket/shutdown.html | 50 - .../basic_raw_socket/shutdown/overload1.html | 87 - .../basic_raw_socket/shutdown/overload2.html | 84 - .../basic_raw_socket/shutdown_type.html | 72 - .../asio/reference/basic_raw_socket/wait.html | 50 - .../basic_raw_socket/wait/overload1.html | 75 - .../basic_raw_socket/wait/overload2.html | 81 - .../reference/basic_raw_socket/wait_type.html | 75 - .../reference/basic_seq_packet_socket.html | 883 - .../_basic_seq_packet_socket.html | 47 - .../basic_seq_packet_socket/assign.html | 52 - .../assign/overload1.html | 47 - .../assign/overload2.html | 48 - .../async_connect.html | 110 - .../async_receive.html | 60 - .../async_receive/overload1.html | 110 - .../async_receive/overload2.html | 117 - .../basic_seq_packet_socket/async_send.html | 107 - .../basic_seq_packet_socket/async_wait.html | 104 - .../basic_seq_packet_socket/at_mark.html | 48 - .../at_mark/overload1.html | 70 - .../at_mark/overload2.html | 71 - .../basic_seq_packet_socket/available.html | 48 - .../available/overload1.html | 71 - .../available/overload2.html | 72 - .../basic_seq_packet_socket.html | 92 - .../basic_seq_packet_socket/overload1.html | 64 - .../basic_seq_packet_socket/overload2.html | 81 - .../basic_seq_packet_socket/overload3.html | 83 - .../basic_seq_packet_socket/overload4.html | 86 - .../basic_seq_packet_socket/overload5.html | 70 - .../basic_seq_packet_socket/overload6.html | 73 - .../basic_seq_packet_socket/bind.html | 50 - .../bind/overload1.html | 85 - .../bind/overload2.html | 82 - .../basic_seq_packet_socket/broadcast.html | 80 - .../bytes_readable.html | 69 - .../basic_seq_packet_socket/cancel.html | 48 - .../cancel/overload1.html | 103 - .../cancel/overload2.html | 104 - .../basic_seq_packet_socket/close.html | 48 - .../close/overload1.html | 72 - .../close/overload2.html | 86 - .../basic_seq_packet_socket/connect.html | 50 - .../connect/overload1.html | 91 - .../connect/overload2.html | 88 - .../basic_seq_packet_socket/debug.html | 80 - .../basic_seq_packet_socket/do_not_route.html | 80 - .../enable_connection_aborted.html | 82 - .../endpoint_type.html | 53 - .../executor_type.html | 213 - .../basic_seq_packet_socket/get_executor.html | 46 - .../get_io_context.html | 61 - .../get_io_service.html | 61 - .../basic_seq_packet_socket/get_option.html | 54 - .../get_option/overload1.html | 90 - .../get_option/overload2.html | 87 - .../basic_seq_packet_socket/io_control.html | 54 - .../io_control/overload1.html | 90 - .../io_control/overload2.html | 87 - .../basic_seq_packet_socket/is_open.html | 46 - .../basic_seq_packet_socket/keep_alive.html | 80 - .../basic_seq_packet_socket/linger.html | 82 - .../local_endpoint.html | 48 - .../local_endpoint/overload1.html | 77 - .../local_endpoint/overload2.html | 84 - .../basic_seq_packet_socket/lowest_layer.html | 50 - .../lowest_layer/overload1.html | 59 - .../lowest_layer/overload2.html | 59 - .../lowest_layer_type.html | 862 - .../max_connections.html | 47 - .../max_listen_connections.html | 46 - .../message_do_not_route.html | 46 - .../message_end_of_record.html | 46 - .../message_flags.html | 56 - .../message_out_of_band.html | 46 - .../basic_seq_packet_socket/message_peek.html | 46 - .../native_handle.html | 51 - .../native_handle_type.html | 53 - .../native_non_blocking.html | 56 - .../native_non_blocking/overload1.html | 144 - .../native_non_blocking/overload2.html | 157 - .../native_non_blocking/overload3.html | 149 - .../basic_seq_packet_socket/non_blocking.html | 56 - .../non_blocking/overload1.html | 64 - .../non_blocking/overload2.html | 83 - .../non_blocking/overload3.html | 75 - .../basic_seq_packet_socket/open.html | 50 - .../open/overload1.html | 82 - .../open/overload2.html | 79 - .../basic_seq_packet_socket/operator_eq_.html | 56 - .../operator_eq_/overload1.html | 71 - .../operator_eq_/overload2.html | 73 - .../out_of_band_inline.html | 80 - .../protocol_type.html | 53 - .../basic_seq_packet_socket/receive.html | 68 - .../receive/overload1.html | 107 - .../receive/overload2.html | 122 - .../receive/overload3.html | 98 - .../receive_buffer_size.html | 80 - .../receive_low_watermark.html | 80 - .../basic_seq_packet_socket/release.html | 48 - .../release/overload1.html | 73 - .../release/overload2.html | 74 - .../remote_endpoint.html | 48 - .../remote_endpoint/overload1.html | 77 - .../remote_endpoint/overload2.html | 84 - .../reuse_address.html | 81 - .../basic_seq_packet_socket/send.html | 56 - .../send/overload1.html | 104 - .../send/overload2.html | 91 - .../send_buffer_size.html | 80 - .../send_low_watermark.html | 80 - .../basic_seq_packet_socket/set_option.html | 54 - .../set_option/overload1.html | 89 - .../set_option/overload2.html | 86 - .../basic_seq_packet_socket/shutdown.html | 50 - .../shutdown/overload1.html | 87 - .../shutdown/overload2.html | 84 - .../shutdown_type.html | 72 - .../basic_seq_packet_socket/wait.html | 51 - .../wait/overload1.html | 75 - .../wait/overload2.html | 81 - .../basic_seq_packet_socket/wait_type.html | 75 - .../asio/doc/asio/reference/basic_socket.html | 857 - .../reference/basic_socket/_basic_socket.html | 47 - .../asio/reference/basic_socket/assign.html | 52 - .../basic_socket/assign/overload1.html | 44 - .../basic_socket/assign/overload2.html | 45 - .../reference/basic_socket/async_connect.html | 107 - .../reference/basic_socket/async_wait.html | 101 - .../asio/reference/basic_socket/at_mark.html | 48 - .../basic_socket/at_mark/overload1.html | 67 - .../basic_socket/at_mark/overload2.html | 68 - .../reference/basic_socket/available.html | 48 - .../basic_socket/available/overload1.html | 68 - .../basic_socket/available/overload2.html | 69 - .../reference/basic_socket/basic_socket.html | 92 - .../basic_socket/basic_socket/overload1.html | 62 - .../basic_socket/basic_socket/overload2.html | 79 - .../basic_socket/basic_socket/overload3.html | 82 - .../basic_socket/basic_socket/overload4.html | 85 - .../basic_socket/basic_socket/overload5.html | 69 - .../basic_socket/basic_socket/overload6.html | 72 - .../doc/asio/reference/basic_socket/bind.html | 50 - .../basic_socket/bind/overload1.html | 82 - .../basic_socket/bind/overload2.html | 79 - .../reference/basic_socket/broadcast.html | 80 - .../basic_socket/bytes_readable.html | 69 - .../asio/reference/basic_socket/cancel.html | 48 - .../basic_socket/cancel/overload1.html | 100 - .../basic_socket/cancel/overload2.html | 101 - .../asio/reference/basic_socket/close.html | 47 - .../basic_socket/close/overload1.html | 69 - .../basic_socket/close/overload2.html | 83 - .../asio/reference/basic_socket/connect.html | 50 - .../basic_socket/connect/overload1.html | 88 - .../basic_socket/connect/overload2.html | 85 - .../asio/reference/basic_socket/debug.html | 80 - .../reference/basic_socket/do_not_route.html | 80 - .../enable_connection_aborted.html | 82 - .../reference/basic_socket/endpoint_type.html | 53 - .../reference/basic_socket/executor_type.html | 210 - .../reference/basic_socket/get_executor.html | 43 - .../basic_socket/get_io_context.html | 58 - .../basic_socket/get_io_service.html | 58 - .../reference/basic_socket/get_option.html | 54 - .../basic_socket/get_option/overload1.html | 87 - .../basic_socket/get_option/overload2.html | 84 - .../reference/basic_socket/io_control.html | 54 - .../basic_socket/io_control/overload1.html | 87 - .../basic_socket/io_control/overload2.html | 84 - .../asio/reference/basic_socket/is_open.html | 43 - .../reference/basic_socket/keep_alive.html | 80 - .../asio/reference/basic_socket/linger.html | 81 - .../basic_socket/local_endpoint.html | 48 - .../local_endpoint/overload1.html | 74 - .../local_endpoint/overload2.html | 81 - .../reference/basic_socket/lowest_layer.html | 50 - .../basic_socket/lowest_layer/overload1.html | 56 - .../basic_socket/lowest_layer/overload2.html | 56 - .../basic_socket/lowest_layer_type.html | 859 - .../basic_socket/max_connections.html | 47 - .../basic_socket/max_listen_connections.html | 46 - .../basic_socket/message_do_not_route.html | 46 - .../basic_socket/message_end_of_record.html | 46 - .../reference/basic_socket/message_flags.html | 56 - .../basic_socket/message_out_of_band.html | 46 - .../reference/basic_socket/message_peek.html | 46 - .../reference/basic_socket/native_handle.html | 48 - .../basic_socket/native_handle_type.html | 53 - .../basic_socket/native_non_blocking.html | 56 - .../native_non_blocking/overload1.html | 141 - .../native_non_blocking/overload2.html | 154 - .../native_non_blocking/overload3.html | 146 - .../reference/basic_socket/non_blocking.html | 56 - .../basic_socket/non_blocking/overload1.html | 61 - .../basic_socket/non_blocking/overload2.html | 80 - .../basic_socket/non_blocking/overload3.html | 72 - .../doc/asio/reference/basic_socket/open.html | 50 - .../basic_socket/open/overload1.html | 79 - .../basic_socket/open/overload2.html | 76 - .../reference/basic_socket/operator_eq_.html | 56 - .../basic_socket/operator_eq_/overload1.html | 69 - .../basic_socket/operator_eq_/overload2.html | 71 - .../basic_socket/out_of_band_inline.html | 80 - .../reference/basic_socket/protocol_type.html | 53 - .../basic_socket/receive_buffer_size.html | 80 - .../basic_socket/receive_low_watermark.html | 80 - .../asio/reference/basic_socket/release.html | 48 - .../basic_socket/release/overload1.html | 70 - .../basic_socket/release/overload2.html | 71 - .../basic_socket/remote_endpoint.html | 48 - .../remote_endpoint/overload1.html | 74 - .../remote_endpoint/overload2.html | 81 - .../reference/basic_socket/reuse_address.html | 81 - .../basic_socket/send_buffer_size.html | 80 - .../basic_socket/send_low_watermark.html | 80 - .../reference/basic_socket/set_option.html | 54 - .../basic_socket/set_option/overload1.html | 86 - .../basic_socket/set_option/overload2.html | 83 - .../asio/reference/basic_socket/shutdown.html | 50 - .../basic_socket/shutdown/overload1.html | 84 - .../basic_socket/shutdown/overload2.html | 81 - .../reference/basic_socket/shutdown_type.html | 72 - .../doc/asio/reference/basic_socket/wait.html | 50 - .../basic_socket/wait/overload1.html | 72 - .../basic_socket/wait/overload2.html | 78 - .../reference/basic_socket/wait_type.html | 74 - .../asio/reference/basic_socket_acceptor.html | 788 - .../_basic_socket_acceptor.html | 47 - .../basic_socket_acceptor/accept.html | 106 - .../accept/overload1.html | 86 - .../accept/overload10.html | 93 - .../accept/overload11.html | 103 - .../accept/overload12.html | 100 - .../accept/overload2.html | 83 - .../accept/overload3.html | 91 - .../accept/overload4.html | 88 - .../accept/overload5.html | 80 - .../accept/overload6.html | 86 - .../accept/overload7.html | 95 - .../accept/overload8.html | 92 - .../accept/overload9.html | 96 - .../basic_socket_acceptor/assign.html | 52 - .../assign/overload1.html | 44 - .../assign/overload2.html | 45 - .../basic_socket_acceptor/async_accept.html | 86 - .../async_accept/overload1.html | 104 - .../async_accept/overload2.html | 92 - .../async_accept/overload3.html | 100 - .../async_accept/overload4.html | 106 - .../async_accept/overload5.html | 109 - .../async_accept/overload6.html | 115 - .../basic_socket_acceptor/async_wait.html | 103 - .../basic_socket_acceptor.html | 91 - .../basic_socket_acceptor/overload1.html | 63 - .../basic_socket_acceptor/overload2.html | 79 - .../basic_socket_acceptor/overload3.html | 100 - .../basic_socket_acceptor/overload4.html | 86 - .../basic_socket_acceptor/overload5.html | 69 - .../basic_socket_acceptor/overload6.html | 72 - .../reference/basic_socket_acceptor/bind.html | 50 - .../basic_socket_acceptor/bind/overload1.html | 83 - .../basic_socket_acceptor/bind/overload2.html | 80 - .../basic_socket_acceptor/broadcast.html | 80 - .../basic_socket_acceptor/bytes_readable.html | 69 - .../basic_socket_acceptor/cancel.html | 48 - .../cancel/overload1.html | 60 - .../cancel/overload2.html | 61 - .../basic_socket_acceptor/close.html | 48 - .../close/overload1.html | 63 - .../close/overload2.html | 77 - .../basic_socket_acceptor/debug.html | 80 - .../basic_socket_acceptor/do_not_route.html | 80 - .../enable_connection_aborted.html | 82 - .../basic_socket_acceptor/endpoint_type.html | 53 - .../basic_socket_acceptor/executor_type.html | 210 - .../basic_socket_acceptor/get_executor.html | 43 - .../basic_socket_acceptor/get_io_context.html | 58 - .../basic_socket_acceptor/get_io_service.html | 58 - .../basic_socket_acceptor/get_option.html | 54 - .../get_option/overload1.html | 87 - .../get_option/overload2.html | 84 - .../basic_socket_acceptor/io_control.html | 54 - .../io_control/overload1.html | 86 - .../io_control/overload2.html | 83 - .../basic_socket_acceptor/is_open.html | 43 - .../basic_socket_acceptor/keep_alive.html | 80 - .../basic_socket_acceptor/linger.html | 82 - .../basic_socket_acceptor/listen.html | 50 - .../listen/overload1.html | 73 - .../listen/overload2.html | 78 - .../basic_socket_acceptor/local_endpoint.html | 48 - .../local_endpoint/overload1.html | 74 - .../local_endpoint/overload2.html | 82 - .../max_connections.html | 47 - .../max_listen_connections.html | 46 - .../message_do_not_route.html | 46 - .../message_end_of_record.html | 46 - .../basic_socket_acceptor/message_flags.html | 56 - .../message_out_of_band.html | 46 - .../basic_socket_acceptor/message_peek.html | 46 - .../basic_socket_acceptor/native_handle.html | 48 - .../native_handle_type.html | 53 - .../native_non_blocking.html | 56 - .../native_non_blocking/overload1.html | 66 - .../native_non_blocking/overload2.html | 79 - .../native_non_blocking/overload3.html | 71 - .../basic_socket_acceptor/non_blocking.html | 56 - .../non_blocking/overload1.html | 61 - .../non_blocking/overload2.html | 80 - .../non_blocking/overload3.html | 72 - .../reference/basic_socket_acceptor/open.html | 50 - .../basic_socket_acceptor/open/overload1.html | 80 - .../basic_socket_acceptor/open/overload2.html | 77 - .../basic_socket_acceptor/operator_eq_.html | 56 - .../operator_eq_/overload1.html | 69 - .../operator_eq_/overload2.html | 71 - .../out_of_band_inline.html | 80 - .../basic_socket_acceptor/protocol_type.html | 53 - .../receive_buffer_size.html | 80 - .../receive_low_watermark.html | 80 - .../basic_socket_acceptor/release.html | 48 - .../release/overload1.html | 70 - .../release/overload2.html | 71 - .../basic_socket_acceptor/reuse_address.html | 81 - .../send_buffer_size.html | 80 - .../send_low_watermark.html | 80 - .../basic_socket_acceptor/set_option.html | 54 - .../set_option/overload1.html | 86 - .../set_option/overload2.html | 83 - .../basic_socket_acceptor/shutdown_type.html | 72 - .../reference/basic_socket_acceptor/wait.html | 51 - .../basic_socket_acceptor/wait/overload1.html | 72 - .../basic_socket_acceptor/wait/overload2.html | 78 - .../basic_socket_acceptor/wait_type.html | 75 - .../asio/reference/basic_socket_iostream.html | 328 - .../basic_socket_iostream.html | 74 - .../basic_socket_iostream/overload1.html | 43 - .../basic_socket_iostream/overload2.html | 44 - .../basic_socket_iostream/overload3.html | 44 - .../basic_socket_iostream/overload4.html | 54 - .../basic_socket_iostream/clock_type.html | 53 - .../basic_socket_iostream/close.html | 43 - .../basic_socket_iostream/connect.html | 55 - .../basic_socket_iostream/duration.html | 53 - .../basic_socket_iostream/duration_type.html | 53 - .../basic_socket_iostream/endpoint_type.html | 53 - .../basic_socket_iostream/error.html | 64 - .../basic_socket_iostream/expires_after.html | 62 - .../basic_socket_iostream/expires_at.html | 52 - .../expires_at/overload1.html | 51 - .../expires_at/overload2.html | 61 - .../expires_from_now.html | 52 - .../expires_from_now/overload1.html | 51 - .../expires_from_now/overload2.html | 62 - .../basic_socket_iostream/expiry.html | 51 - .../basic_socket_iostream/operator_eq_.html | 45 - .../basic_socket_iostream/protocol_type.html | 53 - .../basic_socket_iostream/rdbuf.html | 43 - .../basic_socket_iostream/socket.html | 43 - .../basic_socket_iostream/time_point.html | 53 - .../basic_socket_iostream/time_type.html | 53 - .../reference/basic_socket_streambuf.html | 401 - .../_basic_socket_streambuf.html | 43 - .../basic_socket_streambuf.html | 61 - .../basic_socket_streambuf/overload1.html | 43 - .../basic_socket_streambuf/overload2.html | 44 - .../basic_socket_streambuf/overload3.html | 44 - .../basic_socket_streambuf/clock_type.html | 53 - .../basic_socket_streambuf/close.html | 52 - .../basic_socket_streambuf/connect.html | 55 - .../connect/overload1.html | 55 - .../connect/overload2.html | 63 - .../basic_socket_streambuf/duration.html | 53 - .../basic_socket_streambuf/duration_type.html | 53 - .../basic_socket_streambuf/endpoint_type.html | 53 - .../basic_socket_streambuf/error.html | 52 - .../basic_socket_streambuf/expires_after.html | 62 - .../basic_socket_streambuf/expires_at.html | 52 - .../expires_at/overload1.html | 51 - .../expires_at/overload2.html | 61 - .../expires_from_now.html | 53 - .../expires_from_now/overload1.html | 51 - .../expires_from_now/overload2.html | 62 - .../basic_socket_streambuf/expiry.html | 51 - .../basic_socket_streambuf/operator_eq_.html | 45 - .../basic_socket_streambuf/overflow.html | 42 - .../basic_socket_streambuf/protocol_type.html | 53 - .../basic_socket_streambuf/puberror.html | 53 - .../basic_socket_streambuf/setbuf.html | 43 - .../basic_socket_streambuf/socket.html | 43 - .../basic_socket_streambuf/sync.html | 41 - .../basic_socket_streambuf/time_point.html | 53 - .../basic_socket_streambuf/time_type.html | 53 - .../basic_socket_streambuf/underflow.html | 41 - .../asio/reference/basic_stream_socket.html | 931 - .../_basic_stream_socket.html | 47 - .../reference/basic_stream_socket/assign.html | 52 - .../basic_stream_socket/assign/overload1.html | 47 - .../basic_stream_socket/assign/overload2.html | 48 - .../basic_stream_socket/async_connect.html | 110 - .../basic_stream_socket/async_read_some.html | 112 - .../basic_stream_socket/async_receive.html | 58 - .../async_receive/overload1.html | 111 - .../async_receive/overload2.html | 116 - .../basic_stream_socket/async_send.html | 58 - .../async_send/overload1.html | 111 - .../async_send/overload2.html | 116 - .../basic_stream_socket/async_wait.html | 104 - .../basic_stream_socket/async_write_some.html | 112 - .../basic_stream_socket/at_mark.html | 48 - .../at_mark/overload1.html | 70 - .../at_mark/overload2.html | 71 - .../basic_stream_socket/available.html | 48 - .../available/overload1.html | 71 - .../available/overload2.html | 72 - .../basic_stream_socket.html | 92 - .../basic_stream_socket/overload1.html | 64 - .../basic_stream_socket/overload2.html | 80 - .../basic_stream_socket/overload3.html | 83 - .../basic_stream_socket/overload4.html | 86 - .../basic_stream_socket/overload5.html | 69 - .../basic_stream_socket/overload6.html | 72 - .../reference/basic_stream_socket/bind.html | 50 - .../basic_stream_socket/bind/overload1.html | 85 - .../basic_stream_socket/bind/overload2.html | 82 - .../basic_stream_socket/broadcast.html | 80 - .../basic_stream_socket/bytes_readable.html | 69 - .../reference/basic_stream_socket/cancel.html | 48 - .../basic_stream_socket/cancel/overload1.html | 103 - .../basic_stream_socket/cancel/overload2.html | 104 - .../reference/basic_stream_socket/close.html | 48 - .../basic_stream_socket/close/overload1.html | 72 - .../basic_stream_socket/close/overload2.html | 86 - .../basic_stream_socket/connect.html | 50 - .../connect/overload1.html | 91 - .../connect/overload2.html | 88 - .../reference/basic_stream_socket/debug.html | 80 - .../basic_stream_socket/do_not_route.html | 80 - .../enable_connection_aborted.html | 82 - .../basic_stream_socket/endpoint_type.html | 53 - .../basic_stream_socket/executor_type.html | 213 - .../basic_stream_socket/get_executor.html | 46 - .../basic_stream_socket/get_io_context.html | 61 - .../basic_stream_socket/get_io_service.html | 61 - .../basic_stream_socket/get_option.html | 54 - .../get_option/overload1.html | 90 - .../get_option/overload2.html | 87 - .../basic_stream_socket/io_control.html | 54 - .../io_control/overload1.html | 90 - .../io_control/overload2.html | 87 - .../basic_stream_socket/is_open.html | 46 - .../basic_stream_socket/keep_alive.html | 80 - .../reference/basic_stream_socket/linger.html | 82 - .../basic_stream_socket/local_endpoint.html | 48 - .../local_endpoint/overload1.html | 77 - .../local_endpoint/overload2.html | 84 - .../basic_stream_socket/lowest_layer.html | 50 - .../lowest_layer/overload1.html | 59 - .../lowest_layer/overload2.html | 59 - .../lowest_layer_type.html | 862 - .../basic_stream_socket/max_connections.html | 47 - .../max_listen_connections.html | 46 - .../message_do_not_route.html | 46 - .../message_end_of_record.html | 46 - .../basic_stream_socket/message_flags.html | 56 - .../message_out_of_band.html | 46 - .../basic_stream_socket/message_peek.html | 46 - .../basic_stream_socket/native_handle.html | 51 - .../native_handle_type.html | 53 - .../native_non_blocking.html | 56 - .../native_non_blocking/overload1.html | 144 - .../native_non_blocking/overload2.html | 157 - .../native_non_blocking/overload3.html | 149 - .../basic_stream_socket/non_blocking.html | 56 - .../non_blocking/overload1.html | 64 - .../non_blocking/overload2.html | 83 - .../non_blocking/overload3.html | 75 - .../reference/basic_stream_socket/open.html | 50 - .../basic_stream_socket/open/overload1.html | 82 - .../basic_stream_socket/open/overload2.html | 79 - .../basic_stream_socket/operator_eq_.html | 56 - .../operator_eq_/overload1.html | 69 - .../operator_eq_/overload2.html | 71 - .../out_of_band_inline.html | 80 - .../basic_stream_socket/protocol_type.html | 53 - .../basic_stream_socket/read_some.html | 54 - .../read_some/overload1.html | 110 - .../read_some/overload2.html | 86 - .../basic_stream_socket/receive.html | 65 - .../receive/overload1.html | 110 - .../receive/overload2.html | 115 - .../receive/overload3.html | 91 - .../receive_buffer_size.html | 80 - .../receive_low_watermark.html | 80 - .../basic_stream_socket/release.html | 48 - .../release/overload1.html | 73 - .../release/overload2.html | 74 - .../basic_stream_socket/remote_endpoint.html | 48 - .../remote_endpoint/overload1.html | 77 - .../remote_endpoint/overload2.html | 84 - .../basic_stream_socket/reuse_address.html | 81 - .../reference/basic_stream_socket/send.html | 62 - .../basic_stream_socket/send/overload1.html | 109 - .../basic_stream_socket/send/overload2.html | 114 - .../basic_stream_socket/send/overload3.html | 91 - .../basic_stream_socket/send_buffer_size.html | 80 - .../send_low_watermark.html | 80 - .../basic_stream_socket/set_option.html | 54 - .../set_option/overload1.html | 89 - .../set_option/overload2.html | 86 - .../basic_stream_socket/shutdown.html | 50 - .../shutdown/overload1.html | 87 - .../shutdown/overload2.html | 84 - .../basic_stream_socket/shutdown_type.html | 72 - .../reference/basic_stream_socket/wait.html | 51 - .../basic_stream_socket/wait/overload1.html | 75 - .../basic_stream_socket/wait/overload2.html | 81 - .../basic_stream_socket/wait_type.html | 75 - .../basic_stream_socket/write_some.html | 54 - .../write_some/overload1.html | 110 - .../write_some/overload2.html | 86 - .../doc/asio/reference/basic_streambuf.html | 363 - .../basic_streambuf/basic_streambuf.html | 50 - .../reference/basic_streambuf/capacity.html | 51 - .../reference/basic_streambuf/commit.html | 61 - .../basic_streambuf/const_buffers_type.html | 53 - .../reference/basic_streambuf/consume.html | 55 - .../asio/reference/basic_streambuf/data.html | 60 - .../reference/basic_streambuf/max_size.html | 51 - .../basic_streambuf/mutable_buffers_type.html | 53 - .../reference/basic_streambuf/overflow.html | 50 - .../reference/basic_streambuf/prepare.html | 78 - .../reference/basic_streambuf/reserve.html | 42 - .../asio/reference/basic_streambuf/size.html | 61 - .../reference/basic_streambuf/underflow.html | 46 - .../asio/reference/basic_streambuf_ref.html | 226 - .../basic_streambuf_ref.html | 61 - .../basic_streambuf_ref/overload1.html | 45 - .../basic_streambuf_ref/overload2.html | 43 - .../basic_streambuf_ref/overload3.html | 43 - .../basic_streambuf_ref/capacity.html | 43 - .../reference/basic_streambuf_ref/commit.html | 44 - .../const_buffers_type.html | 362 - .../basic_streambuf_ref/consume.html | 44 - .../reference/basic_streambuf_ref/data.html | 43 - .../basic_streambuf_ref/max_size.html | 43 - .../mutable_buffers_type.html | 362 - .../basic_streambuf_ref/prepare.html | 44 - .../reference/basic_streambuf_ref/size.html | 43 - .../asio/reference/basic_waitable_timer.html | 460 - .../_basic_waitable_timer.html | 47 - .../basic_waitable_timer/async_wait.html | 90 - .../basic_waitable_timer.html | 68 - .../basic_waitable_timer/overload1.html | 63 - .../basic_waitable_timer/overload2.html | 67 - .../basic_waitable_timer/overload3.html | 66 - .../basic_waitable_timer/overload4.html | 69 - .../basic_waitable_timer/cancel.html | 52 - .../cancel/overload1.html | 92 - .../cancel/overload2.html | 94 - .../basic_waitable_timer/cancel_one.html | 52 - .../cancel_one/overload1.html | 93 - .../cancel_one/overload2.html | 95 - .../basic_waitable_timer/clock_type.html | 53 - .../basic_waitable_timer/duration.html | 53 - .../basic_waitable_timer/executor_type.html | 210 - .../basic_waitable_timer/expires_after.html | 103 - .../basic_waitable_timer/expires_at.html | 61 - .../expires_at/overload1.html | 47 - .../expires_at/overload2.html | 102 - .../expires_at/overload3.html | 95 - .../expires_from_now.html | 57 - .../expires_from_now/overload1.html | 47 - .../expires_from_now/overload2.html | 103 - .../expires_from_now/overload3.html | 95 - .../basic_waitable_timer/expiry.html | 47 - .../basic_waitable_timer/get_executor.html | 43 - .../basic_waitable_timer/get_io_context.html | 58 - .../basic_waitable_timer/get_io_service.html | 58 - .../basic_waitable_timer/operator_eq_.html | 71 - .../basic_waitable_timer/time_point.html | 53 - .../basic_waitable_timer/traits_type.html | 53 - .../reference/basic_waitable_timer/wait.html | 48 - .../basic_waitable_timer/wait/overload1.html | 59 - .../basic_waitable_timer/wait/overload2.html | 60 - .../asio/reference/basic_yield_context.html | 171 - .../basic_yield_context.html | 56 - .../basic_yield_context/overload1.html | 50 - .../basic_yield_context/overload2.html | 48 - .../basic_yield_context/callee_type.html | 63 - .../basic_yield_context/caller_type.html | 63 - .../basic_yield_context/operator_lb__rb_.html | 64 - .../doc/asio/reference/bind_executor.html | 72 - .../reference/bind_executor/overload1.html | 48 - .../reference/bind_executor/overload2.html | 49 - .../asio/doc/asio/reference/buffer.html | 521 - .../doc/asio/reference/buffer/overload1.html | 50 - .../doc/asio/reference/buffer/overload10.html | 60 - .../doc/asio/reference/buffer/overload11.html | 59 - .../doc/asio/reference/buffer/overload12.html | 60 - .../doc/asio/reference/buffer/overload13.html | 59 - .../doc/asio/reference/buffer/overload14.html | 60 - .../doc/asio/reference/buffer/overload15.html | 59 - .../doc/asio/reference/buffer/overload16.html | 60 - .../doc/asio/reference/buffer/overload17.html | 59 - .../doc/asio/reference/buffer/overload18.html | 60 - .../doc/asio/reference/buffer/overload19.html | 59 - .../doc/asio/reference/buffer/overload2.html | 56 - .../doc/asio/reference/buffer/overload20.html | 60 - .../doc/asio/reference/buffer/overload21.html | 59 - .../doc/asio/reference/buffer/overload22.html | 60 - .../doc/asio/reference/buffer/overload23.html | 67 - .../doc/asio/reference/buffer/overload24.html | 68 - .../doc/asio/reference/buffer/overload25.html | 67 - .../doc/asio/reference/buffer/overload26.html | 68 - .../doc/asio/reference/buffer/overload27.html | 63 - .../doc/asio/reference/buffer/overload28.html | 69 - .../doc/asio/reference/buffer/overload29.html | 63 - .../doc/asio/reference/buffer/overload3.html | 50 - .../doc/asio/reference/buffer/overload30.html | 69 - .../doc/asio/reference/buffer/overload31.html | 54 - .../doc/asio/reference/buffer/overload32.html | 60 - .../doc/asio/reference/buffer/overload4.html | 56 - .../doc/asio/reference/buffer/overload5.html | 51 - .../doc/asio/reference/buffer/overload6.html | 51 - .../doc/asio/reference/buffer/overload7.html | 58 - .../doc/asio/reference/buffer/overload8.html | 59 - .../doc/asio/reference/buffer/overload9.html | 58 - .../asio/doc/asio/reference/buffer_cast.html | 87 - .../asio/reference/buffer_cast/overload1.html | 45 - .../asio/reference/buffer_cast/overload2.html | 45 - .../asio/doc/asio/reference/buffer_copy.html | 111 - .../asio/reference/buffer_copy/overload1.html | 93 - .../asio/reference/buffer_copy/overload2.html | 102 - .../asio/reference/buffer_sequence_begin.html | 74 - .../buffer_sequence_begin/overload1.html | 43 - .../buffer_sequence_begin/overload2.html | 43 - .../buffer_sequence_begin/overload3.html | 45 - .../buffer_sequence_begin/overload4.html | 45 - .../asio/reference/buffer_sequence_end.html | 75 - .../buffer_sequence_end/overload1.html | 43 - .../buffer_sequence_end/overload2.html | 43 - .../buffer_sequence_end/overload3.html | 45 - .../buffer_sequence_end/overload4.html | 45 - .../asio/doc/asio/reference/buffer_size.html | 75 - .../asio/reference/buffered_read_stream.html | 387 - .../buffered_read_stream/async_fill.html | 46 - .../buffered_read_stream/async_read_some.html | 49 - .../async_write_some.html | 49 - .../buffered_read_stream.html | 54 - .../buffered_read_stream/overload1.html | 45 - .../buffered_read_stream/overload2.html | 46 - .../reference/buffered_read_stream/close.html | 48 - .../buffered_read_stream/close/overload1.html | 42 - .../buffered_read_stream/close/overload2.html | 43 - .../default_buffer_size.html | 43 - .../buffered_read_stream/executor_type.html | 53 - .../reference/buffered_read_stream/fill.html | 53 - .../buffered_read_stream/fill/overload1.html | 43 - .../buffered_read_stream/fill/overload2.html | 44 - .../buffered_read_stream/get_executor.html | 43 - .../buffered_read_stream/get_io_context.html | 44 - .../buffered_read_stream/get_io_service.html | 44 - .../buffered_read_stream/in_avail.html | 48 - .../in_avail/overload1.html | 42 - .../in_avail/overload2.html | 43 - .../buffered_read_stream/lowest_layer.html | 50 - .../lowest_layer/overload1.html | 42 - .../lowest_layer/overload2.html | 42 - .../lowest_layer_type.html | 53 - .../buffered_read_stream/next_layer.html | 43 - .../buffered_read_stream/next_layer_type.html | 53 - .../reference/buffered_read_stream/peek.html | 59 - .../buffered_read_stream/peek/overload1.html | 46 - .../buffered_read_stream/peek/overload2.html | 47 - .../buffered_read_stream/read_some.html | 59 - .../read_some/overload1.html | 46 - .../read_some/overload2.html | 47 - .../buffered_read_stream/write_some.html | 59 - .../write_some/overload1.html | 46 - .../write_some/overload2.html | 47 - .../doc/asio/reference/buffered_stream.html | 382 - .../reference/buffered_stream/async_fill.html | 46 - .../buffered_stream/async_flush.html | 46 - .../buffered_stream/async_read_some.html | 49 - .../buffered_stream/async_write_some.html | 49 - .../buffered_stream/buffered_stream.html | 55 - .../buffered_stream/overload1.html | 45 - .../buffered_stream/overload2.html | 47 - .../asio/reference/buffered_stream/close.html | 47 - .../buffered_stream/close/overload1.html | 42 - .../buffered_stream/close/overload2.html | 43 - .../buffered_stream/executor_type.html | 53 - .../asio/reference/buffered_stream/fill.html | 53 - .../buffered_stream/fill/overload1.html | 43 - .../buffered_stream/fill/overload2.html | 44 - .../asio/reference/buffered_stream/flush.html | 54 - .../buffered_stream/flush/overload1.html | 44 - .../buffered_stream/flush/overload2.html | 45 - .../buffered_stream/get_executor.html | 43 - .../buffered_stream/get_io_context.html | 44 - .../buffered_stream/get_io_service.html | 44 - .../reference/buffered_stream/in_avail.html | 48 - .../buffered_stream/in_avail/overload1.html | 42 - .../buffered_stream/in_avail/overload2.html | 43 - .../buffered_stream/lowest_layer.html | 50 - .../lowest_layer/overload1.html | 42 - .../lowest_layer/overload2.html | 42 - .../buffered_stream/lowest_layer_type.html | 53 - .../reference/buffered_stream/next_layer.html | 43 - .../buffered_stream/next_layer_type.html | 53 - .../asio/reference/buffered_stream/peek.html | 59 - .../buffered_stream/peek/overload1.html | 46 - .../buffered_stream/peek/overload2.html | 47 - .../reference/buffered_stream/read_some.html | 59 - .../buffered_stream/read_some/overload1.html | 46 - .../buffered_stream/read_some/overload2.html | 47 - .../reference/buffered_stream/write_some.html | 59 - .../buffered_stream/write_some/overload1.html | 46 - .../buffered_stream/write_some/overload2.html | 47 - .../asio/reference/buffered_write_stream.html | 388 - .../buffered_write_stream/async_flush.html | 46 - .../async_read_some.html | 49 - .../async_write_some.html | 49 - .../buffered_write_stream.html | 54 - .../buffered_write_stream/overload1.html | 45 - .../buffered_write_stream/overload2.html | 46 - .../buffered_write_stream/close.html | 48 - .../close/overload1.html | 42 - .../close/overload2.html | 43 - .../default_buffer_size.html | 43 - .../buffered_write_stream/executor_type.html | 53 - .../buffered_write_stream/flush.html | 55 - .../flush/overload1.html | 44 - .../flush/overload2.html | 45 - .../buffered_write_stream/get_executor.html | 43 - .../buffered_write_stream/get_io_context.html | 44 - .../buffered_write_stream/get_io_service.html | 44 - .../buffered_write_stream/in_avail.html | 48 - .../in_avail/overload1.html | 42 - .../in_avail/overload2.html | 43 - .../buffered_write_stream/lowest_layer.html | 50 - .../lowest_layer/overload1.html | 42 - .../lowest_layer/overload2.html | 42 - .../lowest_layer_type.html | 53 - .../buffered_write_stream/next_layer.html | 43 - .../next_layer_type.html | 53 - .../reference/buffered_write_stream/peek.html | 59 - .../buffered_write_stream/peek/overload1.html | 46 - .../buffered_write_stream/peek/overload2.html | 47 - .../buffered_write_stream/read_some.html | 59 - .../read_some/overload1.html | 46 - .../read_some/overload2.html | 47 - .../buffered_write_stream/write_some.html | 59 - .../write_some/overload1.html | 46 - .../write_some/overload2.html | 47 - .../doc/asio/reference/buffers_begin.html | 56 - .../asio/doc/asio/reference/buffers_end.html | 56 - .../doc/asio/reference/buffers_iterator.html | 404 - .../reference/buffers_iterator/begin.html | 44 - .../buffers_iterator/buffers_iterator.html | 43 - .../buffers_iterator/difference_type.html | 53 - .../asio/reference/buffers_iterator/end.html | 44 - .../buffers_iterator/iterator_category.html | 53 - .../buffers_iterator/operator__star_.html | 44 - .../buffers_iterator/operator_arrow_.html | 43 - .../buffers_iterator/operator_eq__eq_.html | 55 - .../buffers_iterator/operator_gt_.html | 55 - .../buffers_iterator/operator_gt__eq_.html | 55 - .../buffers_iterator/operator_lb__rb_.html | 44 - .../buffers_iterator/operator_lt_.html | 55 - .../buffers_iterator/operator_lt__eq_.html | 55 - .../buffers_iterator/operator_minus_.html | 51 - .../operator_minus_/overload1.html | 54 - .../operator_minus_/overload2.html | 54 - .../buffers_iterator/operator_minus__eq_.html | 44 - .../operator_minus__minus_.html | 51 - .../operator_minus__minus_/overload1.html | 42 - .../operator_minus__minus_/overload2.html | 43 - .../buffers_iterator/operator_not__eq_.html | 55 - .../buffers_iterator/operator_plus_.html | 51 - .../operator_plus_/overload1.html | 54 - .../operator_plus_/overload2.html | 54 - .../buffers_iterator/operator_plus__eq_.html | 44 - .../operator_plus__plus_.html | 51 - .../operator_plus__plus_/overload1.html | 42 - .../operator_plus__plus_/overload2.html | 43 - .../reference/buffers_iterator/pointer.html | 58 - .../reference/buffers_iterator/reference.html | 58 - .../buffers_iterator/value_type.html | 53 - .../asio/doc/asio/reference/connect.html | 195 - .../doc/asio/reference/connect/overload1.html | 104 - .../asio/reference/connect/overload10.html | 119 - .../asio/reference/connect/overload11.html | 151 - .../asio/reference/connect/overload12.html | 152 - .../doc/asio/reference/connect/overload2.html | 102 - .../doc/asio/reference/connect/overload3.html | 106 - .../doc/asio/reference/connect/overload4.html | 98 - .../doc/asio/reference/connect/overload5.html | 109 - .../doc/asio/reference/connect/overload6.html | 107 - .../doc/asio/reference/connect/overload7.html | 146 - .../doc/asio/reference/connect/overload8.html | 147 - .../doc/asio/reference/connect/overload9.html | 127 - .../asio/doc/asio/reference/const_buffer.html | 184 - .../reference/const_buffer/const_buffer.html | 59 - .../const_buffer/const_buffer/overload1.html | 42 - .../const_buffer/const_buffer/overload2.html | 44 - .../const_buffer/const_buffer/overload3.html | 43 - .../doc/asio/reference/const_buffer/data.html | 43 - .../const_buffer/operator_plus_.html | 51 - .../operator_plus_/overload1.html | 44 - .../operator_plus_/overload2.html | 44 - .../const_buffer/operator_plus__eq_.html | 44 - .../doc/asio/reference/const_buffer/size.html | 43 - .../doc/asio/reference/const_buffers_1.html | 236 - .../asio/reference/const_buffers_1/begin.html | 43 - .../const_buffers_1/const_buffers_1.html | 53 - .../const_buffers_1/overload1.html | 44 - .../const_buffers_1/overload2.html | 43 - .../const_buffers_1/const_iterator.html | 53 - .../asio/reference/const_buffers_1/data.html | 46 - .../asio/reference/const_buffers_1/end.html | 43 - .../const_buffers_1/operator_plus_.html | 51 - .../operator_plus_/overload1.html | 47 - .../operator_plus_/overload2.html | 47 - .../const_buffers_1/operator_plus__eq_.html | 47 - .../asio/reference/const_buffers_1/size.html | 46 - .../reference/const_buffers_1/value_type.html | 186 - .../asio/doc/asio/reference/coroutine.html | 427 - .../asio/reference/coroutine/coroutine.html | 43 - .../asio/reference/coroutine/is_child.html | 43 - .../asio/reference/coroutine/is_complete.html | 43 - .../asio/reference/coroutine/is_parent.html | 43 - .../doc/asio/reference/deadline_timer.html | 407 - .../Vendor/asio/doc/asio/reference/defer.html | 75 - .../doc/asio/reference/defer/overload1.html | 76 - .../doc/asio/reference/defer/overload2.html | 87 - .../doc/asio/reference/defer/overload3.html | 55 - .../asio/doc/asio/reference/dispatch.html | 75 - .../asio/reference/dispatch/overload1.html | 77 - .../asio/reference/dispatch/overload2.html | 88 - .../asio/reference/dispatch/overload3.html | 56 - .../doc/asio/reference/dynamic_buffer.html | 90 - .../reference/dynamic_buffer/overload1.html | 54 - .../reference/dynamic_buffer/overload2.html | 55 - .../reference/dynamic_buffer/overload3.html | 53 - .../reference/dynamic_buffer/overload4.html | 54 - .../asio/reference/dynamic_string_buffer.html | 228 - .../dynamic_string_buffer/capacity.html | 52 - .../dynamic_string_buffer/commit.html | 71 - .../const_buffers_type.html | 186 - .../dynamic_string_buffer/consume.html | 55 - .../reference/dynamic_string_buffer/data.html | 61 - .../dynamic_string_buffer.html | 53 - .../dynamic_string_buffer/overload1.html | 66 - .../dynamic_string_buffer/overload2.html | 43 - .../dynamic_string_buffer/max_size.html | 52 - .../mutable_buffers_type.html | 185 - .../dynamic_string_buffer/prepare.html | 80 - .../reference/dynamic_string_buffer/size.html | 43 - .../asio/reference/dynamic_vector_buffer.html | 227 - .../dynamic_vector_buffer/capacity.html | 52 - .../dynamic_vector_buffer/commit.html | 71 - .../const_buffers_type.html | 186 - .../dynamic_vector_buffer/consume.html | 55 - .../reference/dynamic_vector_buffer/data.html | 61 - .../dynamic_vector_buffer.html | 53 - .../dynamic_vector_buffer/overload1.html | 66 - .../dynamic_vector_buffer/overload2.html | 43 - .../dynamic_vector_buffer/max_size.html | 52 - .../mutable_buffers_type.html | 185 - .../dynamic_vector_buffer/prepare.html | 80 - .../reference/dynamic_vector_buffer/size.html | 43 - .../reference/error__addrinfo_category.html | 51 - .../reference/error__addrinfo_errors.html | 72 - .../asio/reference/error__basic_errors.html | 233 - .../error__get_addrinfo_category.html | 51 - .../reference/error__get_misc_category.html | 51 - .../reference/error__get_netdb_category.html | 51 - .../reference/error__get_ssl_category.html | 51 - .../reference/error__get_system_category.html | 51 - .../reference/error__make_error_code.html | 73 - .../error__make_error_code/overload1.html | 40 - .../error__make_error_code/overload2.html | 40 - .../error__make_error_code/overload3.html | 40 - .../error__make_error_code/overload4.html | 40 - .../error__make_error_code/overload5.html | 40 - .../asio/reference/error__misc_category.html | 51 - .../asio/reference/error__misc_errors.html | 82 - .../asio/reference/error__netdb_category.html | 51 - .../asio/reference/error__netdb_errors.html | 82 - .../asio/reference/error__ssl_category.html | 51 - .../doc/asio/reference/error__ssl_errors.html | 51 - .../reference/error__system_category.html | 51 - .../doc/asio/reference/error_category.html | 137 - .../error_category/_error_category.html | 42 - .../reference/error_category/message.html | 44 - .../asio/reference/error_category/name.html | 43 - .../error_category/operator_eq__eq_.html | 44 - .../error_category/operator_not__eq_.html | 44 - .../asio/doc/asio/reference/error_code.html | 272 - .../doc/asio/reference/error_code/assign.html | 44 - .../asio/reference/error_code/category.html | 42 - .../doc/asio/reference/error_code/clear.html | 43 - .../asio/reference/error_code/error_code.html | 60 - .../error_code/error_code/overload1.html | 42 - .../error_code/error_code/overload2.html | 44 - .../error_code/error_code/overload3.html | 45 - .../asio/reference/error_code/message.html | 43 - .../error_code/operator_eq__eq_.html | 55 - .../reference/error_code/operator_not_.html | 43 - .../error_code/operator_not__eq_.html | 55 - .../operator_unspecified_bool_type.html | 44 - .../error_code/unspecified_bool_true.html | 42 - .../error_code/unspecified_bool_type.html | 51 - .../doc/asio/reference/error_code/value.html | 42 - .../error_code__unspecified_bool_type_t.html | 48 - .../doc/asio/reference/execution_context.html | 382 - .../execution_context/_execution_context.html | 42 - .../execution_context/add_service.html | 107 - .../reference/execution_context/destroy.html | 51 - .../execution_context/execution_context.html | 42 - .../execution_context/fork_event.html | 69 - .../execution_context/has_service.html | 84 - .../execution_context/make_service.html | 93 - .../execution_context/notify_fork.html | 118 - .../reference/execution_context/shutdown.html | 51 - .../execution_context/use_service.html | 53 - .../use_service/overload1.html | 84 - .../use_service/overload2.html | 92 - .../asio/reference/execution_context__id.html | 86 - .../reference/execution_context__id/id.html | 42 - .../reference/execution_context__service.html | 187 - .../execution_context__service/_service.html | 42 - .../execution_context__service/context.html | 43 - .../notify_fork.html | 48 - .../execution_context__service/service.html | 57 - .../execution_context__service/shutdown.html | 43 - .../asio/doc/asio/reference/executor.html | 328 - .../asio/reference/executor/_executor.html | 42 - .../doc/asio/reference/executor/context.html | 43 - .../doc/asio/reference/executor/defer.html | 79 - .../doc/asio/reference/executor/dispatch.html | 79 - .../doc/asio/reference/executor/executor.html | 86 - .../executor/executor/overload1.html | 42 - .../executor/executor/overload2.html | 43 - .../executor/executor/overload3.html | 43 - .../executor/executor/overload4.html | 43 - .../executor/executor/overload5.html | 45 - .../executor/executor/overload6.html | 49 - .../reference/executor/on_work_finished.html | 43 - .../reference/executor/on_work_started.html | 43 - .../asio/reference/executor/operator_eq_.html | 66 - .../executor/operator_eq_/overload1.html | 43 - .../executor/operator_eq_/overload2.html | 40 - .../executor/operator_eq_/overload3.html | 43 - .../executor/operator_eq_/overload4.html | 46 - .../reference/executor/operator_eq__eq_.html | 55 - .../reference/executor/operator_not__eq_.html | 55 - .../operator_unspecified_bool_type.html | 44 - .../doc/asio/reference/executor/post.html | 79 - .../doc/asio/reference/executor/target.html | 51 - .../reference/executor/target/overload1.html | 53 - .../reference/executor/target/overload2.html | 53 - .../asio/reference/executor/target_type.html | 52 - .../executor/unspecified_bool_true.html | 42 - .../executor/unspecified_bool_type.html | 51 - .../executor__unspecified_bool_type_t.html | 48 - .../asio/doc/asio/reference/executor_arg.html | 58 - .../doc/asio/reference/executor_arg_t.html | 95 - .../executor_arg_t/executor_arg_t.html | 42 - .../doc/asio/reference/executor_binder.html | 242 - .../executor_binder/_executor_binder.html | 42 - .../executor_binder/argument_type.html | 71 - .../executor_binder/executor_binder.html | 127 - .../executor_binder/overload1.html | 51 - .../executor_binder/overload2.html | 43 - .../executor_binder/overload3.html | 45 - .../executor_binder/overload4.html | 51 - .../executor_binder/overload5.html | 53 - .../executor_binder/overload6.html | 43 - .../executor_binder/overload7.html | 45 - .../executor_binder/overload8.html | 46 - .../executor_binder/overload9.html | 49 - .../executor_binder/executor_type.html | 53 - .../executor_binder/first_argument_type.html | 71 - .../asio/reference/executor_binder/get.html | 47 - .../executor_binder/get/overload1.html | 42 - .../executor_binder/get/overload2.html | 42 - .../executor_binder/get_executor.html | 43 - .../executor_binder/operator_lp__rp_.html | 51 - .../operator_lp__rp_/overload1.html | 42 - .../operator_lp__rp_/overload2.html | 42 - .../executor_binder/result_type.html | 70 - .../executor_binder/second_argument_type.html | 71 - .../executor_binder/target_type.html | 53 - .../asio/reference/executor_work_guard.html | 174 - .../_executor_work_guard.html | 46 - .../executor_work_guard/executor_type.html | 53 - .../executor_work_guard.html | 59 - .../executor_work_guard/overload1.html | 48 - .../executor_work_guard/overload2.html | 43 - .../executor_work_guard/overload3.html | 43 - .../executor_work_guard/get_executor.html | 43 - .../executor_work_guard/owns_work.html | 44 - .../reference/executor_work_guard/reset.html | 43 - .../reference/experimental__await_token.html | 154 - .../await_token.html | 52 - .../await_token/overload1.html | 43 - .../await_token/overload2.html | 43 - .../executor_type.html | 53 - .../get_executor.html | 43 - .../reference/experimental__awaitable.html | 151 - .../experimental__awaitable/_awaitable.html | 42 - .../experimental__awaitable/awaitable.html | 44 - .../executor_type.html | 53 - .../experimental__awaitable/value_type.html | 53 - .../reference/experimental__co_spawn.html | 83 - .../experimental__co_spawn/overload1.html | 50 - .../experimental__co_spawn/overload2.html | 50 - .../experimental__co_spawn/overload3.html | 49 - .../reference/experimental__detached.html | 57 - .../reference/experimental__detached_t.html | 96 - .../experimental__detached_t/detached_t.html | 42 - .../experimental__redirect_error.html | 58 - .../experimental__redirect_error_t.html | 138 - .../experimental__redirect_error_t/ec_.html | 41 - .../redirect_error_t.html | 46 - .../token_.html | 41 - .../experimental__this_coro__executor.html | 53 - .../experimental__this_coro__executor_t.html | 51 - .../experimental__this_coro__token.html | 53 - .../experimental__this_coro__token_t.html | 51 - .../reference/generic__basic_endpoint.html | 332 - .../basic_endpoint.html | 69 - .../basic_endpoint/overload1.html | 42 - .../basic_endpoint/overload2.html | 45 - .../basic_endpoint/overload3.html | 45 - .../basic_endpoint/overload4.html | 43 - .../generic__basic_endpoint/capacity.html | 43 - .../generic__basic_endpoint/data.html | 47 - .../data/overload1.html | 42 - .../data/overload2.html | 42 - .../generic__basic_endpoint/data_type.html | 54 - .../generic__basic_endpoint/operator_eq_.html | 44 - .../operator_eq__eq_.html | 55 - .../generic__basic_endpoint/operator_gt_.html | 55 - .../operator_gt__eq_.html | 55 - .../generic__basic_endpoint/operator_lt_.html | 55 - .../operator_lt__eq_.html | 55 - .../operator_not__eq_.html | 55 - .../generic__basic_endpoint/protocol.html | 43 - .../protocol_type.html | 53 - .../generic__basic_endpoint/resize.html | 44 - .../generic__basic_endpoint/size.html | 43 - .../reference/generic__datagram_protocol.html | 252 - .../datagram_protocol.html | 55 - .../datagram_protocol/overload1.html | 44 - .../datagram_protocol/overload2.html | 58 - .../generic__datagram_protocol/endpoint.html | 333 - .../generic__datagram_protocol/family.html | 43 - .../operator_eq__eq_.html | 55 - .../operator_not__eq_.html | 55 - .../generic__datagram_protocol/protocol.html | 43 - .../generic__datagram_protocol/socket.html | 932 - .../generic__datagram_protocol/type.html | 43 - .../asio/reference/generic__raw_protocol.html | 251 - .../generic__raw_protocol/endpoint.html | 333 - .../generic__raw_protocol/family.html | 43 - .../operator_eq__eq_.html | 55 - .../operator_not__eq_.html | 55 - .../generic__raw_protocol/protocol.html | 43 - .../generic__raw_protocol/raw_protocol.html | 55 - .../raw_protocol/overload1.html | 44 - .../raw_protocol/overload2.html | 58 - .../generic__raw_protocol/socket.html | 930 - .../reference/generic__raw_protocol/type.html | 43 - .../generic__seq_packet_protocol.html | 247 - .../endpoint.html | 333 - .../generic__seq_packet_protocol/family.html | 43 - .../operator_eq__eq_.html | 55 - .../operator_not__eq_.html | 55 - .../protocol.html | 43 - .../seq_packet_protocol.html | 55 - .../seq_packet_protocol/overload1.html | 44 - .../seq_packet_protocol/overload2.html | 59 - .../generic__seq_packet_protocol/socket.html | 885 - .../generic__seq_packet_protocol/type.html | 43 - .../reference/generic__stream_protocol.html | 263 - .../generic__stream_protocol/endpoint.html | 333 - .../generic__stream_protocol/family.html | 43 - .../generic__stream_protocol/iostream.html | 327 - .../operator_eq__eq_.html | 55 - .../operator_not__eq_.html | 55 - .../generic__stream_protocol/protocol.html | 43 - .../generic__stream_protocol/socket.html | 933 - .../stream_protocol.html | 55 - .../stream_protocol/overload1.html | 44 - .../stream_protocol/overload2.html | 58 - .../generic__stream_protocol/type.html | 43 - .../reference/get_associated_allocator.html | 65 - .../get_associated_allocator/overload1.html | 53 - .../get_associated_allocator/overload2.html | 55 - .../reference/get_associated_executor.html | 75 - .../get_associated_executor/overload1.html | 53 - .../get_associated_executor/overload2.html | 56 - .../get_associated_executor/overload3.html | 57 - .../asio/doc/asio/reference/handler_type.html | 99 - .../doc/asio/reference/handler_type/type.html | 53 - .../asio/doc/asio/reference/has_service.html | 81 - .../asio/reference/high_resolution_timer.html | 467 - .../asio/reference/invalid_service_owner.html | 83 - .../invalid_service_owner.html | 41 - .../asio/doc/asio/reference/io_context.html | 714 - .../reference/io_context/_io_context.html | 89 - .../reference/io_context/add_service.html | 110 - .../asio/reference/io_context/count_type.html | 53 - .../asio/reference/io_context/destroy.html | 54 - .../asio/reference/io_context/dispatch.html | 97 - .../asio/reference/io_context/fork_event.html | 72 - .../reference/io_context/get_executor.html | 43 - .../reference/io_context/has_service.html | 86 - .../asio/reference/io_context/io_context.html | 47 - .../io_context/io_context/overload1.html | 42 - .../io_context/io_context/overload2.html | 60 - .../reference/io_context/make_service.html | 96 - .../reference/io_context/notify_fork.html | 120 - .../doc/asio/reference/io_context/poll.html | 52 - .../reference/io_context/poll/overload1.html | 56 - .../reference/io_context/poll/overload2.html | 70 - .../asio/reference/io_context/poll_one.html | 52 - .../io_context/poll_one/overload1.html | 55 - .../io_context/poll_one/overload2.html | 69 - .../doc/asio/reference/io_context/post.html | 97 - .../doc/asio/reference/io_context/reset.html | 58 - .../asio/reference/io_context/restart.html | 57 - .../doc/asio/reference/io_context/run.html | 52 - .../reference/io_context/run/overload1.html | 87 - .../reference/io_context/run/overload2.html | 101 - .../asio/reference/io_context/run_for.html | 73 - .../asio/reference/io_context/run_one.html | 52 - .../io_context/run_one/overload1.html | 73 - .../io_context/run_one/overload2.html | 77 - .../reference/io_context/run_one_for.html | 72 - .../reference/io_context/run_one_until.html | 74 - .../asio/reference/io_context/run_until.html | 73 - .../asio/reference/io_context/shutdown.html | 54 - .../doc/asio/reference/io_context/stop.html | 50 - .../asio/reference/io_context/stopped.html | 61 - .../reference/io_context/use_service.html | 54 - .../io_context/use_service/overload1.html | 89 - .../io_context/use_service/overload2.html | 87 - .../doc/asio/reference/io_context/wrap.html | 100 - .../reference/io_context__executor_type.html | 208 - .../io_context__executor_type/context.html | 43 - .../io_context__executor_type/defer.html | 86 - .../io_context__executor_type/dispatch.html | 82 - .../on_work_finished.html | 51 - .../on_work_started.html | 49 - .../operator_eq__eq_.html | 58 - .../operator_not__eq_.html | 58 - .../io_context__executor_type/post.html | 81 - .../running_in_this_thread.html | 53 - .../asio/reference/io_context__service.html | 150 - .../io_context__service/_service.html | 42 - .../io_context__service/get_io_context.html | 44 - .../io_context__service/get_io_service.html | 44 - .../io_context__service/service.html | 57 - .../asio/reference/io_context__strand.html | 363 - .../reference/io_context__strand/_strand.html | 49 - .../reference/io_context__strand/context.html | 43 - .../reference/io_context__strand/defer.html | 79 - .../io_context__strand/dispatch.html | 59 - .../dispatch/overload1.html | 81 - .../dispatch/overload2.html | 84 - .../io_context__strand/get_io_context.html | 58 - .../io_context__strand/get_io_service.html | 58 - .../io_context__strand/on_work_finished.html | 46 - .../io_context__strand/on_work_started.html | 46 - .../io_context__strand/operator_eq__eq_.html | 59 - .../io_context__strand/operator_not__eq_.html | 59 - .../reference/io_context__strand/post.html | 59 - .../io_context__strand/post/overload1.html | 78 - .../io_context__strand/post/overload2.html | 80 - .../running_in_this_thread.html | 53 - .../reference/io_context__strand/strand.html | 61 - .../reference/io_context__strand/wrap.html | 98 - .../doc/asio/reference/io_context__work.html | 138 - .../reference/io_context__work/_work.html | 50 - .../io_context__work/get_io_context.html | 44 - .../io_context__work/get_io_service.html | 44 - .../asio/reference/io_context__work/work.html | 54 - .../io_context__work/work/overload1.html | 50 - .../io_context__work/work/overload2.html | 50 - .../asio/doc/asio/reference/io_service.html | 714 - .../asio/doc/asio/reference/ip__address.html | 375 - .../asio/reference/ip__address/address.html | 64 - .../ip__address/address/overload1.html | 42 - .../ip__address/address/overload2.html | 43 - .../ip__address/address/overload3.html | 43 - .../ip__address/address/overload4.html | 43 - .../reference/ip__address/from_string.html | 60 - .../ip__address/from_string/overload1.html | 45 - .../ip__address/from_string/overload2.html | 46 - .../ip__address/from_string/overload3.html | 45 - .../ip__address/from_string/overload4.html | 46 - .../reference/ip__address/is_loopback.html | 43 - .../reference/ip__address/is_multicast.html | 43 - .../reference/ip__address/is_unspecified.html | 43 - .../doc/asio/reference/ip__address/is_v4.html | 43 - .../doc/asio/reference/ip__address/is_v6.html | 43 - .../reference/ip__address/make_address.html | 69 - .../ip__address/make_address/overload1.html | 44 - .../ip__address/make_address/overload2.html | 45 - .../ip__address/make_address/overload3.html | 44 - .../ip__address/make_address/overload4.html | 45 - .../ip__address/make_address/overload5.html | 44 - .../ip__address/make_address/overload6.html | 45 - .../reference/ip__address/operator_eq_.html | 59 - .../ip__address/operator_eq_/overload1.html | 43 - .../ip__address/operator_eq_/overload2.html | 43 - .../ip__address/operator_eq_/overload3.html | 43 - .../ip__address/operator_eq__eq_.html | 55 - .../reference/ip__address/operator_gt_.html | 55 - .../ip__address/operator_gt__eq_.html | 55 - .../reference/ip__address/operator_lt_.html | 55 - .../ip__address/operator_lt__eq_.html | 55 - .../ip__address/operator_lt__lt_.html | 76 - .../ip__address/operator_not__eq_.html | 55 - .../asio/reference/ip__address/to_string.html | 51 - .../ip__address/to_string/overload1.html | 42 - .../ip__address/to_string/overload2.html | 43 - .../doc/asio/reference/ip__address/to_v4.html | 43 - .../doc/asio/reference/ip__address/to_v6.html | 43 - .../doc/asio/reference/ip__address_v4.html | 528 - .../reference/ip__address_v4/address_v4.html | 65 - .../ip__address_v4/address_v4/overload1.html | 42 - .../ip__address_v4/address_v4/overload2.html | 43 - .../ip__address_v4/address_v4/overload3.html | 43 - .../ip__address_v4/address_v4/overload4.html | 43 - .../asio/reference/ip__address_v4/any.html | 43 - .../reference/ip__address_v4/broadcast.html | 54 - .../ip__address_v4/broadcast/overload1.html | 42 - .../ip__address_v4/broadcast/overload2.html | 46 - .../reference/ip__address_v4/bytes_type.html | 61 - .../reference/ip__address_v4/from_string.html | 60 - .../ip__address_v4/from_string/overload1.html | 44 - .../ip__address_v4/from_string/overload2.html | 45 - .../ip__address_v4/from_string/overload3.html | 44 - .../ip__address_v4/from_string/overload4.html | 45 - .../reference/ip__address_v4/is_class_a.html | 44 - .../reference/ip__address_v4/is_class_b.html | 44 - .../reference/ip__address_v4/is_class_c.html | 44 - .../reference/ip__address_v4/is_loopback.html | 43 - .../ip__address_v4/is_multicast.html | 43 - .../ip__address_v4/is_unspecified.html | 43 - .../reference/ip__address_v4/loopback.html | 43 - .../ip__address_v4/make_address_v4.html | 90 - .../make_address_v4/overload1.html | 43 - .../make_address_v4/overload2.html | 43 - .../make_address_v4/overload3.html | 43 - .../make_address_v4/overload4.html | 44 - .../make_address_v4/overload5.html | 43 - .../make_address_v4/overload6.html | 44 - .../make_address_v4/overload7.html | 43 - .../make_address_v4/overload8.html | 44 - .../make_address_v4/overload9.html | 44 - .../ip__address_v4/make_network_v4.html | 54 - .../make_network_v4/overload1.html | 44 - .../make_network_v4/overload2.html | 44 - .../reference/ip__address_v4/netmask.html | 46 - .../ip__address_v4/operator_eq_.html | 44 - .../ip__address_v4/operator_eq__eq_.html | 55 - .../ip__address_v4/operator_gt_.html | 55 - .../ip__address_v4/operator_gt__eq_.html | 55 - .../ip__address_v4/operator_lt_.html | 55 - .../ip__address_v4/operator_lt__eq_.html | 55 - .../ip__address_v4/operator_lt__lt_.html | 60 - .../operator_lt__lt_/overload1.html | 75 - .../operator_lt__lt_/overload2.html | 75 - .../ip__address_v4/operator_not__eq_.html | 55 - .../reference/ip__address_v4/to_bytes.html | 43 - .../reference/ip__address_v4/to_string.html | 52 - .../ip__address_v4/to_string/overload1.html | 42 - .../ip__address_v4/to_string/overload2.html | 44 - .../reference/ip__address_v4/to_uint.html | 43 - .../reference/ip__address_v4/to_ulong.html | 43 - .../reference/ip__address_v4/uint_type.html | 53 - .../reference/ip__address_v4_iterator.html | 297 - .../asio/reference/ip__address_v4_range.html | 207 - .../doc/asio/reference/ip__address_v6.html | 576 - .../reference/ip__address_v6/address_v6.html | 59 - .../ip__address_v6/address_v6/overload1.html | 42 - .../ip__address_v6/address_v6/overload2.html | 44 - .../ip__address_v6/address_v6/overload3.html | 43 - .../asio/reference/ip__address_v6/any.html | 43 - .../reference/ip__address_v6/bytes_type.html | 61 - .../reference/ip__address_v6/from_string.html | 60 - .../ip__address_v6/from_string/overload1.html | 44 - .../ip__address_v6/from_string/overload2.html | 45 - .../ip__address_v6/from_string/overload3.html | 44 - .../ip__address_v6/from_string/overload4.html | 45 - .../ip__address_v6/is_link_local.html | 43 - .../reference/ip__address_v6/is_loopback.html | 43 - .../ip__address_v6/is_multicast.html | 43 - .../ip__address_v6/is_multicast_global.html | 43 - .../is_multicast_link_local.html | 43 - .../is_multicast_node_local.html | 43 - .../is_multicast_org_local.html | 43 - .../is_multicast_site_local.html | 43 - .../ip__address_v6/is_site_local.html | 43 - .../ip__address_v6/is_unspecified.html | 43 - .../ip__address_v6/is_v4_compatible.html | 43 - .../ip__address_v6/is_v4_mapped.html | 43 - .../reference/ip__address_v6/loopback.html | 43 - .../ip__address_v6/make_address_v6.html | 87 - .../make_address_v6/overload1.html | 44 - .../make_address_v6/overload2.html | 43 - .../make_address_v6/overload3.html | 44 - .../make_address_v6/overload4.html | 43 - .../make_address_v6/overload5.html | 44 - .../make_address_v6/overload6.html | 43 - .../make_address_v6/overload7.html | 44 - .../make_address_v6/overload8.html | 44 - .../ip__address_v6/make_network_v6.html | 45 - .../ip__address_v6/operator_eq_.html | 44 - .../ip__address_v6/operator_eq__eq_.html | 55 - .../ip__address_v6/operator_gt_.html | 55 - .../ip__address_v6/operator_gt__eq_.html | 55 - .../ip__address_v6/operator_lt_.html | 55 - .../ip__address_v6/operator_lt__eq_.html | 55 - .../ip__address_v6/operator_lt__lt_.html | 60 - .../operator_lt__lt_/overload1.html | 75 - .../operator_lt__lt_/overload2.html | 75 - .../ip__address_v6/operator_not__eq_.html | 55 - .../reference/ip__address_v6/scope_id.html | 48 - .../ip__address_v6/scope_id/overload1.html | 45 - .../ip__address_v6/scope_id/overload2.html | 46 - .../reference/ip__address_v6/to_bytes.html | 43 - .../reference/ip__address_v6/to_string.html | 51 - .../ip__address_v6/to_string/overload1.html | 42 - .../ip__address_v6/to_string/overload2.html | 43 - .../asio/reference/ip__address_v6/to_v4.html | 44 - .../ip__address_v6/v4_compatible.html | 44 - .../reference/ip__address_v6/v4_mapped.html | 44 - .../reference/ip__address_v6_iterator.html | 297 - .../asio/reference/ip__address_v6_range.html | 195 - .../asio/reference/ip__bad_address_cast.html | 111 - .../_bad_address_cast.html | 42 - .../bad_address_cast.html | 43 - .../reference/ip__bad_address_cast/what.html | 43 - ..._address_iterator_lt__address_v4__gt_.html | 298 - .../basic_address_iterator.html | 52 - .../basic_address_iterator/overload1.html | 43 - .../basic_address_iterator/overload2.html | 43 - .../difference_type.html | 53 - .../iterator_category.html | 53 - .../operator__star_.html | 43 - .../operator_arrow_.html | 43 - .../operator_eq_.html | 44 - .../operator_eq__eq_.html | 55 - .../operator_minus__minus_.html | 51 - .../operator_minus__minus_/overload1.html | 42 - .../operator_minus__minus_/overload2.html | 43 - .../operator_not__eq_.html | 55 - .../operator_plus__plus_.html | 51 - .../operator_plus__plus_/overload1.html | 42 - .../operator_plus__plus_/overload2.html | 43 - .../pointer.html | 53 - .../reference.html | 532 - .../value_type.html | 531 - ..._address_iterator_lt__address_v6__gt_.html | 298 - .../basic_address_iterator.html | 52 - .../basic_address_iterator/overload1.html | 43 - .../basic_address_iterator/overload2.html | 43 - .../difference_type.html | 53 - .../iterator_category.html | 53 - .../operator__star_.html | 43 - .../operator_arrow_.html | 43 - .../operator_eq_.html | 44 - .../operator_eq__eq_.html | 55 - .../operator_minus__minus_.html | 51 - .../operator_minus__minus_/overload1.html | 42 - .../operator_minus__minus_/overload2.html | 43 - .../operator_not__eq_.html | 55 - .../operator_plus__plus_.html | 51 - .../operator_plus__plus_/overload1.html | 42 - .../operator_plus__plus_/overload2.html | 43 - .../pointer.html | 53 - .../reference.html | 580 - .../value_type.html | 579 - ...sic_address_range_lt__address_v4__gt_.html | 208 - .../basic_address_range.html | 59 - .../basic_address_range/overload1.html | 42 - .../basic_address_range/overload2.html | 44 - .../basic_address_range/overload3.html | 43 - .../begin.html | 43 - .../empty.html | 43 - .../end.html | 43 - .../find.html | 44 - .../iterator.html | 298 - .../operator_eq_.html | 44 - .../size.html | 43 - ...sic_address_range_lt__address_v6__gt_.html | 196 - .../basic_address_range.html | 59 - .../basic_address_range/overload1.html | 42 - .../basic_address_range/overload2.html | 44 - .../basic_address_range/overload3.html | 43 - .../begin.html | 43 - .../empty.html | 43 - .../end.html | 43 - .../find.html | 44 - .../iterator.html | 298 - .../operator_eq_.html | 44 - .../asio/reference/ip__basic_endpoint.html | 394 - .../reference/ip__basic_endpoint/address.html | 51 - .../ip__basic_endpoint/address/overload1.html | 42 - .../ip__basic_endpoint/address/overload2.html | 43 - .../ip__basic_endpoint/basic_endpoint.html | 78 - .../basic_endpoint/overload1.html | 42 - .../basic_endpoint/overload2.html | 60 - .../basic_endpoint/overload3.html | 46 - .../basic_endpoint/overload4.html | 43 - .../basic_endpoint/overload5.html | 43 - .../ip__basic_endpoint/capacity.html | 43 - .../reference/ip__basic_endpoint/data.html | 47 - .../ip__basic_endpoint/data/overload1.html | 42 - .../ip__basic_endpoint/data/overload2.html | 42 - .../ip__basic_endpoint/data_type.html | 54 - .../ip__basic_endpoint/operator_eq_.html | 52 - .../operator_eq_/overload1.html | 43 - .../operator_eq_/overload2.html | 43 - .../ip__basic_endpoint/operator_eq__eq_.html | 55 - .../ip__basic_endpoint/operator_gt_.html | 55 - .../ip__basic_endpoint/operator_gt__eq_.html | 55 - .../ip__basic_endpoint/operator_lt_.html | 55 - .../ip__basic_endpoint/operator_lt__eq_.html | 55 - .../ip__basic_endpoint/operator_lt__lt_.html | 73 - .../ip__basic_endpoint/operator_not__eq_.html | 55 - .../reference/ip__basic_endpoint/port.html | 53 - .../ip__basic_endpoint/port/overload1.html | 43 - .../ip__basic_endpoint/port/overload2.html | 44 - .../ip__basic_endpoint/protocol.html | 43 - .../ip__basic_endpoint/protocol_type.html | 53 - .../reference/ip__basic_endpoint/resize.html | 44 - .../reference/ip__basic_endpoint/size.html | 43 - .../asio/reference/ip__basic_resolver.html | 436 - .../ip__basic_resolver/_basic_resolver.html | 47 - .../address_configured.html | 48 - .../ip__basic_resolver/all_matching.html | 46 - .../ip__basic_resolver/async_resolve.html | 98 - .../async_resolve/overload1.html | 87 - .../async_resolve/overload2.html | 115 - .../async_resolve/overload3.html | 121 - .../async_resolve/overload4.html | 121 - .../async_resolve/overload5.html | 127 - .../async_resolve/overload6.html | 87 - .../ip__basic_resolver/basic_resolver.html | 52 - .../basic_resolver/overload1.html | 61 - .../basic_resolver/overload2.html | 69 - .../reference/ip__basic_resolver/cancel.html | 48 - .../ip__basic_resolver/canonical_name.html | 46 - .../ip__basic_resolver/endpoint_type.html | 53 - .../ip__basic_resolver/executor_type.html | 210 - .../reference/ip__basic_resolver/flags.html | 56 - .../ip__basic_resolver/get_executor.html | 43 - .../ip__basic_resolver/get_io_context.html | 58 - .../ip__basic_resolver/get_io_service.html | 58 - .../ip__basic_resolver/iterator.html | 389 - .../ip__basic_resolver/numeric_host.html | 47 - .../ip__basic_resolver/numeric_service.html | 47 - .../ip__basic_resolver/operator_eq_.html | 71 - .../reference/ip__basic_resolver/passive.html | 46 - .../ip__basic_resolver/protocol_type.html | 53 - .../reference/ip__basic_resolver/query.html | 307 - .../reference/ip__basic_resolver/resolve.html | 118 - .../ip__basic_resolver/resolve/overload1.html | 82 - .../resolve/overload10.html | 116 - .../resolve/overload11.html | 82 - .../resolve/overload12.html | 75 - .../ip__basic_resolver/resolve/overload2.html | 75 - .../ip__basic_resolver/resolve/overload3.html | 111 - .../ip__basic_resolver/resolve/overload4.html | 104 - .../ip__basic_resolver/resolve/overload5.html | 117 - .../ip__basic_resolver/resolve/overload6.html | 110 - .../ip__basic_resolver/resolve/overload7.html | 117 - .../ip__basic_resolver/resolve/overload8.html | 110 - .../ip__basic_resolver/resolve/overload9.html | 123 - .../ip__basic_resolver/results_type.html | 567 - .../ip__basic_resolver/v4_mapped.html | 47 - .../reference/ip__basic_resolver_entry.html | 201 - .../basic_resolver_entry.html | 53 - .../basic_resolver_entry/overload1.html | 42 - .../basic_resolver_entry/overload2.html | 45 - .../ip__basic_resolver_entry/endpoint.html | 43 - .../endpoint_type.html | 53 - .../ip__basic_resolver_entry/host_name.html | 50 - .../host_name/overload1.html | 42 - .../host_name/overload2.html | 45 - .../operator_endpoint_type.html | 44 - .../protocol_type.html | 53 - .../service_name.html | 50 - .../service_name/overload1.html | 42 - .../service_name/overload2.html | 45 - .../ip__basic_resolver_iterator.html | 387 - .../basic_resolver_iterator.html | 58 - .../basic_resolver_iterator/overload1.html | 42 - .../basic_resolver_iterator/overload2.html | 43 - .../basic_resolver_iterator/overload3.html | 43 - .../dereference.html | 41 - .../difference_type.html | 53 - .../ip__basic_resolver_iterator/equal.html | 42 - .../increment.html | 41 - .../ip__basic_resolver_iterator/index_.html | 41 - .../iterator_category.html | 53 - .../operator__star_.html | 44 - .../operator_arrow_.html | 43 - .../operator_eq_.html | 52 - .../operator_eq_/overload1.html | 43 - .../operator_eq_/overload2.html | 43 - .../operator_eq__eq_.html | 55 - .../operator_not__eq_.html | 55 - .../operator_plus__plus_.html | 51 - .../operator_plus__plus_/overload1.html | 42 - .../operator_plus__plus_/overload2.html | 43 - .../ip__basic_resolver_iterator/pointer.html | 53 - .../reference.html | 202 - .../value_type.html | 202 - .../ip__basic_resolver_iterator/values_.html | 41 - .../reference/ip__basic_resolver_query.html | 307 - .../address_configured.html | 48 - .../all_matching.html | 46 - .../basic_resolver_query.html | 74 - .../basic_resolver_query/overload1.html | 77 - .../basic_resolver_query/overload2.html | 83 - .../basic_resolver_query/overload3.html | 95 - .../basic_resolver_query/overload4.html | 101 - .../canonical_name.html | 46 - .../ip__basic_resolver_query/flags.html | 56 - .../ip__basic_resolver_query/hints.html | 43 - .../ip__basic_resolver_query/host_name.html | 43 - .../numeric_host.html | 47 - .../numeric_service.html | 47 - .../ip__basic_resolver_query/passive.html | 46 - .../protocol_type.html | 53 - .../service_name.html | 43 - .../ip__basic_resolver_query/v4_mapped.html | 47 - .../reference/ip__basic_resolver_results.html | 566 - .../basic_resolver_results.html | 58 - .../basic_resolver_results/overload1.html | 42 - .../basic_resolver_results/overload2.html | 43 - .../basic_resolver_results/overload3.html | 43 - .../ip__basic_resolver_results/begin.html | 43 - .../ip__basic_resolver_results/cbegin.html | 43 - .../ip__basic_resolver_results/cend.html | 43 - .../const_iterator.html | 389 - .../const_reference.html | 202 - .../dereference.html | 44 - .../difference_type.html | 53 - .../ip__basic_resolver_results/empty.html | 43 - .../ip__basic_resolver_results/end.html | 43 - .../endpoint_type.html | 53 - .../ip__basic_resolver_results/equal.html | 45 - .../ip__basic_resolver_results/increment.html | 44 - .../ip__basic_resolver_results/index_.html | 44 - .../ip__basic_resolver_results/iterator.html | 389 - .../iterator_category.html | 56 - .../ip__basic_resolver_results/max_size.html | 43 - .../operator__star_.html | 47 - .../operator_arrow_.html | 46 - .../operator_eq_.html | 52 - .../operator_eq_/overload1.html | 43 - .../operator_eq_/overload2.html | 43 - .../operator_eq__eq_.html | 51 - .../operator_eq__eq_/overload1.html | 54 - .../operator_eq__eq_/overload2.html | 57 - .../operator_not__eq_.html | 51 - .../operator_not__eq_/overload1.html | 54 - .../operator_not__eq_/overload2.html | 57 - .../operator_plus__plus_.html | 51 - .../operator_plus__plus_/overload1.html | 45 - .../operator_plus__plus_/overload2.html | 46 - .../ip__basic_resolver_results/pointer.html | 56 - .../protocol_type.html | 53 - .../ip__basic_resolver_results/reference.html | 202 - .../ip__basic_resolver_results/size.html | 43 - .../ip__basic_resolver_results/size_type.html | 53 - .../ip__basic_resolver_results/swap.html | 44 - .../value_type.html | 202 - .../ip__basic_resolver_results/values_.html | 44 - .../doc/asio/reference/ip__host_name.html | 57 - .../reference/ip__host_name/overload1.html | 42 - .../reference/ip__host_name/overload2.html | 43 - .../asio/doc/asio/reference/ip__icmp.html | 259 - .../doc/asio/reference/ip__icmp/endpoint.html | 393 - .../doc/asio/reference/ip__icmp/family.html | 43 - .../reference/ip__icmp/operator_eq__eq_.html | 55 - .../reference/ip__icmp/operator_not__eq_.html | 55 - .../doc/asio/reference/ip__icmp/protocol.html | 43 - .../doc/asio/reference/ip__icmp/resolver.html | 434 - .../doc/asio/reference/ip__icmp/socket.html | 929 - .../doc/asio/reference/ip__icmp/type.html | 43 - .../asio/doc/asio/reference/ip__icmp/v4.html | 43 - .../asio/doc/asio/reference/ip__icmp/v6.html | 43 - .../ip__multicast__enable_loopback.html | 78 - .../asio/reference/ip__multicast__hops.html | 77 - .../reference/ip__multicast__join_group.html | 70 - .../reference/ip__multicast__leave_group.html | 70 - .../ip__multicast__outbound_interface.html | 70 - .../doc/asio/reference/ip__network_v4.html | 326 - .../reference/ip__network_v4/address.html | 43 - .../reference/ip__network_v4/broadcast.html | 43 - .../reference/ip__network_v4/canonical.html | 43 - .../asio/reference/ip__network_v4/hosts.html | 43 - .../reference/ip__network_v4/is_host.html | 43 - .../ip__network_v4/is_subnet_of.html | 44 - .../ip__network_v4/make_network_v4.html | 68 - .../make_network_v4/overload1.html | 44 - .../make_network_v4/overload2.html | 45 - .../make_network_v4/overload3.html | 44 - .../make_network_v4/overload4.html | 45 - .../make_network_v4/overload5.html | 44 - .../make_network_v4/overload6.html | 45 - .../reference/ip__network_v4/netmask.html | 43 - .../reference/ip__network_v4/network.html | 43 - .../reference/ip__network_v4/network_v4.html | 67 - .../ip__network_v4/network_v4/overload1.html | 42 - .../ip__network_v4/network_v4/overload2.html | 44 - .../ip__network_v4/network_v4/overload3.html | 44 - .../ip__network_v4/network_v4/overload4.html | 43 - .../ip__network_v4/operator_eq_.html | 44 - .../ip__network_v4/operator_eq__eq_.html | 55 - .../ip__network_v4/operator_not__eq_.html | 55 - .../ip__network_v4/prefix_length.html | 43 - .../reference/ip__network_v4/to_string.html | 48 - .../ip__network_v4/to_string/overload1.html | 42 - .../ip__network_v4/to_string/overload2.html | 43 - .../doc/asio/reference/ip__network_v6.html | 298 - .../reference/ip__network_v6/address.html | 43 - .../reference/ip__network_v6/canonical.html | 43 - .../asio/reference/ip__network_v6/hosts.html | 43 - .../reference/ip__network_v6/is_host.html | 43 - .../ip__network_v6/is_subnet_of.html | 44 - .../ip__network_v6/make_network_v6.html | 68 - .../make_network_v6/overload1.html | 44 - .../make_network_v6/overload2.html | 45 - .../make_network_v6/overload3.html | 44 - .../make_network_v6/overload4.html | 45 - .../make_network_v6/overload5.html | 44 - .../make_network_v6/overload6.html | 45 - .../reference/ip__network_v6/network.html | 43 - .../reference/ip__network_v6/network_v6.html | 59 - .../ip__network_v6/network_v6/overload1.html | 42 - .../ip__network_v6/network_v6/overload2.html | 44 - .../ip__network_v6/network_v6/overload3.html | 43 - .../ip__network_v6/operator_eq_.html | 44 - .../ip__network_v6/operator_eq__eq_.html | 55 - .../ip__network_v6/operator_not__eq_.html | 55 - .../ip__network_v6/prefix_length.html | 43 - .../reference/ip__network_v6/to_string.html | 48 - .../ip__network_v6/to_string/overload1.html | 42 - .../ip__network_v6/to_string/overload2.html | 43 - .../doc/asio/reference/ip__resolver_base.html | 237 - .../ip__resolver_base/_resolver_base.html | 43 - .../ip__resolver_base/address_configured.html | 45 - .../ip__resolver_base/all_matching.html | 43 - .../ip__resolver_base/canonical_name.html | 43 - .../reference/ip__resolver_base/flags.html | 53 - .../ip__resolver_base/numeric_host.html | 44 - .../ip__resolver_base/numeric_service.html | 44 - .../reference/ip__resolver_base/passive.html | 43 - .../ip__resolver_base/v4_mapped.html | 44 - .../reference/ip__resolver_query_base.html | 238 - .../_resolver_query_base.html | 43 - .../address_configured.html | 48 - .../ip__resolver_query_base/all_matching.html | 46 - .../canonical_name.html | 46 - .../ip__resolver_query_base/flags.html | 56 - .../ip__resolver_query_base/numeric_host.html | 47 - .../numeric_service.html | 47 - .../ip__resolver_query_base/passive.html | 46 - .../ip__resolver_query_base/v4_mapped.html | 47 - .../asio/doc/asio/reference/ip__tcp.html | 295 - .../doc/asio/reference/ip__tcp/acceptor.html | 789 - .../doc/asio/reference/ip__tcp/endpoint.html | 394 - .../doc/asio/reference/ip__tcp/family.html | 43 - .../doc/asio/reference/ip__tcp/iostream.html | 326 - .../doc/asio/reference/ip__tcp/no_delay.html | 77 - .../reference/ip__tcp/operator_eq__eq_.html | 55 - .../reference/ip__tcp/operator_not__eq_.html | 55 - .../doc/asio/reference/ip__tcp/protocol.html | 43 - .../doc/asio/reference/ip__tcp/resolver.html | 434 - .../doc/asio/reference/ip__tcp/socket.html | 932 - .../asio/doc/asio/reference/ip__tcp/type.html | 43 - .../asio/doc/asio/reference/ip__tcp/v4.html | 42 - .../asio/doc/asio/reference/ip__tcp/v6.html | 42 - .../asio/doc/asio/reference/ip__udp.html | 259 - .../doc/asio/reference/ip__udp/endpoint.html | 394 - .../doc/asio/reference/ip__udp/family.html | 43 - .../reference/ip__udp/operator_eq__eq_.html | 55 - .../reference/ip__udp/operator_not__eq_.html | 55 - .../doc/asio/reference/ip__udp/protocol.html | 43 - .../doc/asio/reference/ip__udp/resolver.html | 434 - .../doc/asio/reference/ip__udp/socket.html | 931 - .../asio/doc/asio/reference/ip__udp/type.html | 43 - .../asio/doc/asio/reference/ip__udp/v4.html | 42 - .../asio/doc/asio/reference/ip__udp/v6.html | 42 - .../doc/asio/reference/ip__unicast__hops.html | 77 - .../doc/asio/reference/ip__v4_mapped_t.html | 67 - .../asio/doc/asio/reference/ip__v6_only.html | 77 - .../reference/is_const_buffer_sequence.html | 53 - .../doc/asio/reference/is_dynamic_buffer.html | 53 - .../asio/reference/is_endpoint_sequence.html | 90 - .../reference/is_endpoint_sequence/value.html | 43 - .../asio/doc/asio/reference/is_executor.html | 59 - .../asio/reference/is_match_condition.html | 89 - .../reference/is_match_condition/value.html | 43 - .../reference/is_mutable_buffer_sequence.html | 53 - .../doc/asio/reference/is_read_buffered.html | 91 - .../reference/is_read_buffered/value.html | 43 - .../doc/asio/reference/is_write_buffered.html | 91 - .../reference/is_write_buffered/value.html | 43 - .../asio/reference/local__basic_endpoint.html | 371 - .../local__basic_endpoint/basic_endpoint.html | 62 - .../basic_endpoint/overload1.html | 42 - .../basic_endpoint/overload2.html | 43 - .../basic_endpoint/overload3.html | 43 - .../basic_endpoint/overload4.html | 43 - .../local__basic_endpoint/capacity.html | 43 - .../reference/local__basic_endpoint/data.html | 47 - .../local__basic_endpoint/data/overload1.html | 42 - .../local__basic_endpoint/data/overload2.html | 42 - .../local__basic_endpoint/data_type.html | 54 - .../local__basic_endpoint/operator_eq_.html | 44 - .../operator_eq__eq_.html | 55 - .../local__basic_endpoint/operator_gt_.html | 55 - .../operator_gt__eq_.html | 55 - .../local__basic_endpoint/operator_lt_.html | 55 - .../operator_lt__eq_.html | 55 - .../operator_lt__lt_.html | 73 - .../operator_not__eq_.html | 55 - .../reference/local__basic_endpoint/path.html | 55 - .../local__basic_endpoint/path/overload1.html | 42 - .../local__basic_endpoint/path/overload2.html | 43 - .../local__basic_endpoint/path/overload3.html | 43 - .../local__basic_endpoint/protocol.html | 43 - .../local__basic_endpoint/protocol_type.html | 53 - .../local__basic_endpoint/resize.html | 44 - .../reference/local__basic_endpoint/size.html | 43 - .../asio/reference/local__connect_pair.html | 66 - .../local__connect_pair/overload1.html | 46 - .../local__connect_pair/overload2.html | 47 - .../reference/local__datagram_protocol.html | 174 - .../local__datagram_protocol/endpoint.html | 372 - .../local__datagram_protocol/family.html | 43 - .../local__datagram_protocol/protocol.html | 43 - .../local__datagram_protocol/socket.html | 932 - .../local__datagram_protocol/type.html | 43 - .../reference/local__stream_protocol.html | 198 - .../local__stream_protocol/acceptor.html | 790 - .../local__stream_protocol/endpoint.html | 372 - .../local__stream_protocol/family.html | 43 - .../local__stream_protocol/iostream.html | 327 - .../local__stream_protocol/protocol.html | 43 - .../local__stream_protocol/socket.html | 933 - .../local__stream_protocol/type.html | 43 - .../doc/asio/reference/make_work_guard.html | 90 - .../reference/make_work_guard/overload1.html | 47 - .../reference/make_work_guard/overload2.html | 47 - .../reference/make_work_guard/overload3.html | 47 - .../reference/make_work_guard/overload4.html | 49 - .../reference/make_work_guard/overload5.html | 49 - .../doc/asio/reference/mutable_buffer.html | 183 - .../asio/reference/mutable_buffer/data.html | 43 - .../mutable_buffer/mutable_buffer.html | 52 - .../mutable_buffer/overload1.html | 42 - .../mutable_buffer/overload2.html | 44 - .../mutable_buffer/operator_plus_.html | 51 - .../operator_plus_/overload1.html | 44 - .../operator_plus_/overload2.html | 44 - .../mutable_buffer/operator_plus__eq_.html | 44 - .../asio/reference/mutable_buffer/size.html | 43 - .../doc/asio/reference/mutable_buffers_1.html | 236 - .../reference/mutable_buffers_1/begin.html | 43 - .../mutable_buffers_1/const_iterator.html | 53 - .../reference/mutable_buffers_1/data.html | 46 - .../asio/reference/mutable_buffers_1/end.html | 43 - .../mutable_buffers_1/mutable_buffers_1.html | 53 - .../mutable_buffers_1/overload1.html | 44 - .../mutable_buffers_1/overload2.html | 43 - .../mutable_buffers_1/operator_plus_.html | 51 - .../operator_plus_/overload1.html | 47 - .../operator_plus_/overload2.html | 47 - .../mutable_buffers_1/operator_plus__eq_.html | 47 - .../reference/mutable_buffers_1/size.html | 46 - .../mutable_buffers_1/value_type.html | 185 - .../asio/doc/asio/reference/null_buffers.html | 150 - .../asio/reference/null_buffers/begin.html | 43 - .../null_buffers/const_iterator.html | 53 - .../doc/asio/reference/null_buffers/end.html | 43 - .../reference/null_buffers/value_type.html | 185 - .../doc/asio/reference/operator_lt__lt_.html | 57 - .../placeholders__bytes_transferred.html | 55 - .../reference/placeholders__endpoint.html | 54 - .../asio/reference/placeholders__error.html | 54 - .../reference/placeholders__iterator.html | 54 - .../asio/reference/placeholders__results.html | 54 - .../placeholders__signal_number.html | 54 - .../doc/asio/reference/posix__descriptor.html | 426 - .../posix__descriptor/_descriptor.html | 47 - .../reference/posix__descriptor/assign.html | 50 - .../posix__descriptor/assign/overload1.html | 43 - .../posix__descriptor/assign/overload2.html | 44 - .../posix__descriptor/async_wait.html | 103 - .../posix__descriptor/bytes_readable.html | 66 - .../reference/posix__descriptor/cancel.html | 48 - .../posix__descriptor/cancel/overload1.html | 60 - .../posix__descriptor/cancel/overload2.html | 61 - .../reference/posix__descriptor/close.html | 47 - .../posix__descriptor/close/overload1.html | 61 - .../posix__descriptor/close/overload2.html | 62 - .../posix__descriptor/descriptor.html | 60 - .../descriptor/overload1.html | 61 - .../descriptor/overload2.html | 80 - .../descriptor/overload3.html | 67 - .../posix__descriptor/executor_type.html | 210 - .../posix__descriptor/get_executor.html | 43 - .../posix__descriptor/get_io_context.html | 58 - .../posix__descriptor/get_io_service.html | 58 - .../posix__descriptor/io_control.html | 54 - .../io_control/overload1.html | 87 - .../io_control/overload2.html | 84 - .../reference/posix__descriptor/is_open.html | 43 - .../posix__descriptor/lowest_layer.html | 50 - .../lowest_layer/overload1.html | 56 - .../lowest_layer/overload2.html | 56 - .../posix__descriptor/lowest_layer_type.html | 427 - .../posix__descriptor/native_handle.html | 48 - .../posix__descriptor/native_handle_type.html | 53 - .../native_non_blocking.html | 56 - .../native_non_blocking/overload1.html | 66 - .../native_non_blocking/overload2.html | 79 - .../native_non_blocking/overload3.html | 71 - .../posix__descriptor/non_blocking.html | 56 - .../non_blocking/overload1.html | 61 - .../non_blocking/overload2.html | 80 - .../non_blocking/overload3.html | 72 - .../posix__descriptor/operator_eq_.html | 68 - .../reference/posix__descriptor/release.html | 53 - .../reference/posix__descriptor/wait.html | 51 - .../posix__descriptor/wait/overload1.html | 72 - .../posix__descriptor/wait/overload2.html | 78 - .../posix__descriptor/wait_type.html | 72 - .../reference/posix__descriptor_base.html | 137 - .../_descriptor_base.html | 43 - .../bytes_readable.html | 66 - .../posix__descriptor_base/wait_type.html | 72 - .../reference/posix__stream_descriptor.html | 439 - .../posix__stream_descriptor/assign.html | 50 - .../assign/overload1.html | 46 - .../assign/overload2.html | 47 - .../async_read_some.html | 112 - .../posix__stream_descriptor/async_wait.html | 106 - .../async_write_some.html | 112 - .../bytes_readable.html | 69 - .../posix__stream_descriptor/cancel.html | 48 - .../cancel/overload1.html | 63 - .../cancel/overload2.html | 64 - .../posix__stream_descriptor/close.html | 48 - .../close/overload1.html | 64 - .../close/overload2.html | 65 - .../executor_type.html | 213 - .../get_executor.html | 46 - .../get_io_context.html | 61 - .../get_io_service.html | 61 - .../posix__stream_descriptor/io_control.html | 54 - .../io_control/overload1.html | 90 - .../io_control/overload2.html | 87 - .../posix__stream_descriptor/is_open.html | 46 - .../lowest_layer.html | 50 - .../lowest_layer/overload1.html | 59 - .../lowest_layer/overload2.html | 59 - .../lowest_layer_type.html | 430 - .../native_handle.html | 51 - .../native_handle_type.html | 56 - .../native_non_blocking.html | 56 - .../native_non_blocking/overload1.html | 69 - .../native_non_blocking/overload2.html | 82 - .../native_non_blocking/overload3.html | 74 - .../non_blocking.html | 56 - .../non_blocking/overload1.html | 64 - .../non_blocking/overload2.html | 83 - .../non_blocking/overload3.html | 75 - .../operator_eq_.html | 70 - .../posix__stream_descriptor/read_some.html | 54 - .../read_some/overload1.html | 110 - .../read_some/overload2.html | 86 - .../posix__stream_descriptor/release.html | 56 - .../stream_descriptor.html | 63 - .../stream_descriptor/overload1.html | 64 - .../stream_descriptor/overload2.html | 81 - .../stream_descriptor/overload3.html | 69 - .../posix__stream_descriptor/wait.html | 51 - .../wait/overload1.html | 75 - .../wait/overload2.html | 81 - .../posix__stream_descriptor/wait_type.html | 75 - .../posix__stream_descriptor/write_some.html | 54 - .../write_some/overload1.html | 110 - .../write_some/overload2.html | 86 - .../Vendor/asio/doc/asio/reference/post.html | 75 - .../doc/asio/reference/post/overload1.html | 76 - .../doc/asio/reference/post/overload2.html | 87 - .../doc/asio/reference/post/overload3.html | 55 - .../Vendor/asio/doc/asio/reference/read.html | 176 - .../doc/asio/reference/read/overload1.html | 131 - .../doc/asio/reference/read/overload10.html | 105 - .../doc/asio/reference/read/overload11.html | 124 - .../doc/asio/reference/read/overload12.html | 117 - .../doc/asio/reference/read/overload2.html | 123 - .../doc/asio/reference/read/overload3.html | 143 - .../doc/asio/reference/read/overload4.html | 120 - .../doc/asio/reference/read/overload5.html | 114 - .../doc/asio/reference/read/overload6.html | 105 - .../doc/asio/reference/read/overload7.html | 125 - .../doc/asio/reference/read/overload8.html | 118 - .../doc/asio/reference/read/overload9.html | 113 - .../asio/doc/asio/reference/read_at.html | 139 - .../doc/asio/reference/read_at/overload1.html | 137 - .../doc/asio/reference/read_at/overload2.html | 130 - .../doc/asio/reference/read_at/overload3.html | 149 - .../doc/asio/reference/read_at/overload4.html | 126 - .../doc/asio/reference/read_at/overload5.html | 115 - .../doc/asio/reference/read_at/overload6.html | 107 - .../doc/asio/reference/read_at/overload7.html | 126 - .../doc/asio/reference/read_at/overload8.html | 119 - .../asio/doc/asio/reference/read_until.html | 234 - .../asio/reference/read_until/overload1.html | 157 - .../asio/reference/read_until/overload10.html | 111 - .../asio/reference/read_until/overload11.html | 154 - .../asio/reference/read_until/overload12.html | 111 - .../asio/reference/read_until/overload13.html | 156 - .../asio/reference/read_until/overload14.html | 113 - .../asio/reference/read_until/overload15.html | 204 - .../asio/reference/read_until/overload16.html | 142 - .../asio/reference/read_until/overload2.html | 114 - .../asio/reference/read_until/overload3.html | 145 - .../asio/reference/read_until/overload4.html | 114 - .../asio/reference/read_until/overload5.html | 159 - .../asio/reference/read_until/overload6.html | 116 - .../asio/reference/read_until/overload7.html | 206 - .../asio/reference/read_until/overload8.html | 143 - .../asio/reference/read_until/overload9.html | 154 - .../asio/reference/read_write_operations.html | 67 - .../reference/resolver_errc__try_again.html | 51 - .../asio/doc/asio/reference/serial_port.html | 398 - .../reference/serial_port/_serial_port.html | 47 - .../asio/reference/serial_port/assign.html | 50 - .../serial_port/assign/overload1.html | 43 - .../serial_port/assign/overload2.html | 44 - .../serial_port/async_read_some.html | 112 - .../serial_port/async_write_some.html | 112 - .../asio/reference/serial_port/cancel.html | 48 - .../serial_port/cancel/overload1.html | 60 - .../serial_port/cancel/overload2.html | 61 - .../doc/asio/reference/serial_port/close.html | 47 - .../serial_port/close/overload1.html | 60 - .../serial_port/close/overload2.html | 61 - .../reference/serial_port/executor_type.html | 210 - .../reference/serial_port/get_executor.html | 43 - .../reference/serial_port/get_io_context.html | 58 - .../reference/serial_port/get_io_service.html | 58 - .../reference/serial_port/get_option.html | 54 - .../serial_port/get_option/overload1.html | 75 - .../serial_port/get_option/overload2.html | 67 - .../asio/reference/serial_port/is_open.html | 43 - .../reference/serial_port/lowest_layer.html | 50 - .../serial_port/lowest_layer/overload1.html | 56 - .../serial_port/lowest_layer/overload2.html | 56 - .../serial_port/lowest_layer_type.html | 400 - .../reference/serial_port/native_handle.html | 48 - .../serial_port/native_handle_type.html | 53 - .../doc/asio/reference/serial_port/open.html | 50 - .../reference/serial_port/open/overload1.html | 72 - .../reference/serial_port/open/overload2.html | 65 - .../reference/serial_port/operator_eq_.html | 70 - .../asio/reference/serial_port/read_some.html | 54 - .../serial_port/read_some/overload1.html | 110 - .../serial_port/read_some/overload2.html | 86 - .../reference/serial_port/send_break.html | 48 - .../serial_port/send_break/overload1.html | 59 - .../serial_port/send_break/overload2.html | 60 - .../reference/serial_port/serial_port.html | 76 - .../serial_port/serial_port/overload1.html | 62 - .../serial_port/serial_port/overload2.html | 67 - .../serial_port/serial_port/overload3.html | 67 - .../serial_port/serial_port/overload4.html | 81 - .../serial_port/serial_port/overload5.html | 69 - .../reference/serial_port/set_option.html | 54 - .../serial_port/set_option/overload1.html | 74 - .../serial_port/set_option/overload2.html | 66 - .../reference/serial_port/write_some.html | 54 - .../serial_port/write_some/overload1.html | 110 - .../serial_port/write_some/overload2.html | 86 - .../doc/asio/reference/serial_port_base.html | 172 - .../serial_port_base/_serial_port_base.html | 43 - .../serial_port_base__baud_rate.html | 115 - .../baud_rate.html | 42 - .../serial_port_base__baud_rate/load.html | 43 - .../serial_port_base__baud_rate/store.html | 43 - .../serial_port_base__baud_rate/value.html | 41 - .../serial_port_base__character_size.html | 115 - .../character_size.html | 42 - .../load.html | 43 - .../store.html | 43 - .../value.html | 41 - .../serial_port_base__flow_control.html | 146 - .../flow_control.html | 42 - .../serial_port_base__flow_control/load.html | 43 - .../serial_port_base__flow_control/store.html | 43 - .../serial_port_base__flow_control/type.html | 61 - .../serial_port_base__flow_control/value.html | 41 - .../reference/serial_port_base__parity.html | 146 - .../serial_port_base__parity/load.html | 43 - .../serial_port_base__parity/parity.html | 42 - .../serial_port_base__parity/store.html | 43 - .../serial_port_base__parity/type.html | 61 - .../serial_port_base__parity/value.html | 41 - .../serial_port_base__stop_bits.html | 146 - .../serial_port_base__stop_bits/load.html | 43 - .../stop_bits.html | 42 - .../serial_port_base__stop_bits/store.html | 43 - .../serial_port_base__stop_bits/type.html | 61 - .../serial_port_base__stop_bits/value.html | 41 - .../reference/service_already_exists.html | 82 - .../service_already_exists.html | 41 - .../asio/doc/asio/reference/signal_set.html | 320 - .../reference/signal_set/_signal_set.html | 47 - .../doc/asio/reference/signal_set/add.html | 49 - .../reference/signal_set/add/overload1.html | 73 - .../reference/signal_set/add/overload2.html | 65 - .../asio/reference/signal_set/async_wait.html | 91 - .../doc/asio/reference/signal_set/cancel.html | 48 - .../signal_set/cancel/overload1.html | 84 - .../signal_set/cancel/overload2.html | 85 - .../doc/asio/reference/signal_set/clear.html | 48 - .../reference/signal_set/clear/overload1.html | 66 - .../reference/signal_set/clear/overload2.html | 67 - .../reference/signal_set/executor_type.html | 210 - .../reference/signal_set/get_executor.html | 43 - .../reference/signal_set/get_io_context.html | 58 - .../reference/signal_set/get_io_service.html | 58 - .../doc/asio/reference/signal_set/remove.html | 50 - .../signal_set/remove/overload1.html | 81 - .../signal_set/remove/overload2.html | 73 - .../asio/reference/signal_set/signal_set.html | 72 - .../signal_set/signal_set/overload1.html | 61 - .../signal_set/signal_set/overload2.html | 76 - .../signal_set/signal_set/overload3.html | 82 - .../signal_set/signal_set/overload4.html | 88 - .../asio/doc/asio/reference/socket_base.html | 407 - .../reference/socket_base/_socket_base.html | 43 - .../asio/reference/socket_base/broadcast.html | 77 - .../reference/socket_base/bytes_readable.html | 66 - .../doc/asio/reference/socket_base/debug.html | 77 - .../reference/socket_base/do_not_route.html | 77 - .../enable_connection_aborted.html | 79 - .../reference/socket_base/keep_alive.html | 77 - .../asio/reference/socket_base/linger.html | 78 - .../socket_base/max_connections.html | 44 - .../socket_base/max_listen_connections.html | 43 - .../socket_base/message_do_not_route.html | 43 - .../socket_base/message_end_of_record.html | 43 - .../reference/socket_base/message_flags.html | 53 - .../socket_base/message_out_of_band.html | 43 - .../reference/socket_base/message_peek.html | 43 - .../socket_base/out_of_band_inline.html | 77 - .../socket_base/receive_buffer_size.html | 77 - .../socket_base/receive_low_watermark.html | 77 - .../reference/socket_base/reuse_address.html | 78 - .../socket_base/send_buffer_size.html | 77 - .../socket_base/send_low_watermark.html | 77 - .../reference/socket_base/shutdown_type.html | 69 - .../asio/reference/socket_base/wait_type.html | 71 - .../Vendor/asio/doc/asio/reference/spawn.html | 161 - .../doc/asio/reference/spawn/overload1.html | 71 - .../doc/asio/reference/spawn/overload2.html | 86 - .../doc/asio/reference/spawn/overload3.html | 81 - .../doc/asio/reference/spawn/overload4.html | 79 - .../doc/asio/reference/spawn/overload5.html | 77 - .../doc/asio/reference/spawn/overload6.html | 78 - .../doc/asio/reference/spawn/overload7.html | 80 - .../asio/doc/asio/reference/ssl__context.html | 583 - .../asio/reference/ssl__context/_context.html | 42 - .../add_certificate_authority.html | 50 - .../add_certificate_authority/overload1.html | 81 - .../add_certificate_authority/overload2.html | 73 - .../ssl__context/add_verify_path.html | 51 - .../add_verify_path/overload1.html | 83 - .../add_verify_path/overload2.html | 75 - .../reference/ssl__context/clear_options.html | 50 - .../ssl__context/clear_options/overload1.html | 82 - .../ssl__context/clear_options/overload2.html | 74 - .../asio/reference/ssl__context/context.html | 51 - .../ssl__context/context/overload1.html | 43 - .../ssl__context/context/overload2.html | 70 - .../ssl__context/default_workarounds.html | 43 - .../reference/ssl__context/file_format.html | 64 - .../ssl__context/load_verify_file.html | 50 - .../load_verify_file/overload1.html | 81 - .../load_verify_file/overload2.html | 73 - .../asio/reference/ssl__context/method.html | 174 - .../reference/ssl__context/native_handle.html | 48 - .../ssl__context/native_handle_type.html | 53 - .../ssl__context/no_compression.html | 43 - .../asio/reference/ssl__context/no_sslv2.html | 42 - .../asio/reference/ssl__context/no_sslv3.html | 42 - .../asio/reference/ssl__context/no_tlsv1.html | 42 - .../reference/ssl__context/no_tlsv1_1.html | 43 - .../reference/ssl__context/no_tlsv1_2.html | 43 - .../reference/ssl__context/no_tlsv1_3.html | 43 - .../reference/ssl__context/operator_eq_.html | 71 - .../asio/reference/ssl__context/options.html | 53 - .../ssl__context/password_purpose.html | 64 - .../set_default_verify_paths.html | 49 - .../set_default_verify_paths/overload1.html | 67 - .../set_default_verify_paths/overload2.html | 68 - .../reference/ssl__context/set_options.html | 50 - .../ssl__context/set_options/overload1.html | 82 - .../ssl__context/set_options/overload2.html | 74 - .../ssl__context/set_password_callback.html | 54 - .../set_password_callback/overload1.html | 93 - .../set_password_callback/overload2.html | 85 - .../ssl__context/set_verify_callback.html | 54 - .../set_verify_callback/overload1.html | 94 - .../set_verify_callback/overload2.html | 86 - .../ssl__context/set_verify_depth.html | 50 - .../set_verify_depth/overload1.html | 81 - .../set_verify_depth/overload2.html | 73 - .../ssl__context/set_verify_mode.html | 50 - .../set_verify_mode/overload1.html | 81 - .../set_verify_mode/overload2.html | 73 - .../reference/ssl__context/single_dh_use.html | 43 - .../ssl__context/use_certificate.html | 52 - .../use_certificate/overload1.html | 84 - .../use_certificate/overload2.html | 76 - .../ssl__context/use_certificate_chain.html | 50 - .../use_certificate_chain/overload1.html | 81 - .../use_certificate_chain/overload2.html | 73 - .../use_certificate_chain_file.html | 50 - .../use_certificate_chain_file/overload1.html | 81 - .../use_certificate_chain_file/overload2.html | 73 - .../ssl__context/use_certificate_file.html | 52 - .../use_certificate_file/overload1.html | 84 - .../use_certificate_file/overload2.html | 76 - .../ssl__context/use_private_key.html | 52 - .../use_private_key/overload1.html | 84 - .../use_private_key/overload2.html | 76 - .../ssl__context/use_private_key_file.html | 52 - .../use_private_key_file/overload1.html | 84 - .../use_private_key_file/overload2.html | 76 - .../ssl__context/use_rsa_private_key.html | 52 - .../use_rsa_private_key/overload1.html | 85 - .../use_rsa_private_key/overload2.html | 77 - .../use_rsa_private_key_file.html | 52 - .../use_rsa_private_key_file/overload1.html | 85 - .../use_rsa_private_key_file/overload2.html | 77 - .../reference/ssl__context/use_tmp_dh.html | 50 - .../ssl__context/use_tmp_dh/overload1.html | 82 - .../ssl__context/use_tmp_dh/overload2.html | 74 - .../ssl__context/use_tmp_dh_file.html | 50 - .../use_tmp_dh_file/overload1.html | 81 - .../use_tmp_dh_file/overload2.html | 73 - .../doc/asio/reference/ssl__context_base.html | 293 - .../ssl__context_base/_context_base.html | 43 - .../default_workarounds.html | 43 - .../ssl__context_base/file_format.html | 64 - .../reference/ssl__context_base/method.html | 174 - .../ssl__context_base/no_compression.html | 43 - .../reference/ssl__context_base/no_sslv2.html | 43 - .../reference/ssl__context_base/no_sslv3.html | 43 - .../reference/ssl__context_base/no_tlsv1.html | 43 - .../ssl__context_base/no_tlsv1_1.html | 43 - .../ssl__context_base/no_tlsv1_2.html | 43 - .../ssl__context_base/no_tlsv1_3.html | 43 - .../reference/ssl__context_base/options.html | 53 - .../ssl__context_base/password_purpose.html | 64 - .../ssl__context_base/single_dh_use.html | 43 - .../ssl__error__get_stream_category.html | 51 - .../ssl__error__make_error_code.html | 52 - .../ssl__error__stream_category.html | 51 - .../reference/ssl__error__stream_errors.html | 68 - .../reference/ssl__rfc2818_verification.html | 166 - .../operator_lp__rp_.html | 45 - .../result_type.html | 53 - .../rfc2818_verification.html | 43 - .../asio/doc/asio/reference/ssl__stream.html | 435 - .../asio/reference/ssl__stream/_stream.html | 50 - .../ssl__stream/async_handshake.html | 57 - .../async_handshake/overload1.html | 78 - .../async_handshake/overload2.html | 88 - .../ssl__stream/async_read_some.html | 93 - .../reference/ssl__stream/async_shutdown.html | 73 - .../ssl__stream/async_write_some.html | 93 - .../reference/ssl__stream/executor_type.html | 53 - .../reference/ssl__stream/get_executor.html | 54 - .../reference/ssl__stream/get_io_context.html | 44 - .../reference/ssl__stream/get_io_service.html | 44 - .../asio/reference/ssl__stream/handshake.html | 64 - .../ssl__stream/handshake/overload1.html | 74 - .../ssl__stream/handshake/overload2.html | 66 - .../ssl__stream/handshake/overload3.html | 81 - .../ssl__stream/handshake/overload4.html | 73 - .../reference/ssl__stream/handshake_type.html | 64 - .../reference/ssl__stream/lowest_layer.html | 47 - .../ssl__stream/lowest_layer/overload1.html | 55 - .../ssl__stream/lowest_layer/overload2.html | 55 - .../ssl__stream/lowest_layer_type.html | 53 - .../reference/ssl__stream/native_handle.html | 69 - .../ssl__stream/native_handle_type.html | 53 - .../reference/ssl__stream/next_layer.html | 47 - .../ssl__stream/next_layer/overload1.html | 55 - .../ssl__stream/next_layer/overload2.html | 55 - .../ssl__stream/next_layer_type.html | 53 - .../asio/reference/ssl__stream/read_some.html | 54 - .../ssl__stream/read_some/overload1.html | 94 - .../ssl__stream/read_some/overload2.html | 86 - .../ssl__stream/set_verify_callback.html | 54 - .../set_verify_callback/overload1.html | 94 - .../set_verify_callback/overload2.html | 86 - .../ssl__stream/set_verify_depth.html | 50 - .../set_verify_depth/overload1.html | 81 - .../set_verify_depth/overload2.html | 73 - .../ssl__stream/set_verify_mode.html | 50 - .../set_verify_mode/overload1.html | 82 - .../set_verify_mode/overload2.html | 74 - .../asio/reference/ssl__stream/shutdown.html | 48 - .../ssl__stream/shutdown/overload1.html | 59 - .../ssl__stream/shutdown/overload2.html | 60 - .../asio/reference/ssl__stream/stream.html | 67 - .../reference/ssl__stream/write_some.html | 54 - .../ssl__stream/write_some/overload1.html | 94 - .../ssl__stream/write_some/overload2.html | 86 - .../reference/ssl__stream__impl_struct.html | 82 - .../ssl__stream__impl_struct/ssl.html | 41 - .../doc/asio/reference/ssl__stream_base.html | 122 - .../ssl__stream_base/_stream_base.html | 43 - .../ssl__stream_base/handshake_type.html | 64 - .../reference/ssl__verify_client_once.html | 54 - .../asio/reference/ssl__verify_context.html | 144 - .../ssl__verify_context/native_handle.html | 48 - .../native_handle_type.html | 53 - .../ssl__verify_context/verify_context.html | 43 - .../ssl__verify_fail_if_no_peer_cert.html | 54 - .../doc/asio/reference/ssl__verify_mode.html | 69 - .../doc/asio/reference/ssl__verify_none.html | 52 - .../doc/asio/reference/ssl__verify_peer.html | 52 - .../asio/doc/asio/reference/steady_timer.html | 468 - .../asio/doc/asio/reference/strand.html | 297 - .../doc/asio/reference/strand/_strand.html | 42 - .../doc/asio/reference/strand/context.html | 43 - .../asio/doc/asio/reference/strand/defer.html | 79 - .../doc/asio/reference/strand/dispatch.html | 81 - .../reference/strand/get_inner_executor.html | 43 - .../reference/strand/inner_executor_type.html | 53 - .../reference/strand/on_work_finished.html | 46 - .../reference/strand/on_work_started.html | 46 - .../asio/reference/strand/operator_eq_.html | 69 - .../strand/operator_eq_/overload1.html | 43 - .../strand/operator_eq_/overload2.html | 49 - .../strand/operator_eq_/overload3.html | 43 - .../strand/operator_eq_/overload4.html | 49 - .../reference/strand/operator_eq__eq_.html | 59 - .../reference/strand/operator_not__eq_.html | 59 - .../asio/doc/asio/reference/strand/post.html | 79 - .../strand/running_in_this_thread.html | 53 - .../doc/asio/reference/strand/strand.html | 82 - .../reference/strand/strand/overload1.html | 46 - .../reference/strand/strand/overload2.html | 43 - .../reference/strand/strand/overload3.html | 43 - .../reference/strand/strand/overload4.html | 49 - .../reference/strand/strand/overload5.html | 43 - .../reference/strand/strand/overload6.html | 49 - .../asio/doc/asio/reference/streambuf.html | 361 - .../synchronous_socket_operations.html | 76 - .../doc/asio/reference/system_category.html | 53 - .../doc/asio/reference/system_context.html | 319 - .../system_context/_system_context.html | 43 - .../reference/system_context/add_service.html | 110 - .../reference/system_context/destroy.html | 54 - .../system_context/executor_type.html | 204 - .../reference/system_context/fork_event.html | 72 - .../system_context/get_executor.html | 43 - .../reference/system_context/has_service.html | 87 - .../asio/reference/system_context/join.html | 43 - .../system_context/make_service.html | 96 - .../reference/system_context/notify_fork.html | 121 - .../reference/system_context/shutdown.html | 54 - .../asio/reference/system_context/stop.html | 43 - .../reference/system_context/stopped.html | 43 - .../reference/system_context/use_service.html | 53 - .../system_context/use_service/overload1.html | 87 - .../system_context/use_service/overload2.html | 95 - .../asio/doc/asio/reference/system_error.html | 140 - .../reference/system_error/_system_error.html | 42 - .../doc/asio/reference/system_error/code.html | 43 - .../reference/system_error/operator_eq_.html | 44 - .../reference/system_error/system_error.html | 60 - .../system_error/system_error/overload1.html | 43 - .../system_error/system_error/overload2.html | 44 - .../system_error/system_error/overload3.html | 43 - .../doc/asio/reference/system_error/what.html | 43 - .../doc/asio/reference/system_executor.html | 202 - .../reference/system_executor/context.html | 43 - .../asio/reference/system_executor/defer.html | 79 - .../reference/system_executor/dispatch.html | 78 - .../system_executor/on_work_finished.html | 46 - .../system_executor/on_work_started.html | 46 - .../system_executor/operator_eq__eq_.html | 58 - .../system_executor/operator_not__eq_.html | 58 - .../asio/reference/system_executor/post.html | 79 - .../asio/doc/asio/reference/system_timer.html | 468 - .../asio/doc/asio/reference/thread.html | 145 - .../doc/asio/reference/thread/_thread.html | 42 - .../asio/doc/asio/reference/thread/join.html | 50 - .../doc/asio/reference/thread/thread.html | 70 - .../asio/doc/asio/reference/thread_pool.html | 361 - .../reference/thread_pool/_thread_pool.html | 45 - .../reference/thread_pool/add_service.html | 110 - .../asio/reference/thread_pool/destroy.html | 54 - .../reference/thread_pool/fork_event.html | 72 - .../reference/thread_pool/get_executor.html | 43 - .../reference/thread_pool/has_service.html | 86 - .../doc/asio/reference/thread_pool/join.html | 47 - .../reference/thread_pool/make_service.html | 96 - .../reference/thread_pool/notify_fork.html | 121 - .../asio/reference/thread_pool/shutdown.html | 54 - .../doc/asio/reference/thread_pool/stop.html | 46 - .../reference/thread_pool/thread_pool.html | 51 - .../thread_pool/thread_pool/overload1.html | 42 - .../thread_pool/thread_pool/overload2.html | 43 - .../reference/thread_pool/use_service.html | 53 - .../thread_pool/use_service/overload1.html | 87 - .../thread_pool/use_service/overload2.html | 95 - .../reference/thread_pool__executor_type.html | 208 - .../thread_pool__executor_type/context.html | 43 - .../thread_pool__executor_type/defer.html | 84 - .../thread_pool__executor_type/dispatch.html | 80 - .../on_work_finished.html | 48 - .../on_work_started.html | 48 - .../operator_eq__eq_.html | 58 - .../operator_not__eq_.html | 58 - .../thread_pool__executor_type/post.html | 79 - .../running_in_this_thread.html | 52 - .../reference/time_traits_lt__ptime__gt_.html | 186 - .../time_traits_lt__ptime__gt_/add.html | 45 - .../duration_type.html | 53 - .../time_traits_lt__ptime__gt_/less_than.html | 45 - .../time_traits_lt__ptime__gt_/now.html | 43 - .../time_traits_lt__ptime__gt_/subtract.html | 45 - .../time_traits_lt__ptime__gt_/time_type.html | 53 - .../to_posix_duration.html | 44 - .../asio/doc/asio/reference/transfer_all.html | 79 - .../doc/asio/reference/transfer_at_least.html | 80 - .../doc/asio/reference/transfer_exactly.html | 80 - .../asio/doc/asio/reference/use_future.html | 56 - .../asio/doc/asio/reference/use_future_t.html | 191 - .../use_future_t/allocator_type.html | 54 - .../reference/use_future_t/get_allocator.html | 43 - .../use_future_t/operator_lb__rb_.html | 46 - .../use_future_t/operator_lp__rp_.html | 65 - .../asio/reference/use_future_t/rebind.html | 46 - .../reference/use_future_t/use_future_t.html | 51 - .../use_future_t/use_future_t/overload1.html | 42 - .../use_future_t/use_future_t/overload2.html | 43 - .../asio/doc/asio/reference/use_service.html | 67 - .../asio/reference/use_service/overload1.html | 71 - .../asio/reference/use_service/overload2.html | 79 - .../doc/asio/reference/uses_executor.html | 63 - .../asio/doc/asio/reference/wait_traits.html | 89 - .../wait_traits/to_wait_duration.html | 49 - .../to_wait_duration/overload1.html | 51 - .../to_wait_duration/overload2.html | 51 - .../reference/windows__object_handle.html | 311 - .../windows__object_handle/assign.html | 50 - .../assign/overload1.html | 43 - .../assign/overload2.html | 44 - .../windows__object_handle/async_wait.html | 77 - .../windows__object_handle/cancel.html | 48 - .../cancel/overload1.html | 60 - .../cancel/overload2.html | 61 - .../windows__object_handle/close.html | 48 - .../close/overload1.html | 60 - .../close/overload2.html | 61 - .../windows__object_handle/executor_type.html | 210 - .../windows__object_handle/get_executor.html | 43 - .../get_io_context.html | 58 - .../get_io_service.html | 58 - .../windows__object_handle/is_open.html | 43 - .../windows__object_handle/lowest_layer.html | 50 - .../lowest_layer/overload1.html | 56 - .../lowest_layer/overload2.html | 56 - .../lowest_layer_type.html | 315 - .../windows__object_handle/native_handle.html | 48 - .../native_handle_type.html | 53 - .../windows__object_handle/object_handle.html | 63 - .../object_handle/overload1.html | 62 - .../object_handle/overload2.html | 81 - .../object_handle/overload3.html | 69 - .../windows__object_handle/operator_eq_.html | 70 - .../windows__object_handle/wait.html | 48 - .../wait/overload1.html | 60 - .../wait/overload2.html | 61 - .../reference/windows__overlapped_handle.html | 325 - .../_overlapped_handle.html | 47 - .../windows__overlapped_handle/assign.html | 50 - .../assign/overload1.html | 43 - .../assign/overload2.html | 44 - .../windows__overlapped_handle/cancel.html | 48 - .../cancel/overload1.html | 60 - .../cancel/overload2.html | 61 - .../windows__overlapped_handle/close.html | 48 - .../close/overload1.html | 60 - .../close/overload2.html | 61 - .../executor_type.html | 210 - .../get_executor.html | 43 - .../get_io_context.html | 58 - .../get_io_service.html | 58 - .../windows__overlapped_handle/is_open.html | 43 - .../lowest_layer.html | 50 - .../lowest_layer/overload1.html | 56 - .../lowest_layer/overload2.html | 56 - .../lowest_layer_type.html | 327 - .../native_handle.html | 48 - .../native_handle_type.html | 53 - .../operator_eq_.html | 70 - .../overlapped_handle.html | 63 - .../overlapped_handle/overload1.html | 62 - .../overlapped_handle/overload2.html | 80 - .../overlapped_handle/overload3.html | 69 - .../reference/windows__overlapped_ptr.html | 166 - .../_overlapped_ptr.html | 43 - .../windows__overlapped_ptr/complete.html | 45 - .../windows__overlapped_ptr/get.html | 47 - .../get/overload1.html | 42 - .../get/overload2.html | 42 - .../overlapped_ptr.html | 55 - .../overlapped_ptr/overload1.html | 42 - .../overlapped_ptr/overload2.html | 47 - .../windows__overlapped_ptr/release.html | 43 - .../windows__overlapped_ptr/reset.html | 55 - .../reset/overload1.html | 42 - .../reset/overload2.html | 47 - .../windows__random_access_handle.html | 337 - .../windows__random_access_handle/assign.html | 50 - .../assign/overload1.html | 46 - .../assign/overload2.html | 47 - .../async_read_some_at.html | 117 - .../async_write_some_at.html | 117 - .../windows__random_access_handle/cancel.html | 48 - .../cancel/overload1.html | 63 - .../cancel/overload2.html | 64 - .../windows__random_access_handle/close.html | 48 - .../close/overload1.html | 63 - .../close/overload2.html | 64 - .../executor_type.html | 213 - .../get_executor.html | 46 - .../get_io_context.html | 61 - .../get_io_service.html | 61 - .../is_open.html | 46 - .../lowest_layer.html | 50 - .../lowest_layer/overload1.html | 59 - .../lowest_layer/overload2.html | 59 - .../lowest_layer_type.html | 330 - .../native_handle.html | 51 - .../native_handle_type.html | 56 - .../operator_eq_.html | 71 - .../random_access_handle.html | 63 - .../random_access_handle/overload1.html | 64 - .../random_access_handle/overload2.html | 81 - .../random_access_handle/overload3.html | 70 - .../read_some_at.html | 56 - .../read_some_at/overload1.html | 115 - .../read_some_at/overload2.html | 91 - .../write_some_at.html | 56 - .../write_some_at/overload1.html | 115 - .../write_some_at/overload2.html | 91 - .../reference/windows__stream_handle.html | 336 - .../windows__stream_handle/assign.html | 50 - .../assign/overload1.html | 46 - .../assign/overload2.html | 47 - .../async_read_some.html | 112 - .../async_write_some.html | 112 - .../windows__stream_handle/cancel.html | 48 - .../cancel/overload1.html | 63 - .../cancel/overload2.html | 64 - .../windows__stream_handle/close.html | 48 - .../close/overload1.html | 63 - .../close/overload2.html | 64 - .../windows__stream_handle/executor_type.html | 213 - .../windows__stream_handle/get_executor.html | 46 - .../get_io_context.html | 61 - .../get_io_service.html | 61 - .../windows__stream_handle/is_open.html | 46 - .../windows__stream_handle/lowest_layer.html | 50 - .../lowest_layer/overload1.html | 59 - .../lowest_layer/overload2.html | 59 - .../lowest_layer_type.html | 330 - .../windows__stream_handle/native_handle.html | 51 - .../native_handle_type.html | 56 - .../windows__stream_handle/operator_eq_.html | 70 - .../windows__stream_handle/read_some.html | 54 - .../read_some/overload1.html | 110 - .../read_some/overload2.html | 86 - .../windows__stream_handle/stream_handle.html | 63 - .../stream_handle/overload1.html | 64 - .../stream_handle/overload2.html | 81 - .../stream_handle/overload3.html | 69 - .../windows__stream_handle/write_some.html | 54 - .../write_some/overload1.html | 110 - .../write_some/overload2.html | 86 - .../Vendor/asio/doc/asio/reference/write.html | 191 - .../doc/asio/reference/write/overload1.html | 131 - .../doc/asio/reference/write/overload10.html | 106 - .../doc/asio/reference/write/overload11.html | 125 - .../doc/asio/reference/write/overload12.html | 118 - .../doc/asio/reference/write/overload2.html | 123 - .../doc/asio/reference/write/overload3.html | 143 - .../doc/asio/reference/write/overload4.html | 120 - .../doc/asio/reference/write/overload5.html | 114 - .../doc/asio/reference/write/overload6.html | 106 - .../doc/asio/reference/write/overload7.html | 125 - .../doc/asio/reference/write/overload8.html | 118 - .../doc/asio/reference/write/overload9.html | 114 - .../asio/doc/asio/reference/write_at.html | 148 - .../asio/reference/write_at/overload1.html | 137 - .../asio/reference/write_at/overload2.html | 130 - .../asio/reference/write_at/overload3.html | 149 - .../asio/reference/write_at/overload4.html | 126 - .../asio/reference/write_at/overload5.html | 121 - .../asio/reference/write_at/overload6.html | 113 - .../asio/reference/write_at/overload7.html | 132 - .../asio/reference/write_at/overload8.html | 125 - .../doc/asio/reference/yield_context.html | 171 - Sources/Vendor/asio/doc/asio/tutorial.html | 119 - .../asio/doc/asio/tutorial/boost_bind.html | 40 - .../asio/doc/asio/tutorial/tutdaytime1.html | 121 - .../doc/asio/tutorial/tutdaytime1/src.html | 98 - .../asio/doc/asio/tutorial/tutdaytime2.html | 119 - .../doc/asio/tutorial/tutdaytime2/src.html | 91 - .../asio/doc/asio/tutorial/tutdaytime3.html | 230 - .../doc/asio/tutorial/tutdaytime3/src.html | 158 - .../asio/doc/asio/tutorial/tutdaytime4.html | 113 - .../doc/asio/tutorial/tutdaytime4/src.html | 93 - .../asio/doc/asio/tutorial/tutdaytime5.html | 80 - .../doc/asio/tutorial/tutdaytime5/src.html | 95 - .../asio/doc/asio/tutorial/tutdaytime6.html | 179 - .../doc/asio/tutorial/tutdaytime6/src.html | 130 - .../asio/doc/asio/tutorial/tutdaytime7.html | 217 - .../doc/asio/tutorial/tutdaytime7/src.html | 199 - .../asio/doc/asio/tutorial/tuttimer1.html | 99 - .../asio/doc/asio/tutorial/tuttimer1/src.html | 65 - .../asio/doc/asio/tutorial/tuttimer2.html | 113 - .../asio/doc/asio/tutorial/tuttimer2/src.html | 70 - .../asio/doc/asio/tutorial/tuttimer3.html | 159 - .../asio/doc/asio/tutorial/tuttimer3/src.html | 84 - .../asio/doc/asio/tutorial/tuttimer4.html | 139 - .../asio/doc/asio/tutorial/tuttimer4/src.html | 95 - .../asio/doc/asio/tutorial/tuttimer5.html | 199 - .../asio/doc/asio/tutorial/tuttimer5/src.html | 121 - Sources/Vendor/asio/doc/asio/using.html | 564 - Sources/Vendor/asio/doc/async_op1.png | Bin 24260 -> 0 bytes Sources/Vendor/asio/doc/async_op2.png | Bin 24542 -> 0 bytes Sources/Vendor/asio/doc/blank.png | Bin 374 -> 0 bytes Sources/Vendor/asio/doc/boostbook.css | 789 - Sources/Vendor/asio/doc/caution.png | Bin 1250 -> 0 bytes Sources/Vendor/asio/doc/draft.png | Bin 17454 -> 0 bytes .../examples/diffs/allocation/server.cpp.html | 337 - .../diffs/buffers/reference_counted.cpp.html | 186 - .../examples/diffs/chat/chat_client.cpp.html | 270 - .../examples/diffs/chat/chat_message.hpp.html | 133 - .../examples/diffs/chat/chat_server.cpp.html | 316 - .../diffs/echo/async_tcp_echo_server.cpp.html | 191 - .../diffs/echo/async_udp_echo_server.cpp.html | 133 - .../echo/blocking_tcp_echo_client.cpp.html | 100 - .../echo/blocking_tcp_echo_server.cpp.html | 119 - .../echo/blocking_udp_echo_client.cpp.html | 99 - .../echo/blocking_udp_echo_server.cpp.html | 93 - .../examples/diffs/executors/actor.cpp.html | 39 - .../diffs/executors/bank_account_1.cpp.html | 39 - .../diffs/executors/bank_account_2.cpp.html | 39 - .../diffs/executors/fork_join.cpp.html | 39 - .../diffs/executors/pipeline.cpp.html | 39 - .../executors/priority_scheduler.cpp.html | 39 - .../doc/examples/diffs/fork/daemon.cpp.html | 233 - .../fork/process_per_connection.cpp.html | 276 - .../diffs/futures/daytime_client.cpp.html | 39 - .../handler_tracking/custom_tracking.hpp.html | 39 - .../diffs/http/server/connection.cpp.html | 144 - .../diffs/http/server/connection.hpp.html | 126 - .../http/server/connection_manager.cpp.html | 82 - .../http/server/connection_manager.hpp.html | 90 - .../diffs/http/server/header.hpp.html | 39 - .../examples/diffs/http/server/main.cpp.html | 84 - .../diffs/http/server/mime_types.cpp.html | 86 - .../diffs/http/server/mime_types.hpp.html | 39 - .../examples/diffs/http/server/reply.cpp.html | 296 - .../examples/diffs/http/server/reply.hpp.html | 39 - .../diffs/http/server/request.hpp.html | 39 - .../http/server/request_handler.cpp.html | 162 - .../http/server/request_handler.hpp.html | 89 - .../diffs/http/server/request_parser.cpp.html | 355 - .../diffs/http/server/request_parser.hpp.html | 138 - .../diffs/http/server/server.cpp.html | 145 - .../diffs/http/server/server.hpp.html | 112 - .../invocation/prioritised_handlers.cpp.html | 247 - .../diffs/iostreams/http_client.cpp.html | 131 - .../diffs/local/connect_pair.cpp.html | 198 - .../diffs/local/iostream_client.cpp.html | 102 - .../diffs/local/stream_client.cpp.html | 101 - .../diffs/local/stream_server.cpp.html | 197 - .../diffs/multicast/receiver.cpp.html | 135 - .../examples/diffs/multicast/sender.cpp.html | 147 - .../nonblocking/third_party_lib.cpp.html | 318 - .../diffs/operations/composed_1.cpp.html | 39 - .../diffs/operations/composed_2.cpp.html | 39 - .../diffs/operations/composed_3.cpp.html | 39 - .../diffs/operations/composed_4.cpp.html | 39 - .../diffs/operations/composed_5.cpp.html | 39 - .../doc/examples/diffs/socks4/socks4.hpp.html | 185 - .../diffs/socks4/sync_client.cpp.html | 135 - .../examples/diffs/spawn/echo_server.cpp.html | 201 - .../diffs/spawn/parallel_grep.cpp.html | 150 - .../doc/examples/diffs/ssl/client.cpp.html | 245 - .../doc/examples/diffs/ssl/server.cpp.html | 239 - .../diffs/timeouts/async_tcp_client.cpp.html | 352 - .../timeouts/blocking_tcp_client.cpp.html | 246 - .../blocking_token_tcp_client.cpp.html | 236 - .../timeouts/blocking_udp_client.cpp.html | 195 - .../examples/diffs/timeouts/server.cpp.html | 521 - .../diffs/timers/time_t_timer.cpp.html | 151 - Sources/Vendor/asio/doc/home.png | Bin 358 -> 0 bytes Sources/Vendor/asio/doc/important.png | Bin 722 -> 0 bytes Sources/Vendor/asio/doc/index.html | 80 - Sources/Vendor/asio/doc/next.png | Bin 336 -> 0 bytes Sources/Vendor/asio/doc/next_disabled.png | Bin 1110 -> 0 bytes Sources/Vendor/asio/doc/note.png | Bin 490 -> 0 bytes Sources/Vendor/asio/doc/prev.png | Bin 334 -> 0 bytes Sources/Vendor/asio/doc/prev_disabled.png | Bin 1109 -> 0 bytes Sources/Vendor/asio/doc/proactor.png | Bin 30877 -> 0 bytes .../Vendor/asio/doc/standalone_HTML.manifest | 3060 --- Sources/Vendor/asio/doc/sync_op.png | Bin 20243 -> 0 bytes Sources/Vendor/asio/doc/tip.png | Bin 449 -> 0 bytes Sources/Vendor/asio/doc/up.png | Bin 370 -> 0 bytes Sources/Vendor/asio/doc/up_disabled.png | Bin 1115 -> 0 bytes Sources/Vendor/asio/doc/warning.png | Bin 1241 -> 0 bytes Sources/Vendor/asio/include/Makefile.am | 487 - Sources/Vendor/asio/include/Makefile.in | 1026 - Sources/Vendor/asio/include/asio.hpp | 152 - .../include/asio/associated_allocator.hpp | 131 - .../asio/include/asio/associated_executor.hpp | 149 - .../Vendor/asio/include/asio/async_result.hpp | 221 - .../include/asio/basic_datagram_socket.hpp | 1040 - .../include/asio/basic_deadline_timer.hpp | 628 - .../asio/include/asio/basic_io_object.hpp | 290 - .../asio/include/asio/basic_raw_socket.hpp | 1030 - .../include/asio/basic_seq_packet_socket.hpp | 618 - .../asio/include/asio/basic_serial_port.hpp | 688 - .../asio/include/asio/basic_signal_set.hpp | 391 - .../Vendor/asio/include/asio/basic_socket.hpp | 1757 -- .../include/asio/basic_socket_acceptor.hpp | 1986 -- .../include/asio/basic_socket_iostream.hpp | 430 - .../include/asio/basic_socket_streambuf.hpp | 707 - .../asio/include/asio/basic_stream_socket.hpp | 921 - .../asio/include/asio/basic_streambuf.hpp | 452 - .../asio/include/asio/basic_streambuf_fwd.hpp | 36 - .../include/asio/basic_waitable_timer.hpp | 705 - .../asio/include/asio/bind_executor.hpp | 611 - Sources/Vendor/asio/include/asio/buffer.hpp | 2169 -- .../include/asio/buffered_read_stream.hpp | 257 - .../include/asio/buffered_read_stream_fwd.hpp | 25 - .../asio/include/asio/buffered_stream.hpp | 278 - .../asio/include/asio/buffered_stream_fwd.hpp | 25 - .../include/asio/buffered_write_stream.hpp | 249 - .../asio/buffered_write_stream_fwd.hpp | 25 - .../asio/include/asio/buffers_iterator.hpp | 521 - .../include/asio/completion_condition.hpp | 218 - Sources/Vendor/asio/include/asio/connect.hpp | 1060 - .../Vendor/asio/include/asio/coroutine.hpp | 328 - .../include/asio/datagram_socket_service.hpp | 466 - .../asio/include/asio/deadline_timer.hpp | 38 - .../include/asio/deadline_timer_service.hpp | 173 - Sources/Vendor/asio/include/asio/defer.hpp | 107 - .../Vendor/asio/include/asio/detail/array.hpp | 38 - .../asio/include/asio/detail/array_fwd.hpp | 34 - .../asio/include/asio/detail/assert.hpp | 32 - .../asio/include/asio/detail/atomic_count.hpp | 45 - .../asio/detail/base_from_completion_cond.hpp | 68 - .../asio/include/asio/detail/bind_handler.hpp | 816 - .../asio/detail/buffer_resize_guard.hpp | 66 - .../asio/detail/buffer_sequence_adapter.hpp | 544 - .../asio/detail/buffered_stream_storage.hpp | 126 - .../asio/include/asio/detail/call_stack.hpp | 125 - .../asio/include/asio/detail/chrono.hpp | 66 - .../asio/detail/chrono_time_traits.hpp | 190 - .../asio/detail/completion_handler.hpp | 83 - .../include/asio/detail/concurrency_hint.hpp | 94 - .../detail/conditionally_enabled_event.hpp | 112 - .../detail/conditionally_enabled_mutex.hpp | 149 - .../asio/include/asio/detail/config.hpp | 1456 -- .../include/asio/detail/consuming_buffers.hpp | 414 - .../asio/include/asio/detail/cstddef.hpp | 31 - .../asio/include/asio/detail/cstdint.hpp | 60 - .../include/asio/detail/date_time_fwd.hpp | 34 - .../asio/detail/deadline_timer_service.hpp | 278 - .../include/asio/detail/dependent_type.hpp | 36 - .../include/asio/detail/descriptor_ops.hpp | 121 - .../asio/detail/descriptor_read_op.hpp | 128 - .../asio/detail/descriptor_write_op.hpp | 128 - .../include/asio/detail/dev_poll_reactor.hpp | 218 - .../include/asio/detail/epoll_reactor.hpp | 266 - .../Vendor/asio/include/asio/detail/event.hpp | 48 - .../detail/eventfd_select_interrupter.hpp | 83 - .../asio/include/asio/detail/executor_op.hpp | 84 - .../include/asio/detail/fd_set_adapter.hpp | 39 - .../asio/include/asio/detail/fenced_block.hpp | 80 - .../asio/include/asio/detail/functional.hpp | 38 - .../asio/include/asio/detail/future.hpp | 33 - .../asio/detail/gcc_arm_fenced_block.hpp | 91 - .../asio/detail/gcc_hppa_fenced_block.hpp | 68 - .../asio/detail/gcc_sync_fenced_block.hpp | 65 - .../asio/detail/gcc_x86_fenced_block.hpp | 99 - .../asio/include/asio/detail/global.hpp | 52 - .../asio/detail/handler_alloc_helpers.hpp | 235 - .../asio/detail/handler_cont_helpers.hpp | 45 - .../asio/detail/handler_invoke_helpers.hpp | 57 - .../include/asio/detail/handler_tracking.hpp | 238 - .../asio/detail/handler_type_requirements.hpp | 556 - .../asio/include/asio/detail/handler_work.hpp | 95 - .../asio/include/asio/detail/hash_map.hpp | 331 - .../detail/impl/buffer_sequence_adapter.ipp | 118 - .../asio/detail/impl/descriptor_ops.ipp | 474 - .../asio/detail/impl/dev_poll_reactor.hpp | 91 - .../asio/detail/impl/dev_poll_reactor.ipp | 446 - .../asio/detail/impl/epoll_reactor.hpp | 89 - .../asio/detail/impl/epoll_reactor.ipp | 787 - .../impl/eventfd_select_interrupter.ipp | 165 - .../asio/detail/impl/handler_tracking.ipp | 358 - .../asio/detail/impl/kqueue_reactor.hpp | 93 - .../asio/detail/impl/kqueue_reactor.ipp | 566 - .../include/asio/detail/impl/null_event.ipp | 74 - .../detail/impl/pipe_select_interrupter.ipp | 124 - .../include/asio/detail/impl/posix_event.ipp | 59 - .../include/asio/detail/impl/posix_mutex.ipp | 46 - .../include/asio/detail/impl/posix_thread.ipp | 84 - .../asio/detail/impl/posix_tss_ptr.ipp | 46 - .../impl/reactive_descriptor_service.ipp | 222 - .../impl/reactive_serial_port_service.ipp | 152 - .../impl/reactive_socket_service_base.ipp | 300 - .../detail/impl/resolver_service_base.ipp | 154 - .../include/asio/detail/impl/scheduler.ipp | 571 - .../asio/detail/impl/select_reactor.hpp | 100 - .../asio/detail/impl/select_reactor.ipp | 333 - .../asio/detail/impl/service_registry.hpp | 94 - .../asio/detail/impl/service_registry.ipp | 197 - .../asio/detail/impl/signal_set_service.ipp | 669 - .../include/asio/detail/impl/socket_ops.ipp | 3571 --- .../detail/impl/socket_select_interrupter.ipp | 176 - .../detail/impl/strand_executor_service.hpp | 179 - .../detail/impl/strand_executor_service.ipp | 134 - .../asio/detail/impl/strand_service.hpp | 118 - .../asio/detail/impl/strand_service.ipp | 177 - .../include/asio/detail/impl/throw_error.ipp | 60 - .../asio/detail/impl/timer_queue_ptime.ipp | 91 - .../asio/detail/impl/timer_queue_set.ipp | 101 - .../include/asio/detail/impl/win_event.ipp | 76 - .../detail/impl/win_iocp_handle_service.ipp | 525 - .../asio/detail/impl/win_iocp_io_context.hpp | 103 - .../asio/detail/impl/win_iocp_io_context.ipp | 554 - .../impl/win_iocp_serial_port_service.ipp | 181 - .../impl/win_iocp_socket_service_base.ipp | 799 - .../include/asio/detail/impl/win_mutex.ipp | 84 - .../detail/impl/win_object_handle_service.ipp | 449 - .../asio/detail/impl/win_static_mutex.ipp | 136 - .../include/asio/detail/impl/win_thread.ipp | 150 - .../include/asio/detail/impl/win_tss_ptr.ipp | 57 - .../impl/winrt_ssocket_service_base.ipp | 629 - .../detail/impl/winrt_timer_scheduler.hpp | 92 - .../detail/impl/winrt_timer_scheduler.ipp | 122 - .../include/asio/detail/impl/winsock_init.ipp | 82 - .../asio/include/asio/detail/io_control.hpp | 84 - .../asio/detail/is_buffer_sequence.hpp | 263 - .../asio/include/asio/detail/is_executor.hpp | 126 - .../include/asio/detail/keyword_tss_ptr.hpp | 70 - .../include/asio/detail/kqueue_reactor.hpp | 242 - .../asio/include/asio/detail/limits.hpp | 26 - .../asio/detail/local_free_on_block_exit.hpp | 59 - .../asio/detail/macos_fenced_block.hpp | 62 - .../asio/include/asio/detail/memory.hpp | 70 - .../Vendor/asio/include/asio/detail/mutex.hpp | 48 - .../asio/include/asio/detail/noncopyable.hpp | 43 - .../asio/include/asio/detail/null_event.hpp | 100 - .../include/asio/detail/null_fenced_block.hpp | 47 - .../asio/include/asio/detail/null_global.hpp | 59 - .../asio/include/asio/detail/null_mutex.hpp | 64 - .../asio/include/asio/detail/null_reactor.hpp | 68 - .../asio/detail/null_signal_blocker.hpp | 69 - .../asio/detail/null_socket_service.hpp | 508 - .../include/asio/detail/null_static_mutex.hpp | 60 - .../asio/include/asio/detail/null_thread.hpp | 67 - .../asio/include/asio/detail/null_tss_ptr.hpp | 68 - .../asio/include/asio/detail/object_pool.hpp | 171 - .../asio/detail/old_win_sdk_compat.hpp | 214 - .../asio/include/asio/detail/op_queue.hpp | 162 - .../asio/include/asio/detail/operation.hpp | 38 - .../asio/detail/pipe_select_interrupter.hpp | 89 - .../asio/include/asio/detail/pop_options.hpp | 135 - .../asio/include/asio/detail/posix_event.hpp | 162 - .../asio/detail/posix_fd_set_adapter.hpp | 118 - .../asio/include/asio/detail/posix_global.hpp | 80 - .../asio/include/asio/detail/posix_mutex.hpp | 76 - .../asio/detail/posix_signal_blocker.hpp | 85 - .../asio/detail/posix_static_mutex.hpp | 64 - .../asio/include/asio/detail/posix_thread.hpp | 109 - .../include/asio/detail/posix_tss_ptr.hpp | 79 - .../asio/include/asio/detail/push_options.hpp | 175 - .../detail/reactive_descriptor_service.hpp | 388 - .../asio/detail/reactive_null_buffers_op.hpp | 90 - .../detail/reactive_serial_port_service.hpp | 236 - .../asio/detail/reactive_socket_accept_op.hpp | 217 - .../detail/reactive_socket_connect_op.hpp | 113 - .../asio/detail/reactive_socket_recv_op.hpp | 135 - .../detail/reactive_socket_recvfrom_op.hpp | 138 - .../detail/reactive_socket_recvmsg_op.hpp | 132 - .../asio/detail/reactive_socket_send_op.hpp | 134 - .../asio/detail/reactive_socket_sendto_op.hpp | 130 - .../asio/detail/reactive_socket_service.hpp | 526 - .../detail/reactive_socket_service_base.hpp | 511 - .../include/asio/detail/reactive_wait_op.hpp | 90 - .../asio/include/asio/detail/reactor.hpp | 32 - .../asio/include/asio/detail/reactor_fwd.hpp | 40 - .../asio/include/asio/detail/reactor_op.hpp | 65 - .../include/asio/detail/reactor_op_queue.hpp | 168 - .../asio/detail/recycling_allocator.hpp | 104 - .../asio/include/asio/detail/regex_fwd.hpp | 35 - .../asio/detail/resolve_endpoint_op.hpp | 122 - .../asio/include/asio/detail/resolve_op.hpp | 45 - .../include/asio/detail/resolve_query_op.hpp | 134 - .../include/asio/detail/resolver_service.hpp | 145 - .../asio/detail/resolver_service_base.hpp | 140 - .../asio/include/asio/detail/scheduler.hpp | 213 - .../asio/detail/scheduler_operation.hpp | 78 - .../asio/detail/scheduler_thread_info.hpp | 40 - .../asio/include/asio/detail/scoped_lock.hpp | 101 - .../asio/include/asio/detail/scoped_ptr.hpp | 87 - .../asio/detail/select_interrupter.hpp | 46 - .../include/asio/detail/select_reactor.hpp | 238 - .../include/asio/detail/service_registry.hpp | 164 - .../include/asio/detail/signal_blocker.hpp | 44 - .../include/asio/detail/signal_handler.hpp | 86 - .../asio/include/asio/detail/signal_init.hpp | 47 - .../asio/include/asio/detail/signal_op.hpp | 49 - .../asio/detail/signal_set_service.hpp | 217 - .../include/asio/detail/socket_holder.hpp | 98 - .../asio/include/asio/detail/socket_ops.hpp | 337 - .../include/asio/detail/socket_option.hpp | 316 - .../asio/detail/socket_select_interrupter.hpp | 91 - .../asio/include/asio/detail/socket_types.hpp | 416 - .../asio/detail/solaris_fenced_block.hpp | 62 - .../asio/include/asio/detail/static_mutex.hpp | 52 - .../asio/include/asio/detail/std_event.hpp | 176 - .../include/asio/detail/std_fenced_block.hpp | 62 - .../asio/include/asio/detail/std_global.hpp | 70 - .../asio/include/asio/detail/std_mutex.hpp | 73 - .../include/asio/detail/std_static_mutex.hpp | 81 - .../asio/include/asio/detail/std_thread.hpp | 71 - .../asio/detail/strand_executor_service.hpp | 142 - .../include/asio/detail/strand_service.hpp | 142 - .../asio/include/asio/detail/string_view.hpp | 47 - .../asio/include/asio/detail/thread.hpp | 60 - .../include/asio/detail/thread_context.hpp | 42 - .../asio/include/asio/detail/thread_group.hpp | 89 - .../include/asio/detail/thread_info_base.hpp | 121 - .../asio/include/asio/detail/throw_error.hpp | 53 - .../include/asio/detail/throw_exception.hpp | 51 - .../asio/include/asio/detail/timer_queue.hpp | 360 - .../include/asio/detail/timer_queue_base.hpp | 68 - .../include/asio/detail/timer_queue_ptime.hpp | 99 - .../include/asio/detail/timer_queue_set.hpp | 66 - .../include/asio/detail/timer_scheduler.hpp | 35 - .../asio/detail/timer_scheduler_fwd.hpp | 40 - .../asio/include/asio/detail/tss_ptr.hpp | 69 - .../asio/include/asio/detail/type_traits.hpp | 86 - .../asio/detail/variadic_templates.hpp | 119 - .../asio/include/asio/detail/wait_handler.hpp | 85 - .../asio/include/asio/detail/wait_op.hpp | 45 - .../asio/include/asio/detail/win_event.hpp | 151 - .../asio/detail/win_fd_set_adapter.hpp | 149 - .../include/asio/detail/win_fenced_block.hpp | 90 - .../asio/include/asio/detail/win_global.hpp | 74 - .../asio/detail/win_iocp_handle_read_op.hpp | 111 - .../asio/detail/win_iocp_handle_service.hpp | 323 - .../asio/detail/win_iocp_handle_write_op.hpp | 103 - .../asio/detail/win_iocp_io_context.hpp | 328 - .../asio/detail/win_iocp_null_buffers_op.hpp | 121 - .../asio/detail/win_iocp_operation.hpp | 96 - .../asio/detail/win_iocp_overlapped_op.hpp | 90 - .../asio/detail/win_iocp_overlapped_ptr.hpp | 143 - .../detail/win_iocp_serial_port_service.hpp | 230 - .../asio/detail/win_iocp_socket_accept_op.hpp | 297 - .../detail/win_iocp_socket_connect_op.hpp | 127 - .../asio/detail/win_iocp_socket_recv_op.hpp | 117 - .../detail/win_iocp_socket_recvfrom_op.hpp | 125 - .../detail/win_iocp_socket_recvmsg_op.hpp | 118 - .../asio/detail/win_iocp_socket_send_op.hpp | 111 - .../asio/detail/win_iocp_socket_service.hpp | 599 - .../detail/win_iocp_socket_service_base.hpp | 591 - .../asio/detail/win_iocp_thread_info.hpp | 34 - .../include/asio/detail/win_iocp_wait_op.hpp | 121 - .../asio/include/asio/detail/win_mutex.hpp | 78 - .../asio/detail/win_object_handle_service.hpp | 184 - .../include/asio/detail/win_static_mutex.hpp | 74 - .../asio/include/asio/detail/win_thread.hpp | 147 - .../asio/include/asio/detail/win_tss_ptr.hpp | 79 - .../include/asio/detail/winapp_thread.hpp | 124 - .../asio/include/asio/detail/wince_thread.hpp | 124 - .../asio/detail/winrt_async_manager.hpp | 294 - .../include/asio/detail/winrt_async_op.hpp | 65 - .../include/asio/detail/winrt_resolve_op.hpp | 118 - .../asio/detail/winrt_resolver_service.hpp | 198 - .../asio/detail/winrt_socket_connect_op.hpp | 92 - .../asio/detail/winrt_socket_recv_op.hpp | 112 - .../asio/detail/winrt_socket_send_op.hpp | 103 - .../asio/detail/winrt_ssocket_service.hpp | 241 - .../detail/winrt_ssocket_service_base.hpp | 359 - .../asio/detail/winrt_timer_scheduler.hpp | 137 - .../asio/include/asio/detail/winrt_utils.hpp | 106 - .../asio/include/asio/detail/winsock_init.hpp | 128 - .../include/asio/detail/work_dispatcher.hpp | 72 - .../include/asio/detail/wrapped_handler.hpp | 291 - Sources/Vendor/asio/include/asio/dispatch.hpp | 108 - Sources/Vendor/asio/include/asio/error.hpp | 356 - .../Vendor/asio/include/asio/error_code.hpp | 202 - .../asio/include/asio/execution_context.hpp | 411 - Sources/Vendor/asio/include/asio/executor.hpp | 341 - .../asio/include/asio/executor_work_guard.hpp | 170 - .../Vendor/asio/include/asio/experimental.hpp | 22 - .../include/asio/experimental/co_spawn.hpp | 226 - .../include/asio/experimental/detached.hpp | 65 - .../asio/experimental/impl/co_spawn.hpp | 876 - .../asio/experimental/impl/detached.hpp | 91 - .../asio/experimental/impl/redirect_error.hpp | 294 - .../asio/experimental/redirect_error.hpp | 67 - .../include/asio/generic/basic_endpoint.hpp | 193 - .../asio/generic/datagram_protocol.hpp | 123 - .../include/asio/generic/detail/endpoint.hpp | 133 - .../asio/generic/detail/impl/endpoint.ipp | 110 - .../include/asio/generic/raw_protocol.hpp | 121 - .../asio/generic/seq_packet_protocol.hpp | 122 - .../include/asio/generic/stream_protocol.hpp | 127 - .../asio/include/asio/handler_alloc_hook.hpp | 81 - .../asio/handler_continuation_hook.hpp | 54 - .../asio/include/asio/handler_invoke_hook.hpp | 85 - .../Vendor/asio/include/asio/handler_type.hpp | 50 - .../include/asio/high_resolution_timer.hpp | 44 - .../asio/impl/buffered_read_stream.hpp | 429 - .../asio/impl/buffered_write_stream.hpp | 411 - .../Vendor/asio/include/asio/impl/connect.hpp | 860 - .../Vendor/asio/include/asio/impl/defer.hpp | 77 - .../asio/include/asio/impl/dispatch.hpp | 78 - .../Vendor/asio/include/asio/impl/error.ipp | 128 - .../asio/include/asio/impl/error_code.ipp | 206 - .../include/asio/impl/execution_context.hpp | 107 - .../include/asio/impl/execution_context.ipp | 82 - .../asio/include/asio/impl/executor.hpp | 386 - .../asio/include/asio/impl/executor.ipp | 38 - .../include/asio/impl/handler_alloc_hook.ipp | 52 - .../asio/include/asio/impl/io_context.hpp | 343 - .../asio/include/asio/impl/io_context.ipp | 174 - .../Vendor/asio/include/asio/impl/post.hpp | 77 - .../Vendor/asio/include/asio/impl/read.hpp | 715 - .../Vendor/asio/include/asio/impl/read_at.hpp | 640 - .../asio/include/asio/impl/read_until.hpp | 1502 -- .../include/asio/impl/serial_port_base.hpp | 59 - .../include/asio/impl/serial_port_base.ipp | 554 - .../Vendor/asio/include/asio/impl/spawn.hpp | 535 - Sources/Vendor/asio/include/asio/impl/src.cpp | 25 - Sources/Vendor/asio/include/asio/impl/src.hpp | 82 - .../asio/include/asio/impl/system_context.hpp | 34 - .../asio/include/asio/impl/system_context.ipp | 73 - .../include/asio/impl/system_executor.hpp | 85 - .../asio/include/asio/impl/thread_pool.hpp | 127 - .../asio/include/asio/impl/thread_pool.ipp | 76 - .../asio/include/asio/impl/use_future.hpp | 937 - .../Vendor/asio/include/asio/impl/write.hpp | 674 - .../asio/include/asio/impl/write_at.hpp | 572 - .../Vendor/asio/include/asio/io_context.hpp | 876 - .../asio/include/asio/io_context_strand.hpp | 384 - .../Vendor/asio/include/asio/io_service.hpp | 33 - .../asio/include/asio/io_service_strand.hpp | 20 - .../Vendor/asio/include/asio/ip/address.hpp | 260 - .../asio/include/asio/ip/address_v4.hpp | 329 - .../include/asio/ip/address_v4_iterator.hpp | 162 - .../asio/include/asio/ip/address_v4_range.hpp | 134 - .../asio/include/asio/ip/address_v6.hpp | 336 - .../include/asio/ip/address_v6_iterator.hpp | 183 - .../asio/include/asio/ip/address_v6_range.hpp | 129 - .../asio/include/asio/ip/bad_address_cast.hpp | 53 - .../asio/include/asio/ip/basic_endpoint.hpp | 263 - .../asio/include/asio/ip/basic_resolver.hpp | 1020 - .../include/asio/ip/basic_resolver_entry.hpp | 113 - .../asio/ip/basic_resolver_iterator.hpp | 192 - .../include/asio/ip/basic_resolver_query.hpp | 244 - .../asio/ip/basic_resolver_results.hpp | 311 - .../asio/include/asio/ip/detail/endpoint.hpp | 139 - .../include/asio/ip/detail/impl/endpoint.ipp | 199 - .../include/asio/ip/detail/socket_option.hpp | 566 - .../Vendor/asio/include/asio/ip/host_name.hpp | 42 - Sources/Vendor/asio/include/asio/ip/icmp.hpp | 115 - .../asio/include/asio/ip/impl/address.hpp | 67 - .../asio/include/asio/ip/impl/address.ipp | 234 - .../asio/include/asio/ip/impl/address_v4.hpp | 67 - .../asio/include/asio/ip/impl/address_v4.ipp | 210 - .../asio/include/asio/ip/impl/address_v6.hpp | 67 - .../asio/include/asio/ip/impl/address_v6.ipp | 350 - .../include/asio/ip/impl/basic_endpoint.hpp | 43 - .../asio/include/asio/ip/impl/host_name.ipp | 54 - .../asio/include/asio/ip/impl/network_v4.hpp | 54 - .../asio/include/asio/ip/impl/network_v4.ipp | 216 - .../asio/include/asio/ip/impl/network_v6.hpp | 53 - .../asio/include/asio/ip/impl/network_v6.ipp | 185 - .../Vendor/asio/include/asio/ip/multicast.hpp | 191 - .../asio/include/asio/ip/network_v4.hpp | 261 - .../asio/include/asio/ip/network_v6.hpp | 235 - .../asio/include/asio/ip/resolver_base.hpp | 129 - .../include/asio/ip/resolver_query_base.hpp | 43 - .../asio/include/asio/ip/resolver_service.hpp | 200 - Sources/Vendor/asio/include/asio/ip/tcp.hpp | 155 - Sources/Vendor/asio/include/asio/ip/udp.hpp | 111 - .../Vendor/asio/include/asio/ip/unicast.hpp | 70 - .../Vendor/asio/include/asio/ip/v6_only.hpp | 69 - .../Vendor/asio/include/asio/is_executor.hpp | 46 - .../asio/include/asio/is_read_buffered.hpp | 59 - .../asio/include/asio/is_write_buffered.hpp | 59 - .../include/asio/local/basic_endpoint.hpp | 239 - .../asio/include/asio/local/connect_pair.hpp | 106 - .../include/asio/local/datagram_protocol.hpp | 80 - .../include/asio/local/detail/endpoint.hpp | 133 - .../asio/local/detail/impl/endpoint.ipp | 129 - .../include/asio/local/stream_protocol.hpp | 90 - .../asio/include/asio/packaged_task.hpp | 126 - .../Vendor/asio/include/asio/placeholders.hpp | 151 - .../include/asio/posix/basic_descriptor.hpp | 582 - .../asio/posix/basic_stream_descriptor.hpp | 362 - .../asio/include/asio/posix/descriptor.hpp | 644 - .../include/asio/posix/descriptor_base.hpp | 90 - .../include/asio/posix/stream_descriptor.hpp | 360 - .../asio/posix/stream_descriptor_service.hpp | 279 - Sources/Vendor/asio/include/asio/post.hpp | 107 - .../asio/include/asio/raw_socket_service.hpp | 466 - Sources/Vendor/asio/include/asio/read.hpp | 947 - Sources/Vendor/asio/include/asio/read_at.hpp | 671 - .../Vendor/asio/include/asio/read_until.hpp | 1826 -- .../asio/seq_packet_socket_service.hpp | 416 - .../Vendor/asio/include/asio/serial_port.hpp | 769 - .../asio/include/asio/serial_port_base.hpp | 167 - .../asio/include/asio/serial_port_service.hpp | 249 - .../Vendor/asio/include/asio/signal_set.hpp | 447 - .../asio/include/asio/signal_set_service.hpp | 142 - .../include/asio/socket_acceptor_service.hpp | 372 - .../Vendor/asio/include/asio/socket_base.hpp | 559 - Sources/Vendor/asio/include/asio/spawn.hpp | 336 - Sources/Vendor/asio/include/asio/ssl.hpp | 27 - .../Vendor/asio/include/asio/ssl/context.hpp | 758 - .../asio/include/asio/ssl/context_base.hpp | 209 - .../asio/ssl/detail/buffered_handshake_op.hpp | 114 - .../asio/include/asio/ssl/detail/engine.hpp | 160 - .../include/asio/ssl/detail/handshake_op.hpp | 62 - .../include/asio/ssl/detail/impl/engine.ipp | 322 - .../asio/ssl/detail/impl/openssl_init.ipp | 165 - .../asio/include/asio/ssl/detail/io.hpp | 372 - .../include/asio/ssl/detail/openssl_init.hpp | 101 - .../include/asio/ssl/detail/openssl_types.hpp | 30 - .../asio/ssl/detail/password_callback.hpp | 66 - .../asio/include/asio/ssl/detail/read_op.hpp | 67 - .../include/asio/ssl/detail/shutdown_op.hpp | 54 - .../include/asio/ssl/detail/stream_core.hpp | 134 - .../asio/ssl/detail/verify_callback.hpp | 62 - .../asio/include/asio/ssl/detail/write_op.hpp | 67 - .../Vendor/asio/include/asio/ssl/error.hpp | 111 - .../asio/include/asio/ssl/impl/context.hpp | 67 - .../asio/include/asio/ssl/impl/context.ipp | 1204 - .../asio/include/asio/ssl/impl/error.ipp | 100 - .../asio/ssl/impl/rfc2818_verification.ipp | 160 - .../Vendor/asio/include/asio/ssl/impl/src.hpp | 28 - .../include/asio/ssl/rfc2818_verification.hpp | 94 - .../Vendor/asio/include/asio/ssl/stream.hpp | 762 - .../asio/include/asio/ssl/stream_base.hpp | 52 - .../asio/include/asio/ssl/verify_context.hpp | 67 - .../asio/include/asio/ssl/verify_mode.hpp | 63 - .../Vendor/asio/include/asio/steady_timer.hpp | 42 - Sources/Vendor/asio/include/asio/strand.hpp | 286 - .../include/asio/stream_socket_service.hpp | 412 - .../Vendor/asio/include/asio/streambuf.hpp | 33 - .../asio/include/asio/system_context.hpp | 78 - .../Vendor/asio/include/asio/system_error.hpp | 131 - .../asio/include/asio/system_executor.hpp | 129 - .../Vendor/asio/include/asio/system_timer.hpp | 42 - Sources/Vendor/asio/include/asio/thread.hpp | 92 - .../Vendor/asio/include/asio/thread_pool.hpp | 232 - .../Vendor/asio/include/asio/time_traits.hpp | 86 - .../Vendor/asio/include/asio/ts/buffer.hpp | 24 - .../Vendor/asio/include/asio/ts/executor.hpp | 35 - .../Vendor/asio/include/asio/ts/internet.hpp | 40 - .../asio/include/asio/ts/io_context.hpp | 20 - Sources/Vendor/asio/include/asio/ts/net.hpp | 26 - .../Vendor/asio/include/asio/ts/netfwd.hpp | 197 - .../Vendor/asio/include/asio/ts/socket.hpp | 27 - Sources/Vendor/asio/include/asio/ts/timer.hpp | 26 - Sources/Vendor/asio/include/asio/unyield.hpp | 21 - .../Vendor/asio/include/asio/use_future.hpp | 160 - .../asio/include/asio/uses_executor.hpp | 71 - Sources/Vendor/asio/include/asio/version.hpp | 23 - .../Vendor/asio/include/asio/wait_traits.hpp | 56 - .../include/asio/waitable_timer_service.hpp | 210 - .../include/asio/windows/basic_handle.hpp | 273 - .../asio/windows/basic_object_handle.hpp | 182 - .../windows/basic_random_access_handle.hpp | 376 - .../asio/windows/basic_stream_handle.hpp | 359 - .../include/asio/windows/object_handle.hpp | 381 - .../asio/windows/object_handle_service.hpp | 183 - .../asio/windows/overlapped_handle.hpp | 331 - .../include/asio/windows/overlapped_ptr.hpp | 116 - .../asio/windows/random_access_handle.hpp | 378 - .../windows/random_access_handle_service.hpp | 214 - .../include/asio/windows/stream_handle.hpp | 362 - .../asio/windows/stream_handle_service.hpp | 210 - Sources/Vendor/asio/include/asio/write.hpp | 928 - Sources/Vendor/asio/include/asio/write_at.hpp | 679 - Sources/Vendor/asio/include/asio/yield.hpp | 23 - Sources/Vendor/asio/install-sh | 518 - Sources/Vendor/asio/missing | 215 - Sources/Vendor/asio/src/Makefile.am | 23 - Sources/Vendor/asio/src/Makefile.in | 605 - Sources/Vendor/asio/src/Makefile.mgw | 223 - Sources/Vendor/asio/src/Makefile.msc | 469 - Sources/Vendor/asio/src/asio.cpp | 11 - Sources/Vendor/asio/src/asio_ssl.cpp | 11 - .../asio/src/examples/cpp03/Makefile.am | 251 - .../asio/src/examples/cpp03/Makefile.in | 2339 -- .../src/examples/cpp03/allocation/server.cpp | 285 - .../cpp03/buffers/reference_counted.cpp | 131 - .../src/examples/cpp03/chat/chat_client.cpp | 177 - .../src/examples/cpp03/chat/chat_message.hpp | 93 - .../src/examples/cpp03/chat/chat_server.cpp | 247 - .../examples/cpp03/chat/posix_chat_client.cpp | 204 - .../cpp03/echo/async_tcp_echo_server.cpp | 137 - .../cpp03/echo/async_udp_echo_server.cpp | 92 - .../cpp03/echo/blocking_tcp_echo_client.cpp | 59 - .../cpp03/echo/blocking_tcp_echo_server.cpp | 79 - .../cpp03/echo/blocking_udp_echo_client.cpp | 59 - .../cpp03/echo/blocking_udp_echo_server.cpp | 53 - .../asio/src/examples/cpp03/fork/daemon.cpp | 189 - .../cpp03/fork/process_per_connection.cpp | 160 - .../cpp03/http/client/async_client.cpp | 204 - .../cpp03/http/client/sync_client.cpp | 106 - .../examples/cpp03/http/server/connection.cpp | 99 - .../examples/cpp03/http/server/connection.hpp | 83 - .../cpp03/http/server/connection_manager.cpp | 38 - .../cpp03/http/server/connection_manager.hpp | 44 - .../src/examples/cpp03/http/server/header.hpp | 28 - .../src/examples/cpp03/http/server/main.cpp | 44 - .../examples/cpp03/http/server/mime_types.cpp | 46 - .../examples/cpp03/http/server/mime_types.hpp | 27 - .../src/examples/cpp03/http/server/reply.cpp | 256 - .../src/examples/cpp03/http/server/reply.hpp | 64 - .../examples/cpp03/http/server/request.hpp | 34 - .../cpp03/http/server/request_handler.cpp | 122 - .../cpp03/http/server/request_handler.hpp | 46 - .../cpp03/http/server/request_parser.cpp | 315 - .../cpp03/http/server/request_parser.hpp | 95 - .../src/examples/cpp03/http/server/server.cpp | 94 - .../src/examples/cpp03/http/server/server.hpp | 69 - .../cpp03/http/server2/connection.cpp | 93 - .../cpp03/http/server2/connection.hpp | 75 - .../examples/cpp03/http/server2/header.hpp | 28 - .../cpp03/http/server2/io_context_pool.cpp | 69 - .../cpp03/http/server2/io_context_pool.hpp | 58 - .../src/examples/cpp03/http/server2/main.cpp | 46 - .../cpp03/http/server2/mime_types.cpp | 46 - .../cpp03/http/server2/mime_types.hpp | 27 - .../src/examples/cpp03/http/server2/reply.cpp | 256 - .../src/examples/cpp03/http/server2/reply.hpp | 64 - .../examples/cpp03/http/server2/request.hpp | 34 - .../cpp03/http/server2/request_handler.cpp | 122 - .../cpp03/http/server2/request_handler.hpp | 46 - .../cpp03/http/server2/request_parser.cpp | 315 - .../cpp03/http/server2/request_parser.hpp | 95 - .../examples/cpp03/http/server2/server.cpp | 77 - .../examples/cpp03/http/server2/server.hpp | 68 - .../cpp03/http/server3/connection.cpp | 98 - .../cpp03/http/server3/connection.hpp | 78 - .../examples/cpp03/http/server3/header.hpp | 28 - .../src/examples/cpp03/http/server3/main.cpp | 46 - .../cpp03/http/server3/mime_types.cpp | 46 - .../cpp03/http/server3/mime_types.hpp | 27 - .../src/examples/cpp03/http/server3/reply.cpp | 256 - .../src/examples/cpp03/http/server3/reply.hpp | 64 - .../examples/cpp03/http/server3/request.hpp | 34 - .../cpp03/http/server3/request_handler.cpp | 122 - .../cpp03/http/server3/request_handler.hpp | 46 - .../cpp03/http/server3/request_parser.cpp | 315 - .../cpp03/http/server3/request_parser.hpp | 95 - .../examples/cpp03/http/server3/server.cpp | 89 - .../examples/cpp03/http/server3/server.hpp | 70 - .../cpp03/http/server4/file_handler.cpp | 122 - .../cpp03/http/server4/file_handler.hpp | 44 - .../examples/cpp03/http/server4/header.hpp | 28 - .../src/examples/cpp03/http/server4/main.cpp | 58 - .../cpp03/http/server4/mime_types.cpp | 46 - .../cpp03/http/server4/mime_types.hpp | 27 - .../src/examples/cpp03/http/server4/reply.cpp | 256 - .../src/examples/cpp03/http/server4/reply.hpp | 64 - .../examples/cpp03/http/server4/request.hpp | 46 - .../cpp03/http/server4/request_parser.cpp | 226 - .../cpp03/http/server4/request_parser.hpp | 78 - .../examples/cpp03/http/server4/server.cpp | 122 - .../examples/cpp03/http/server4/server.hpp | 73 - .../src/examples/cpp03/icmp/icmp_header.hpp | 94 - .../src/examples/cpp03/icmp/ipv4_header.hpp | 102 - .../asio/src/examples/cpp03/icmp/ping.cpp | 163 - .../cpp03/invocation/prioritised_handlers.cpp | 171 - .../cpp03/iostreams/daytime_client.cpp | 44 - .../cpp03/iostreams/daytime_server.cpp | 51 - .../examples/cpp03/iostreams/http_client.cpp | 91 - .../src/examples/cpp03/local/connect_pair.cpp | 141 - .../examples/cpp03/local/iostream_client.cpp | 62 - .../examples/cpp03/local/stream_client.cpp | 61 - .../examples/cpp03/local/stream_server.cpp | 141 - .../src/examples/cpp03/multicast/receiver.cpp | 93 - .../src/examples/cpp03/multicast/sender.cpp | 98 - .../cpp03/nonblocking/third_party_lib.cpp | 240 - .../src/examples/cpp03/porthopper/client.cpp | 192 - .../examples/cpp03/porthopper/protocol.hpp | 156 - .../src/examples/cpp03/porthopper/server.cpp | 189 - .../examples/cpp03/serialization/client.cpp | 125 - .../cpp03/serialization/connection.hpp | 188 - .../examples/cpp03/serialization/server.cpp | 123 - .../examples/cpp03/serialization/stock.hpp | 50 - .../examples/cpp03/services/basic_logger.hpp | 83 - .../cpp03/services/daytime_client.cpp | 97 - .../src/examples/cpp03/services/logger.hpp | 24 - .../cpp03/services/logger_service.cpp | 17 - .../cpp03/services/logger_service.hpp | 145 - .../asio/src/examples/cpp03/socks4/socks4.hpp | 144 - .../src/examples/cpp03/socks4/sync_client.cpp | 94 - .../src/examples/cpp03/spawn/echo_server.cpp | 122 - .../examples/cpp03/spawn/parallel_grep.cpp | 89 - .../Vendor/asio/src/examples/cpp03/ssl/README | 8 - .../Vendor/asio/src/examples/cpp03/ssl/ca.pem | 49 - .../asio/src/examples/cpp03/ssl/client.cpp | 156 - .../asio/src/examples/cpp03/ssl/dh2048.pem | 8 - .../asio/src/examples/cpp03/ssl/server.cpp | 170 - .../asio/src/examples/cpp03/ssl/server.pem | 71 - .../cpp03/timeouts/async_tcp_client.cpp | 310 - .../cpp03/timeouts/blocking_tcp_client.cpp | 191 - .../timeouts/blocking_token_tcp_client.cpp | 196 - .../cpp03/timeouts/blocking_udp_client.cpp | 153 - .../src/examples/cpp03/timeouts/server.cpp | 429 - .../examples/cpp03/timers/time_t_timer.cpp | 106 - .../cpp03/tutorial/daytime1/client.cpp | 57 - .../cpp03/tutorial/daytime2/server.cpp | 50 - .../cpp03/tutorial/daytime3/server.cpp | 117 - .../cpp03/tutorial/daytime4/client.cpp | 52 - .../cpp03/tutorial/daytime5/server.cpp | 54 - .../cpp03/tutorial/daytime6/server.cpp | 89 - .../cpp03/tutorial/daytime7/server.cpp | 158 - .../examples/cpp03/tutorial/timer1/timer.cpp | 24 - .../examples/cpp03/tutorial/timer2/timer.cpp | 29 - .../examples/cpp03/tutorial/timer3/timer.cpp | 43 - .../examples/cpp03/tutorial/timer4/timer.cpp | 54 - .../examples/cpp03/tutorial/timer5/timer.cpp | 80 - .../examples/cpp03/windows/transmit_file.cpp | 171 - .../asio/src/examples/cpp11/Makefile.am | 155 - .../asio/src/examples/cpp11/Makefile.in | 1715 -- .../src/examples/cpp11/allocation/server.cpp | 255 - .../cpp11/buffers/reference_counted.cpp | 122 - .../src/examples/cpp11/chat/chat_client.cpp | 167 - .../src/examples/cpp11/chat/chat_message.hpp | 91 - .../src/examples/cpp11/chat/chat_server.cpp | 227 - .../cpp11/echo/async_tcp_echo_server.cpp | 114 - .../cpp11/echo/async_udp_echo_server.cpp | 82 - .../cpp11/echo/blocking_tcp_echo_client.cpp | 55 - .../cpp11/echo/blocking_tcp_echo_server.cpp | 74 - .../cpp11/echo/blocking_udp_echo_client.cpp | 58 - .../cpp11/echo/blocking_udp_echo_server.cpp | 52 - .../src/examples/cpp11/executors/actor.cpp | 286 - .../cpp11/executors/bank_account_1.cpp | 54 - .../cpp11/executors/bank_account_2.cpp | 54 - .../examples/cpp11/executors/fork_join.cpp | 328 - .../src/examples/cpp11/executors/pipeline.cpp | 299 - .../cpp11/executors/priority_scheduler.cpp | 168 - .../asio/src/examples/cpp11/fork/daemon.cpp | 189 - .../cpp11/fork/process_per_connection.cpp | 162 - .../examples/cpp11/futures/daytime_client.cpp | 94 - .../handler_tracking/custom_tracking.hpp | 201 - .../examples/cpp11/http/server/connection.cpp | 94 - .../examples/cpp11/http/server/connection.hpp | 79 - .../cpp11/http/server/connection_manager.cpp | 40 - .../cpp11/http/server/connection_manager.hpp | 48 - .../src/examples/cpp11/http/server/header.hpp | 28 - .../src/examples/cpp11/http/server/main.cpp | 43 - .../examples/cpp11/http/server/mime_types.cpp | 45 - .../examples/cpp11/http/server/mime_types.hpp | 27 - .../src/examples/cpp11/http/server/reply.cpp | 255 - .../src/examples/cpp11/http/server/reply.hpp | 64 - .../examples/cpp11/http/server/request.hpp | 34 - .../cpp11/http/server/request_handler.cpp | 121 - .../cpp11/http/server/request_handler.hpp | 47 - .../cpp11/http/server/request_parser.cpp | 315 - .../cpp11/http/server/request_parser.hpp | 96 - .../src/examples/cpp11/http/server/server.cpp | 94 - .../src/examples/cpp11/http/server/server.hpp | 64 - .../cpp11/invocation/prioritised_handlers.cpp | 202 - .../examples/cpp11/iostreams/http_client.cpp | 91 - .../src/examples/cpp11/local/connect_pair.cpp | 129 - .../examples/cpp11/local/iostream_client.cpp | 61 - .../examples/cpp11/local/stream_client.cpp | 60 - .../examples/cpp11/local/stream_server.cpp | 121 - .../src/examples/cpp11/multicast/receiver.cpp | 88 - .../src/examples/cpp11/multicast/sender.cpp | 91 - .../cpp11/nonblocking/third_party_lib.cpp | 212 - .../examples/cpp11/operations/composed_1.cpp | 112 - .../examples/cpp11/operations/composed_2.cpp | 148 - .../examples/cpp11/operations/composed_3.cpp | 168 - .../examples/cpp11/operations/composed_4.cpp | 200 - .../examples/cpp11/operations/composed_5.cpp | 259 - .../asio/src/examples/cpp11/socks4/socks4.hpp | 143 - .../src/examples/cpp11/socks4/sync_client.cpp | 93 - .../src/examples/cpp11/spawn/echo_server.cpp | 108 - .../examples/cpp11/spawn/parallel_grep.cpp | 84 - .../asio/src/examples/cpp11/ssl/client.cpp | 165 - .../asio/src/examples/cpp11/ssl/server.cpp | 143 - .../cpp11/timeouts/async_tcp_client.cpp | 311 - .../cpp11/timeouts/blocking_tcp_client.cpp | 192 - .../timeouts/blocking_token_tcp_client.cpp | 193 - .../cpp11/timeouts/blocking_udp_client.cpp | 155 - .../src/examples/cpp11/timeouts/server.cpp | 433 - .../examples/cpp11/timers/time_t_timer.cpp | 106 - .../asio/src/examples/cpp14/Makefile.am | 48 - .../asio/src/examples/cpp14/Makefile.in | 908 - .../cpp14/echo/async_tcp_echo_server.cpp | 117 - .../cpp14/echo/async_udp_echo_server.cpp | 83 - .../cpp14/echo/blocking_tcp_echo_client.cpp | 55 - .../cpp14/echo/blocking_tcp_echo_server.cpp | 77 - .../cpp14/echo/blocking_udp_echo_client.cpp | 59 - .../cpp14/echo/blocking_udp_echo_server.cpp | 53 - .../src/examples/cpp14/executors/actor.cpp | 281 - .../src/examples/cpp14/executors/async_1.cpp | 47 - .../src/examples/cpp14/executors/async_2.cpp | 68 - .../cpp14/executors/bank_account_1.cpp | 54 - .../cpp14/executors/bank_account_2.cpp | 53 - .../examples/cpp14/executors/fork_join.cpp | 327 - .../src/examples/cpp14/executors/pipeline.cpp | 294 - .../cpp14/executors/priority_scheduler.cpp | 167 - .../examples/cpp14/iostreams/http_client.cpp | 91 - .../asio/src/examples/cpp17/Makefile.am | 9 - .../asio/src/examples/cpp17/Makefile.in | 423 - .../cpp17/coroutines_ts/chat_server.cpp | 224 - .../double_buffered_echo_server.cpp | 97 - .../cpp17/coroutines_ts/echo_server.cpp | 82 - .../cpp17/coroutines_ts/range_based_for.cpp | 111 - .../coroutines_ts/refactored_echo_server.cpp | 91 - Sources/Vendor/asio/src/tests/Makefile.am | 446 - Sources/Vendor/asio/src/tests/Makefile.in | 4580 ---- .../asio/src/tests/latency/allocator.hpp | 52 - .../asio/src/tests/latency/high_res_clock.hpp | 53 - .../asio/src/tests/latency/tcp_client.cpp | 124 - .../asio/src/tests/latency/tcp_server.cpp | 114 - .../asio/src/tests/latency/udp_client.cpp | 104 - .../asio/src/tests/latency/udp_server.cpp | 125 - .../asio/src/tests/performance/client.cpp | 286 - .../tests/performance/handler_allocator.hpp | 112 - .../asio/src/tests/performance/server.cpp | 233 - .../src/tests/unit/archetypes/async_ops.hpp | 415 - .../tests/unit/archetypes/async_result.hpp | 78 - .../unit/archetypes/deprecated_async_ops.hpp | 345 - .../archetypes/deprecated_async_result.hpp | 82 - .../archetypes/gettable_socket_option.hpp | 54 - .../unit/archetypes/io_control_command.hpp | 32 - .../archetypes/settable_socket_option.hpp | 49 - .../src/tests/unit/associated_allocator.cpp | 25 - .../src/tests/unit/associated_executor.cpp | 25 - .../asio/src/tests/unit/async_result.cpp | 25 - .../src/tests/unit/basic_datagram_socket.cpp | 25 - .../src/tests/unit/basic_deadline_timer.cpp | 25 - .../asio/src/tests/unit/basic_raw_socket.cpp | 25 - .../tests/unit/basic_seq_packet_socket.cpp | 25 - .../asio/src/tests/unit/basic_serial_port.cpp | 26 - .../asio/src/tests/unit/basic_signal_set.cpp | 25 - .../src/tests/unit/basic_socket_acceptor.cpp | 25 - .../src/tests/unit/basic_stream_socket.cpp | 25 - .../asio/src/tests/unit/basic_streambuf.cpp | 25 - .../src/tests/unit/basic_waitable_timer.cpp | 25 - .../asio/src/tests/unit/bind_executor.cpp | 25 - Sources/Vendor/asio/src/tests/unit/buffer.cpp | 565 - .../src/tests/unit/buffered_read_stream.cpp | 346 - .../asio/src/tests/unit/buffered_stream.cpp | 372 - .../src/tests/unit/buffered_write_stream.cpp | 361 - .../asio/src/tests/unit/buffers_iterator.cpp | 292 - .../src/tests/unit/completion_condition.cpp | 25 - .../Vendor/asio/src/tests/unit/connect.cpp | 1190 - .../Vendor/asio/src/tests/unit/coroutine.cpp | 112 - .../tests/unit/datagram_socket_service.cpp | 25 - .../asio/src/tests/unit/deadline_timer.cpp | 392 - .../src/tests/unit/deadline_timer_service.cpp | 25 - Sources/Vendor/asio/src/tests/unit/defer.cpp | 25 - .../Vendor/asio/src/tests/unit/dispatch.cpp | 25 - Sources/Vendor/asio/src/tests/unit/error.cpp | 89 - .../asio/src/tests/unit/execution_context.cpp | 25 - .../Vendor/asio/src/tests/unit/executor.cpp | 25 - .../src/tests/unit/executor_work_guard.cpp | 25 - .../src/tests/unit/generic/basic_endpoint.cpp | 25 - .../tests/unit/generic/datagram_protocol.cpp | 267 - .../src/tests/unit/generic/raw_protocol.cpp | 267 - .../unit/generic/seq_packet_protocol.cpp | 209 - .../tests/unit/generic/stream_protocol.cpp | 252 - .../src/tests/unit/high_resolution_timer.cpp | 30 - .../Vendor/asio/src/tests/unit/io_context.cpp | 362 - .../Vendor/asio/src/tests/unit/ip/address.cpp | 144 - .../asio/src/tests/unit/ip/address_v4.cpp | 324 - .../src/tests/unit/ip/address_v4_iterator.cpp | 27 - .../src/tests/unit/ip/address_v4_range.cpp | 27 - .../asio/src/tests/unit/ip/address_v6.cpp | 409 - .../src/tests/unit/ip/address_v6_iterator.cpp | 27 - .../src/tests/unit/ip/address_v6_range.cpp | 27 - .../asio/src/tests/unit/ip/basic_endpoint.cpp | 25 - .../asio/src/tests/unit/ip/basic_resolver.cpp | 25 - .../tests/unit/ip/basic_resolver_entry.cpp | 25 - .../tests/unit/ip/basic_resolver_iterator.cpp | 25 - .../tests/unit/ip/basic_resolver_query.cpp | 25 - .../asio/src/tests/unit/ip/host_name.cpp | 55 - .../Vendor/asio/src/tests/unit/ip/icmp.cpp | 687 - .../asio/src/tests/unit/ip/multicast.cpp | 363 - .../asio/src/tests/unit/ip/network_v4.cpp | 314 - .../asio/src/tests/unit/ip/network_v6.cpp | 238 - .../src/tests/unit/ip/resolver_query_base.cpp | 25 - .../src/tests/unit/ip/resolver_service.cpp | 25 - Sources/Vendor/asio/src/tests/unit/ip/tcp.cpp | 1410 -- Sources/Vendor/asio/src/tests/unit/ip/udp.cpp | 786 - .../Vendor/asio/src/tests/unit/ip/unicast.cpp | 171 - .../Vendor/asio/src/tests/unit/ip/v6_only.cpp | 135 - .../asio/src/tests/unit/is_read_buffered.cpp | 129 - .../asio/src/tests/unit/is_write_buffered.cpp | 129 - .../src/tests/unit/local/basic_endpoint.cpp | 25 - .../src/tests/unit/local/connect_pair.cpp | 76 - .../tests/unit/local/datagram_protocol.cpp | 236 - .../src/tests/unit/local/stream_protocol.cpp | 213 - .../asio/src/tests/unit/packaged_task.cpp | 25 - .../asio/src/tests/unit/placeholders.cpp | 25 - .../src/tests/unit/posix/basic_descriptor.cpp | 25 - .../unit/posix/basic_stream_descriptor.cpp | 25 - .../asio/src/tests/unit/posix/descriptor.cpp | 25 - .../src/tests/unit/posix/descriptor_base.cpp | 25 - .../tests/unit/posix/stream_descriptor.cpp | 185 - .../unit/posix/stream_descriptor_service.cpp | 25 - Sources/Vendor/asio/src/tests/unit/post.cpp | 25 - .../src/tests/unit/raw_socket_service.cpp | 25 - Sources/Vendor/asio/src/tests/unit/read.cpp | 3933 --- .../Vendor/asio/src/tests/unit/read_at.cpp | 7493 ------ .../Vendor/asio/src/tests/unit/read_until.cpp | 887 - .../tests/unit/seq_packet_socket_service.cpp | 25 - .../asio/src/tests/unit/serial_port.cpp | 171 - .../asio/src/tests/unit/serial_port_base.cpp | 99 - .../src/tests/unit/serial_port_service.cpp | 26 - .../Vendor/asio/src/tests/unit/signal_set.cpp | 97 - .../src/tests/unit/signal_set_service.cpp | 25 - .../tests/unit/socket_acceptor_service.cpp | 25 - .../asio/src/tests/unit/socket_base.cpp | 650 - .../asio/src/tests/unit/ssl/context.cpp | 25 - .../asio/src/tests/unit/ssl/context_base.cpp | 25 - .../Vendor/asio/src/tests/unit/ssl/error.cpp | 25 - .../tests/unit/ssl/rfc2818_verification.cpp | 25 - .../Vendor/asio/src/tests/unit/ssl/stream.cpp | 199 - .../asio/src/tests/unit/ssl/stream_base.cpp | 25 - .../asio/src/tests/unit/steady_timer.cpp | 30 - Sources/Vendor/asio/src/tests/unit/strand.cpp | 325 - .../src/tests/unit/stream_socket_service.cpp | 25 - .../Vendor/asio/src/tests/unit/streambuf.cpp | 62 - .../asio/src/tests/unit/system_context.cpp | 30 - .../asio/src/tests/unit/system_executor.cpp | 30 - .../asio/src/tests/unit/system_timer.cpp | 400 - Sources/Vendor/asio/src/tests/unit/thread.cpp | 25 - .../asio/src/tests/unit/time_traits.cpp | 25 - .../Vendor/asio/src/tests/unit/ts/buffer.cpp | 30 - .../asio/src/tests/unit/ts/executor.cpp | 30 - .../asio/src/tests/unit/ts/internet.cpp | 30 - .../asio/src/tests/unit/ts/io_context.cpp | 30 - Sources/Vendor/asio/src/tests/unit/ts/net.cpp | 30 - .../Vendor/asio/src/tests/unit/ts/netfwd.cpp | 33 - .../Vendor/asio/src/tests/unit/ts/socket.cpp | 30 - .../Vendor/asio/src/tests/unit/ts/timer.cpp | 30 - .../Vendor/asio/src/tests/unit/unit_test.hpp | 175 - .../Vendor/asio/src/tests/unit/use_future.cpp | 1346 - .../asio/src/tests/unit/uses_executor.cpp | 25 - .../asio/src/tests/unit/wait_traits.cpp | 25 - .../src/tests/unit/waitable_timer_service.cpp | 25 - .../src/tests/unit/windows/basic_handle.cpp | 26 - .../unit/windows/basic_object_handle.cpp | 26 - .../windows/basic_random_access_handle.cpp | 26 - .../unit/windows/basic_stream_handle.cpp | 26 - .../src/tests/unit/windows/object_handle.cpp | 126 - .../unit/windows/object_handle_service.cpp | 26 - .../tests/unit/windows/overlapped_handle.cpp | 26 - .../src/tests/unit/windows/overlapped_ptr.cpp | 95 - .../unit/windows/random_access_handle.cpp | 151 - .../windows/random_access_handle_service.cpp | 26 - .../src/tests/unit/windows/stream_handle.cpp | 144 - .../unit/windows/stream_handle_service.cpp | 26 - Sources/Vendor/asio/src/tests/unit/write.cpp | 3928 --- .../Vendor/asio/src/tests/unit/write_at.cpp | 7554 ------ Sources/Vendor/asio/src/tools/handlerviz.pl | 299 - Sources/Vendor/asio/test-driver | 148 - Sources/Vendor/json/ChangeLog.md | 1404 -- Sources/Vendor/json/LICENSE.MIT | 21 - Sources/Vendor/json/README.md | 1293 - Sources/Vendor/json/doc/Doxyfile | 331 - Sources/Vendor/json/doc/Makefile | 88 - Sources/Vendor/json/doc/avatars.png | Bin 831937 -> 0 bytes Sources/Vendor/json/doc/binary_formats.md | 171 - Sources/Vendor/json/doc/css/mylayout.css | 26 - .../Vendor/json/doc/css/mylayout_docset.css | 27 - Sources/Vendor/json/doc/examples/README.cpp | 39 - Sources/Vendor/json/doc/examples/README.link | 1 - .../Vendor/json/doc/examples/README.output | 27 - Sources/Vendor/json/doc/examples/array.cpp | 19 - Sources/Vendor/json/doc/examples/array.link | 1 - Sources/Vendor/json/doc/examples/array.output | 4 - .../doc/examples/at__object_t_key_type.cpp | 48 - .../doc/examples/at__object_t_key_type.link | 1 - .../doc/examples/at__object_t_key_type.output | 4 - .../examples/at__object_t_key_type_const.cpp | 42 - .../examples/at__object_t_key_type_const.link | 1 - .../at__object_t_key_type_const.output | 3 - .../json/doc/examples/at__size_type.cpp | 43 - .../json/doc/examples/at__size_type.link | 1 - .../json/doc/examples/at__size_type.output | 4 - .../json/doc/examples/at__size_type_const.cpp | 37 - .../doc/examples/at__size_type_const.link | 1 - .../doc/examples/at__size_type_const.output | 3 - .../json/doc/examples/at_json_pointer.cpp | 103 - .../json/doc/examples/at_json_pointer.link | 1 - .../json/doc/examples/at_json_pointer.output | 12 - .../doc/examples/at_json_pointer_const.cpp | 79 - .../doc/examples/at_json_pointer_const.link | 1 - .../doc/examples/at_json_pointer_const.output | 9 - Sources/Vendor/json/doc/examples/back.cpp | 38 - Sources/Vendor/json/doc/examples/back.link | 1 - Sources/Vendor/json/doc/examples/back.output | 7 - .../examples/basic_json__CompatibleType.cpp | 218 - .../examples/basic_json__CompatibleType.link | 1 - .../basic_json__CompatibleType.output | 39 - .../examples/basic_json__InputIt_InputIt.cpp | 32 - .../examples/basic_json__InputIt_InputIt.link | 1 - .../basic_json__InputIt_InputIt.output | 4 - .../doc/examples/basic_json__basic_json.cpp | 17 - .../doc/examples/basic_json__basic_json.link | 1 - .../examples/basic_json__basic_json.output | 2 - .../examples/basic_json__copyassignment.cpp | 18 - .../examples/basic_json__copyassignment.link | 1 - .../basic_json__copyassignment.output | 2 - .../doc/examples/basic_json__list_init_t.cpp | 21 - .../doc/examples/basic_json__list_init_t.link | 1 - .../examples/basic_json__list_init_t.output | 5 - .../examples/basic_json__moveconstructor.cpp | 17 - .../examples/basic_json__moveconstructor.link | 1 - .../basic_json__moveconstructor.output | 2 - .../doc/examples/basic_json__nullptr_t.cpp | 16 - .../doc/examples/basic_json__nullptr_t.link | 1 - .../doc/examples/basic_json__nullptr_t.output | 2 - .../basic_json__size_type_basic_json.cpp | 18 - .../basic_json__size_type_basic_json.link | 1 - .../basic_json__size_type_basic_json.output | 3 - .../json/doc/examples/basic_json__value.cpp | 30 - .../json/doc/examples/basic_json__value.link | 1 - .../doc/examples/basic_json__value.output | 1 - .../doc/examples/basic_json__value_ptr.cpp | 30 - .../doc/examples/basic_json__value_ptr.link | 1 - .../doc/examples/basic_json__value_ptr.output | 1 - .../json/doc/examples/basic_json__value_t.cpp | 25 - .../doc/examples/basic_json__value_t.link | 1 - .../doc/examples/basic_json__value_t.output | 7 - Sources/Vendor/json/doc/examples/begin.cpp | 16 - Sources/Vendor/json/doc/examples/begin.link | 1 - Sources/Vendor/json/doc/examples/begin.output | 1 - Sources/Vendor/json/doc/examples/cbegin.cpp | 16 - Sources/Vendor/json/doc/examples/cbegin.link | 1 - .../Vendor/json/doc/examples/cbegin.output | 1 - Sources/Vendor/json/doc/examples/cend.cpp | 19 - Sources/Vendor/json/doc/examples/cend.link | 1 - Sources/Vendor/json/doc/examples/cend.output | 1 - Sources/Vendor/json/doc/examples/clear.cpp | 34 - Sources/Vendor/json/doc/examples/clear.link | 1 - Sources/Vendor/json/doc/examples/clear.output | 7 - Sources/Vendor/json/doc/examples/count.cpp | 18 - Sources/Vendor/json/doc/examples/count.link | 1 - Sources/Vendor/json/doc/examples/count.output | 2 - Sources/Vendor/json/doc/examples/crbegin.cpp | 16 - Sources/Vendor/json/doc/examples/crbegin.link | 1 - .../Vendor/json/doc/examples/crbegin.output | 1 - Sources/Vendor/json/doc/examples/crend.cpp | 19 - Sources/Vendor/json/doc/examples/crend.link | 1 - Sources/Vendor/json/doc/examples/crend.output | 1 - Sources/Vendor/json/doc/examples/diff.cpp | 36 - Sources/Vendor/json/doc/examples/diff.link | 1 - Sources/Vendor/json/doc/examples/diff.output | 25 - Sources/Vendor/json/doc/examples/dump.cpp | 48 - Sources/Vendor/json/doc/examples/dump.link | 1 - Sources/Vendor/json/doc/examples/dump.output | 55 - Sources/Vendor/json/doc/examples/emplace.cpp | 31 - Sources/Vendor/json/doc/examples/emplace.link | 1 - .../Vendor/json/doc/examples/emplace.output | 6 - .../Vendor/json/doc/examples/emplace_back.cpp | 24 - .../json/doc/examples/emplace_back.link | 1 - .../json/doc/examples/emplace_back.output | 4 - Sources/Vendor/json/doc/examples/empty.cpp | 30 - Sources/Vendor/json/doc/examples/empty.link | 1 - Sources/Vendor/json/doc/examples/empty.output | 9 - Sources/Vendor/json/doc/examples/end.cpp | 19 - Sources/Vendor/json/doc/examples/end.link | 1 - Sources/Vendor/json/doc/examples/end.output | 1 - .../json/doc/examples/erase__IteratorType.cpp | 31 - .../doc/examples/erase__IteratorType.link | 1 - .../doc/examples/erase__IteratorType.output | 6 - .../erase__IteratorType_IteratorType.cpp | 31 - .../erase__IteratorType_IteratorType.link | 1 - .../erase__IteratorType_IteratorType.output | 6 - .../json/doc/examples/erase__key_type.cpp | 18 - .../json/doc/examples/erase__key_type.link | 1 - .../json/doc/examples/erase__key_type.output | 2 - .../json/doc/examples/erase__size_type.cpp | 16 - .../json/doc/examples/erase__size_type.link | 1 - .../json/doc/examples/erase__size_type.output | 1 - .../Vendor/json/doc/examples/exception.cpp | 20 - .../Vendor/json/doc/examples/exception.link | 1 - .../Vendor/json/doc/examples/exception.output | 2 - .../json/doc/examples/find__key_type.cpp | 20 - .../json/doc/examples/find__key_type.link | 1 - .../json/doc/examples/find__key_type.output | 3 - Sources/Vendor/json/doc/examples/flatten.cpp | 32 - Sources/Vendor/json/doc/examples/flatten.link | 1 - .../Vendor/json/doc/examples/flatten.output | 12 - .../Vendor/json/doc/examples/from_bson.cpp | 21 - .../Vendor/json/doc/examples/from_bson.link | 1 - .../Vendor/json/doc/examples/from_bson.output | 4 - .../Vendor/json/doc/examples/from_cbor.cpp | 20 - .../Vendor/json/doc/examples/from_cbor.link | 1 - .../Vendor/json/doc/examples/from_cbor.output | 4 - .../Vendor/json/doc/examples/from_msgpack.cpp | 20 - .../json/doc/examples/from_msgpack.link | 1 - .../json/doc/examples/from_msgpack.output | 4 - .../Vendor/json/doc/examples/from_ubjson.cpp | 20 - .../Vendor/json/doc/examples/from_ubjson.link | 1 - .../json/doc/examples/from_ubjson.output | 4 - Sources/Vendor/json/doc/examples/front.cpp | 29 - Sources/Vendor/json/doc/examples/front.link | 1 - Sources/Vendor/json/doc/examples/front.output | 6 - .../json/doc/examples/get__PointerType.cpp | 21 - .../json/doc/examples/get__PointerType.link | 1 - .../json/doc/examples/get__PointerType.output | 2 - .../doc/examples/get__ValueType_const.cpp | 50 - .../doc/examples/get__ValueType_const.link | 1 - .../doc/examples/get__ValueType_const.output | 11 - Sources/Vendor/json/doc/examples/get_ptr.cpp | 21 - Sources/Vendor/json/doc/examples/get_ptr.link | 1 - .../Vendor/json/doc/examples/get_ptr.output | 2 - Sources/Vendor/json/doc/examples/get_ref.cpp | 27 - Sources/Vendor/json/doc/examples/get_ref.link | 1 - .../Vendor/json/doc/examples/get_ref.output | 2 - Sources/Vendor/json/doc/examples/get_to.cpp | 60 - Sources/Vendor/json/doc/examples/get_to.link | 1 - .../Vendor/json/doc/examples/get_to.output | 11 - Sources/Vendor/json/doc/examples/insert.cpp | 17 - Sources/Vendor/json/doc/examples/insert.link | 1 - .../Vendor/json/doc/examples/insert.output | 2 - .../json/doc/examples/insert__count.cpp | 17 - .../json/doc/examples/insert__count.link | 1 - .../json/doc/examples/insert__count.output | 2 - .../json/doc/examples/insert__ilist.cpp | 17 - .../json/doc/examples/insert__ilist.link | 1 - .../json/doc/examples/insert__ilist.output | 2 - .../json/doc/examples/insert__range.cpp | 20 - .../json/doc/examples/insert__range.link | 1 - .../json/doc/examples/insert__range.output | 2 - .../doc/examples/insert__range_object.cpp | 21 - .../doc/examples/insert__range_object.link | 1 - .../doc/examples/insert__range_object.output | 3 - .../json/doc/examples/invalid_iterator.cpp | 21 - .../json/doc/examples/invalid_iterator.link | 1 - .../json/doc/examples/invalid_iterator.output | 2 - Sources/Vendor/json/doc/examples/is_array.cpp | 28 - .../Vendor/json/doc/examples/is_array.link | 1 - .../Vendor/json/doc/examples/is_array.output | 8 - .../Vendor/json/doc/examples/is_boolean.cpp | 28 - .../Vendor/json/doc/examples/is_boolean.link | 1 - .../json/doc/examples/is_boolean.output | 8 - .../Vendor/json/doc/examples/is_discarded.cpp | 28 - .../json/doc/examples/is_discarded.link | 1 - .../json/doc/examples/is_discarded.output | 8 - Sources/Vendor/json/doc/examples/is_null.cpp | 28 - Sources/Vendor/json/doc/examples/is_null.link | 1 - .../Vendor/json/doc/examples/is_null.output | 8 - .../Vendor/json/doc/examples/is_number.cpp | 28 - .../Vendor/json/doc/examples/is_number.link | 1 - .../Vendor/json/doc/examples/is_number.output | 8 - .../json/doc/examples/is_number_float.cpp | 28 - .../json/doc/examples/is_number_float.link | 1 - .../json/doc/examples/is_number_float.output | 8 - .../json/doc/examples/is_number_integer.cpp | 28 - .../json/doc/examples/is_number_integer.link | 1 - .../doc/examples/is_number_integer.output | 8 - .../json/doc/examples/is_number_unsigned.cpp | 28 - .../json/doc/examples/is_number_unsigned.link | 1 - .../doc/examples/is_number_unsigned.output | 8 - .../Vendor/json/doc/examples/is_object.cpp | 28 - .../Vendor/json/doc/examples/is_object.link | 1 - .../Vendor/json/doc/examples/is_object.output | 8 - .../Vendor/json/doc/examples/is_primitive.cpp | 28 - .../json/doc/examples/is_primitive.link | 1 - .../json/doc/examples/is_primitive.output | 8 - .../Vendor/json/doc/examples/is_string.cpp | 28 - .../Vendor/json/doc/examples/is_string.link | 1 - .../Vendor/json/doc/examples/is_string.output | 8 - .../json/doc/examples/is_structured.cpp | 28 - .../json/doc/examples/is_structured.link | 1 - .../json/doc/examples/is_structured.output | 8 - Sources/Vendor/json/doc/examples/items.cpp | 23 - Sources/Vendor/json/doc/examples/items.link | 1 - Sources/Vendor/json/doc/examples/items.output | 7 - .../json/doc/examples/iterator_wrapper.cpp | 23 - .../json/doc/examples/iterator_wrapper.link | 1 - .../json/doc/examples/iterator_wrapper.output | 7 - .../Vendor/json/doc/examples/json_pointer.cpp | 47 - .../json/doc/examples/json_pointer.link | 1 - .../json/doc/examples/json_pointer.output | 3 - .../doc/examples/json_pointer__to_string.cpp | 35 - .../doc/examples/json_pointer__to_string.link | 1 - .../examples/json_pointer__to_string.output | 12 - Sources/Vendor/json/doc/examples/max_size.cpp | 25 - .../Vendor/json/doc/examples/max_size.link | 1 - .../Vendor/json/doc/examples/max_size.output | 7 - .../Vendor/json/doc/examples/merge_patch.cpp | 40 - .../Vendor/json/doc/examples/merge_patch.link | 1 - .../json/doc/examples/merge_patch.output | 11 - Sources/Vendor/json/doc/examples/meta.cpp | 11 - Sources/Vendor/json/doc/examples/meta.link | 1 - Sources/Vendor/json/doc/examples/meta.output | 17 - Sources/Vendor/json/doc/examples/object.cpp | 28 - Sources/Vendor/json/doc/examples/object.link | 1 - .../Vendor/json/doc/examples/object.output | 4 - .../json/doc/examples/operator__ValueType.cpp | 60 - .../doc/examples/operator__ValueType.link | 1 - .../doc/examples/operator__ValueType.output | 12 - .../json/doc/examples/operator__equal.cpp | 24 - .../json/doc/examples/operator__equal.link | 1 - .../json/doc/examples/operator__equal.output | 4 - .../examples/operator__equal__nullptr_t.cpp | 22 - .../examples/operator__equal__nullptr_t.link | 1 - .../operator__equal__nullptr_t.output | 5 - .../json/doc/examples/operator__greater.cpp | 24 - .../json/doc/examples/operator__greater.link | 1 - .../doc/examples/operator__greater.output | 4 - .../doc/examples/operator__greaterequal.cpp | 24 - .../doc/examples/operator__greaterequal.link | 1 - .../examples/operator__greaterequal.output | 4 - .../json/doc/examples/operator__less.cpp | 24 - .../json/doc/examples/operator__less.link | 1 - .../json/doc/examples/operator__less.output | 4 - .../json/doc/examples/operator__lessequal.cpp | 24 - .../doc/examples/operator__lessequal.link | 1 - .../doc/examples/operator__lessequal.output | 4 - .../json/doc/examples/operator__notequal.cpp | 24 - .../json/doc/examples/operator__notequal.link | 1 - .../doc/examples/operator__notequal.output | 4 - .../operator__notequal__nullptr_t.cpp | 22 - .../operator__notequal__nullptr_t.link | 1 - .../operator__notequal__nullptr_t.output | 5 - .../json/doc/examples/operator__value_t.cpp | 38 - .../json/doc/examples/operator__value_t.link | 1 - .../doc/examples/operator__value_t.output | 8 - .../doc/examples/operator_deserialize.cpp | 26 - .../doc/examples/operator_deserialize.link | 1 - .../doc/examples/operator_deserialize.output | 13 - .../json/doc/examples/operator_serialize.cpp | 21 - .../json/doc/examples/operator_serialize.link | 1 - .../doc/examples/operator_serialize.output | 22 - .../doc/examples/operatorarray__key_type.cpp | 32 - .../doc/examples/operatorarray__key_type.link | 1 - .../examples/operatorarray__key_type.output | 19 - .../operatorarray__key_type_const.cpp | 16 - .../operatorarray__key_type_const.link | 1 - .../operatorarray__key_type_const.output | 1 - .../doc/examples/operatorarray__size_type.cpp | 25 - .../examples/operatorarray__size_type.link | 1 - .../examples/operatorarray__size_type.output | 3 - .../operatorarray__size_type_const.cpp | 13 - .../operatorarray__size_type_const.link | 1 - .../operatorarray__size_type_const.output | 1 - .../doc/examples/operatorjson_pointer.cpp | 48 - .../doc/examples/operatorjson_pointer.link | 1 - .../doc/examples/operatorjson_pointer.output | 8 - .../examples/operatorjson_pointer_const.cpp | 24 - .../examples/operatorjson_pointer_const.link | 1 - .../operatorjson_pointer_const.output | 4 - .../Vendor/json/doc/examples/other_error.cpp | 29 - .../Vendor/json/doc/examples/other_error.link | 1 - .../json/doc/examples/other_error.output | 2 - .../Vendor/json/doc/examples/out_of_range.cpp | 20 - .../json/doc/examples/out_of_range.link | 1 - .../json/doc/examples/out_of_range.output | 2 - .../parse__array__parser_callback_t.cpp | 30 - .../parse__array__parser_callback_t.link | 1 - .../parse__array__parser_callback_t.output | 20 - ...contiguouscontainer__parser_callback_t.cpp | 15 - ...ontiguouscontainer__parser_callback_t.link | 1 - ...tiguouscontainer__parser_callback_t.output | 6 - .../parse__istream__parser_callback_t.cpp | 58 - .../parse__istream__parser_callback_t.link | 1 - .../parse__istream__parser_callback_t.output | 34 - ...parse__iteratortype__parser_callback_t.cpp | 15 - ...arse__iteratortype__parser_callback_t.link | 1 - ...se__iteratortype__parser_callback_t.output | 6 - .../parse__string__parser_callback_t.cpp | 49 - .../parse__string__parser_callback_t.link | 1 - .../parse__string__parser_callback_t.output | 34 - .../Vendor/json/doc/examples/parse_error.cpp | 20 - .../Vendor/json/doc/examples/parse_error.link | 1 - .../json/doc/examples/parse_error.output | 3 - Sources/Vendor/json/doc/examples/patch.cpp | 32 - Sources/Vendor/json/doc/examples/patch.link | 1 - Sources/Vendor/json/doc/examples/patch.output | 11 - .../Vendor/json/doc/examples/push_back.cpp | 25 - .../Vendor/json/doc/examples/push_back.link | 1 - .../Vendor/json/doc/examples/push_back.output | 4 - .../examples/push_back__initializer_list.cpp | 27 - .../examples/push_back__initializer_list.link | 1 - .../push_back__initializer_list.output | 4 - .../examples/push_back__object_t__value.cpp | 25 - .../examples/push_back__object_t__value.link | 1 - .../push_back__object_t__value.output | 4 - Sources/Vendor/json/doc/examples/rbegin.cpp | 16 - Sources/Vendor/json/doc/examples/rbegin.link | 1 - .../Vendor/json/doc/examples/rbegin.output | 1 - Sources/Vendor/json/doc/examples/rend.cpp | 19 - Sources/Vendor/json/doc/examples/rend.link | 1 - Sources/Vendor/json/doc/examples/rend.output | 1 - .../Vendor/json/doc/examples/sax_parse.cpp | 124 - .../Vendor/json/doc/examples/sax_parse.link | 1 - .../Vendor/json/doc/examples/sax_parse.output | 2 - Sources/Vendor/json/doc/examples/size.cpp | 29 - Sources/Vendor/json/doc/examples/size.link | 1 - Sources/Vendor/json/doc/examples/size.output | 9 - .../json/doc/examples/swap__array_t.cpp | 20 - .../json/doc/examples/swap__array_t.link | 1 - .../json/doc/examples/swap__array_t.output | 2 - .../json/doc/examples/swap__object_t.cpp | 20 - .../json/doc/examples/swap__object_t.link | 1 - .../json/doc/examples/swap__object_t.output | 2 - .../json/doc/examples/swap__reference.cpp | 18 - .../json/doc/examples/swap__reference.link | 1 - .../json/doc/examples/swap__reference.output | 2 - .../json/doc/examples/swap__string_t.cpp | 20 - .../json/doc/examples/swap__string_t.link | 1 - .../json/doc/examples/swap__string_t.output | 2 - Sources/Vendor/json/doc/examples/to_bson.cpp | 21 - Sources/Vendor/json/doc/examples/to_bson.link | 1 - .../Vendor/json/doc/examples/to_bson.output | 1 - Sources/Vendor/json/doc/examples/to_cbor.cpp | 21 - Sources/Vendor/json/doc/examples/to_cbor.link | 1 - .../Vendor/json/doc/examples/to_cbor.output | 1 - .../Vendor/json/doc/examples/to_msgpack.cpp | 21 - .../Vendor/json/doc/examples/to_msgpack.link | 1 - .../json/doc/examples/to_msgpack.output | 1 - .../Vendor/json/doc/examples/to_ubjson.cpp | 63 - .../Vendor/json/doc/examples/to_ubjson.link | 1 - .../Vendor/json/doc/examples/to_ubjson.output | 4 - Sources/Vendor/json/doc/examples/type.cpp | 28 - Sources/Vendor/json/doc/examples/type.link | 1 - Sources/Vendor/json/doc/examples/type.output | 8 - .../Vendor/json/doc/examples/type_error.cpp | 20 - .../Vendor/json/doc/examples/type_error.link | 1 - .../json/doc/examples/type_error.output | 2 - .../Vendor/json/doc/examples/type_name.cpp | 27 - .../Vendor/json/doc/examples/type_name.link | 1 - .../Vendor/json/doc/examples/type_name.output | 8 - .../Vendor/json/doc/examples/unflatten.cpp | 26 - .../Vendor/json/doc/examples/unflatten.link | 1 - .../Vendor/json/doc/examples/unflatten.output | 18 - Sources/Vendor/json/doc/examples/update.cpp | 18 - Sources/Vendor/json/doc/examples/update.link | 1 - .../Vendor/json/doc/examples/update.output | 5 - .../json/doc/examples/update__range.cpp | 18 - .../json/doc/examples/update__range.link | 1 - .../json/doc/examples/update__range.output | 5 - Sources/Vendor/json/doc/faq.md | 87 - Sources/Vendor/json/doc/images/binary.png | Bin 65897 -> 0 bytes .../json/doc/images/callback_events.png | Bin 46039 -> 0 bytes .../json/doc/images/range-begin-end.svg | 435 - .../json/doc/images/range-rbegin-rend.svg | 1232 - Sources/Vendor/json/doc/index.md | 309 - Sources/Vendor/json/doc/json.gif | Bin 1704104 -> 0 bytes .../json/doc/scripts/git-update-ghpages | 193 - .../json/doc/scripts/send_to_wandbox.py | 120 - Sources/Vendor/json/doc/usages/ios.png | Bin 208669 -> 0 bytes Sources/Vendor/json/doc/usages/macos.png | Bin 1305068 -> 0 bytes Sources/Vendor/json/src/json.hpp | 20406 ---------------- Sources/Vendor/websocketpp/CMakeLists.txt | 278 - Sources/Vendor/websocketpp/COPYING | 145 - Sources/Vendor/websocketpp/Doxyfile | 2355 -- Sources/Vendor/websocketpp/SConstruct | 285 - Sources/Vendor/websocketpp/changelog.md | 432 - .../websocketpp/cmake/CMakeHelpers.cmake | 109 - Sources/Vendor/websocketpp/docs/config.dox | 138 - Sources/Vendor/websocketpp/docs/faq.dox | 162 - .../websocketpp/docs/getting_started.dox | 27 - Sources/Vendor/websocketpp/docs/handlers.dox | 165 - Sources/Vendor/websocketpp/docs/logging.dox | 102 - Sources/Vendor/websocketpp/docs/manual.css | 22 - Sources/Vendor/websocketpp/docs/manual.dox | 23 - .../docs/simple_broadcast_server.cpp | 52 - .../docs/simple_count_server_thread.cpp | 65 - Sources/Vendor/websocketpp/docs/tutorials.dox | 10 - .../associative_storage/CMakeLists.txt | 12 - .../associative_storage.cpp | 88 - .../examples/broadcast_server/CMakeLists.txt | 12 - .../examples/broadcast_server/SConscript | 23 - .../broadcast_server/broadcast_server.cpp | 160 - .../examples/debug_client/CMakeLists.txt | 17 - .../examples/debug_client/SConscript | 24 - .../examples/debug_client/debug_client.cpp | 167 - .../examples/debug_server/CMakeLists.txt | 12 - .../examples/debug_server/SConscript | 23 - .../examples/debug_server/debug_server.cpp | 174 - .../websocketpp/examples/dev/CMakeLists.txt | 12 - .../websocketpp/examples/dev/SConscript | 18 - .../Vendor/websocketpp/examples/dev/main.cpp | 200 - .../examples/echo_client/CMakeLists.txt | 12 - .../examples/echo_client/SConscript | 23 - .../examples/echo_client/echo_client.cpp | 97 - .../examples/echo_server/CMakeLists.txt | 12 - .../examples/echo_server/SConscript | 23 - .../examples/echo_server/echo_handler.hpp | 37 - .../examples/echo_server/echo_server.cpp | 65 - .../examples/echo_server_both/CMakeLists.txt | 18 - .../examples/echo_server_both/SConscript | 24 - .../echo_server_both/echo_server_both.cpp | 87 - .../examples/echo_server_both/server.pem | 58 - .../examples/echo_server_tls/CMakeLists.txt | 18 - .../examples/echo_server_tls/SConscript | 24 - .../examples/echo_server_tls/dh.pem | 8 - .../echo_server_tls/echo_server_tls.cpp | 154 - .../examples/echo_server_tls/server.pem | 57 - .../examples/enriched_storage/CMakeLists.txt | 12 - .../enriched_storage/enriched_storage.cpp | 87 - .../external_io_service/CMakeLists.txt | 12 - .../examples/external_io_service/SConscript | 23 - .../external_io_service.cpp | 85 - .../external_io_service/tcp_echo_server.hpp | 97 - .../examples/handler_switch/CMakeLists.txt | 12 - .../handler_switch/handler_switch.cpp | 42 - .../examples/iostream_server/CMakeLists.txt | 12 - .../examples/iostream_server/SConscript | 23 - .../iostream_server/iostream_server.cpp | 89 - .../examples/print_client/CMakeLists.txt | 12 - .../examples/print_client/SConscript | 23 - .../examples/print_client/print_client.cpp | 78 - .../examples/print_client_tls/CMakeLists.txt | 17 - .../examples/print_client_tls/SConscript | 24 - .../print_client_tls/ca-chain.cert.pem | 66 - .../print_client_tls/print_client_tls.cpp | 249 - .../examples/print_server/CMakeLists.txt | 12 - .../examples/print_server/SConscript | 23 - .../examples/print_server/print_server.cpp | 24 - .../examples/scratch_client/SConscript | 24 - .../scratch_client/scratch_client.cpp | 270 - .../examples/scratch_server/SConscript | 24 - .../scratch_server/scratch_server.cpp | 106 - .../simple_broadcast_server/CMakeLists.txt | 12 - .../simple_broadcast_server.cpp | 51 - .../examples/sip_client/CMakeLists.txt | 12 - .../examples/sip_client/README.txt | 22 - .../examples/sip_client/SConscript | 23 - .../examples/sip_client/sip_client.cpp | 84 - .../subprotocol_server/CMakeLists.txt | 12 - .../examples/subprotocol_server/SConscript | 23 - .../subprotocol_server/subprotocol_server.cpp | 48 - .../examples/telemetry_client/CMakeLists.txt | 12 - .../examples/telemetry_client/SConscript | 23 - .../telemetry_client/telemetry_client.cpp | 167 - .../examples/telemetry_server/CMakeLists.txt | 12 - .../examples/telemetry_server/SConscript | 23 - .../examples/telemetry_server/index.html | 85 - .../telemetry_server/telemetry_server.cpp | 203 - .../examples/testee_client/CMakeLists.txt | 17 - .../examples/testee_client/SConscript | 23 - .../examples/testee_client/testee_client.cpp | 145 - .../examples/testee_server/CMakeLists.txt | 17 - .../examples/testee_server/SConscript | 23 - .../examples/testee_server/testee_server.cpp | 145 - .../examples/utility_client/CMakeLists.txt | 13 - .../examples/utility_client/SConscript | 23 - .../utility_client/utility_client.cpp | 325 - Sources/Vendor/websocketpp/readme.md | 49 - Sources/Vendor/websocketpp/roadmap.md | 43 - .../test/connection/CMakeLists.txt | 12 - .../websocketpp/test/connection/SConscript | 25 - .../test/connection/connection.cpp | 533 - .../test/connection/connection_tu2.cpp | 62 - .../test/connection/connection_tu2.hpp | 51 - .../websocketpp/test/endpoint/CMakeLists.txt | 17 - .../websocketpp/test/endpoint/SConscript | 24 - .../websocketpp/test/endpoint/endpoint.cpp | 158 - .../websocketpp/test/extension/CMakeLists.txt | 22 - .../websocketpp/test/extension/SConscript | 27 - .../websocketpp/test/extension/extension.cpp | 37 - .../test/extension/permessage_deflate.cpp | 752 - .../websocketpp/test/http/CMakeLists.txt | 11 - .../Vendor/websocketpp/test/http/SConscript | 23 - Sources/Vendor/websocketpp/test/http/a.out | Bin 120748 -> 0 bytes .../Vendor/websocketpp/test/http/parser.cpp | 1141 - .../websocketpp/test/http/parser_perf.cpp | 141 - Sources/Vendor/websocketpp/test/http/perf.out | Bin 60208 -> 0 bytes Sources/Vendor/websocketpp/test/http/test.out | Bin 1599720 -> 0 bytes .../websocketpp/test/logger/CMakeLists.txt | 12 - .../Vendor/websocketpp/test/logger/SConscript | 23 - .../Vendor/websocketpp/test/logger/basic.cpp | 145 - .../test/message_buffer/CMakeLists.txt | 17 - .../test/message_buffer/SConscript | 27 - .../websocketpp/test/message_buffer/alloc.cpp | 96 - .../test/message_buffer/message.cpp | 72 - .../websocketpp/test/message_buffer/pool.cpp | 156 - .../test/processors/CMakeLists.txt | 59 - .../websocketpp/test/processors/SConscript | 47 - .../extension_permessage_compress.cpp | 198 - .../websocketpp/test/processors/hybi00.cpp | 274 - .../websocketpp/test/processors/hybi07.cpp | 193 - .../websocketpp/test/processors/hybi08.cpp | 197 - .../websocketpp/test/processors/hybi13.cpp | 693 - .../websocketpp/test/processors/processor.cpp | 135 - .../websocketpp/test/random/CMakeLists.txt | 17 - .../Vendor/websocketpp/test/random/SConscript | 27 - .../Vendor/websocketpp/test/random/none.cpp | 40 - .../websocketpp/test/random/random_device.cpp | 50 - .../websocketpp/test/roles/CMakeLists.txt | 17 - .../Vendor/websocketpp/test/roles/SConscript | 27 - .../Vendor/websocketpp/test/roles/client.cpp | 194 - .../Vendor/websocketpp/test/roles/server.cpp | 247 - .../websocketpp/test/transport/CMakeLists.txt | 71 - .../websocketpp/test/transport/SConscript | 24 - .../test/transport/asio/SConscript | 32 - .../websocketpp/test/transport/asio/base.cpp | 49 - .../test/transport/asio/security.cpp | 69 - .../test/transport/asio/timers.cpp | 194 - .../websocketpp/test/transport/hybi_util.cpp | 98 - .../test/transport/integration.cpp | 651 - .../test/transport/iostream/SConscript | 31 - .../test/transport/iostream/base.cpp | 33 - .../test/transport/iostream/connection.cpp | 619 - .../test/transport/iostream/endpoint.cpp | 41 - .../websocketpp/test/utility/CMakeLists.txt | 53 - .../websocketpp/test/utility/SConscript | 40 - .../Vendor/websocketpp/test/utility/close.cpp | 124 - .../Vendor/websocketpp/test/utility/error.cpp | 54 - .../Vendor/websocketpp/test/utility/frame.cpp | 538 - .../Vendor/websocketpp/test/utility/sha1.cpp | 81 - .../Vendor/websocketpp/test/utility/uri.cpp | 246 - .../websocketpp/test/utility/utilities.cpp | 73 - .../broadcast_tutorial/broadcast_tutorial.md | 17 - .../tutorials/chat_tutorial/chat_tutorial.md | 13 - .../tutorials/utility_client/step1.cpp | 56 - .../tutorials/utility_client/step2.cpp | 61 - .../tutorials/utility_client/step3.cpp | 81 - .../tutorials/utility_client/step4.cpp | 202 - .../tutorials/utility_client/step5.cpp | 280 - .../tutorials/utility_client/step6.cpp | 335 - .../utility_client/utility_client.md | 862 - .../tutorials/utility_server/step1.cpp | 71 - .../tutorials/utility_server/step2.cpp | 82 - .../utility_server/utility_server.md | 181 - .../websocketpp/websocketpp-config.cmake.in | 14 - .../websocketpp/websocketpp/CMakeLists.txt | 2 - .../websocketpp/websocketpp/base64/base64.hpp | 178 - .../Vendor/websocketpp/websocketpp/client.hpp | 33 - .../Vendor/websocketpp/websocketpp/close.hpp | 353 - .../websocketpp/websocketpp/common/asio.hpp | 141 - .../websocketpp/common/asio_ssl.hpp | 39 - .../websocketpp/websocketpp/common/chrono.hpp | 68 - .../websocketpp/common/connection_hdl.hpp | 52 - .../websocketpp/websocketpp/common/cpp11.hpp | 162 - .../websocketpp/common/functional.hpp | 105 - .../websocketpp/websocketpp/common/md5.hpp | 448 - .../websocketpp/websocketpp/common/memory.hpp | 88 - .../websocketpp/common/network.hpp | 106 - .../websocketpp/common/platforms.hpp | 46 - .../websocketpp/websocketpp/common/random.hpp | 82 - .../websocketpp/websocketpp/common/regex.hpp | 59 - .../websocketpp/websocketpp/common/stdint.hpp | 73 - .../websocketpp/common/system_error.hpp | 84 - .../websocketpp/websocketpp/common/thread.hpp | 88 - .../websocketpp/websocketpp/common/time.hpp | 56 - .../websocketpp/common/type_traits.hpp | 65 - .../websocketpp/concurrency/basic.hpp | 46 - .../websocketpp/concurrency/none.hpp | 80 - .../websocketpp/websocketpp/config/asio.hpp | 77 - .../websocketpp/config/asio_client.hpp | 77 - .../websocketpp/config/asio_no_tls.hpp | 73 - .../websocketpp/config/asio_no_tls_client.hpp | 73 - .../websocketpp/config/boost_config.hpp | 72 - .../websocketpp/websocketpp/config/core.hpp | 297 - .../websocketpp/config/core_client.hpp | 294 - .../websocketpp/websocketpp/config/debug.hpp | 286 - .../websocketpp/config/debug_asio.hpp | 77 - .../websocketpp/config/debug_asio_no_tls.hpp | 73 - .../websocketpp/config/minimal_client.hpp | 72 - .../websocketpp/config/minimal_server.hpp | 312 - .../websocketpp/websocketpp/connection.hpp | 1642 -- .../websocketpp/connection_base.hpp | 38 - .../websocketpp/websocketpp/endpoint.hpp | 700 - .../websocketpp/websocketpp/endpoint_base.hpp | 38 - .../Vendor/websocketpp/websocketpp/error.hpp | 277 - .../websocketpp/extensions/extension.hpp | 102 - .../permessage_deflate/disabled.hpp | 129 - .../extensions/permessage_deflate/enabled.hpp | 817 - .../Vendor/websocketpp/websocketpp/frame.hpp | 864 - .../websocketpp/http/constants.hpp | 308 - .../websocketpp/http/impl/parser.hpp | 200 - .../websocketpp/http/impl/request.hpp | 191 - .../websocketpp/http/impl/response.hpp | 266 - .../websocketpp/websocketpp/http/parser.hpp | 629 - .../websocketpp/websocketpp/http/request.hpp | 124 - .../websocketpp/websocketpp/http/response.hpp | 188 - .../websocketpp/impl/connection_impl.hpp | 2375 -- .../websocketpp/impl/endpoint_impl.hpp | 269 - .../websocketpp/impl/utilities_impl.hpp | 87 - .../websocketpp/websocketpp/logger/basic.hpp | 199 - .../websocketpp/websocketpp/logger/levels.hpp | 203 - .../websocketpp/websocketpp/logger/stub.hpp | 119 - .../websocketpp/websocketpp/logger/syslog.hpp | 146 - .../websocketpp/message_buffer/alloc.hpp | 105 - .../websocketpp/message_buffer/message.hpp | 340 - .../websocketpp/message_buffer/pool.hpp | 229 - .../websocketpp/processors/base.hpp | 299 - .../websocketpp/processors/hybi00.hpp | 462 - .../websocketpp/processors/hybi07.hpp | 78 - .../websocketpp/processors/hybi08.hpp | 83 - .../websocketpp/processors/hybi13.hpp | 1078 - .../websocketpp/processors/processor.hpp | 407 - .../websocketpp/websocketpp/random/none.hpp | 60 - .../websocketpp/random/random_device.hpp | 80 - .../websocketpp/roles/client_endpoint.hpp | 173 - .../websocketpp/roles/server_endpoint.hpp | 195 - .../Vendor/websocketpp/websocketpp/server.hpp | 33 - .../websocketpp/websocketpp/sha1/sha1.hpp | 189 - .../websocketpp/transport/asio/base.hpp | 232 - .../websocketpp/transport/asio/connection.hpp | 1197 - .../websocketpp/transport/asio/endpoint.hpp | 1186 - .../transport/asio/security/base.hpp | 159 - .../transport/asio/security/none.hpp | 373 - .../transport/asio/security/tls.hpp | 475 - .../websocketpp/transport/base/connection.hpp | 238 - .../websocketpp/transport/base/endpoint.hpp | 77 - .../websocketpp/transport/debug/base.hpp | 104 - .../transport/debug/connection.hpp | 412 - .../websocketpp/transport/debug/endpoint.hpp | 140 - .../websocketpp/transport/iostream/base.hpp | 133 - .../transport/iostream/connection.hpp | 714 - .../transport/iostream/endpoint.hpp | 222 - .../websocketpp/transport/stub/base.hpp | 95 - .../websocketpp/transport/stub/connection.hpp | 286 - .../websocketpp/transport/stub/endpoint.hpp | 140 - .../Vendor/websocketpp/websocketpp/uri.hpp | 356 - .../websocketpp/utf8_validator.hpp | 154 - .../websocketpp/websocketpp/utilities.hpp | 180 - .../websocketpp/websocketpp/version.hpp | 61 - Sources/Windows/com.elgato.cpu.sdPlugin.sln | 25 - .../Windows/com.elgato.cpu.sdPlugin.vcxproj | 229 - Sources/Windows/pch.cpp | 25 - Sources/Windows/pch.h | 62 - Sources/com.elgato.cpu.sdPlugin/cpu | Bin 552672 -> 0 bytes Sources/com.elgato.cpu.sdPlugin/cpu.exe | Bin 556544 -> 0 bytes Sources/macOS/cpu.xcodeproj/project.pbxproj | 344 - Sources/macOS/pch.h | 53 - 4706 files changed, 571997 deletions(-) delete mode 100644 Release/com.elgato.cpu.streamDeckPlugin delete mode 100644 Sources/Common/EPLJSONUtils.h delete mode 100644 Sources/Common/ESDBasePlugin.h delete mode 100644 Sources/Common/ESDConnectionManager.cpp delete mode 100644 Sources/Common/ESDConnectionManager.h delete mode 100644 Sources/Common/ESDLocalizer.cpp delete mode 100644 Sources/Common/ESDLocalizer.h delete mode 100644 Sources/Common/ESDSDKDefines.h delete mode 100644 Sources/Common/ESDUtilities.h delete mode 100644 Sources/Common/ESDUtilitiesMac.cpp delete mode 100644 Sources/Common/ESDUtilitiesWindows.cpp delete mode 100644 Sources/Common/main.cpp delete mode 100644 Sources/Vendor/asio/COPYING delete mode 100644 Sources/Vendor/asio/INSTALL delete mode 100644 Sources/Vendor/asio/LICENSE_1_0.txt delete mode 100644 Sources/Vendor/asio/Makefile.am delete mode 100644 Sources/Vendor/asio/Makefile.in delete mode 100644 Sources/Vendor/asio/README delete mode 100644 Sources/Vendor/asio/aclocal.m4 delete mode 100755 Sources/Vendor/asio/compile delete mode 100755 Sources/Vendor/asio/config.guess delete mode 100755 Sources/Vendor/asio/config.sub delete mode 100755 Sources/Vendor/asio/configure delete mode 100644 Sources/Vendor/asio/configure.ac delete mode 100755 Sources/Vendor/asio/depcomp delete mode 100644 Sources/Vendor/asio/doc/asio.png delete mode 100644 Sources/Vendor/asio/doc/asio/examples.html delete mode 100644 Sources/Vendor/asio/doc/asio/examples/cpp03_examples.html delete mode 100644 Sources/Vendor/asio/doc/asio/examples/cpp11_examples.html delete mode 100644 Sources/Vendor/asio/doc/asio/examples/cpp17_examples.html delete mode 100644 Sources/Vendor/asio/doc/asio/history.html delete mode 100644 Sources/Vendor/asio/doc/asio/index.html delete mode 100644 Sources/Vendor/asio/doc/asio/net_ts.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core/allocation.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core/async.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core/basics.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core/buffers.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core/concurrency_hint.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core/coroutine.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core/coroutines_ts.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core/handler_tracking.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core/line_based.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core/reactor.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core/spawn.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core/strands.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core/streams.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/core/threads.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/cpp2011.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/cpp2011/array.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/cpp2011/atomic.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/cpp2011/chrono.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/cpp2011/futures.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/cpp2011/move_handlers.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/cpp2011/move_objects.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/cpp2011/shared_ptr.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/cpp2011/system_error.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/cpp2011/variadic.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/implementation.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/networking.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/networking/bsd_sockets.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/networking/iostreams.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/networking/other_protocols.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/networking/protocols.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/posix.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/posix/fork.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/posix/local.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/posix/stream_descriptor.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/rationale.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/serial_ports.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/signals.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/ssl.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/timers.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/windows.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/windows/object_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/windows/random_access_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/overview/windows/stream_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/AcceptHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/AcceptableProtocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/AsyncRandomAccessReadDevice.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/AsyncRandomAccessWriteDevice.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/AsyncReadStream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/AsyncWriteStream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/BufferedHandshakeHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/CompletionCondition.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/CompletionHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ConnectCondition.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ConnectHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ConstBufferSequence.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/DynamicBuffer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/Endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/EndpointSequence.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ExecutionContext.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/Executor1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/GettableSerialPortOption.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/GettableSocketOption.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/Handler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/HandshakeHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/InternetProtocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/IoControlCommand.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/IoObjectService.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/IteratorConnectHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/LegacyCompletionHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/MoveAcceptHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/MutableBufferSequence.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ProtoAllocator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/Protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/RangeConnectHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ReadHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ResolveHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/Service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/SettableSerialPortOption.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/SettableSocketOption.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ShutdownHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/SignalHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/SyncRandomAccessReadDevice.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/SyncRandomAccessWriteDevice.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/SyncReadStream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/SyncWriteStream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/TimeTraits.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/WaitHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/WaitTraits.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/WriteHandler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/add_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/asio_handler_allocate.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/asio_handler_deallocate.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/asio_handler_is_continuation.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/associated_allocator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/associated_allocator/get.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/associated_allocator/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/associated_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/associated_executor/get.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/associated_executor/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_completion.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_completion/async_completion.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_completion/completion_handler.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_completion/completion_handler_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_completion/result.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_connect.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_connect/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_connect/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_connect/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_connect/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_connect/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_connect/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read_at.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read_at/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read_at/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read_at/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read_at/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read_until.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read_until/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read_until/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read_until/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read_until/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read_until/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read_until/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read_until/overload7.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_read_until/overload8.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_result.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_result/async_result.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_result/completion_handler_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_result/get.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_result/return_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/async_result.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/get.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/completion_handler_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/get.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/return_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_write.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_write/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_write/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_write/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_write/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_write/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_write/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_write_at.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_write_at/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_write_at/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_write_at/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/async_write_at/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/asynchronous_operations.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/asynchronous_socket_operations.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/bad_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/bad_executor/bad_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/bad_executor/what.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/_basic_datagram_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_connect.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/broadcast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bytes_readable.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/debug.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/do_not_route.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/enable_connection_aborted.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/endpoint_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/is_open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/keep_alive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/linger.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/max_connections.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/max_listen_connections.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_do_not_route.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_end_of_record.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_flags.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_out_of_band.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_peek.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/out_of_band_inline.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_low_watermark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/reuse_address.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_low_watermark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/_basic_deadline_timer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/async_wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/duration_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/time_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/traits_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/_basic_io_object.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/implementation_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_io_object/service_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/_basic_raw_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_connect.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/broadcast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bytes_readable.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/debug.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/do_not_route.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/enable_connection_aborted.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/endpoint_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/is_open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/keep_alive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/linger.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/max_connections.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/max_listen_connections.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_do_not_route.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_end_of_record.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_flags.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_out_of_band.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_peek.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/out_of_band_inline.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_low_watermark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/reuse_address.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_low_watermark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/_basic_seq_packet_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_connect.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_send.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/broadcast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bytes_readable.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/debug.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/do_not_route.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/enable_connection_aborted.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/endpoint_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/is_open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/keep_alive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/linger.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/max_connections.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/max_listen_connections.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_do_not_route.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_end_of_record.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_flags.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_out_of_band.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_peek.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/out_of_band_inline.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive_low_watermark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/reuse_address.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send_low_watermark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/_basic_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/assign.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/assign/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/assign/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/async_connect.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/async_wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/available.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/available/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/available/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/bind.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/bind/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/bind/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/broadcast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/bytes_readable.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/connect.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/connect/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/connect/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/debug.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/do_not_route.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/enable_connection_aborted.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/endpoint_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/is_open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/keep_alive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/linger.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/max_connections.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/max_listen_connections.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/message_do_not_route.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/message_end_of_record.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/message_flags.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/message_out_of_band.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/message_peek.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/open/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/open/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/out_of_band_inline.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/receive_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/receive_low_watermark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/release.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/release/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/release/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/reuse_address.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/send_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/send_low_watermark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/wait/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/wait/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket/wait_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/_basic_socket_acceptor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload10.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload11.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload12.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload7.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload8.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload9.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/broadcast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bytes_readable.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/debug.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/do_not_route.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/enable_connection_aborted.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/endpoint_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/is_open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/keep_alive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/linger.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/max_connections.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/max_listen_connections.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_do_not_route.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_end_of_record.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_flags.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_out_of_band.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_peek.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/out_of_band_inline.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/receive_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/receive_low_watermark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/reuse_address.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/send_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/send_low_watermark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/shutdown_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/clock_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/connect.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/duration.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/duration_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/endpoint_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/error.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_after.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expiry.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/rdbuf.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/time_point.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/time_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/_basic_socket_streambuf.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/clock_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/duration.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/duration_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/endpoint_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/error.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_after.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expiry.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/overflow.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/puberror.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/setbuf.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/sync.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/time_point.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/time_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/underflow.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/_basic_stream_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_connect.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/broadcast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bytes_readable.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/debug.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/do_not_route.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/enable_connection_aborted.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/endpoint_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/is_open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/keep_alive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/linger.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/max_connections.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/max_listen_connections.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_do_not_route.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_end_of_record.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_flags.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_out_of_band.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_peek.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/out_of_band_inline.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive_low_watermark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/reuse_address.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send_low_watermark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf/basic_streambuf.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf/capacity.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf/commit.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf/const_buffers_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf/consume.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf/data.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf/max_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf/mutable_buffers_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf/overflow.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf/prepare.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf/reserve.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf/size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf/underflow.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/capacity.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/commit.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/const_buffers_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/consume.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/data.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/max_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/mutable_buffers_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/prepare.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/_basic_waitable_timer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/async_wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/clock_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/duration.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_after.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expiry.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/time_point.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/traits_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_yield_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_yield_context/callee_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_yield_context/caller_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/basic_yield_context/operator_lb__rb_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/bind_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/bind_executor/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/bind_executor/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload10.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload11.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload12.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload13.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload14.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload15.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload16.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload17.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload18.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload19.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload20.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload21.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload22.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload23.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload24.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload25.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload26.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload27.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload28.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload29.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload30.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload31.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload32.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload7.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload8.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer/overload9.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_cast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_cast/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_cast/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_copy.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_copy/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_copy/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_fill.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/default_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/next_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/next_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_fill.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_flush.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/next_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/next_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_flush.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/default_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/next_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/next_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_begin.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_end.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/begin.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/buffers_iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/difference_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/end.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/iterator_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator__star_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_arrow_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_gt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_gt__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lb__rb_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lt__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/pointer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/reference.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/buffers_iterator/value_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/connect.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/connect/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/connect/overload10.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/connect/overload11.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/connect/overload12.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/connect/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/connect/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/connect/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/connect/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/connect/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/connect/overload7.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/connect/overload8.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/connect/overload9.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffer/data.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffer/size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffers_1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffers_1/begin.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffers_1/data.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffers_1/end.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffers_1/size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/const_buffers_1/value_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/coroutine.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/coroutine/coroutine.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/coroutine/is_child.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/coroutine/is_complete.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/coroutine/is_parent.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/deadline_timer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/defer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/defer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/defer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/defer/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dispatch.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dispatch/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dispatch/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dispatch/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_buffer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/capacity.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/commit.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/const_buffers_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/consume.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/data.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/max_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/mutable_buffers_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/prepare.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/capacity.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/commit.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/const_buffers_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/consume.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/data.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/max_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/mutable_buffers_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/prepare.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__addrinfo_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__addrinfo_errors.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__basic_errors.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__get_addrinfo_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__get_misc_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__get_netdb_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__get_ssl_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__get_system_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__make_error_code.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__misc_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__misc_errors.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__netdb_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__netdb_errors.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__ssl_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__ssl_errors.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error__system_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_category/_error_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_category/message.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_category/name.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_category/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_category/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/assign.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/clear.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/error_code.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/message.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/operator_not_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/operator_unspecified_bool_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/unspecified_bool_true.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/unspecified_bool_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code/value.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/error_code__unspecified_bool_type_t.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context/_execution_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context/add_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context/destroy.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context/execution_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context/fork_event.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context/has_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context/make_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context/notify_fork.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context/shutdown.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context/use_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context/use_service/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context/use_service/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context__id.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context__id/id.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context__service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context__service/_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context__service/context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context__service/notify_fork.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context__service/service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/execution_context__service/shutdown.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/defer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/dispatch.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/executor/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/executor/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/executor/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/executor/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/executor/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/executor/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/on_work_finished.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/on_work_started.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/operator_unspecified_bool_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/post.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/target.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/target/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/target/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/target_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/unspecified_bool_true.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor/unspecified_bool_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor__unspecified_bool_type_t.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_arg.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_arg_t.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_arg_t/executor_arg_t.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/_executor_binder.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/argument_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload7.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload8.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload9.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/first_argument_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/get.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/get/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/get/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/result_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/second_argument_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_binder/target_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_work_guard.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_work_guard/_executor_work_guard.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_work_guard/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_work_guard/owns_work.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/executor_work_guard/reset.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__await_token.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__await_token/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__await_token/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__awaitable.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/_awaitable.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/awaitable.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/value_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__detached.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__detached_t.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__detached_t/detached_t.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/ec_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/redirect_error_t.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/token_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__executor_t.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__token.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__token_t.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/capacity.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_gt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_gt__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_lt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_lt__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/resize.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/family.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/family.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/family.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/family.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/iostream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/get_associated_allocator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/get_associated_allocator/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/get_associated_allocator/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/get_associated_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/handler_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/handler_type/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/has_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/high_resolution_timer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/invalid_service_owner.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/invalid_service_owner/invalid_service_owner.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/add_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/count_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/destroy.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/dispatch.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/fork_event.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/has_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/io_context/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/io_context/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/make_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/notify_fork.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/poll.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/poll/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/poll/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/poll_one.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/poll_one/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/poll_one/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/post.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/reset.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/restart.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/run.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/run/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/run/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/run_for.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/run_one.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/run_one/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/run_one/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/run_one_for.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/run_one_until.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/run_until.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/shutdown.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/stop.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/stopped.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/use_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/use_service/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/use_service/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context/wrap.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/defer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/dispatch.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/on_work_finished.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/on_work_started.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/post.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/running_in_this_thread.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__service/_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__service/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__service/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__service/service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/_strand.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/defer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/on_work_finished.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/on_work_started.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/post.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/post/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/post/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/running_in_this_thread.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/strand.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__strand/wrap.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__work.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__work/_work.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__work/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__work/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__work/work.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__work/work/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_context__work/work/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/address.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/from_string.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/is_loopback.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/is_multicast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/is_unspecified.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/is_v4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/is_v6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/make_address.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/operator_gt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/operator_gt__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt__lt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/to_string.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/to_string/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/to_string/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/to_v4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address/to_v6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/any.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/bytes_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_a.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_b.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_c.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_loopback.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_multicast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_unspecified.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/loopback.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload7.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload8.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload9.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/netmask.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_gt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_gt__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_bytes.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_uint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_ulong.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4/uint_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4_iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v4_range.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/any.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/bytes_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_link_local.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_loopback.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_global.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_link_local.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_node_local.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_org_local.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_site_local.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_site_local.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_unspecified.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_v4_compatible.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_v4_mapped.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/loopback.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload7.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload8.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_network_v6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_gt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_gt__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_bytes.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_v4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/v4_compatible.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6/v4_mapped.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6_iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__address_v6_range.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/_bad_address_cast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/bad_address_cast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/what.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/difference_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/iterator_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator__star_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_arrow_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/pointer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/reference.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/value_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/difference_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/iterator_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator__star_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_arrow_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/pointer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/reference.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/value_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/begin.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/empty.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/end.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/find.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/begin.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/empty.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/end.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/find.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/capacity.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_gt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_gt__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__lt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/resize.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/_basic_resolver.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/address_configured.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/all_matching.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/canonical_name.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/endpoint_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/flags.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/numeric_host.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/numeric_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/passive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/query.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload10.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload11.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload12.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload7.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload8.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload9.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/results_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/v4_mapped.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/operator_endpoint_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/dereference.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/difference_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/equal.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/increment.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/index_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/iterator_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator__star_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_arrow_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/pointer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/reference.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/value_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/values_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/address_configured.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/all_matching.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/canonical_name.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/flags.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/hints.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/host_name.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/numeric_host.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/numeric_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/passive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/service_name.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/v4_mapped.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/begin.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/cbegin.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/cend.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/const_iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/const_reference.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/dereference.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/difference_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/empty.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/end.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/endpoint_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/equal.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/increment.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/index_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/iterator_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/max_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator__star_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_arrow_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/pointer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/reference.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/size_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/swap.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/value_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/values_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__host_name.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__host_name/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__host_name/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__icmp.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__icmp/endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__icmp/family.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__icmp/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__icmp/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__icmp/protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__icmp/resolver.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__icmp/socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__icmp/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__icmp/v4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__icmp/v6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__multicast__enable_loopback.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__multicast__hops.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__multicast__join_group.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__multicast__leave_group.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__multicast__outbound_interface.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/address.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/broadcast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/canonical.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/hosts.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/is_host.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/is_subnet_of.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/netmask.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/prefix_length.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/address.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/canonical.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/hosts.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/is_host.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/is_subnet_of.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/prefix_length.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_base.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/_resolver_base.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/address_configured.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/all_matching.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/canonical_name.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/flags.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/numeric_host.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/numeric_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/passive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/v4_mapped.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/_resolver_query_base.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/address_configured.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/all_matching.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/canonical_name.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/flags.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/numeric_host.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/numeric_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/passive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/v4_mapped.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__tcp.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__tcp/acceptor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__tcp/endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__tcp/family.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__tcp/iostream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__tcp/no_delay.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__tcp/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__tcp/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__tcp/protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__tcp/resolver.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__tcp/socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__tcp/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__tcp/v4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__tcp/v6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__udp.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__udp/endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__udp/family.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__udp/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__udp/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__udp/protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__udp/resolver.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__udp/socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__udp/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__udp/v4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__udp/v6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__unicast__hops.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__v4_mapped_t.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ip__v6_only.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/is_const_buffer_sequence.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/is_dynamic_buffer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/is_endpoint_sequence.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/is_endpoint_sequence/value.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/is_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/is_match_condition.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/is_match_condition/value.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/is_mutable_buffer_sequence.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/is_read_buffered.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/is_read_buffered/value.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/is_write_buffered.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/is_write_buffered/value.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/capacity.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_gt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_gt__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt__lt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/protocol_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/resize.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__connect_pair.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__connect_pair/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__connect_pair/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/family.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__stream_protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/acceptor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/family.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/iostream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/protocol.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/socket.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/make_work_guard.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffer/data.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffer/size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/begin.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/const_iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/data.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/end.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/value_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/null_buffers.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/null_buffers/begin.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/null_buffers/const_iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/null_buffers/end.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/null_buffers/value_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/operator_lt__lt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/placeholders__bytes_transferred.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/placeholders__endpoint.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/placeholders__error.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/placeholders__iterator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/placeholders__results.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/placeholders__signal_number.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/_descriptor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/async_wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/bytes_readable.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/is_open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/release.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/_descriptor_base.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/bytes_readable.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/wait_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/bytes_readable.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/is_open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/release.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/post.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/post/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/post/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/post/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read/overload10.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read/overload11.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read/overload12.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read/overload7.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read/overload8.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read/overload9.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_at.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_at/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_at/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_at/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_at/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_at/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_at/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_at/overload7.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_at/overload8.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload10.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload11.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload12.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload13.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload14.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload15.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload16.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload7.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload8.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_until/overload9.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/read_write_operations.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/resolver_errc__try_again.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/_serial_port.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/assign.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/assign/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/assign/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/async_read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/async_write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/get_option.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/get_option/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/get_option/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/is_open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/open/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/open/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/read_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/read_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/send_break.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/send_break/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/send_break/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/set_option.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/set_option/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/set_option/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/write_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port/write_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base/_serial_port_base.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/baud_rate.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/load.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/store.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/value.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/character_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/load.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/store.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/value.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/flow_control.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/load.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/store.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/value.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/load.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/parity.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/store.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/value.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/load.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/stop_bits.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/store.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/value.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/service_already_exists.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/service_already_exists/service_already_exists.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/_signal_set.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/add.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/add/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/add/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/async_wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/clear.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/clear/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/clear/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/remove.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/remove/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/remove/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/_socket_base.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/broadcast.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/bytes_readable.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/debug.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/do_not_route.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/enable_connection_aborted.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/keep_alive.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/linger.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/max_connections.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/max_listen_connections.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/message_do_not_route.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/message_end_of_record.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/message_flags.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/message_out_of_band.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/message_peek.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/out_of_band_inline.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/receive_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/receive_low_watermark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/reuse_address.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/send_buffer_size.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/send_low_watermark.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/shutdown_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/socket_base/wait_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/spawn.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/spawn/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/spawn/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/spawn/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/spawn/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/spawn/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/spawn/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/spawn/overload7.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/context/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/context/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/default_workarounds.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/file_format.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/method.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/no_compression.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/no_sslv2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/no_sslv3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/options.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/password_purpose.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/single_dh_use.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base/_context_base.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base/default_workarounds.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base/file_format.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base/method.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_compression.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_sslv2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_sslv3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base/options.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base/password_purpose.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__context_base/single_dh_use.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__error__get_stream_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__error__make_error_code.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__error__stream_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__error__stream_errors.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/operator_lp__rp_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/result_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/rfc2818_verification.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/_stream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_shutdown.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/stream.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream__impl_struct.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream__impl_struct/ssl.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream_base.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream_base/_stream_base.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__stream_base/handshake_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__verify_client_once.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__verify_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/verify_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__verify_fail_if_no_peer_cert.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__verify_mode.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__verify_none.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/ssl__verify_peer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/steady_timer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/_strand.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/defer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/dispatch.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/get_inner_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/inner_executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/on_work_finished.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/on_work_started.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/post.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/running_in_this_thread.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/strand.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/strand/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/strand/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/strand/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/strand/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/strand/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/strand/strand/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/streambuf.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/synchronous_socket_operations.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_category.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/_system_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/add_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/destroy.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/fork_event.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/has_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/join.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/make_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/notify_fork.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/shutdown.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/stop.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/stopped.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/use_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/use_service/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_context/use_service/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_error.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_error/_system_error.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_error/code.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_error/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_error/system_error.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_error/what.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_executor/context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_executor/defer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_executor/dispatch.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_executor/on_work_finished.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_executor/on_work_started.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_executor/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_executor/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_executor/post.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/system_timer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread/_thread.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread/join.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread/thread.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/_thread_pool.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/add_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/destroy.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/fork_event.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/has_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/join.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/make_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/notify_fork.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/shutdown.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/stop.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/defer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/dispatch.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/on_work_finished.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/on_work_started.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/operator_eq__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/operator_not__eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/post.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/running_in_this_thread.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/add.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/duration_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/less_than.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/now.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/subtract.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/time_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/to_posix_duration.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/transfer_all.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/transfer_at_least.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/transfer_exactly.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/use_future.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/use_future_t.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/use_future_t/allocator_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/use_future_t/get_allocator.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/use_future_t/operator_lb__rb_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/use_future_t/operator_lp__rp_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/use_future_t/rebind.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/use_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/use_service/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/use_service/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/uses_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/wait_traits.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/async_wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/is_open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/_overlapped_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/is_open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/_overlapped_ptr.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/complete.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/release.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/async_read_some_at.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/async_write_some_at.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/is_open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/async_read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/async_write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/executor_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_executor.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_io_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_io_service.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/is_open.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/native_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/native_handle_type.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/operator_eq_.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write/overload10.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write/overload11.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write/overload12.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write/overload7.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write/overload8.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write/overload9.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write_at.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write_at/overload1.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write_at/overload2.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write_at/overload3.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write_at/overload4.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write_at/overload5.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write_at/overload6.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write_at/overload7.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/write_at/overload8.html delete mode 100644 Sources/Vendor/asio/doc/asio/reference/yield_context.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/boost_bind.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tutdaytime1.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tutdaytime1/src.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tutdaytime2.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tutdaytime2/src.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tutdaytime3.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tutdaytime3/src.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tutdaytime4.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tutdaytime4/src.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tutdaytime5.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tutdaytime5/src.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tutdaytime6.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tutdaytime6/src.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tutdaytime7.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tutdaytime7/src.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tuttimer1.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tuttimer1/src.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tuttimer2.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tuttimer2/src.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tuttimer3.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tuttimer3/src.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tuttimer4.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tuttimer4/src.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tuttimer5.html delete mode 100644 Sources/Vendor/asio/doc/asio/tutorial/tuttimer5/src.html delete mode 100644 Sources/Vendor/asio/doc/asio/using.html delete mode 100644 Sources/Vendor/asio/doc/async_op1.png delete mode 100644 Sources/Vendor/asio/doc/async_op2.png delete mode 100644 Sources/Vendor/asio/doc/blank.png delete mode 100644 Sources/Vendor/asio/doc/boostbook.css delete mode 100644 Sources/Vendor/asio/doc/caution.png delete mode 100644 Sources/Vendor/asio/doc/draft.png delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/allocation/server.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/buffers/reference_counted.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/chat/chat_client.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/chat/chat_message.hpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/chat/chat_server.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/echo/async_tcp_echo_server.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/echo/async_udp_echo_server.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/echo/blocking_tcp_echo_client.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/echo/blocking_tcp_echo_server.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/echo/blocking_udp_echo_client.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/echo/blocking_udp_echo_server.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/executors/actor.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/executors/bank_account_1.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/executors/bank_account_2.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/executors/fork_join.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/executors/pipeline.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/executors/priority_scheduler.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/fork/daemon.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/fork/process_per_connection.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/futures/daytime_client.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/handler_tracking/custom_tracking.hpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/connection.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/connection.hpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/connection_manager.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/connection_manager.hpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/header.hpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/main.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/mime_types.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/mime_types.hpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/reply.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/reply.hpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/request.hpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/request_handler.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/request_handler.hpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/request_parser.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/request_parser.hpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/server.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/http/server/server.hpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/invocation/prioritised_handlers.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/iostreams/http_client.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/local/connect_pair.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/local/iostream_client.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/local/stream_client.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/local/stream_server.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/multicast/receiver.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/multicast/sender.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/nonblocking/third_party_lib.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/operations/composed_1.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/operations/composed_2.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/operations/composed_3.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/operations/composed_4.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/operations/composed_5.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/socks4/socks4.hpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/socks4/sync_client.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/spawn/echo_server.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/spawn/parallel_grep.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/ssl/client.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/ssl/server.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/timeouts/async_tcp_client.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_tcp_client.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_token_tcp_client.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_udp_client.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/timeouts/server.cpp.html delete mode 100644 Sources/Vendor/asio/doc/examples/diffs/timers/time_t_timer.cpp.html delete mode 100644 Sources/Vendor/asio/doc/home.png delete mode 100644 Sources/Vendor/asio/doc/important.png delete mode 100644 Sources/Vendor/asio/doc/index.html delete mode 100644 Sources/Vendor/asio/doc/next.png delete mode 100644 Sources/Vendor/asio/doc/next_disabled.png delete mode 100644 Sources/Vendor/asio/doc/note.png delete mode 100644 Sources/Vendor/asio/doc/prev.png delete mode 100644 Sources/Vendor/asio/doc/prev_disabled.png delete mode 100644 Sources/Vendor/asio/doc/proactor.png delete mode 100644 Sources/Vendor/asio/doc/standalone_HTML.manifest delete mode 100644 Sources/Vendor/asio/doc/sync_op.png delete mode 100644 Sources/Vendor/asio/doc/tip.png delete mode 100644 Sources/Vendor/asio/doc/up.png delete mode 100644 Sources/Vendor/asio/doc/up_disabled.png delete mode 100644 Sources/Vendor/asio/doc/warning.png delete mode 100644 Sources/Vendor/asio/include/Makefile.am delete mode 100644 Sources/Vendor/asio/include/Makefile.in delete mode 100644 Sources/Vendor/asio/include/asio.hpp delete mode 100644 Sources/Vendor/asio/include/asio/associated_allocator.hpp delete mode 100644 Sources/Vendor/asio/include/asio/associated_executor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/async_result.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_datagram_socket.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_deadline_timer.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_io_object.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_raw_socket.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_seq_packet_socket.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_serial_port.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_signal_set.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_socket.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_socket_acceptor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_socket_iostream.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_socket_streambuf.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_stream_socket.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_streambuf.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_streambuf_fwd.hpp delete mode 100644 Sources/Vendor/asio/include/asio/basic_waitable_timer.hpp delete mode 100644 Sources/Vendor/asio/include/asio/bind_executor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/buffer.hpp delete mode 100644 Sources/Vendor/asio/include/asio/buffered_read_stream.hpp delete mode 100644 Sources/Vendor/asio/include/asio/buffered_read_stream_fwd.hpp delete mode 100644 Sources/Vendor/asio/include/asio/buffered_stream.hpp delete mode 100644 Sources/Vendor/asio/include/asio/buffered_stream_fwd.hpp delete mode 100644 Sources/Vendor/asio/include/asio/buffered_write_stream.hpp delete mode 100644 Sources/Vendor/asio/include/asio/buffered_write_stream_fwd.hpp delete mode 100644 Sources/Vendor/asio/include/asio/buffers_iterator.hpp delete mode 100644 Sources/Vendor/asio/include/asio/completion_condition.hpp delete mode 100644 Sources/Vendor/asio/include/asio/connect.hpp delete mode 100644 Sources/Vendor/asio/include/asio/coroutine.hpp delete mode 100644 Sources/Vendor/asio/include/asio/datagram_socket_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/deadline_timer.hpp delete mode 100644 Sources/Vendor/asio/include/asio/deadline_timer_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/defer.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/array.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/array_fwd.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/assert.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/atomic_count.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/base_from_completion_cond.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/bind_handler.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/buffer_resize_guard.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/buffer_sequence_adapter.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/buffered_stream_storage.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/call_stack.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/chrono.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/chrono_time_traits.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/completion_handler.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/concurrency_hint.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/conditionally_enabled_event.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/conditionally_enabled_mutex.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/config.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/consuming_buffers.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/cstddef.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/cstdint.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/date_time_fwd.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/deadline_timer_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/dependent_type.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/descriptor_ops.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/descriptor_read_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/descriptor_write_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/dev_poll_reactor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/epoll_reactor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/event.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/eventfd_select_interrupter.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/executor_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/fd_set_adapter.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/fenced_block.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/functional.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/future.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/gcc_arm_fenced_block.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/gcc_hppa_fenced_block.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/gcc_sync_fenced_block.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/gcc_x86_fenced_block.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/global.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/handler_alloc_helpers.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/handler_cont_helpers.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/handler_invoke_helpers.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/handler_tracking.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/handler_type_requirements.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/handler_work.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/hash_map.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/descriptor_ops.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/dev_poll_reactor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/dev_poll_reactor.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/epoll_reactor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/epoll_reactor.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/handler_tracking.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/kqueue_reactor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/kqueue_reactor.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/null_event.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/pipe_select_interrupter.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/posix_event.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/posix_mutex.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/posix_thread.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/posix_tss_ptr.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/reactive_descriptor_service.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/reactive_serial_port_service.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/reactive_socket_service_base.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/resolver_service_base.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/scheduler.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/select_reactor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/select_reactor.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/service_registry.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/service_registry.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/signal_set_service.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/socket_ops.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/socket_select_interrupter.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/strand_executor_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/strand_executor_service.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/strand_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/strand_service.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/throw_error.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/timer_queue_ptime.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/timer_queue_set.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/win_event.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/win_iocp_handle_service.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/win_iocp_io_context.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/win_iocp_io_context.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/win_mutex.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/win_object_handle_service.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/win_static_mutex.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/win_thread.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/win_tss_ptr.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/impl/winsock_init.ipp delete mode 100644 Sources/Vendor/asio/include/asio/detail/io_control.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/is_buffer_sequence.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/is_executor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/keyword_tss_ptr.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/kqueue_reactor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/limits.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/local_free_on_block_exit.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/macos_fenced_block.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/memory.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/mutex.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/noncopyable.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/null_event.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/null_fenced_block.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/null_global.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/null_mutex.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/null_reactor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/null_signal_blocker.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/null_socket_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/null_static_mutex.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/null_thread.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/null_tss_ptr.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/object_pool.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/old_win_sdk_compat.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/op_queue.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/operation.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/pipe_select_interrupter.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/pop_options.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/posix_event.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/posix_fd_set_adapter.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/posix_global.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/posix_mutex.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/posix_signal_blocker.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/posix_static_mutex.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/posix_thread.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/posix_tss_ptr.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/push_options.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactive_descriptor_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactive_null_buffers_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactive_serial_port_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactive_socket_accept_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactive_socket_connect_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactive_socket_recv_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactive_socket_send_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactive_socket_sendto_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactive_socket_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactive_socket_service_base.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactive_wait_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactor_fwd.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactor_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/reactor_op_queue.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/recycling_allocator.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/regex_fwd.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/resolve_endpoint_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/resolve_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/resolve_query_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/resolver_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/resolver_service_base.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/scheduler.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/scheduler_operation.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/scheduler_thread_info.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/scoped_lock.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/scoped_ptr.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/select_interrupter.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/select_reactor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/service_registry.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/signal_blocker.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/signal_handler.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/signal_init.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/signal_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/signal_set_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/socket_holder.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/socket_ops.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/socket_option.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/socket_select_interrupter.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/socket_types.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/solaris_fenced_block.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/static_mutex.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/std_event.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/std_fenced_block.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/std_global.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/std_mutex.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/std_static_mutex.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/std_thread.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/strand_executor_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/strand_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/string_view.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/thread.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/thread_context.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/thread_group.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/thread_info_base.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/throw_error.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/throw_exception.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/timer_queue.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/timer_queue_base.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/timer_queue_ptime.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/timer_queue_set.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/timer_scheduler.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/timer_scheduler_fwd.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/tss_ptr.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/type_traits.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/variadic_templates.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/wait_handler.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/wait_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_event.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_fd_set_adapter.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_fenced_block.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_global.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_handle_read_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_handle_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_handle_write_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_io_context.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_null_buffers_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_operation.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_overlapped_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_serial_port_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_socket_accept_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_socket_connect_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recv_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_socket_send_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_socket_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_socket_service_base.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_thread_info.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_iocp_wait_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_mutex.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_object_handle_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_static_mutex.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_thread.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/win_tss_ptr.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/winapp_thread.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/wince_thread.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/winrt_async_manager.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/winrt_async_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/winrt_resolve_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/winrt_resolver_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/winrt_socket_connect_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/winrt_socket_recv_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/winrt_socket_send_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/winrt_ssocket_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/winrt_ssocket_service_base.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/winrt_timer_scheduler.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/winrt_utils.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/winsock_init.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/work_dispatcher.hpp delete mode 100644 Sources/Vendor/asio/include/asio/detail/wrapped_handler.hpp delete mode 100644 Sources/Vendor/asio/include/asio/dispatch.hpp delete mode 100644 Sources/Vendor/asio/include/asio/error.hpp delete mode 100644 Sources/Vendor/asio/include/asio/error_code.hpp delete mode 100644 Sources/Vendor/asio/include/asio/execution_context.hpp delete mode 100644 Sources/Vendor/asio/include/asio/executor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/executor_work_guard.hpp delete mode 100644 Sources/Vendor/asio/include/asio/experimental.hpp delete mode 100644 Sources/Vendor/asio/include/asio/experimental/co_spawn.hpp delete mode 100644 Sources/Vendor/asio/include/asio/experimental/detached.hpp delete mode 100644 Sources/Vendor/asio/include/asio/experimental/impl/co_spawn.hpp delete mode 100644 Sources/Vendor/asio/include/asio/experimental/impl/detached.hpp delete mode 100644 Sources/Vendor/asio/include/asio/experimental/impl/redirect_error.hpp delete mode 100644 Sources/Vendor/asio/include/asio/experimental/redirect_error.hpp delete mode 100644 Sources/Vendor/asio/include/asio/generic/basic_endpoint.hpp delete mode 100644 Sources/Vendor/asio/include/asio/generic/datagram_protocol.hpp delete mode 100644 Sources/Vendor/asio/include/asio/generic/detail/endpoint.hpp delete mode 100644 Sources/Vendor/asio/include/asio/generic/detail/impl/endpoint.ipp delete mode 100644 Sources/Vendor/asio/include/asio/generic/raw_protocol.hpp delete mode 100644 Sources/Vendor/asio/include/asio/generic/seq_packet_protocol.hpp delete mode 100644 Sources/Vendor/asio/include/asio/generic/stream_protocol.hpp delete mode 100644 Sources/Vendor/asio/include/asio/handler_alloc_hook.hpp delete mode 100644 Sources/Vendor/asio/include/asio/handler_continuation_hook.hpp delete mode 100644 Sources/Vendor/asio/include/asio/handler_invoke_hook.hpp delete mode 100644 Sources/Vendor/asio/include/asio/handler_type.hpp delete mode 100644 Sources/Vendor/asio/include/asio/high_resolution_timer.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/buffered_read_stream.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/buffered_write_stream.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/connect.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/defer.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/dispatch.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/error.ipp delete mode 100644 Sources/Vendor/asio/include/asio/impl/error_code.ipp delete mode 100644 Sources/Vendor/asio/include/asio/impl/execution_context.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/execution_context.ipp delete mode 100644 Sources/Vendor/asio/include/asio/impl/executor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/executor.ipp delete mode 100644 Sources/Vendor/asio/include/asio/impl/handler_alloc_hook.ipp delete mode 100644 Sources/Vendor/asio/include/asio/impl/io_context.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/io_context.ipp delete mode 100644 Sources/Vendor/asio/include/asio/impl/post.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/read.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/read_at.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/read_until.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/serial_port_base.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/serial_port_base.ipp delete mode 100644 Sources/Vendor/asio/include/asio/impl/spawn.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/src.cpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/src.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/system_context.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/system_context.ipp delete mode 100644 Sources/Vendor/asio/include/asio/impl/system_executor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/thread_pool.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/thread_pool.ipp delete mode 100644 Sources/Vendor/asio/include/asio/impl/use_future.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/write.hpp delete mode 100644 Sources/Vendor/asio/include/asio/impl/write_at.hpp delete mode 100644 Sources/Vendor/asio/include/asio/io_context.hpp delete mode 100644 Sources/Vendor/asio/include/asio/io_context_strand.hpp delete mode 100644 Sources/Vendor/asio/include/asio/io_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/io_service_strand.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/address.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/address_v4.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/address_v4_iterator.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/address_v4_range.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/address_v6.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/address_v6_iterator.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/address_v6_range.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/bad_address_cast.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/basic_endpoint.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/basic_resolver.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/basic_resolver_entry.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/basic_resolver_iterator.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/basic_resolver_query.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/basic_resolver_results.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/detail/endpoint.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/detail/impl/endpoint.ipp delete mode 100644 Sources/Vendor/asio/include/asio/ip/detail/socket_option.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/host_name.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/icmp.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/impl/address.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/impl/address.ipp delete mode 100644 Sources/Vendor/asio/include/asio/ip/impl/address_v4.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/impl/address_v4.ipp delete mode 100644 Sources/Vendor/asio/include/asio/ip/impl/address_v6.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/impl/address_v6.ipp delete mode 100644 Sources/Vendor/asio/include/asio/ip/impl/basic_endpoint.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/impl/host_name.ipp delete mode 100644 Sources/Vendor/asio/include/asio/ip/impl/network_v4.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/impl/network_v4.ipp delete mode 100644 Sources/Vendor/asio/include/asio/ip/impl/network_v6.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/impl/network_v6.ipp delete mode 100644 Sources/Vendor/asio/include/asio/ip/multicast.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/network_v4.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/network_v6.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/resolver_base.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/resolver_query_base.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/resolver_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/tcp.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/udp.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/unicast.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ip/v6_only.hpp delete mode 100644 Sources/Vendor/asio/include/asio/is_executor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/is_read_buffered.hpp delete mode 100644 Sources/Vendor/asio/include/asio/is_write_buffered.hpp delete mode 100644 Sources/Vendor/asio/include/asio/local/basic_endpoint.hpp delete mode 100644 Sources/Vendor/asio/include/asio/local/connect_pair.hpp delete mode 100644 Sources/Vendor/asio/include/asio/local/datagram_protocol.hpp delete mode 100644 Sources/Vendor/asio/include/asio/local/detail/endpoint.hpp delete mode 100644 Sources/Vendor/asio/include/asio/local/detail/impl/endpoint.ipp delete mode 100644 Sources/Vendor/asio/include/asio/local/stream_protocol.hpp delete mode 100644 Sources/Vendor/asio/include/asio/packaged_task.hpp delete mode 100644 Sources/Vendor/asio/include/asio/placeholders.hpp delete mode 100644 Sources/Vendor/asio/include/asio/posix/basic_descriptor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/posix/basic_stream_descriptor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/posix/descriptor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/posix/descriptor_base.hpp delete mode 100644 Sources/Vendor/asio/include/asio/posix/stream_descriptor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/posix/stream_descriptor_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/post.hpp delete mode 100644 Sources/Vendor/asio/include/asio/raw_socket_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/read.hpp delete mode 100644 Sources/Vendor/asio/include/asio/read_at.hpp delete mode 100644 Sources/Vendor/asio/include/asio/read_until.hpp delete mode 100644 Sources/Vendor/asio/include/asio/seq_packet_socket_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/serial_port.hpp delete mode 100644 Sources/Vendor/asio/include/asio/serial_port_base.hpp delete mode 100644 Sources/Vendor/asio/include/asio/serial_port_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/signal_set.hpp delete mode 100644 Sources/Vendor/asio/include/asio/signal_set_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/socket_acceptor_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/socket_base.hpp delete mode 100644 Sources/Vendor/asio/include/asio/spawn.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/context.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/context_base.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/detail/buffered_handshake_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/detail/engine.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/detail/handshake_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/detail/impl/engine.ipp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/detail/impl/openssl_init.ipp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/detail/io.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/detail/openssl_init.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/detail/openssl_types.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/detail/password_callback.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/detail/read_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/detail/shutdown_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/detail/stream_core.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/detail/verify_callback.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/detail/write_op.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/error.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/impl/context.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/impl/context.ipp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/impl/error.ipp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/impl/rfc2818_verification.ipp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/impl/src.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/rfc2818_verification.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/stream.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/stream_base.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/verify_context.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ssl/verify_mode.hpp delete mode 100644 Sources/Vendor/asio/include/asio/steady_timer.hpp delete mode 100644 Sources/Vendor/asio/include/asio/strand.hpp delete mode 100644 Sources/Vendor/asio/include/asio/stream_socket_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/streambuf.hpp delete mode 100644 Sources/Vendor/asio/include/asio/system_context.hpp delete mode 100644 Sources/Vendor/asio/include/asio/system_error.hpp delete mode 100644 Sources/Vendor/asio/include/asio/system_executor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/system_timer.hpp delete mode 100644 Sources/Vendor/asio/include/asio/thread.hpp delete mode 100644 Sources/Vendor/asio/include/asio/thread_pool.hpp delete mode 100644 Sources/Vendor/asio/include/asio/time_traits.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ts/buffer.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ts/executor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ts/internet.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ts/io_context.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ts/net.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ts/netfwd.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ts/socket.hpp delete mode 100644 Sources/Vendor/asio/include/asio/ts/timer.hpp delete mode 100644 Sources/Vendor/asio/include/asio/unyield.hpp delete mode 100644 Sources/Vendor/asio/include/asio/use_future.hpp delete mode 100644 Sources/Vendor/asio/include/asio/uses_executor.hpp delete mode 100644 Sources/Vendor/asio/include/asio/version.hpp delete mode 100644 Sources/Vendor/asio/include/asio/wait_traits.hpp delete mode 100644 Sources/Vendor/asio/include/asio/waitable_timer_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/windows/basic_handle.hpp delete mode 100644 Sources/Vendor/asio/include/asio/windows/basic_object_handle.hpp delete mode 100644 Sources/Vendor/asio/include/asio/windows/basic_random_access_handle.hpp delete mode 100644 Sources/Vendor/asio/include/asio/windows/basic_stream_handle.hpp delete mode 100644 Sources/Vendor/asio/include/asio/windows/object_handle.hpp delete mode 100644 Sources/Vendor/asio/include/asio/windows/object_handle_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/windows/overlapped_handle.hpp delete mode 100644 Sources/Vendor/asio/include/asio/windows/overlapped_ptr.hpp delete mode 100644 Sources/Vendor/asio/include/asio/windows/random_access_handle.hpp delete mode 100644 Sources/Vendor/asio/include/asio/windows/random_access_handle_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/windows/stream_handle.hpp delete mode 100644 Sources/Vendor/asio/include/asio/windows/stream_handle_service.hpp delete mode 100644 Sources/Vendor/asio/include/asio/write.hpp delete mode 100644 Sources/Vendor/asio/include/asio/write_at.hpp delete mode 100644 Sources/Vendor/asio/include/asio/yield.hpp delete mode 100755 Sources/Vendor/asio/install-sh delete mode 100755 Sources/Vendor/asio/missing delete mode 100644 Sources/Vendor/asio/src/Makefile.am delete mode 100644 Sources/Vendor/asio/src/Makefile.in delete mode 100644 Sources/Vendor/asio/src/Makefile.mgw delete mode 100644 Sources/Vendor/asio/src/Makefile.msc delete mode 100644 Sources/Vendor/asio/src/asio.cpp delete mode 100644 Sources/Vendor/asio/src/asio_ssl.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/Makefile.am delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/Makefile.in delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/allocation/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/buffers/reference_counted.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/chat/chat_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/chat/chat_message.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/chat/chat_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/chat/posix_chat_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/fork/daemon.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/fork/process_per_connection.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/client/async_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/client/sync_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/connection.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/connection.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/connection_manager.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/connection_manager.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/header.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/main.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/mime_types.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/mime_types.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/reply.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/reply.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/request.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/request_handler.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/request_handler.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/request_parser.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/request_parser.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server/server.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/connection.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/connection.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/header.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/io_context_pool.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/io_context_pool.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/main.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/mime_types.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/mime_types.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/reply.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/reply.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/request.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/request_handler.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/request_handler.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/request_parser.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/request_parser.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server2/server.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/connection.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/connection.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/header.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/main.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/mime_types.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/mime_types.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/reply.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/reply.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/request.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/request_handler.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/request_handler.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/request_parser.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/request_parser.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server3/server.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server4/file_handler.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server4/file_handler.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server4/header.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server4/main.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server4/mime_types.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server4/mime_types.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server4/reply.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server4/reply.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server4/request.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server4/request_parser.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server4/request_parser.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server4/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/http/server4/server.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/icmp/icmp_header.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/icmp/ipv4_header.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/icmp/ping.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/iostreams/daytime_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/iostreams/daytime_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/iostreams/http_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/local/connect_pair.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/local/iostream_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/local/stream_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/local/stream_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/multicast/receiver.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/multicast/sender.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/porthopper/client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/porthopper/protocol.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/porthopper/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/serialization/client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/serialization/connection.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/serialization/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/serialization/stock.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/services/basic_logger.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/services/daytime_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/services/logger.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/services/logger_service.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/services/logger_service.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/socks4/socks4.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/socks4/sync_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/spawn/echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/spawn/parallel_grep.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/ssl/README delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/ssl/ca.pem delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/ssl/client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/ssl/dh2048.pem delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/ssl/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/ssl/server.pem delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/timeouts/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/timers/time_t_timer.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime1/client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime2/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime3/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime4/client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime5/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime6/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime7/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/tutorial/timer1/timer.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/tutorial/timer2/timer.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/tutorial/timer3/timer.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/tutorial/timer4/timer.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/tutorial/timer5/timer.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp03/windows/transmit_file.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/Makefile.am delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/Makefile.in delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/allocation/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/buffers/reference_counted.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/chat/chat_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/chat/chat_message.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/chat/chat_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/executors/actor.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/executors/bank_account_1.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/executors/bank_account_2.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/executors/fork_join.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/executors/pipeline.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/executors/priority_scheduler.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/fork/daemon.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/fork/process_per_connection.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/futures/daytime_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/connection.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/connection.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/connection_manager.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/connection_manager.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/header.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/main.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/mime_types.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/mime_types.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/reply.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/reply.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/request.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/request_handler.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/request_handler.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/request_parser.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/request_parser.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/http/server/server.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/iostreams/http_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/local/connect_pair.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/local/iostream_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/local/stream_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/local/stream_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/multicast/receiver.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/multicast/sender.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/operations/composed_1.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/operations/composed_2.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/operations/composed_3.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/operations/composed_4.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/operations/composed_5.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/socks4/socks4.hpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/socks4/sync_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/spawn/echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/spawn/parallel_grep.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/ssl/client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/ssl/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/timeouts/server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp11/timers/time_t_timer.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/Makefile.am delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/Makefile.in delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/executors/actor.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/executors/async_1.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/executors/async_2.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/executors/bank_account_1.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/executors/bank_account_2.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/executors/fork_join.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/executors/pipeline.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/executors/priority_scheduler.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp14/iostreams/http_client.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp17/Makefile.am delete mode 100644 Sources/Vendor/asio/src/examples/cpp17/Makefile.in delete mode 100644 Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/double_buffered_echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp delete mode 100644 Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp delete mode 100644 Sources/Vendor/asio/src/tests/Makefile.am delete mode 100644 Sources/Vendor/asio/src/tests/Makefile.in delete mode 100644 Sources/Vendor/asio/src/tests/latency/allocator.hpp delete mode 100644 Sources/Vendor/asio/src/tests/latency/high_res_clock.hpp delete mode 100644 Sources/Vendor/asio/src/tests/latency/tcp_client.cpp delete mode 100644 Sources/Vendor/asio/src/tests/latency/tcp_server.cpp delete mode 100644 Sources/Vendor/asio/src/tests/latency/udp_client.cpp delete mode 100644 Sources/Vendor/asio/src/tests/latency/udp_server.cpp delete mode 100644 Sources/Vendor/asio/src/tests/performance/client.cpp delete mode 100644 Sources/Vendor/asio/src/tests/performance/handler_allocator.hpp delete mode 100644 Sources/Vendor/asio/src/tests/performance/server.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/archetypes/async_ops.hpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/archetypes/async_result.hpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/archetypes/deprecated_async_ops.hpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/archetypes/deprecated_async_result.hpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/archetypes/gettable_socket_option.hpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/archetypes/io_control_command.hpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/archetypes/settable_socket_option.hpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/associated_allocator.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/associated_executor.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/async_result.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/basic_datagram_socket.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/basic_deadline_timer.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/basic_raw_socket.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/basic_seq_packet_socket.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/basic_serial_port.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/basic_signal_set.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/basic_socket_acceptor.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/basic_stream_socket.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/basic_streambuf.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/basic_waitable_timer.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/bind_executor.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/buffer.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/buffered_read_stream.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/buffered_stream.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/buffered_write_stream.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/buffers_iterator.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/completion_condition.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/connect.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/coroutine.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/datagram_socket_service.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/deadline_timer.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/deadline_timer_service.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/defer.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/dispatch.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/error.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/execution_context.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/executor.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/executor_work_guard.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/generic/basic_endpoint.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/generic/datagram_protocol.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/generic/raw_protocol.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/generic/seq_packet_protocol.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/generic/stream_protocol.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/high_resolution_timer.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/io_context.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/address.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/address_v4.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/address_v4_iterator.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/address_v4_range.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/address_v6.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/address_v6_iterator.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/address_v6_range.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/basic_endpoint.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/basic_resolver.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/basic_resolver_entry.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/basic_resolver_iterator.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/basic_resolver_query.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/host_name.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/icmp.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/multicast.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/network_v4.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/network_v6.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/resolver_query_base.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/resolver_service.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/tcp.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/udp.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/unicast.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ip/v6_only.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/is_read_buffered.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/is_write_buffered.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/local/basic_endpoint.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/local/connect_pair.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/local/datagram_protocol.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/local/stream_protocol.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/packaged_task.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/placeholders.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/posix/basic_descriptor.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/posix/basic_stream_descriptor.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/posix/descriptor.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/posix/descriptor_base.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/posix/stream_descriptor.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/posix/stream_descriptor_service.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/post.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/raw_socket_service.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/read.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/read_at.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/read_until.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/seq_packet_socket_service.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/serial_port.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/serial_port_base.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/serial_port_service.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/signal_set.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/signal_set_service.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/socket_acceptor_service.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/socket_base.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ssl/context.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ssl/context_base.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ssl/error.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ssl/rfc2818_verification.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ssl/stream.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ssl/stream_base.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/steady_timer.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/strand.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/stream_socket_service.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/streambuf.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/system_context.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/system_executor.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/system_timer.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/thread.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/time_traits.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ts/buffer.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ts/executor.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ts/internet.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ts/io_context.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ts/net.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ts/netfwd.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ts/socket.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/ts/timer.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/unit_test.hpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/use_future.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/uses_executor.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/wait_traits.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/waitable_timer_service.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/windows/basic_handle.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/windows/basic_object_handle.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/windows/basic_random_access_handle.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/windows/basic_stream_handle.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/windows/object_handle.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/windows/object_handle_service.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/windows/overlapped_handle.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/windows/overlapped_ptr.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/windows/random_access_handle.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/windows/random_access_handle_service.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/windows/stream_handle.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/windows/stream_handle_service.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/write.cpp delete mode 100644 Sources/Vendor/asio/src/tests/unit/write_at.cpp delete mode 100755 Sources/Vendor/asio/src/tools/handlerviz.pl delete mode 100755 Sources/Vendor/asio/test-driver delete mode 100755 Sources/Vendor/json/ChangeLog.md delete mode 100755 Sources/Vendor/json/LICENSE.MIT delete mode 100755 Sources/Vendor/json/README.md delete mode 100755 Sources/Vendor/json/doc/Doxyfile delete mode 100755 Sources/Vendor/json/doc/Makefile delete mode 100755 Sources/Vendor/json/doc/avatars.png delete mode 100755 Sources/Vendor/json/doc/binary_formats.md delete mode 100755 Sources/Vendor/json/doc/css/mylayout.css delete mode 100755 Sources/Vendor/json/doc/css/mylayout_docset.css delete mode 100755 Sources/Vendor/json/doc/examples/README.cpp delete mode 100755 Sources/Vendor/json/doc/examples/README.link delete mode 100755 Sources/Vendor/json/doc/examples/README.output delete mode 100755 Sources/Vendor/json/doc/examples/array.cpp delete mode 100755 Sources/Vendor/json/doc/examples/array.link delete mode 100755 Sources/Vendor/json/doc/examples/array.output delete mode 100755 Sources/Vendor/json/doc/examples/at__object_t_key_type.cpp delete mode 100755 Sources/Vendor/json/doc/examples/at__object_t_key_type.link delete mode 100755 Sources/Vendor/json/doc/examples/at__object_t_key_type.output delete mode 100755 Sources/Vendor/json/doc/examples/at__object_t_key_type_const.cpp delete mode 100755 Sources/Vendor/json/doc/examples/at__object_t_key_type_const.link delete mode 100755 Sources/Vendor/json/doc/examples/at__object_t_key_type_const.output delete mode 100755 Sources/Vendor/json/doc/examples/at__size_type.cpp delete mode 100755 Sources/Vendor/json/doc/examples/at__size_type.link delete mode 100755 Sources/Vendor/json/doc/examples/at__size_type.output delete mode 100755 Sources/Vendor/json/doc/examples/at__size_type_const.cpp delete mode 100755 Sources/Vendor/json/doc/examples/at__size_type_const.link delete mode 100755 Sources/Vendor/json/doc/examples/at__size_type_const.output delete mode 100755 Sources/Vendor/json/doc/examples/at_json_pointer.cpp delete mode 100755 Sources/Vendor/json/doc/examples/at_json_pointer.link delete mode 100755 Sources/Vendor/json/doc/examples/at_json_pointer.output delete mode 100755 Sources/Vendor/json/doc/examples/at_json_pointer_const.cpp delete mode 100755 Sources/Vendor/json/doc/examples/at_json_pointer_const.link delete mode 100755 Sources/Vendor/json/doc/examples/at_json_pointer_const.output delete mode 100755 Sources/Vendor/json/doc/examples/back.cpp delete mode 100755 Sources/Vendor/json/doc/examples/back.link delete mode 100755 Sources/Vendor/json/doc/examples/back.output delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__CompatibleType.cpp delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__CompatibleType.link delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__CompatibleType.output delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__InputIt_InputIt.cpp delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__InputIt_InputIt.link delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__InputIt_InputIt.output delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__basic_json.cpp delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__basic_json.link delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__basic_json.output delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__copyassignment.cpp delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__copyassignment.link delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__copyassignment.output delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__list_init_t.cpp delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__list_init_t.link delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__list_init_t.output delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__moveconstructor.cpp delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__moveconstructor.link delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__moveconstructor.output delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__nullptr_t.cpp delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__nullptr_t.link delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__nullptr_t.output delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__size_type_basic_json.cpp delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__size_type_basic_json.link delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__size_type_basic_json.output delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__value.cpp delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__value.link delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__value.output delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__value_ptr.cpp delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__value_ptr.link delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__value_ptr.output delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__value_t.cpp delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__value_t.link delete mode 100755 Sources/Vendor/json/doc/examples/basic_json__value_t.output delete mode 100755 Sources/Vendor/json/doc/examples/begin.cpp delete mode 100755 Sources/Vendor/json/doc/examples/begin.link delete mode 100755 Sources/Vendor/json/doc/examples/begin.output delete mode 100755 Sources/Vendor/json/doc/examples/cbegin.cpp delete mode 100755 Sources/Vendor/json/doc/examples/cbegin.link delete mode 100755 Sources/Vendor/json/doc/examples/cbegin.output delete mode 100755 Sources/Vendor/json/doc/examples/cend.cpp delete mode 100755 Sources/Vendor/json/doc/examples/cend.link delete mode 100755 Sources/Vendor/json/doc/examples/cend.output delete mode 100755 Sources/Vendor/json/doc/examples/clear.cpp delete mode 100755 Sources/Vendor/json/doc/examples/clear.link delete mode 100755 Sources/Vendor/json/doc/examples/clear.output delete mode 100755 Sources/Vendor/json/doc/examples/count.cpp delete mode 100755 Sources/Vendor/json/doc/examples/count.link delete mode 100755 Sources/Vendor/json/doc/examples/count.output delete mode 100755 Sources/Vendor/json/doc/examples/crbegin.cpp delete mode 100755 Sources/Vendor/json/doc/examples/crbegin.link delete mode 100755 Sources/Vendor/json/doc/examples/crbegin.output delete mode 100755 Sources/Vendor/json/doc/examples/crend.cpp delete mode 100755 Sources/Vendor/json/doc/examples/crend.link delete mode 100755 Sources/Vendor/json/doc/examples/crend.output delete mode 100755 Sources/Vendor/json/doc/examples/diff.cpp delete mode 100755 Sources/Vendor/json/doc/examples/diff.link delete mode 100755 Sources/Vendor/json/doc/examples/diff.output delete mode 100755 Sources/Vendor/json/doc/examples/dump.cpp delete mode 100755 Sources/Vendor/json/doc/examples/dump.link delete mode 100755 Sources/Vendor/json/doc/examples/dump.output delete mode 100755 Sources/Vendor/json/doc/examples/emplace.cpp delete mode 100755 Sources/Vendor/json/doc/examples/emplace.link delete mode 100755 Sources/Vendor/json/doc/examples/emplace.output delete mode 100755 Sources/Vendor/json/doc/examples/emplace_back.cpp delete mode 100755 Sources/Vendor/json/doc/examples/emplace_back.link delete mode 100755 Sources/Vendor/json/doc/examples/emplace_back.output delete mode 100755 Sources/Vendor/json/doc/examples/empty.cpp delete mode 100755 Sources/Vendor/json/doc/examples/empty.link delete mode 100755 Sources/Vendor/json/doc/examples/empty.output delete mode 100755 Sources/Vendor/json/doc/examples/end.cpp delete mode 100755 Sources/Vendor/json/doc/examples/end.link delete mode 100755 Sources/Vendor/json/doc/examples/end.output delete mode 100755 Sources/Vendor/json/doc/examples/erase__IteratorType.cpp delete mode 100755 Sources/Vendor/json/doc/examples/erase__IteratorType.link delete mode 100755 Sources/Vendor/json/doc/examples/erase__IteratorType.output delete mode 100755 Sources/Vendor/json/doc/examples/erase__IteratorType_IteratorType.cpp delete mode 100755 Sources/Vendor/json/doc/examples/erase__IteratorType_IteratorType.link delete mode 100755 Sources/Vendor/json/doc/examples/erase__IteratorType_IteratorType.output delete mode 100755 Sources/Vendor/json/doc/examples/erase__key_type.cpp delete mode 100755 Sources/Vendor/json/doc/examples/erase__key_type.link delete mode 100755 Sources/Vendor/json/doc/examples/erase__key_type.output delete mode 100755 Sources/Vendor/json/doc/examples/erase__size_type.cpp delete mode 100755 Sources/Vendor/json/doc/examples/erase__size_type.link delete mode 100755 Sources/Vendor/json/doc/examples/erase__size_type.output delete mode 100755 Sources/Vendor/json/doc/examples/exception.cpp delete mode 100755 Sources/Vendor/json/doc/examples/exception.link delete mode 100755 Sources/Vendor/json/doc/examples/exception.output delete mode 100755 Sources/Vendor/json/doc/examples/find__key_type.cpp delete mode 100755 Sources/Vendor/json/doc/examples/find__key_type.link delete mode 100755 Sources/Vendor/json/doc/examples/find__key_type.output delete mode 100755 Sources/Vendor/json/doc/examples/flatten.cpp delete mode 100755 Sources/Vendor/json/doc/examples/flatten.link delete mode 100755 Sources/Vendor/json/doc/examples/flatten.output delete mode 100755 Sources/Vendor/json/doc/examples/from_bson.cpp delete mode 100755 Sources/Vendor/json/doc/examples/from_bson.link delete mode 100755 Sources/Vendor/json/doc/examples/from_bson.output delete mode 100755 Sources/Vendor/json/doc/examples/from_cbor.cpp delete mode 100755 Sources/Vendor/json/doc/examples/from_cbor.link delete mode 100755 Sources/Vendor/json/doc/examples/from_cbor.output delete mode 100755 Sources/Vendor/json/doc/examples/from_msgpack.cpp delete mode 100755 Sources/Vendor/json/doc/examples/from_msgpack.link delete mode 100755 Sources/Vendor/json/doc/examples/from_msgpack.output delete mode 100755 Sources/Vendor/json/doc/examples/from_ubjson.cpp delete mode 100755 Sources/Vendor/json/doc/examples/from_ubjson.link delete mode 100755 Sources/Vendor/json/doc/examples/from_ubjson.output delete mode 100755 Sources/Vendor/json/doc/examples/front.cpp delete mode 100755 Sources/Vendor/json/doc/examples/front.link delete mode 100755 Sources/Vendor/json/doc/examples/front.output delete mode 100755 Sources/Vendor/json/doc/examples/get__PointerType.cpp delete mode 100755 Sources/Vendor/json/doc/examples/get__PointerType.link delete mode 100755 Sources/Vendor/json/doc/examples/get__PointerType.output delete mode 100755 Sources/Vendor/json/doc/examples/get__ValueType_const.cpp delete mode 100755 Sources/Vendor/json/doc/examples/get__ValueType_const.link delete mode 100755 Sources/Vendor/json/doc/examples/get__ValueType_const.output delete mode 100755 Sources/Vendor/json/doc/examples/get_ptr.cpp delete mode 100755 Sources/Vendor/json/doc/examples/get_ptr.link delete mode 100755 Sources/Vendor/json/doc/examples/get_ptr.output delete mode 100755 Sources/Vendor/json/doc/examples/get_ref.cpp delete mode 100755 Sources/Vendor/json/doc/examples/get_ref.link delete mode 100755 Sources/Vendor/json/doc/examples/get_ref.output delete mode 100755 Sources/Vendor/json/doc/examples/get_to.cpp delete mode 100755 Sources/Vendor/json/doc/examples/get_to.link delete mode 100755 Sources/Vendor/json/doc/examples/get_to.output delete mode 100755 Sources/Vendor/json/doc/examples/insert.cpp delete mode 100755 Sources/Vendor/json/doc/examples/insert.link delete mode 100755 Sources/Vendor/json/doc/examples/insert.output delete mode 100755 Sources/Vendor/json/doc/examples/insert__count.cpp delete mode 100755 Sources/Vendor/json/doc/examples/insert__count.link delete mode 100755 Sources/Vendor/json/doc/examples/insert__count.output delete mode 100755 Sources/Vendor/json/doc/examples/insert__ilist.cpp delete mode 100755 Sources/Vendor/json/doc/examples/insert__ilist.link delete mode 100755 Sources/Vendor/json/doc/examples/insert__ilist.output delete mode 100755 Sources/Vendor/json/doc/examples/insert__range.cpp delete mode 100755 Sources/Vendor/json/doc/examples/insert__range.link delete mode 100755 Sources/Vendor/json/doc/examples/insert__range.output delete mode 100755 Sources/Vendor/json/doc/examples/insert__range_object.cpp delete mode 100755 Sources/Vendor/json/doc/examples/insert__range_object.link delete mode 100755 Sources/Vendor/json/doc/examples/insert__range_object.output delete mode 100755 Sources/Vendor/json/doc/examples/invalid_iterator.cpp delete mode 100755 Sources/Vendor/json/doc/examples/invalid_iterator.link delete mode 100755 Sources/Vendor/json/doc/examples/invalid_iterator.output delete mode 100755 Sources/Vendor/json/doc/examples/is_array.cpp delete mode 100755 Sources/Vendor/json/doc/examples/is_array.link delete mode 100755 Sources/Vendor/json/doc/examples/is_array.output delete mode 100755 Sources/Vendor/json/doc/examples/is_boolean.cpp delete mode 100755 Sources/Vendor/json/doc/examples/is_boolean.link delete mode 100755 Sources/Vendor/json/doc/examples/is_boolean.output delete mode 100755 Sources/Vendor/json/doc/examples/is_discarded.cpp delete mode 100755 Sources/Vendor/json/doc/examples/is_discarded.link delete mode 100755 Sources/Vendor/json/doc/examples/is_discarded.output delete mode 100755 Sources/Vendor/json/doc/examples/is_null.cpp delete mode 100755 Sources/Vendor/json/doc/examples/is_null.link delete mode 100755 Sources/Vendor/json/doc/examples/is_null.output delete mode 100755 Sources/Vendor/json/doc/examples/is_number.cpp delete mode 100755 Sources/Vendor/json/doc/examples/is_number.link delete mode 100755 Sources/Vendor/json/doc/examples/is_number.output delete mode 100755 Sources/Vendor/json/doc/examples/is_number_float.cpp delete mode 100755 Sources/Vendor/json/doc/examples/is_number_float.link delete mode 100755 Sources/Vendor/json/doc/examples/is_number_float.output delete mode 100755 Sources/Vendor/json/doc/examples/is_number_integer.cpp delete mode 100755 Sources/Vendor/json/doc/examples/is_number_integer.link delete mode 100755 Sources/Vendor/json/doc/examples/is_number_integer.output delete mode 100755 Sources/Vendor/json/doc/examples/is_number_unsigned.cpp delete mode 100755 Sources/Vendor/json/doc/examples/is_number_unsigned.link delete mode 100755 Sources/Vendor/json/doc/examples/is_number_unsigned.output delete mode 100755 Sources/Vendor/json/doc/examples/is_object.cpp delete mode 100755 Sources/Vendor/json/doc/examples/is_object.link delete mode 100755 Sources/Vendor/json/doc/examples/is_object.output delete mode 100755 Sources/Vendor/json/doc/examples/is_primitive.cpp delete mode 100755 Sources/Vendor/json/doc/examples/is_primitive.link delete mode 100755 Sources/Vendor/json/doc/examples/is_primitive.output delete mode 100755 Sources/Vendor/json/doc/examples/is_string.cpp delete mode 100755 Sources/Vendor/json/doc/examples/is_string.link delete mode 100755 Sources/Vendor/json/doc/examples/is_string.output delete mode 100755 Sources/Vendor/json/doc/examples/is_structured.cpp delete mode 100755 Sources/Vendor/json/doc/examples/is_structured.link delete mode 100755 Sources/Vendor/json/doc/examples/is_structured.output delete mode 100755 Sources/Vendor/json/doc/examples/items.cpp delete mode 100755 Sources/Vendor/json/doc/examples/items.link delete mode 100755 Sources/Vendor/json/doc/examples/items.output delete mode 100755 Sources/Vendor/json/doc/examples/iterator_wrapper.cpp delete mode 100755 Sources/Vendor/json/doc/examples/iterator_wrapper.link delete mode 100755 Sources/Vendor/json/doc/examples/iterator_wrapper.output delete mode 100755 Sources/Vendor/json/doc/examples/json_pointer.cpp delete mode 100755 Sources/Vendor/json/doc/examples/json_pointer.link delete mode 100755 Sources/Vendor/json/doc/examples/json_pointer.output delete mode 100755 Sources/Vendor/json/doc/examples/json_pointer__to_string.cpp delete mode 100755 Sources/Vendor/json/doc/examples/json_pointer__to_string.link delete mode 100755 Sources/Vendor/json/doc/examples/json_pointer__to_string.output delete mode 100755 Sources/Vendor/json/doc/examples/max_size.cpp delete mode 100755 Sources/Vendor/json/doc/examples/max_size.link delete mode 100755 Sources/Vendor/json/doc/examples/max_size.output delete mode 100755 Sources/Vendor/json/doc/examples/merge_patch.cpp delete mode 100755 Sources/Vendor/json/doc/examples/merge_patch.link delete mode 100755 Sources/Vendor/json/doc/examples/merge_patch.output delete mode 100755 Sources/Vendor/json/doc/examples/meta.cpp delete mode 100755 Sources/Vendor/json/doc/examples/meta.link delete mode 100755 Sources/Vendor/json/doc/examples/meta.output delete mode 100755 Sources/Vendor/json/doc/examples/object.cpp delete mode 100755 Sources/Vendor/json/doc/examples/object.link delete mode 100755 Sources/Vendor/json/doc/examples/object.output delete mode 100755 Sources/Vendor/json/doc/examples/operator__ValueType.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operator__ValueType.link delete mode 100755 Sources/Vendor/json/doc/examples/operator__ValueType.output delete mode 100755 Sources/Vendor/json/doc/examples/operator__equal.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operator__equal.link delete mode 100755 Sources/Vendor/json/doc/examples/operator__equal.output delete mode 100755 Sources/Vendor/json/doc/examples/operator__equal__nullptr_t.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operator__equal__nullptr_t.link delete mode 100755 Sources/Vendor/json/doc/examples/operator__equal__nullptr_t.output delete mode 100755 Sources/Vendor/json/doc/examples/operator__greater.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operator__greater.link delete mode 100755 Sources/Vendor/json/doc/examples/operator__greater.output delete mode 100755 Sources/Vendor/json/doc/examples/operator__greaterequal.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operator__greaterequal.link delete mode 100755 Sources/Vendor/json/doc/examples/operator__greaterequal.output delete mode 100755 Sources/Vendor/json/doc/examples/operator__less.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operator__less.link delete mode 100755 Sources/Vendor/json/doc/examples/operator__less.output delete mode 100755 Sources/Vendor/json/doc/examples/operator__lessequal.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operator__lessequal.link delete mode 100755 Sources/Vendor/json/doc/examples/operator__lessequal.output delete mode 100755 Sources/Vendor/json/doc/examples/operator__notequal.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operator__notequal.link delete mode 100755 Sources/Vendor/json/doc/examples/operator__notequal.output delete mode 100755 Sources/Vendor/json/doc/examples/operator__notequal__nullptr_t.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operator__notequal__nullptr_t.link delete mode 100755 Sources/Vendor/json/doc/examples/operator__notequal__nullptr_t.output delete mode 100755 Sources/Vendor/json/doc/examples/operator__value_t.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operator__value_t.link delete mode 100755 Sources/Vendor/json/doc/examples/operator__value_t.output delete mode 100755 Sources/Vendor/json/doc/examples/operator_deserialize.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operator_deserialize.link delete mode 100755 Sources/Vendor/json/doc/examples/operator_deserialize.output delete mode 100755 Sources/Vendor/json/doc/examples/operator_serialize.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operator_serialize.link delete mode 100755 Sources/Vendor/json/doc/examples/operator_serialize.output delete mode 100755 Sources/Vendor/json/doc/examples/operatorarray__key_type.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operatorarray__key_type.link delete mode 100755 Sources/Vendor/json/doc/examples/operatorarray__key_type.output delete mode 100755 Sources/Vendor/json/doc/examples/operatorarray__key_type_const.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operatorarray__key_type_const.link delete mode 100755 Sources/Vendor/json/doc/examples/operatorarray__key_type_const.output delete mode 100755 Sources/Vendor/json/doc/examples/operatorarray__size_type.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operatorarray__size_type.link delete mode 100755 Sources/Vendor/json/doc/examples/operatorarray__size_type.output delete mode 100755 Sources/Vendor/json/doc/examples/operatorarray__size_type_const.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operatorarray__size_type_const.link delete mode 100755 Sources/Vendor/json/doc/examples/operatorarray__size_type_const.output delete mode 100755 Sources/Vendor/json/doc/examples/operatorjson_pointer.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operatorjson_pointer.link delete mode 100755 Sources/Vendor/json/doc/examples/operatorjson_pointer.output delete mode 100755 Sources/Vendor/json/doc/examples/operatorjson_pointer_const.cpp delete mode 100755 Sources/Vendor/json/doc/examples/operatorjson_pointer_const.link delete mode 100755 Sources/Vendor/json/doc/examples/operatorjson_pointer_const.output delete mode 100755 Sources/Vendor/json/doc/examples/other_error.cpp delete mode 100755 Sources/Vendor/json/doc/examples/other_error.link delete mode 100755 Sources/Vendor/json/doc/examples/other_error.output delete mode 100755 Sources/Vendor/json/doc/examples/out_of_range.cpp delete mode 100755 Sources/Vendor/json/doc/examples/out_of_range.link delete mode 100755 Sources/Vendor/json/doc/examples/out_of_range.output delete mode 100755 Sources/Vendor/json/doc/examples/parse__array__parser_callback_t.cpp delete mode 100755 Sources/Vendor/json/doc/examples/parse__array__parser_callback_t.link delete mode 100755 Sources/Vendor/json/doc/examples/parse__array__parser_callback_t.output delete mode 100755 Sources/Vendor/json/doc/examples/parse__contiguouscontainer__parser_callback_t.cpp delete mode 100755 Sources/Vendor/json/doc/examples/parse__contiguouscontainer__parser_callback_t.link delete mode 100755 Sources/Vendor/json/doc/examples/parse__contiguouscontainer__parser_callback_t.output delete mode 100755 Sources/Vendor/json/doc/examples/parse__istream__parser_callback_t.cpp delete mode 100755 Sources/Vendor/json/doc/examples/parse__istream__parser_callback_t.link delete mode 100755 Sources/Vendor/json/doc/examples/parse__istream__parser_callback_t.output delete mode 100755 Sources/Vendor/json/doc/examples/parse__iteratortype__parser_callback_t.cpp delete mode 100755 Sources/Vendor/json/doc/examples/parse__iteratortype__parser_callback_t.link delete mode 100755 Sources/Vendor/json/doc/examples/parse__iteratortype__parser_callback_t.output delete mode 100755 Sources/Vendor/json/doc/examples/parse__string__parser_callback_t.cpp delete mode 100755 Sources/Vendor/json/doc/examples/parse__string__parser_callback_t.link delete mode 100755 Sources/Vendor/json/doc/examples/parse__string__parser_callback_t.output delete mode 100755 Sources/Vendor/json/doc/examples/parse_error.cpp delete mode 100755 Sources/Vendor/json/doc/examples/parse_error.link delete mode 100755 Sources/Vendor/json/doc/examples/parse_error.output delete mode 100755 Sources/Vendor/json/doc/examples/patch.cpp delete mode 100755 Sources/Vendor/json/doc/examples/patch.link delete mode 100755 Sources/Vendor/json/doc/examples/patch.output delete mode 100755 Sources/Vendor/json/doc/examples/push_back.cpp delete mode 100755 Sources/Vendor/json/doc/examples/push_back.link delete mode 100755 Sources/Vendor/json/doc/examples/push_back.output delete mode 100755 Sources/Vendor/json/doc/examples/push_back__initializer_list.cpp delete mode 100755 Sources/Vendor/json/doc/examples/push_back__initializer_list.link delete mode 100755 Sources/Vendor/json/doc/examples/push_back__initializer_list.output delete mode 100755 Sources/Vendor/json/doc/examples/push_back__object_t__value.cpp delete mode 100755 Sources/Vendor/json/doc/examples/push_back__object_t__value.link delete mode 100755 Sources/Vendor/json/doc/examples/push_back__object_t__value.output delete mode 100755 Sources/Vendor/json/doc/examples/rbegin.cpp delete mode 100755 Sources/Vendor/json/doc/examples/rbegin.link delete mode 100755 Sources/Vendor/json/doc/examples/rbegin.output delete mode 100755 Sources/Vendor/json/doc/examples/rend.cpp delete mode 100755 Sources/Vendor/json/doc/examples/rend.link delete mode 100755 Sources/Vendor/json/doc/examples/rend.output delete mode 100755 Sources/Vendor/json/doc/examples/sax_parse.cpp delete mode 100755 Sources/Vendor/json/doc/examples/sax_parse.link delete mode 100755 Sources/Vendor/json/doc/examples/sax_parse.output delete mode 100755 Sources/Vendor/json/doc/examples/size.cpp delete mode 100755 Sources/Vendor/json/doc/examples/size.link delete mode 100755 Sources/Vendor/json/doc/examples/size.output delete mode 100755 Sources/Vendor/json/doc/examples/swap__array_t.cpp delete mode 100755 Sources/Vendor/json/doc/examples/swap__array_t.link delete mode 100755 Sources/Vendor/json/doc/examples/swap__array_t.output delete mode 100755 Sources/Vendor/json/doc/examples/swap__object_t.cpp delete mode 100755 Sources/Vendor/json/doc/examples/swap__object_t.link delete mode 100755 Sources/Vendor/json/doc/examples/swap__object_t.output delete mode 100755 Sources/Vendor/json/doc/examples/swap__reference.cpp delete mode 100755 Sources/Vendor/json/doc/examples/swap__reference.link delete mode 100755 Sources/Vendor/json/doc/examples/swap__reference.output delete mode 100755 Sources/Vendor/json/doc/examples/swap__string_t.cpp delete mode 100755 Sources/Vendor/json/doc/examples/swap__string_t.link delete mode 100755 Sources/Vendor/json/doc/examples/swap__string_t.output delete mode 100755 Sources/Vendor/json/doc/examples/to_bson.cpp delete mode 100755 Sources/Vendor/json/doc/examples/to_bson.link delete mode 100755 Sources/Vendor/json/doc/examples/to_bson.output delete mode 100755 Sources/Vendor/json/doc/examples/to_cbor.cpp delete mode 100755 Sources/Vendor/json/doc/examples/to_cbor.link delete mode 100755 Sources/Vendor/json/doc/examples/to_cbor.output delete mode 100755 Sources/Vendor/json/doc/examples/to_msgpack.cpp delete mode 100755 Sources/Vendor/json/doc/examples/to_msgpack.link delete mode 100755 Sources/Vendor/json/doc/examples/to_msgpack.output delete mode 100755 Sources/Vendor/json/doc/examples/to_ubjson.cpp delete mode 100755 Sources/Vendor/json/doc/examples/to_ubjson.link delete mode 100755 Sources/Vendor/json/doc/examples/to_ubjson.output delete mode 100755 Sources/Vendor/json/doc/examples/type.cpp delete mode 100755 Sources/Vendor/json/doc/examples/type.link delete mode 100755 Sources/Vendor/json/doc/examples/type.output delete mode 100755 Sources/Vendor/json/doc/examples/type_error.cpp delete mode 100755 Sources/Vendor/json/doc/examples/type_error.link delete mode 100755 Sources/Vendor/json/doc/examples/type_error.output delete mode 100755 Sources/Vendor/json/doc/examples/type_name.cpp delete mode 100755 Sources/Vendor/json/doc/examples/type_name.link delete mode 100755 Sources/Vendor/json/doc/examples/type_name.output delete mode 100755 Sources/Vendor/json/doc/examples/unflatten.cpp delete mode 100755 Sources/Vendor/json/doc/examples/unflatten.link delete mode 100755 Sources/Vendor/json/doc/examples/unflatten.output delete mode 100755 Sources/Vendor/json/doc/examples/update.cpp delete mode 100755 Sources/Vendor/json/doc/examples/update.link delete mode 100755 Sources/Vendor/json/doc/examples/update.output delete mode 100755 Sources/Vendor/json/doc/examples/update__range.cpp delete mode 100755 Sources/Vendor/json/doc/examples/update__range.link delete mode 100755 Sources/Vendor/json/doc/examples/update__range.output delete mode 100755 Sources/Vendor/json/doc/faq.md delete mode 100755 Sources/Vendor/json/doc/images/binary.png delete mode 100755 Sources/Vendor/json/doc/images/callback_events.png delete mode 100755 Sources/Vendor/json/doc/images/range-begin-end.svg delete mode 100755 Sources/Vendor/json/doc/images/range-rbegin-rend.svg delete mode 100755 Sources/Vendor/json/doc/index.md delete mode 100755 Sources/Vendor/json/doc/json.gif delete mode 100755 Sources/Vendor/json/doc/scripts/git-update-ghpages delete mode 100755 Sources/Vendor/json/doc/scripts/send_to_wandbox.py delete mode 100755 Sources/Vendor/json/doc/usages/ios.png delete mode 100755 Sources/Vendor/json/doc/usages/macos.png delete mode 100644 Sources/Vendor/json/src/json.hpp delete mode 100755 Sources/Vendor/websocketpp/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/COPYING delete mode 100755 Sources/Vendor/websocketpp/Doxyfile delete mode 100755 Sources/Vendor/websocketpp/SConstruct delete mode 100755 Sources/Vendor/websocketpp/changelog.md delete mode 100755 Sources/Vendor/websocketpp/cmake/CMakeHelpers.cmake delete mode 100755 Sources/Vendor/websocketpp/docs/config.dox delete mode 100755 Sources/Vendor/websocketpp/docs/faq.dox delete mode 100755 Sources/Vendor/websocketpp/docs/getting_started.dox delete mode 100755 Sources/Vendor/websocketpp/docs/handlers.dox delete mode 100755 Sources/Vendor/websocketpp/docs/logging.dox delete mode 100755 Sources/Vendor/websocketpp/docs/manual.css delete mode 100755 Sources/Vendor/websocketpp/docs/manual.dox delete mode 100755 Sources/Vendor/websocketpp/docs/simple_broadcast_server.cpp delete mode 100755 Sources/Vendor/websocketpp/docs/simple_count_server_thread.cpp delete mode 100755 Sources/Vendor/websocketpp/docs/tutorials.dox delete mode 100755 Sources/Vendor/websocketpp/examples/associative_storage/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/associative_storage/associative_storage.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/broadcast_server/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/broadcast_server/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/broadcast_server/broadcast_server.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/debug_client/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/debug_client/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/debug_client/debug_client.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/debug_server/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/debug_server/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/debug_server/debug_server.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/dev/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/dev/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/dev/main.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/echo_client/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/echo_client/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/echo_client/echo_client.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/echo_server/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/echo_server/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/echo_server/echo_handler.hpp delete mode 100755 Sources/Vendor/websocketpp/examples/echo_server/echo_server.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/echo_server_both/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/echo_server_both/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/echo_server_both/echo_server_both.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/echo_server_both/server.pem delete mode 100755 Sources/Vendor/websocketpp/examples/echo_server_tls/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/echo_server_tls/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/echo_server_tls/dh.pem delete mode 100755 Sources/Vendor/websocketpp/examples/echo_server_tls/echo_server_tls.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/echo_server_tls/server.pem delete mode 100755 Sources/Vendor/websocketpp/examples/enriched_storage/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/enriched_storage/enriched_storage.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/external_io_service/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/external_io_service/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/external_io_service/external_io_service.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/external_io_service/tcp_echo_server.hpp delete mode 100755 Sources/Vendor/websocketpp/examples/handler_switch/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/handler_switch/handler_switch.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/iostream_server/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/iostream_server/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/iostream_server/iostream_server.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/print_client/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/print_client/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/print_client/print_client.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/print_client_tls/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/print_client_tls/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/print_client_tls/ca-chain.cert.pem delete mode 100755 Sources/Vendor/websocketpp/examples/print_client_tls/print_client_tls.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/print_server/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/print_server/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/print_server/print_server.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/scratch_client/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/scratch_client/scratch_client.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/scratch_server/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/scratch_server/scratch_server.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/simple_broadcast_server/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/simple_broadcast_server/simple_broadcast_server.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/sip_client/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/sip_client/README.txt delete mode 100755 Sources/Vendor/websocketpp/examples/sip_client/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/sip_client/sip_client.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/subprotocol_server/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/subprotocol_server/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/subprotocol_server/subprotocol_server.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/telemetry_client/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/telemetry_client/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/telemetry_client/telemetry_client.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/telemetry_server/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/telemetry_server/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/telemetry_server/index.html delete mode 100755 Sources/Vendor/websocketpp/examples/telemetry_server/telemetry_server.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/testee_client/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/testee_client/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/testee_client/testee_client.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/testee_server/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/testee_server/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/testee_server/testee_server.cpp delete mode 100755 Sources/Vendor/websocketpp/examples/utility_client/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/examples/utility_client/SConscript delete mode 100755 Sources/Vendor/websocketpp/examples/utility_client/utility_client.cpp delete mode 100755 Sources/Vendor/websocketpp/readme.md delete mode 100755 Sources/Vendor/websocketpp/roadmap.md delete mode 100755 Sources/Vendor/websocketpp/test/connection/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/test/connection/SConscript delete mode 100755 Sources/Vendor/websocketpp/test/connection/connection.cpp delete mode 100755 Sources/Vendor/websocketpp/test/connection/connection_tu2.cpp delete mode 100755 Sources/Vendor/websocketpp/test/connection/connection_tu2.hpp delete mode 100755 Sources/Vendor/websocketpp/test/endpoint/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/test/endpoint/SConscript delete mode 100755 Sources/Vendor/websocketpp/test/endpoint/endpoint.cpp delete mode 100755 Sources/Vendor/websocketpp/test/extension/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/test/extension/SConscript delete mode 100755 Sources/Vendor/websocketpp/test/extension/extension.cpp delete mode 100755 Sources/Vendor/websocketpp/test/extension/permessage_deflate.cpp delete mode 100755 Sources/Vendor/websocketpp/test/http/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/test/http/SConscript delete mode 100755 Sources/Vendor/websocketpp/test/http/a.out delete mode 100755 Sources/Vendor/websocketpp/test/http/parser.cpp delete mode 100755 Sources/Vendor/websocketpp/test/http/parser_perf.cpp delete mode 100755 Sources/Vendor/websocketpp/test/http/perf.out delete mode 100755 Sources/Vendor/websocketpp/test/http/test.out delete mode 100755 Sources/Vendor/websocketpp/test/logger/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/test/logger/SConscript delete mode 100755 Sources/Vendor/websocketpp/test/logger/basic.cpp delete mode 100755 Sources/Vendor/websocketpp/test/message_buffer/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/test/message_buffer/SConscript delete mode 100755 Sources/Vendor/websocketpp/test/message_buffer/alloc.cpp delete mode 100755 Sources/Vendor/websocketpp/test/message_buffer/message.cpp delete mode 100755 Sources/Vendor/websocketpp/test/message_buffer/pool.cpp delete mode 100755 Sources/Vendor/websocketpp/test/processors/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/test/processors/SConscript delete mode 100755 Sources/Vendor/websocketpp/test/processors/extension_permessage_compress.cpp delete mode 100755 Sources/Vendor/websocketpp/test/processors/hybi00.cpp delete mode 100755 Sources/Vendor/websocketpp/test/processors/hybi07.cpp delete mode 100755 Sources/Vendor/websocketpp/test/processors/hybi08.cpp delete mode 100755 Sources/Vendor/websocketpp/test/processors/hybi13.cpp delete mode 100755 Sources/Vendor/websocketpp/test/processors/processor.cpp delete mode 100755 Sources/Vendor/websocketpp/test/random/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/test/random/SConscript delete mode 100755 Sources/Vendor/websocketpp/test/random/none.cpp delete mode 100755 Sources/Vendor/websocketpp/test/random/random_device.cpp delete mode 100755 Sources/Vendor/websocketpp/test/roles/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/test/roles/SConscript delete mode 100755 Sources/Vendor/websocketpp/test/roles/client.cpp delete mode 100755 Sources/Vendor/websocketpp/test/roles/server.cpp delete mode 100755 Sources/Vendor/websocketpp/test/transport/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/test/transport/SConscript delete mode 100755 Sources/Vendor/websocketpp/test/transport/asio/SConscript delete mode 100755 Sources/Vendor/websocketpp/test/transport/asio/base.cpp delete mode 100755 Sources/Vendor/websocketpp/test/transport/asio/security.cpp delete mode 100755 Sources/Vendor/websocketpp/test/transport/asio/timers.cpp delete mode 100755 Sources/Vendor/websocketpp/test/transport/hybi_util.cpp delete mode 100755 Sources/Vendor/websocketpp/test/transport/integration.cpp delete mode 100755 Sources/Vendor/websocketpp/test/transport/iostream/SConscript delete mode 100755 Sources/Vendor/websocketpp/test/transport/iostream/base.cpp delete mode 100755 Sources/Vendor/websocketpp/test/transport/iostream/connection.cpp delete mode 100755 Sources/Vendor/websocketpp/test/transport/iostream/endpoint.cpp delete mode 100755 Sources/Vendor/websocketpp/test/utility/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/test/utility/SConscript delete mode 100755 Sources/Vendor/websocketpp/test/utility/close.cpp delete mode 100755 Sources/Vendor/websocketpp/test/utility/error.cpp delete mode 100755 Sources/Vendor/websocketpp/test/utility/frame.cpp delete mode 100755 Sources/Vendor/websocketpp/test/utility/sha1.cpp delete mode 100755 Sources/Vendor/websocketpp/test/utility/uri.cpp delete mode 100755 Sources/Vendor/websocketpp/test/utility/utilities.cpp delete mode 100755 Sources/Vendor/websocketpp/tutorials/broadcast_tutorial/broadcast_tutorial.md delete mode 100755 Sources/Vendor/websocketpp/tutorials/chat_tutorial/chat_tutorial.md delete mode 100755 Sources/Vendor/websocketpp/tutorials/utility_client/step1.cpp delete mode 100755 Sources/Vendor/websocketpp/tutorials/utility_client/step2.cpp delete mode 100755 Sources/Vendor/websocketpp/tutorials/utility_client/step3.cpp delete mode 100755 Sources/Vendor/websocketpp/tutorials/utility_client/step4.cpp delete mode 100755 Sources/Vendor/websocketpp/tutorials/utility_client/step5.cpp delete mode 100755 Sources/Vendor/websocketpp/tutorials/utility_client/step6.cpp delete mode 100755 Sources/Vendor/websocketpp/tutorials/utility_client/utility_client.md delete mode 100755 Sources/Vendor/websocketpp/tutorials/utility_server/step1.cpp delete mode 100755 Sources/Vendor/websocketpp/tutorials/utility_server/step2.cpp delete mode 100755 Sources/Vendor/websocketpp/tutorials/utility_server/utility_server.md delete mode 100755 Sources/Vendor/websocketpp/websocketpp-config.cmake.in delete mode 100755 Sources/Vendor/websocketpp/websocketpp/CMakeLists.txt delete mode 100755 Sources/Vendor/websocketpp/websocketpp/base64/base64.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/client.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/close.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/asio.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/asio_ssl.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/chrono.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/connection_hdl.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/cpp11.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/functional.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/md5.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/memory.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/network.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/platforms.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/random.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/regex.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/stdint.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/system_error.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/thread.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/time.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/common/type_traits.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/concurrency/basic.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/concurrency/none.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/config/asio.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/config/asio_client.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/config/asio_no_tls.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/config/asio_no_tls_client.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/config/boost_config.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/config/core.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/config/core_client.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/config/debug.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/config/debug_asio.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/config/debug_asio_no_tls.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/config/minimal_client.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/config/minimal_server.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/connection.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/connection_base.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/endpoint.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/endpoint_base.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/error.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/extensions/extension.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/frame.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/http/constants.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/http/impl/parser.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/http/impl/request.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/http/impl/response.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/http/parser.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/http/request.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/http/response.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/impl/connection_impl.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/impl/endpoint_impl.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/impl/utilities_impl.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/logger/basic.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/logger/levels.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/logger/stub.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/logger/syslog.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/message_buffer/alloc.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/message_buffer/message.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/message_buffer/pool.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/processors/base.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/processors/hybi00.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/processors/hybi07.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/processors/hybi08.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/processors/hybi13.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/processors/processor.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/random/none.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/random/random_device.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/roles/client_endpoint.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/roles/server_endpoint.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/server.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/sha1/sha1.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/asio/base.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/asio/connection.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/asio/endpoint.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/asio/security/base.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/asio/security/none.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/asio/security/tls.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/base/connection.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/base/endpoint.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/debug/base.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/debug/connection.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/debug/endpoint.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/iostream/base.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/iostream/connection.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/iostream/endpoint.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/stub/base.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/stub/connection.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/transport/stub/endpoint.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/uri.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/utf8_validator.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/utilities.hpp delete mode 100755 Sources/Vendor/websocketpp/websocketpp/version.hpp delete mode 100644 Sources/Windows/com.elgato.cpu.sdPlugin.sln delete mode 100644 Sources/Windows/com.elgato.cpu.sdPlugin.vcxproj delete mode 100644 Sources/Windows/pch.cpp delete mode 100644 Sources/Windows/pch.h delete mode 100755 Sources/com.elgato.cpu.sdPlugin/cpu delete mode 100644 Sources/com.elgato.cpu.sdPlugin/cpu.exe delete mode 100644 Sources/macOS/cpu.xcodeproj/project.pbxproj delete mode 100644 Sources/macOS/pch.h diff --git a/Release/com.elgato.cpu.streamDeckPlugin b/Release/com.elgato.cpu.streamDeckPlugin deleted file mode 100644 index c3b91f7cf95ce86a7e408ab8efbe55aa0adb94b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 469265 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%0DU9-NrPfXdS^6ZRLZ@Jmqxx1h`x-Y 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
b)MVTa3!bKnAOif-*iiNBQ7a zHLai1!mM1Xyc(wPK0n1CJx4LLieZ|f?E4iZM9=Y%TT*g=#dZVEWqc<`v|A>k0AB&^ z_NSd~g7gGCQ72r@9#eRk>Ar*g@05A)fH+*(6$a`L#FXy>)KXQ@QWH*4OD!dei5vPu zOT9(yJ}ezmR%64IsYW#I*fNHx6Crg=A9SIH?IVuHX`rlh&|2t zz_an1yvk$o+7<7F(t4drMXA&`0{0U&)}r~mpSYX$6ZT(uKT&5beGJDqzoz}fpkI+C z*3o{V4kiJ;*9)U&yLSa|9-3U!oW6C0x(N$l+HMfI>IstJ@i_9u1O|C2X|zf{x0|!S zl;n>1ig8VxJ0?4%6PfNqmYdJ}F%MVEB&vO}qD%a

;pA8oc%#K32sT70{ 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

(k?*TADe(??{)v+~ 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

c( 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%0A&Hn2Q&iEY(Uoox(iTWK+6He0D2x!S3uhU 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 - return false; - - // Assign value - outObject = *iter; - - return true; - } - - //! Get array by name - static bool GetArrayByName(const json& inJSON, const std::string& inName, json& outArray) - { - // Check desired value exists - json::const_iterator iter(inJSON.find(inName)); - if (iter == inJSON.end()) - return false; - - // Check value is an array - if (!iter->is_array()) - return false; - - // Assign value - outArray = *iter; - - return true; - } - - //! Get string by name - static std::string GetStringByName(const json& inJSON, const std::string& inName, const std::string& defaultValue = "") - { - // Check desired value exists - json::const_iterator iter(inJSON.find(inName)); - if (iter == inJSON.end()) - return defaultValue; - - // Check value is a string - if (!iter->is_string()) - return defaultValue; - - // Return value - return *iter; - } - - //! Get string - static std::string GetString(const json& j, const std::string& defaultString = "") - { - // Check value is a string - if (!j.is_string()) - return defaultString; - - return j; - } - - //! Get bool by name - static bool GetBoolByName(const json& inJSON, const std::string& inName, bool defaultValue = false) - { - // Check desired value exists - json::const_iterator iter(inJSON.find(inName)); - if (iter == inJSON.end()) - return defaultValue; - - // Check value is a bool - if (!iter->is_boolean()) - return defaultValue; - - // Return value - return *iter; - } - - //! Get integer by name - static int GetIntByName(const json& inJSON, const std::string& inName, int defaultValue = 0) - { - // Check desired value exists - json::const_iterator iter(inJSON.find(inName)); - if (iter == inJSON.end()) - return defaultValue; - - // Check value is an integer - if (!iter->is_number_integer()) - return defaultValue; - - // Return value - return *iter; - } - - //! Get unsigned integer by name - static unsigned int GetUnsignedIntByName(const json& inJSON, const std::string& inName, unsigned int defaultValue = 0) - { - // Check desired value exists - json::const_iterator iter(inJSON.find(inName)); - if (iter == inJSON.end()) - return defaultValue; - - // Check value is an unsigned integer - if (!iter->is_number_unsigned()) - return defaultValue; - - // Return value - return *iter; - } - - //! Get float by name - static float GetFloatByName(const json& inJSON, const std::string& inName, float defaultValue = 0.0) - { - // Check desired value exists - json::const_iterator iter(inJSON.find(inName)); - if (iter == inJSON.end()) - return defaultValue; - - // Check value is an integer - if (!iter->is_number_float() && !iter->is_number_integer()) - return defaultValue; - - // Return value - return *iter; - } -}; diff --git a/Sources/Common/ESDBasePlugin.h b/Sources/Common/ESDBasePlugin.h deleted file mode 100644 index 18a8fda..0000000 --- a/Sources/Common/ESDBasePlugin.h +++ /dev/null @@ -1,39 +0,0 @@ -//============================================================================== -/** -@file ESDBasePlugin.h - -@brief Plugin base class - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#pragma once - -class ESDConnectionManager; - -class ESDBasePlugin -{ -public: - ESDBasePlugin() { } - virtual ~ESDBasePlugin() { } - - void SetConnectionManager(ESDConnectionManager * inConnectionManager) { mConnectionManager = inConnectionManager; } - - virtual void KeyDownForAction(const std::string& inAction, const std::string& inContext, const json &inPayload, const std::string& inDeviceID) = 0; - virtual void KeyUpForAction(const std::string& inAction, const std::string& inContext, const json &inPayload, const std::string& inDeviceID) = 0; - - virtual void WillAppearForAction(const std::string& inAction, const std::string& inContext, const json &inPayload, const std::string& inDeviceID) = 0; - virtual void WillDisappearForAction(const std::string& inAction, const std::string& inContext, const json &inPayload, const std::string& inDeviceID) = 0; - - virtual void DeviceDidConnect(const std::string& inDeviceID, const json &inDeviceInfo) = 0; - virtual void DeviceDidDisconnect(const std::string& inDeviceID) = 0; - - virtual void SendToPlugin(const std::string& inAction, const std::string& inContext, const json &inPayload, const std::string& inDeviceID) = 0; - -protected: - ESDConnectionManager *mConnectionManager = nullptr; - -}; diff --git a/Sources/Common/ESDConnectionManager.cpp b/Sources/Common/ESDConnectionManager.cpp deleted file mode 100644 index 40e1837..0000000 --- a/Sources/Common/ESDConnectionManager.cpp +++ /dev/null @@ -1,314 +0,0 @@ -//============================================================================== -/** -@file ESDConnectionManager.cpp - -@brief Wrapper to implement the communication with the Stream Deck application - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#include "ESDConnectionManager.h" -#include "EPLJSONUtils.h" - - -void ESDConnectionManager::OnOpen(WebsocketClient* inClient, websocketpp::connection_hdl inConnectionHandler) -{ - DebugPrint("OnOpen"); - - // Register plugin with StreamDeck - json jsonObject; - jsonObject["event"] = mRegisterEvent; - jsonObject["uuid"] = mPluginUUID; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::OnFail(WebsocketClient* inClient, websocketpp::connection_hdl inConnectionHandler) -{ - std::string reason; - - if(inClient != nullptr) - { - WebsocketClient::connection_ptr connection = inClient->get_con_from_hdl(inConnectionHandler); - if(connection != NULL) - { - reason = connection->get_ec().message(); - } - } - - DebugPrint("Failed with reason: %s\n", reason.c_str()); -} - -void ESDConnectionManager::OnClose(WebsocketClient* inClient, websocketpp::connection_hdl inConnectionHandler) -{ - std::string reason; - - if(inClient != nullptr) - { - WebsocketClient::connection_ptr connection = inClient->get_con_from_hdl(inConnectionHandler); - if(connection != NULL) - { - reason = connection->get_remote_close_reason(); - } - } - - DebugPrint("Close with reason: %s\n", reason.c_str()); -} - -void ESDConnectionManager::OnMessage(websocketpp::connection_hdl, WebsocketClient::message_ptr inMsg) -{ - if (inMsg != NULL && inMsg->get_opcode() == websocketpp::frame::opcode::text) - { - std::string message = inMsg->get_payload(); - DebugPrint("OnMessage: %s\n", message.c_str()); - - try - { - json receivedJson = json::parse(message); - - std::string event = EPLJSONUtils::GetStringByName(receivedJson, kESDSDKCommonEvent); - std::string context = EPLJSONUtils::GetStringByName(receivedJson, kESDSDKCommonContext); - std::string action = EPLJSONUtils::GetStringByName(receivedJson, kESDSDKCommonAction); - std::string deviceID = EPLJSONUtils::GetStringByName(receivedJson, kESDSDKCommonDevice); - json payload; - EPLJSONUtils::GetObjectByName(receivedJson, kESDSDKCommonPayload, payload); - - if(event == kESDSDKEventKeyDown) - { - mPlugin->KeyDownForAction(action, context, payload, deviceID); - } - else if(event == kESDSDKEventKeyUp) - { - mPlugin->KeyUpForAction(action, context, payload, deviceID); - } - else if(event == kESDSDKEventWillAppear) - { - mPlugin->WillAppearForAction(action, context, payload, deviceID); - } - else if(event == kESDSDKEventWillDisappear) - { - mPlugin->WillDisappearForAction(action, context, payload, deviceID); - } - else if(event == kESDSDKEventDeviceDidConnect) - { - json deviceInfo; - EPLJSONUtils::GetObjectByName(receivedJson, kESDSDKCommonDeviceInfo, deviceInfo); - mPlugin->DeviceDidConnect(deviceID, deviceInfo); - } - else if(event == kESDSDKEventDeviceDidDisconnect) - { - mPlugin->DeviceDidDisconnect(deviceID); - } - else if (event == kESDSDKEventSendToPlugin) - { - mPlugin->SendToPlugin(action, context, payload, deviceID); - } - } - catch (...) - { - } - } -} - -ESDConnectionManager::ESDConnectionManager( - int inPort, - const std::string &inPluginUUID, - const std::string &inRegisterEvent, - const std::string &inInfo, - ESDBasePlugin *inPlugin) : - - mPort(inPort), - mPluginUUID(inPluginUUID), - mRegisterEvent(inRegisterEvent), - mPlugin(inPlugin) -{ - if (inPlugin != nullptr) - inPlugin->SetConnectionManager(this); -} - -void ESDConnectionManager::Run() -{ - try - { - // Create the endpoint - mWebsocket.clear_access_channels(websocketpp::log::alevel::all); - mWebsocket.clear_error_channels(websocketpp::log::elevel::all); - - // Initialize ASIO - mWebsocket.init_asio(); - - // Register our message handler - mWebsocket.set_open_handler(websocketpp::lib::bind(&ESDConnectionManager::OnOpen, this, &mWebsocket, websocketpp::lib::placeholders::_1)); - mWebsocket.set_fail_handler(websocketpp::lib::bind(&ESDConnectionManager::OnFail, this, &mWebsocket, websocketpp::lib::placeholders::_1)); - mWebsocket.set_close_handler(websocketpp::lib::bind(&ESDConnectionManager::OnClose, this, &mWebsocket, websocketpp::lib::placeholders::_1)); - mWebsocket.set_message_handler(websocketpp::lib::bind(&ESDConnectionManager::OnMessage, this, websocketpp::lib::placeholders::_1, websocketpp::lib::placeholders::_2)); - - websocketpp::lib::error_code ec; - std::string uri = "ws://127.0.0.1:" + std::to_string(mPort); - WebsocketClient::connection_ptr connection = mWebsocket.get_connection(uri, ec); - if (ec) - { - DebugPrint("Connect initialization error: %s\n", ec.message().c_str()); - return; - } - - mConnectionHandle = connection->get_handle(); - - // Note that connect here only requests a connection. No network messages are - // exchanged until the event loop starts running in the next line. - mWebsocket.connect(connection); - - // Start the ASIO io_service run loop - // this will cause a single connection to be made to the server. mWebsocket.run() - // will exit when this connection is closed. - mWebsocket.run(); - } - catch (websocketpp::exception const & e) - { - // Prevent an unused variable warning in release builds - (void)e; - DebugPrint("Websocket threw an exception: %s\n", e.what()); - } -} - -void ESDConnectionManager::SetTitle(const std::string &inTitle, const std::string& inContext, ESDSDKTarget inTarget) -{ - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventSetTitle; - jsonObject[kESDSDKCommonContext] = inContext; - - json payload; - payload[kESDSDKPayloadTarget] = inTarget; - payload[kESDSDKPayloadTitle] = inTitle; - jsonObject[kESDSDKCommonPayload] = payload; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::SetImage(const std::string &inBase64ImageString, const std::string& inContext, ESDSDKTarget inTarget) -{ - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventSetImage; - jsonObject[kESDSDKCommonContext] = inContext; - - json payload; - payload[kESDSDKPayloadTarget] = inTarget; - const std::string prefix = "data:image/png;base64,"; - if (inBase64ImageString.empty() || inBase64ImageString.substr(0, prefix.length()).find(prefix) == 0) - payload[kESDSDKPayloadImage] = inBase64ImageString; - else - payload[kESDSDKPayloadImage] = "data:image/png;base64," + inBase64ImageString; - jsonObject[kESDSDKCommonPayload] = payload; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::ShowAlertForContext(const std::string& inContext) -{ - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventShowAlert; - jsonObject[kESDSDKCommonContext] = inContext; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::ShowOKForContext(const std::string& inContext) -{ - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventShowOK; - jsonObject[kESDSDKCommonContext] = inContext; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::SetSettings(const json &inSettings, const std::string& inContext) -{ - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventSetSettings; - jsonObject[kESDSDKCommonContext] = inContext; - jsonObject[kESDSDKCommonPayload] = inSettings; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::SetState(int inState, const std::string& inContext) -{ - json jsonObject; - - json payload; - payload[kESDSDKPayloadState] = inState; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventSetState; - jsonObject[kESDSDKCommonContext] = inContext; - jsonObject[kESDSDKCommonPayload] = payload; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::SendToPropertyInspector(const std::string & inAction, const std::string & inContext, const json & inPayload) -{ - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventSendToPropertyInspector; - jsonObject[kESDSDKCommonContext] = inContext; - jsonObject[kESDSDKCommonAction] = inAction; - jsonObject[kESDSDKCommonPayload] = inPayload; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::SwitchToProfile(const std::string& inDeviceID, const std::string& inProfileName) -{ - if(!inDeviceID.empty()) - { - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventSwitchToProfile; - jsonObject[kESDSDKCommonContext] = mPluginUUID; - jsonObject[kESDSDKCommonDevice] = inDeviceID; - - if(!inProfileName.empty()) - { - json payload; - payload[kESDSDKPayloadProfile] = inProfileName; - jsonObject[kESDSDKCommonPayload] = payload; - } - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); - } -} - -void ESDConnectionManager::LogMessage(const std::string& inMessage) -{ - if(!inMessage.empty()) - { - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventLogMessage; - - json payload; - payload[kESDSDKPayloadMessage] = inMessage; - jsonObject[kESDSDKCommonPayload] = payload; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); - } -} - diff --git a/Sources/Common/ESDConnectionManager.h b/Sources/Common/ESDConnectionManager.h deleted file mode 100644 index f975760..0000000 --- a/Sources/Common/ESDConnectionManager.h +++ /dev/null @@ -1,67 +0,0 @@ -//============================================================================== -/** -@file ESDConnectionManager.h - -@brief Wrapper to implement the communication with the Stream Deck application - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#pragma once - -#include "ESDBasePlugin.h" -#include "ESDSDKDefines.h" - -#include -#include -#include -#include - -typedef websocketpp::config::asio_client::message_type::ptr message_ptr; -typedef websocketpp::client WebsocketClient; - -class ESDConnectionManager -{ -public: - - ESDConnectionManager( - int inPort, - const std::string &inPluginUUID, - const std::string &inRegisterEvent, - const std::string &inInfo, - ESDBasePlugin *inPlugin); - - // Start the event loop - void Run(); - - // API to communicate with the Stream Deck application - void SetTitle(const std::string &inTitle, const std::string& inContext, ESDSDKTarget inTarget); - void SetImage(const std::string &inBase64ImageString, const std::string& inContext, ESDSDKTarget inTarget); - void ShowAlertForContext(const std::string& inContext); - void ShowOKForContext(const std::string& inContext); - void SetSettings(const json &inSettings, const std::string& inContext); - void SetState(int inState, const std::string& inContext); - void SendToPropertyInspector(const std::string& inAction, const std::string& inContext, const json &inPayload); - void SwitchToProfile(const std::string& inDeviceID, const std::string& inProfileName); - void LogMessage(const std::string& inMessage); - -private: - - // Websocket callbacks - void OnOpen(WebsocketClient * inClient, websocketpp::connection_hdl inConnectionHandler); - void OnFail(WebsocketClient * inClient, websocketpp::connection_hdl inConnectionHandler); - void OnClose(WebsocketClient * inClient, websocketpp::connection_hdl inConnectionHandler); - void OnMessage(websocketpp::connection_hdl, WebsocketClient::message_ptr inMsg); - - // Member variables - int mPort = 0; - std::string mPluginUUID; - std::string mRegisterEvent; - websocketpp::connection_hdl mConnectionHandle; - WebsocketClient mWebsocket; - ESDBasePlugin * mPlugin = nullptr; -}; - diff --git a/Sources/Common/ESDLocalizer.cpp b/Sources/Common/ESDLocalizer.cpp deleted file mode 100644 index 51f6777..0000000 --- a/Sources/Common/ESDLocalizer.cpp +++ /dev/null @@ -1,63 +0,0 @@ -//============================================================================== -/** -@file ESDLocalizer.cpp - -@brief Utility functions to handle localization - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#include "ESDLocalizer.h" -#include "ESDUtilities.h" -#include "EPLJSONUtils.h" -#include - -static ESDLocalizer* sLocalizer = nullptr; - -void ESDLocalizer::Initialize(const std::string &inLanguageCode) -{ - if(sLocalizer == nullptr) - { - sLocalizer = new ESDLocalizer(inLanguageCode); - } -} - -ESDLocalizer::ESDLocalizer(const std::string &inLanguageCode) -{ - try - { - std::string pluginPath = ESDUtilities::GetPluginPath(); - if (!inLanguageCode.empty() && !pluginPath.empty()) - { - std::string localizationFilePath = ESDUtilities::AddPathComponent(pluginPath, inLanguageCode + ".json"); - std::ifstream localizationFile(localizationFilePath, std::ifstream::in); - if (localizationFile.is_open()) - { - json jsonData = json::parse(localizationFile); - EPLJSONUtils::GetObjectByName(jsonData, "Localization", mLocalizationData); - } - } - } - catch(...) - { - - } -} - -std::string ESDLocalizer::GetLocalizedString(const std::string &inDefaultString) -{ - if (sLocalizer != nullptr) - { - return sLocalizer->GetLocalizedStringIntern(inDefaultString); - } - - return inDefaultString; -} - -std::string ESDLocalizer::GetLocalizedStringIntern(const std::string &inDefaultString) -{ - return EPLJSONUtils::GetStringByName(mLocalizationData, inDefaultString, inDefaultString); -} diff --git a/Sources/Common/ESDLocalizer.h b/Sources/Common/ESDLocalizer.h deleted file mode 100644 index 1854883..0000000 --- a/Sources/Common/ESDLocalizer.h +++ /dev/null @@ -1,29 +0,0 @@ -//============================================================================== -/** -@file ESDLocalizer.h - -@brief Utility functions to handle localization - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#pragma once - -class ESDLocalizer -{ -public: - - static void Initialize(const std::string &inLanguageCode); - - static std::string GetLocalizedString(const std::string &inDefaultString); - -private: - ESDLocalizer(const std::string &inLanguageCode); - std::string GetLocalizedStringIntern(const std::string &inDefaultString); - - json mLocalizationData; -}; - diff --git a/Sources/Common/ESDSDKDefines.h b/Sources/Common/ESDSDKDefines.h deleted file mode 100644 index 2af1170..0000000 --- a/Sources/Common/ESDSDKDefines.h +++ /dev/null @@ -1,173 +0,0 @@ -//============================================================================== -/** -@file ESDSDKDefines.h - -@brief Defines used for the Stream Deck communication - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#pragma once - -// -// Current version of the SDK -// - -#define kESDSDKVersion 2 - - -// -// Common base-interface -// - -#define kESDSDKCommonAction "action" -#define kESDSDKCommonEvent "event" -#define kESDSDKCommonContext "context" -#define kESDSDKCommonPayload "payload" -#define kESDSDKCommonDevice "device" -#define kESDSDKCommonDeviceInfo "deviceInfo" - - -// -// Events -// - -#define kESDSDKEventKeyDown "keyDown" -#define kESDSDKEventKeyUp "keyUp" -#define kESDSDKEventWillAppear "willAppear" -#define kESDSDKEventWillDisappear "willDisappear" -#define kESDSDKEventDeviceDidConnect "deviceDidConnect" -#define kESDSDKEventDeviceDidDisconnect "deviceDidDisconnect" -#define kESDSDKEventApplicationDidLaunch "applicationDidLaunch" -#define kESDSDKEventApplicationDidTerminate "applicationDidTerminate" -#define kESDSDKEventSystemDidWakeUp "systemDidWakeUp" -#define kESDSDKEventTitleParametersDidChange "titleParametersDidChange" -#define kESDSDKEventDidReceiveSettings "didReceiveSettings" -#define kESDSDKEventDidReceiveGlobalSettings "didReceiveGlobalSettings" -#define kESDSDKEventPropertyInspectorDidAppear "propertyInspectorDidAppear" -#define kESDSDKEventPropertyInspectorDidDisappear "propertyInspectorDidDisappear" - - -// -// Functions -// - -#define kESDSDKEventSetTitle "setTitle" -#define kESDSDKEventSetImage "setImage" -#define kESDSDKEventShowAlert "showAlert" -#define kESDSDKEventShowOK "showOk" -#define kESDSDKEventGetSettings "getSettings" -#define kESDSDKEventSetSettings "setSettings" -#define kESDSDKEventGetGlobalSettings "getGlobalSettings" -#define kESDSDKEventSetGlobalSettings "setGlobalSettings" -#define kESDSDKEventSetState "setState" -#define kESDSDKEventSwitchToProfile "switchToProfile" -#define kESDSDKEventSendToPropertyInspector "sendToPropertyInspector" -#define kESDSDKEventSendToPlugin "sendToPlugin" -#define kESDSDKEventOpenURL "openUrl" -#define kESDSDKEventLogMessage "logMessage" - - -// -// Payloads -// - -#define kESDSDKPayloadSettings "settings" -#define kESDSDKPayloadCoordinates "coordinates" -#define kESDSDKPayloadState "state" -#define kESDSDKPayloadUserDesiredState "userDesiredState" -#define kESDSDKPayloadTitle "title" -#define kESDSDKPayloadTitleParameters "titleParameters" -#define kESDSDKPayloadImage "image" -#define kESDSDKPayloadURL "url" -#define kESDSDKPayloadTarget "target" -#define kESDSDKPayloadProfile "profile" -#define kESDSDKPayloadApplication "application" -#define kESDSDKPayloadIsInMultiAction "isInMultiAction" -#define kESDSDKPayloadMessage "message" - -#define kESDSDKPayloadCoordinatesColumn "column" -#define kESDSDKPayloadCoordinatesRow "row" - -// -// Device Info -// - -#define kESDSDKDeviceInfoID "id" -#define kESDSDKDeviceInfoType "type" -#define kESDSDKDeviceInfoSize "size" -#define kESDSDKDeviceInfoName "name" - -#define kESDSDKDeviceInfoSizeColumns "columns" -#define kESDSDKDeviceInfoSizeRows "rows" - - -// -// Title Parameters -// - -#define kESDSDKTitleParametersShowTitle "showTitle" -#define kESDSDKTitleParametersTitleColor "titleColor" -#define kESDSDKTitleParametersTitleAlignment "titleAlignment" -#define kESDSDKTitleParametersFontFamily "fontFamily" -#define kESDSDKTitleParametersFontSize "fontSize" -#define kESDSDKTitleParametersCustomFontSize "customFontSize" -#define kESDSDKTitleParametersFontStyle "fontStyle" -#define kESDSDKTitleParametersFontUnderline "fontUnderline" - - -// -// Connection -// - -#define kESDSDKConnectSocketFunction "connectElgatoStreamDeckSocket" -#define kESDSDKRegisterPlugin "registerPlugin" -#define kESDSDKRegisterPropertyInspector "registerPropertyInspector" -#define kESDSDKPortParameter "-port" -#define kESDSDKPluginUUIDParameter "-pluginUUID" -#define kESDSDKRegisterEventParameter "-registerEvent" -#define kESDSDKInfoParameter "-info" -#define kESDSDKRegisterUUID "uuid" - -#define kESDSDKApplicationInfo "application" -#define kESDSDKPluginInfo "plugin" -#define kESDSDKDevicesInfo "devices" -#define kESDSDKColorsInfo "colors" -#define kESDSDKDevicePixelRatio "devicePixelRatio" - -#define kESDSDKApplicationInfoVersion "version" -#define kESDSDKApplicationInfoLanguage "language" -#define kESDSDKApplicationInfoPlatform "platform" - -#define kESDSDKApplicationInfoPlatformMac "mac" -#define kESDSDKApplicationInfoPlatformWindows "windows" - -#define kESDSDKColorsInfoHighlightColor "highlightColor" -#define kESDSDKColorsInfoMouseDownColor "mouseDownColor" -#define kESDSDKColorsInfoDisabledColor "disabledColor" -#define kESDSDKColorsInfoButtonPressedTextColor "buttonPressedTextColor" -#define kESDSDKColorsInfoButtonPressedBackgroundColor "buttonPressedBackgroundColor" -#define kESDSDKColorsInfoButtonMouseOverBackgroundColor "buttonMouseOverBackgroundColor" -#define kESDSDKColorsInfoButtonPressedBorderColor "buttonPressedBorderColor" - - -typedef int ESDSDKTarget; -enum -{ - kESDSDKTarget_HardwareAndSoftware = 0, - kESDSDKTarget_HardwareOnly = 1, - kESDSDKTarget_SoftwareOnly = 2 -}; - -typedef int ESDSDKDeviceType; -enum -{ - kESDSDKDeviceType_StreamDeck = 0, - kESDSDKDeviceType_StreamDeckMini = 1, - kESDSDKDeviceType_StreamDeckXL = 2, - kESDSDKDeviceType_StreamDeckMobile = 3 -}; - diff --git a/Sources/Common/ESDUtilities.h b/Sources/Common/ESDUtilities.h deleted file mode 100644 index faf9a81..0000000 --- a/Sources/Common/ESDUtilities.h +++ /dev/null @@ -1,32 +0,0 @@ -//============================================================================== -/** -@file ESDUtilities.h - -@brief Various filesystem and other utility functions - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#pragma once - - -class ESDUtilities -{ -public: - - static void DoSleep(int inMilliseconds); - - // Return a path with the appending path component - static std::string AddPathComponent(const std::string &inPath, const std::string &inComponentToAdd); - - // Return the path without the last component. Returns path if it is already a root folder (i.e. 'C:\\', '\\ABC' or '/'). - // Return an empty string if error - static std::string GetFolderPath(const std::string& inPath); - - // Get the path of the .sdPlugin bundle - static std::string GetPluginPath(); -}; - diff --git a/Sources/Common/ESDUtilitiesMac.cpp b/Sources/Common/ESDUtilitiesMac.cpp deleted file mode 100644 index 029cbfd..0000000 --- a/Sources/Common/ESDUtilitiesMac.cpp +++ /dev/null @@ -1,188 +0,0 @@ -//============================================================================== -/** -@file ESDUtilities.cpp - -@brief Various filesystem and other utility functions - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#include "ESDUtilities.h" -#include - - -static std::string CFStringGetStdString(CFStringRef inStringRef, CFStringEncoding inEncoding) -{ - if (inStringRef == NULL) - return ""; - - std::string outString; - - CFRange range = CFRangeMake(0, CFStringGetLength(inStringRef)); - while (range.length > 0) - { - UInt8 buffer[512]; - - CFIndex produced; - CFIndex consumed = CFStringGetBytes(inStringRef, range, inEncoding, 0, false, buffer, sizeof(buffer), &produced); - if (consumed == 0) - return ""; - - outString += std::string((const char*)buffer, produced); - - range.location += consumed; - range.length -= consumed; - } - - return outString; -} - -static bool HasSuffix(const std::string& inString, const std::string& inSuffix) -{ - return (inString.length() >= inSuffix.length()) && (inSuffix.length() > 0) && (inString.compare(inString.size() - inSuffix.size(), inSuffix.size(), inSuffix) == 0); -} - -void ESDUtilities::DoSleep(int inMilliseconds) -{ - usleep(1000 * inMilliseconds); -} - - -static char GetFileSystemPathDelimiter() -{ - return '/'; -} - - -std::string ESDUtilities::AddPathComponent(const std::string &inPath, const std::string &inComponentToAdd) -{ - if (inPath.size() <= 0) - return inComponentToAdd; - - char delimiter = GetFileSystemPathDelimiter(); - char lastChar = inPath[inPath.size() - 1]; - - bool pathEndsWithDelimiter = (delimiter == lastChar ) || ('/' == lastChar); - bool compStartsWithDelimiter = (delimiter == inComponentToAdd[0]) || ('/' == inComponentToAdd[0]); - - std::string result; - if (pathEndsWithDelimiter && compStartsWithDelimiter) - result = inPath + inComponentToAdd.substr(1); - else if (pathEndsWithDelimiter || compStartsWithDelimiter) - result = inPath + inComponentToAdd; - else - result = inPath + GetFileSystemPathDelimiter() + inComponentToAdd; - - return result; -} - -std::string ESDUtilities::GetFolderPath(const std::string& inPath) -{ - // - // Use the platform specific delimiter - // - std::string delimiterString = std::string(1, GetFileSystemPathDelimiter()); - - // - // Remove the trailing delimiters - // - std::string pathWithoutTrailingDelimiters = inPath; - while (pathWithoutTrailingDelimiters.length() > delimiterString.length() && HasSuffix(pathWithoutTrailingDelimiters, delimiterString)) - { - pathWithoutTrailingDelimiters = pathWithoutTrailingDelimiters.substr(0, pathWithoutTrailingDelimiters.length() - delimiterString.length()); - } - - size_t pos = pathWithoutTrailingDelimiters.find_last_of(delimiterString); - if (std::string::npos != pos) - { - std::string foundPath = inPath.substr(0, pos); - - // - // Remove the trailing delimiters - // - std::string foundPathWithoutTrailingDelimiters = foundPath; - while (foundPathWithoutTrailingDelimiters.length() > delimiterString.length() && HasSuffix(foundPathWithoutTrailingDelimiters, delimiterString)) - { - foundPathWithoutTrailingDelimiters = foundPathWithoutTrailingDelimiters.substr(0, foundPathWithoutTrailingDelimiters.length() - delimiterString.length()); - } - - if (foundPathWithoutTrailingDelimiters.empty() && delimiterString == "/") - { - return "/"; - } - - return foundPathWithoutTrailingDelimiters; - } - - return ""; -} - -std::string ESDUtilities::GetPluginPath() -{ - static std::string sPluginPath; - - if(sPluginPath.empty()) - { - CFBundleRef bundleRef = CFBundleGetMainBundle(); - if(bundleRef != NULL) - { - CFURLRef executableURL = CFBundleCopyExecutableURL(bundleRef); - if(executableURL != NULL) - { - CFURLRef checkURL = CFURLCreateCopyDeletingLastPathComponent(kCFAllocatorDefault, executableURL); - while(checkURL != NULL) - { - CFStringRef lastPathComponent = CFURLCopyLastPathComponent(checkURL); - if(lastPathComponent == NULL || (CFStringCompare(lastPathComponent, CFSTR("/"), 0) == kCFCompareEqualTo) || (CFStringCompare(lastPathComponent, CFSTR(".."), 0) == kCFCompareEqualTo)) - { - if(lastPathComponent != NULL) - { - CFRelease(lastPathComponent); - } - - CFRelease(checkURL); - checkURL = NULL; - break; - } - - CFRelease(lastPathComponent); - - CFStringRef pathExtension = CFURLCopyPathExtension(checkURL); - if(pathExtension != NULL) - { - if(CFStringCompare(pathExtension, CFSTR("sdPlugin"), 0) == kCFCompareEqualTo) - { - CFStringRef path = CFURLCopyFileSystemPath(checkURL, kCFURLPOSIXPathStyle); - if(path != NULL) - { - sPluginPath = CFStringGetStdString(path, kCFStringEncodingUTF8); - CFRelease(path); - } - } - - CFRelease(pathExtension); - } - - CFURLRef previousURL = checkURL; - checkURL = CFURLCreateCopyDeletingLastPathComponent(kCFAllocatorDefault, previousURL); - CFRelease(previousURL); - - if(!sPluginPath.empty()) - { - CFRelease(checkURL); - checkURL = NULL; - break; - } - } - - CFRelease(executableURL); - } - } - } - - return sPluginPath; -} - diff --git a/Sources/Common/ESDUtilitiesWindows.cpp b/Sources/Common/ESDUtilitiesWindows.cpp deleted file mode 100644 index 87b2067..0000000 --- a/Sources/Common/ESDUtilitiesWindows.cpp +++ /dev/null @@ -1,278 +0,0 @@ -//============================================================================== -/** -@file ESDUtilities.cpp - -@brief Various filesystem and other utility functions - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#include "ESDUtilities.h" - -void ESDUtilities::DoSleep(int inMilliseconds) -{ - Sleep(inMilliseconds); -} - - -static bool HasPrefix(const std::string& inString, const std::string& inPrefix) -{ - return (inString.length() >= inPrefix.length()) && (inPrefix.length() > 0) && (inString.compare(0, inPrefix.length(), inPrefix) == 0); -} - -static bool HasSuffix(const std::string& inString, const std::string& inSuffix) -{ - return (inString.length() >= inSuffix.length()) && (inSuffix.length() > 0) && (inString.compare(inString.size() - inSuffix.size(), inSuffix.size(), inSuffix) == 0); -} - -static char GetFileSystemPathDelimiter() -{ - // In Windows both slash and backslash are allowed - return '\\'; -} - - -static bool IsNetworkDriveRoot(const std::string& inUtf8Path) -{ - if (!inUtf8Path.empty()) - { - std::string delimiterString = std::string(1, GetFileSystemPathDelimiter()); - // On Windows, check if the platform specific delimiter is used. If not, fallback on the delimiter "/" - size_t delimiterPosition = inUtf8Path.find_last_of(delimiterString); - if (std::string::npos == delimiterPosition) - { - delimiterString = "/"; - } - - std::string networkPrefix = delimiterString + delimiterString; - if (HasPrefix(inUtf8Path, networkPrefix)) - { - std::string pathWithoutNetworkPrefix = inUtf8Path.substr(networkPrefix.length(), inUtf8Path.length() - networkPrefix.length()); - if (pathWithoutNetworkPrefix.find_first_of(delimiterString) == pathWithoutNetworkPrefix.find_last_of(delimiterString)) - return true; - } - } - - return false; -} - -static std::string GetFileName(const std::string& inPath) -{ - // - // Use the platform specific delimiter - // - std::string delimiterString = std::string(1, GetFileSystemPathDelimiter()); - - // - // On Windows, check if the platform specific delimiter is used. - // If not, fallback on the delimiter "/" - // - size_t delimiterPosition = inPath.find_last_of(delimiterString); - if (std::string::npos == delimiterPosition) - { - delimiterString = "/"; - delimiterPosition = inPath.find_last_of(delimiterString); - if (std::string::npos == delimiterPosition) - { - // No delimiter -> return the path - return inPath; - } - } - else - { - // Special handling "C:\\" - if (HasSuffix(inPath, ":\\")) - return inPath; - } - - // - // Remove the trailing delimiters - // - std::string pathWithoutTrailingDelimiter = inPath; - while (pathWithoutTrailingDelimiter.length() > delimiterString.length() && HasSuffix(pathWithoutTrailingDelimiter, delimiterString)) - { - pathWithoutTrailingDelimiter = pathWithoutTrailingDelimiter.substr(0, pathWithoutTrailingDelimiter.length() - delimiterString.length()); - } - - // - // Special cases - // - if (pathWithoutTrailingDelimiter.empty() || pathWithoutTrailingDelimiter == delimiterString) - { - return delimiterString; - } - - // - // Get the last path component - // - size_t pos = pathWithoutTrailingDelimiter.find_last_of(delimiterString); - if (std::string::npos != pos && pathWithoutTrailingDelimiter.length() > pos) - { - return pathWithoutTrailingDelimiter.substr(pos + 1); - } - - // - // Fallback - // - return pathWithoutTrailingDelimiter; -} - -static std::string GetExtension(const std::string& inPath) -{ - const std::string fileName = GetFileName(inPath); - size_t pos = fileName.find_last_of("."); - if (std::string::npos != pos && ((pos + 1) != fileName.length())) - { - return fileName.substr(pos); - } - else - { - return ""; - } -} - -std::string ESDUtilities::AddPathComponent(const std::string &inPath, const std::string &inComponentToAdd) -{ - if (inPath.size() <= 0) - return inComponentToAdd; - - char delimiter = GetFileSystemPathDelimiter(); - char lastChar = inPath[inPath.size() - 1]; - - bool pathEndsWithDelimiter = (delimiter == lastChar ) || ('/' == lastChar); - bool compStartsWithDelimiter = (delimiter == inComponentToAdd[0]) || ('/' == inComponentToAdd[0]); - - std::string result; - if (pathEndsWithDelimiter && compStartsWithDelimiter) - result = inPath + inComponentToAdd.substr(1); - else if (pathEndsWithDelimiter || compStartsWithDelimiter) - result = inPath + inComponentToAdd; - else - result = inPath + GetFileSystemPathDelimiter() + inComponentToAdd; - - for (std::string::size_type i=0; i< result.size(); i++) - { - if (result[i] == '/') - result[i] = delimiter; - } - - return result; -} - -std::string ESDUtilities::GetFolderPath(const std::string& inPath) -{ - // - // Use the platform specific delimiter - // - std::string delimiterString = std::string(1, GetFileSystemPathDelimiter()); - - // - // On Windows, check if the platform specific delimiter is used. - // If not, fallback on the delimiter "/" - // - size_t delimiterPosition = inPath.find_last_of(delimiterString); - if (std::string::npos == delimiterPosition) - { - delimiterString = "/"; - } - - // Special handling "C:\\" or "C:/" - if (HasSuffix(inPath, ":" + delimiterString)) - return inPath; - - if (IsNetworkDriveRoot(inPath)) - return inPath; - - // - // Remove the trailing delimiters - // - std::string pathWithoutTrailingDelimiters = inPath; - while (pathWithoutTrailingDelimiters.length() > delimiterString.length() && HasSuffix(pathWithoutTrailingDelimiters, delimiterString)) - { - pathWithoutTrailingDelimiters = pathWithoutTrailingDelimiters.substr(0, pathWithoutTrailingDelimiters.length() - delimiterString.length()); - } - - size_t pos = pathWithoutTrailingDelimiters.find_last_of(delimiterString); - if (std::string::npos != pos) - { - std::string foundPath = inPath.substr(0, pos); - - // Special handling "C:\\" - if (HasSuffix(foundPath, ":\\")) - return foundPath; - else if (HasSuffix(foundPath, ":")) - return foundPath + "\\"; - - // - // Remove the trailing delimiters - // - std::string foundPathWithoutTrailingDelimiters = foundPath; - while (foundPathWithoutTrailingDelimiters.length() > delimiterString.length() && HasSuffix(foundPathWithoutTrailingDelimiters, delimiterString)) - { - foundPathWithoutTrailingDelimiters = foundPathWithoutTrailingDelimiters.substr(0, foundPathWithoutTrailingDelimiters.length() - delimiterString.length()); - } - - if (foundPathWithoutTrailingDelimiters.empty() && delimiterString == "/") - { - return "/"; - } - - return foundPathWithoutTrailingDelimiters; - } - - // Special handling "C:" - if (HasSuffix(pathWithoutTrailingDelimiters, ":")) - return pathWithoutTrailingDelimiters + delimiterString; - - return ""; -} - - -std::string ESDUtilities::GetPluginPath() -{ - static std::string sPluginPath; - - if(sPluginPath.empty()) - { - char path[MAX_PATH] = { 0 }; - DWORD result = GetModuleFileNameA(NULL, path, MAX_PATH); - if (result > 0) - { - std::string pathString(path); - - while (!pathString.empty()) - { - if (pathString == "/" || HasSuffix(pathString, ":\\")) - { - break; - } - - std::string pathExtension = GetExtension(pathString); - if (pathExtension == ".sdPlugin") - { - sPluginPath = pathString; - break; - } - - std::string parentPath = GetFolderPath(pathString); - if (parentPath != pathString) - { - pathString = parentPath; - } - else - { - break; - } - } - } - else - { - DebugPrint("Could not get path.\n"); - } - } - - return sPluginPath; -} diff --git a/Sources/Common/main.cpp b/Sources/Common/main.cpp deleted file mode 100644 index e74346b..0000000 --- a/Sources/Common/main.cpp +++ /dev/null @@ -1,108 +0,0 @@ -//============================================================================== -/** -@file main.cpp - -@brief Parse arguments and start the plugin - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#include "ESDConnectionManager.h" -#include "../MyStreamDeckPlugin.h" -#include "ESDLocalizer.h" -#include "EPLJSONUtils.h" - -int main(int argc, const char* const argv[]) -{ - if (argc != 9) - { - DebugPrint("Invalid number of parameters %d instead of 9\n", argc); - return 1; - } - - int port = 0; - std::string pluginUUID; - std::string registerEvent; - std::string info; - - for(int argumentIndex = 0 ; argumentIndex < 4 ; argumentIndex++) - { - std::string parameter(argv[1 + 2 * argumentIndex]); - std::string value(argv[1 + 2 * argumentIndex + 1]); - - if (parameter == kESDSDKPortParameter) - { - port = std::atoi(value.c_str()); - } - else if (parameter == kESDSDKPluginUUIDParameter) - { - pluginUUID = value; - } - else if (parameter == kESDSDKRegisterEventParameter) - { - registerEvent = value; - } - else if (parameter == kESDSDKInfoParameter) - { - info = value; - } - } - - if(port == 0) - { - DebugPrint("Invalid port number\n"); - return 1; - } - - if(pluginUUID.empty()) - { - DebugPrint("Invalid plugin UUID\n"); - return 1; - } - - if(registerEvent.empty()) - { - DebugPrint("Invalid registerEvent\n"); - return 1; - } - - if (info.empty()) - { - DebugPrint("Invalid info\n"); - return 1; - } - - // Create the plugin - MyStreamDeckPlugin *plugin = new MyStreamDeckPlugin(); - - // Initialize localization helper - std::string language = "en"; - - try - { - json infoJson = json::parse(info); - json applicationInfo; - if(EPLJSONUtils::GetObjectByName(infoJson, kESDSDKApplicationInfo, applicationInfo)) - { - language = EPLJSONUtils::GetStringByName(applicationInfo, kESDSDKApplicationInfoLanguage, language); - } - } - catch(...) - { - - } - - ESDLocalizer::Initialize(language); - - // Create the connection manager - ESDConnectionManager *connectionManager = new ESDConnectionManager(port, pluginUUID, registerEvent, info, plugin); - - // Connect and start the event loop - connectionManager->Run(); - - return 0; -} - diff --git a/Sources/Vendor/asio/COPYING b/Sources/Vendor/asio/COPYING deleted file mode 100644 index 752844a..0000000 --- a/Sources/Vendor/asio/COPYING +++ /dev/null @@ -1,4 +0,0 @@ -Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) - -Distributed under the Boost Software License, Version 1.0. (See accompanying -file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/Sources/Vendor/asio/INSTALL b/Sources/Vendor/asio/INSTALL deleted file mode 100644 index f045678..0000000 --- a/Sources/Vendor/asio/INSTALL +++ /dev/null @@ -1,5 +0,0 @@ -See doc/index.html for information on: - - External dependencies - - Using asio - - Supported platforms - - How to build the tests and examples diff --git a/Sources/Vendor/asio/LICENSE_1_0.txt b/Sources/Vendor/asio/LICENSE_1_0.txt deleted file mode 100644 index 36b7cd9..0000000 --- a/Sources/Vendor/asio/LICENSE_1_0.txt +++ /dev/null @@ -1,23 +0,0 @@ -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. diff --git a/Sources/Vendor/asio/Makefile.am b/Sources/Vendor/asio/Makefile.am deleted file mode 100644 index 0acdc02..0000000 --- a/Sources/Vendor/asio/Makefile.am +++ /dev/null @@ -1,19 +0,0 @@ -AUTOMAKE_OPTIONS = foreign dist-bzip2 dist-zip - -SUBDIRS = include src - -MAINTAINERCLEANFILES = \ - $(srcdir)/aclocal.m4 \ - $(srcdir)/configure \ - $(srcdir)/config.guess \ - $(srcdir)/config.sub \ - $(srcdir)/depcomp \ - $(srcdir)/install-sh \ - $(srcdir)/missing \ - $(srcdir)/mkinstalldirs \ - $(srcdir)/Makefile.in \ - asio-*.tar.gz - -EXTRA_DIST = \ - LICENSE_1_0.txt \ - doc diff --git a/Sources/Vendor/asio/Makefile.in b/Sources/Vendor/asio/Makefile.in deleted file mode 100644 index 6d79b0e..0000000 --- a/Sources/Vendor/asio/Makefile.in +++ /dev/null @@ -1,780 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ - $(am__configure_deps) $(am__DIST_COMMON) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir distdir-am dist dist-all distcheck -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -CSCOPE = cscope -DIST_SUBDIRS = $(SUBDIRS) -am__DIST_COMMON = $(srcdir)/Makefile.in COPYING INSTALL README compile \ - config.guess config.sub depcomp install-sh missing -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - if test -d "$(distdir)"; then \ - find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -rf "$(distdir)" \ - || { sleep 5 && rm -rf "$(distdir)"; }; \ - else :; fi -am__post_remove_distdir = $(am__remove_distdir) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 $(distdir).zip -GZIP_ENV = --best -DIST_TARGETS = dist-bzip2 dist-gzip dist-zip -distuninstallcheck_listfiles = find . -type f -print -am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ - | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = foreign dist-bzip2 dist-zip -SUBDIRS = include src -MAINTAINERCLEANFILES = \ - $(srcdir)/aclocal.m4 \ - $(srcdir)/configure \ - $(srcdir)/config.guess \ - $(srcdir)/config.sub \ - $(srcdir)/depcomp \ - $(srcdir)/install-sh \ - $(srcdir)/missing \ - $(srcdir)/mkinstalldirs \ - $(srcdir)/Makefile.in \ - asio-*.tar.gz - -EXTRA_DIST = \ - LICENSE_1_0.txt \ - doc - -all: all-recursive - -.SUFFIXES: -am--refresh: Makefile - @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - $(am__cd) $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -$(am__aclocal_m4_deps): - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscope: cscope.files - test ! -s cscope.files \ - || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) -clean-cscope: - -rm -f cscope.files -cscope.files: clean-cscope cscopelist -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -rm -f cscope.out cscope.in.out cscope.po.out cscope.files - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done - -test -n "$(am__skip_mode_fix)" \ - || find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r "$(distdir)" -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz - $(am__post_remove_distdir) -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__post_remove_distdir) - -dist-lzip: distdir - tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz - $(am__post_remove_distdir) - -dist-xz: distdir - tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__post_remove_distdir) - -dist-tarZ: distdir - @echo WARNING: "Support for distribution archives compressed with" \ - "legacy program 'compress' is deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__post_remove_distdir) - -dist-shar: distdir - @echo WARNING: "Support for shar distribution archives is" \ - "deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz - $(am__post_remove_distdir) -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__post_remove_distdir) - -dist dist-all: - $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' - $(am__post_remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lz*) \ - lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ - *.tar.xz*) \ - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir) - chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst - chmod a-w $(distdir) - test -d $(distdir)/_build || exit 0; \ - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build/sub \ - && ../../configure \ - $(AM_DISTCHECK_CONFIGURE_FLAGS) \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - --srcdir=../.. --prefix="$$dc_install_base" \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ - && cd "$$am__cwd" \ - || exit 1 - $(am__post_remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' -distuninstallcheck: - @test -n '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: trying to run $@ with an empty' \ - '$$(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - $(am__cd) '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-recursive - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(am__recursive_targets) install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ - am--refresh check check-am clean clean-cscope clean-generic \ - cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ - dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ - distcheck distclean distclean-generic distclean-tags \ - distcleancheck distdir distuninstallcheck dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/README b/Sources/Vendor/asio/README deleted file mode 100644 index cb5ab7f..0000000 --- a/Sources/Vendor/asio/README +++ /dev/null @@ -1,4 +0,0 @@ -asio version 1.12.2 -Released Sunday, 09 December 2018. - -See doc/index.html for API documentation and a tutorial. diff --git a/Sources/Vendor/asio/aclocal.m4 b/Sources/Vendor/asio/aclocal.m4 deleted file mode 100644 index a49964a..0000000 --- a/Sources/Vendor/asio/aclocal.m4 +++ /dev/null @@ -1,1171 +0,0 @@ -# generated automatically by aclocal 1.16.1 -*- Autoconf -*- - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. -You have another version of autoconf. It may work, but is not guaranteed to. -If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically 'autoreconf'.])]) - -# Copyright (C) 2002-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.16' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.16.1], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.16.1])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to -# '$srcdir', '$srcdir/..', or '$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is '.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -# Expand $ac_aux_dir to an absolute path. -am_aux_dir=`cd "$ac_aux_dir" && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - - -# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], - [$1], [CXX], [depcc="$CXX" am_compiler_list=], - [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], - [$1], [UPC], [depcc="$UPC" am_compiler_list=], - [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES. -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE([dependency-tracking], [dnl -AS_HELP_STRING( - [--enable-dependency-tracking], - [do not reject slow dependency extractors]) -AS_HELP_STRING( - [--disable-dependency-tracking], - [speeds up one-time build])]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -AC_SUBST([am__nodep])dnl -_AM_SUBST_NOTMAKE([am__nodep])dnl -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - # TODO: see whether this extra hack can be removed once we start - # requiring Autoconf 2.70 or later. - AS_CASE([$CONFIG_FILES], - [*\'*], [eval set x "$CONFIG_FILES"], - [*], [set x $CONFIG_FILES]) - shift - # Used to flag and report bootstrapping failures. - am_rc=0 - for am_mf - do - # Strip MF so we end up with the name of the file. - am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile which includes - # dependency-tracking related rules and includes. - # Grep'ing the whole file directly is not great: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ - || continue - am_dirpart=`AS_DIRNAME(["$am_mf"])` - am_filepart=`AS_BASENAME(["$am_mf"])` - AM_RUN_LOG([cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles]) || am_rc=$? - done - if test $am_rc -ne 0; then - AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the - '--disable-dependency-tracking' option to at least be able to build - the package (albeit without support for automatic dependency tracking).]) - fi - AS_UNSET([am_dirpart]) - AS_UNSET([am_filepart]) - AS_UNSET([am_mf]) - AS_UNSET([am_rc]) - rm -f conftest-deps.mk -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking is enabled. -# This creates each '.Po' and '.Plo' makefile fragment that we'll need in -# order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. -m4_define([AC_PROG_CC], -m4_defn([AC_PROG_CC]) -[_AM_PROG_CC_C_O -]) - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.65])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target (and possibly the TAP driver). The -# system "awk" is bad on some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi -dnl The trailing newline in this macro's definition is deliberate, for -dnl backward compatibility and to allow trailing 'dnl'-style comments -dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. -]) - -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST([install_sh])]) - -# Copyright (C) 2003-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MAINTAINER_MODE([DEFAULT-MODE]) -# ---------------------------------- -# Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless 'enable' is passed literally. -# For symmetry, 'disable' may be passed as well. Anyway, the user -# can override the default with the --enable/--disable switch. -AC_DEFUN([AM_MAINTAINER_MODE], -[m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], - [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], - am_maintainer_other[ make rules and dependencies not useful - (and sometimes confusing) to the casual installer])], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl -] -) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MAKE_INCLUDE() -# ----------------- -# Check whether make has an 'include' directive that can support all -# the idioms we need for our automatic dependency tracking code. -AC_DEFUN([AM_MAKE_INCLUDE], -[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) -cat > confinc.mk << 'END' -am__doit: - @echo this is the am__doit target >confinc.out -.PHONY: am__doit -END -am__include="#" -am__quote= -# BSD make does it like this. -echo '.include "confinc.mk" # ignored' > confmf.BSD -# Other make implementations (GNU, Solaris 10, AIX) do it like this. -echo 'include confinc.mk # ignored' > confmf.GNU -_am_result=no -for s in GNU BSD; do - AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) - AS_CASE([$?:`cat confinc.out 2>/dev/null`], - ['0:this is the am__doit target'], - [AS_CASE([$s], - [BSD], [am__include='.include' am__quote='"'], - [am__include='include' am__quote=''])]) - if test "$am__include" != "#"; then - _am_result="yes ($s style)" - break - fi -done -rm -f confinc.* confmf.* -AC_MSG_RESULT([${_am_result}]) -AC_SUBST([am__include])]) -AC_SUBST([am__quote])]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it is modern enough. -# If it is, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) -fi -]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# -------------------- -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) - -# _AM_SET_OPTIONS(OPTIONS) -# ------------------------ -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_CC_C_O -# --------------- -# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC -# to automatically call this. -AC_DEFUN([_AM_PROG_CC_C_O], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([compile])dnl -AC_LANG_PUSH([C])dnl -AC_CACHE_CHECK( - [whether $CC understands -c and -o together], - [am_cv_prog_cc_c_o], - [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i]) -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -AC_LANG_POP([C])]) - -# For backward compatibility. -AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_RUN_LOG(COMMAND) -# ------------------- -# Run COMMAND, save the exit status in ac_status, and log it. -# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) -AC_DEFUN([AM_RUN_LOG], -[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD - ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - (exit $ac_status); }]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file -]) - -# Copyright (C) 2009-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) -dnl do not support nested variable expansions. -dnl See automake bug#9928 and bug#10237. -am_make=${MAKE-make} -AC_CACHE_CHECK([whether $am_make supports nested variables], - [am_cv_make_support_nested_variables], - [if AS_ECHO([['TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AC_SUBST([AM_V])dnl -AM_SUBST_NOTMAKE([AM_V])dnl -AC_SUBST([AM_DEFAULT_V])dnl -AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor 'install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in "make install-strip", and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Copyright (C) 2006-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) - -# AM_SUBST_NOTMAKE(VARIABLE) -# -------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of 'v7', 'ustar', or 'pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -# -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' - -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], - - [pax], - [], - - [m4_fatal([Unknown tar format])]) - - AC_MSG_CHECKING([how to create a $1 tar archive]) - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - diff --git a/Sources/Vendor/asio/compile b/Sources/Vendor/asio/compile deleted file mode 100755 index 99e5052..0000000 --- a/Sources/Vendor/asio/compile +++ /dev/null @@ -1,348 +0,0 @@ -#! /bin/sh -# Wrapper for compilers which do not understand '-c -o'. - -scriptversion=2018-03-07.03; # UTC - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. -# Written by Tom Tromey . -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -nl=' -' - -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent tools from complaining about whitespace usage. -IFS=" "" $nl" - -file_conv= - -# func_file_conv build_file lazy -# Convert a $build file to $host form and store it in $file -# Currently only supports Windows hosts. If the determined conversion -# type is listed in (the comma separated) LAZY, no conversion will -# take place. -func_file_conv () -{ - file=$1 - case $file in - / | /[!/]*) # absolute file, and not a UNC file - if test -z "$file_conv"; then - # lazily determine how to convert abs files - case `uname -s` in - MINGW*) - file_conv=mingw - ;; - CYGWIN*) - file_conv=cygwin - ;; - *) - file_conv=wine - ;; - esac - fi - case $file_conv/,$2, in - *,$file_conv,*) - ;; - mingw/*) - file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` - ;; - cygwin/*) - file=`cygpath -m "$file" || echo "$file"` - ;; - wine/*) - file=`winepath -w "$file" || echo "$file"` - ;; - esac - ;; - esac -} - -# func_cl_dashL linkdir -# Make cl look for libraries in LINKDIR -func_cl_dashL () -{ - func_file_conv "$1" - if test -z "$lib_path"; then - lib_path=$file - else - lib_path="$lib_path;$file" - fi - linker_opts="$linker_opts -LIBPATH:$file" -} - -# func_cl_dashl library -# Do a library search-path lookup for cl -func_cl_dashl () -{ - lib=$1 - found=no - save_IFS=$IFS - IFS=';' - for dir in $lib_path $LIB - do - IFS=$save_IFS - if $shared && test -f "$dir/$lib.dll.lib"; then - found=yes - lib=$dir/$lib.dll.lib - break - fi - if test -f "$dir/$lib.lib"; then - found=yes - lib=$dir/$lib.lib - break - fi - if test -f "$dir/lib$lib.a"; then - found=yes - lib=$dir/lib$lib.a - break - fi - done - IFS=$save_IFS - - if test "$found" != yes; then - lib=$lib.lib - fi -} - -# func_cl_wrapper cl arg... -# Adjust compile command to suit cl -func_cl_wrapper () -{ - # Assume a capable shell - lib_path= - shared=: - linker_opts= - for arg - do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as 'compile cc -o foo foo.c'. - eat=1 - case $2 in - *.o | *.[oO][bB][jJ]) - func_file_conv "$2" - set x "$@" -Fo"$file" - shift - ;; - *) - func_file_conv "$2" - set x "$@" -Fe"$file" - shift - ;; - esac - ;; - -I) - eat=1 - func_file_conv "$2" mingw - set x "$@" -I"$file" - shift - ;; - -I*) - func_file_conv "${1#-I}" mingw - set x "$@" -I"$file" - shift - ;; - -l) - eat=1 - func_cl_dashl "$2" - set x "$@" "$lib" - shift - ;; - -l*) - func_cl_dashl "${1#-l}" - set x "$@" "$lib" - shift - ;; - -L) - eat=1 - func_cl_dashL "$2" - ;; - -L*) - func_cl_dashL "${1#-L}" - ;; - -static) - shared=false - ;; - -Wl,*) - arg=${1#-Wl,} - save_ifs="$IFS"; IFS=',' - for flag in $arg; do - IFS="$save_ifs" - linker_opts="$linker_opts $flag" - done - IFS="$save_ifs" - ;; - -Xlinker) - eat=1 - linker_opts="$linker_opts $2" - ;; - -*) - set x "$@" "$1" - shift - ;; - *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) - func_file_conv "$1" - set x "$@" -Tp"$file" - shift - ;; - *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) - func_file_conv "$1" mingw - set x "$@" "$file" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift - done - if test -n "$linker_opts"; then - linker_opts="-link$linker_opts" - fi - exec "$@" $linker_opts - exit 1 -} - -eat= - -case $1 in - '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: compile [--help] [--version] PROGRAM [ARGS] - -Wrapper for compilers which do not understand '-c -o'. -Remove '-o dest.o' from ARGS, run PROGRAM with the remaining -arguments, and rename the output as expected. - -If you are trying to build a whole package this is not the -right script to run: please start by reading the file 'INSTALL'. - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "compile $scriptversion" - exit $? - ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ - icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) - func_cl_wrapper "$@" # Doesn't return... - ;; -esac - -ofile= -cfile= - -for arg -do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as 'compile cc -o foo foo.c'. - # So we strip '-o arg' only if arg is an object. - eat=1 - case $2 in - *.o | *.obj) - ofile=$2 - ;; - *) - set x "$@" -o "$2" - shift - ;; - esac - ;; - *.c) - cfile=$1 - set x "$@" "$1" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift -done - -if test -z "$ofile" || test -z "$cfile"; then - # If no '-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # '.c' file was seen then we are probably linking. That is also - # ok. - exec "$@" -fi - -# Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` - -# Create the lock directory. -# Note: use '[/\\:.-]' here to ensure that we don't use the same name -# that we are using for the .o file. Also, base the name on the expected -# object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d -while true; do - if mkdir "$lockdir" >/dev/null 2>&1; then - break - fi - sleep 1 -done -# FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir '$lockdir'; exit 1" 1 2 15 - -# Run the compile. -"$@" -ret=$? - -if test -f "$cofile"; then - test "$cofile" = "$ofile" || mv "$cofile" "$ofile" -elif test -f "${cofile}bj"; then - test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" -fi - -rmdir "$lockdir" -exit $ret - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/Sources/Vendor/asio/config.guess b/Sources/Vendor/asio/config.guess deleted file mode 100755 index 256083a..0000000 --- a/Sources/Vendor/asio/config.guess +++ /dev/null @@ -1,1476 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright 1992-2018 Free Software Foundation, Inc. - -timestamp='2018-03-08' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). -# -# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. -# -# You can get the latest version of this script from: -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess -# -# Please send patches to . - - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Options: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright 1992-2018 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > "$dummy.c" ; - for c in cc gcc c89 c99 ; do - if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -case "$UNAME_SYSTEM" in -Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu - - eval "$set_cc_for_build" - cat <<-EOF > "$dummy.c" - #include - #if defined(__UCLIBC__) - LIBC=uclibc - #elif defined(__dietlibc__) - LIBC=dietlibc - #else - LIBC=gnu - #endif - EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" - - # If ldd exists, use it to detect musl libc. - if command -v ldd >/dev/null && \ - ldd --version 2>&1 | grep -q ^musl - then - LIBC=musl - fi - ;; -esac - -# Note: order is significant - the case branches are not exclusive. - -case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - "/sbin/$sysctl" 2>/dev/null || \ - "/usr/sbin/$sysctl" 2>/dev/null || \ - echo unknown)` - case "$UNAME_MACHINE_ARCH" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - earmv*) - arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` - machine="${arch}${endian}"-unknown - ;; - *) machine="$UNAME_MACHINE_ARCH"-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently (or will in the future) and ABI. - case "$UNAME_MACHINE_ARCH" in - earm*) - os=netbsdelf - ;; - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval "$set_cc_for_build" - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # Determine ABI tags. - case "$UNAME_MACHINE_ARCH" in - earm*) - expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "$UNAME_VERSION" in - Debian*) - release='-gnu' - ;; - *) - release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "$machine-${os}${release}${abi}" - exit ;; - *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" - exit ;; - *:LibertyBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" - exit ;; - *:MidnightBSD:*:*) - echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" - exit ;; - *:ekkoBSD:*:*) - echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" - exit ;; - *:SolidBSD:*:*) - echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd"$UNAME_RELEASE" - exit ;; - *:MirBSD:*:*) - echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" - exit ;; - *:Sortix:*:*) - echo "$UNAME_MACHINE"-unknown-sortix - exit ;; - *:Redox:*:*) - echo "$UNAME_MACHINE"-unknown-redox - exit ;; - mips:OSF1:*.*) - echo mips-dec-osf1 - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE=alpha ;; - "EV4.5 (21064)") - UNAME_MACHINE=alpha ;; - "LCA4 (21066/21068)") - UNAME_MACHINE=alpha ;; - "EV5 (21164)") - UNAME_MACHINE=alphaev5 ;; - "EV5.6 (21164A)") - UNAME_MACHINE=alphaev56 ;; - "EV5.6 (21164PC)") - UNAME_MACHINE=alphapca56 ;; - "EV5.7 (21164PC)") - UNAME_MACHINE=alphapca57 ;; - "EV6 (21264)") - UNAME_MACHINE=alphaev6 ;; - "EV6.7 (21264A)") - UNAME_MACHINE=alphaev67 ;; - "EV6.8CB (21264C)") - UNAME_MACHINE=alphaev68 ;; - "EV6.8AL (21264B)") - UNAME_MACHINE=alphaev68 ;; - "EV6.8CX (21264D)") - UNAME_MACHINE=alphaev68 ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE=alphaev69 ;; - "EV7 (21364)") - UNAME_MACHINE=alphaev7 ;; - "EV7.9 (21364A)") - UNAME_MACHINE=alphaev79 ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix"$UNAME_RELEASE" - exit ;; - arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) - echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux"$UNAME_RELEASE" - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval "$set_cc_for_build" - SUN_ARCH=i386 - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH=x86_64 - fi - fi - echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos"$UNAME_RELEASE" - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos"$UNAME_RELEASE" - ;; - sun4) - echo sparc-sun-sunos"$UNAME_RELEASE" - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos"$UNAME_RELEASE" - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint"$UNAME_RELEASE" - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint"$UNAME_RELEASE" - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint"$UNAME_RELEASE" - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten"$UNAME_RELEASE" - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten"$UNAME_RELEASE" - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix"$UNAME_RELEASE" - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix"$UNAME_RELEASE" - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix"$UNAME_RELEASE" - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && - dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`"$dummy" "$dummyarg"` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos"$UNAME_RELEASE" - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] - then - if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ - [ "$TARGET_BINARY_INTERFACE"x = x ] - then - echo m88k-dg-dgux"$UNAME_RELEASE" - else - echo m88k-dg-dguxbcs"$UNAME_RELEASE" - fi - else - echo i586-dg-dgux"$UNAME_RELEASE" - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" - fi - echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/lslpp ] ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | - awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` - else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" - fi - echo "$IBM_ARCH"-ibm-aix"$IBM_REV" - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - case "$UNAME_MACHINE" in - 9000/31?) HP_ARCH=m68000 ;; - 9000/[34]??) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "$sc_cpu_version" in - 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 - 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "$sc_kernel_bits" in - 32) HP_ARCH=hppa2.0n ;; - 64) HP_ARCH=hppa2.0w ;; - '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "$HP_ARCH" = "" ]; then - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ "$HP_ARCH" = hppa2.0w ] - then - eval "$set_cc_for_build" - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH=hppa2.0w - else - HP_ARCH=hppa64 - fi - fi - echo "$HP_ARCH"-hp-hpux"$HPUX_REV" - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux"$HPUX_REV" - exit ;; - 3050*:HI-UX:*:*) - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo "$UNAME_MACHINE"-unknown-osf1mk - else - echo "$UNAME_MACHINE"-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` - FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi"$UNAME_RELEASE" - exit ;; - *:BSD/OS:*:*) - echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" - exit ;; - *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case "$UNAME_PROCESSOR" in - amd64) - UNAME_PROCESSOR=x86_64 ;; - i386) - UNAME_PROCESSOR=i586 ;; - esac - echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; - i*:CYGWIN*:*) - echo "$UNAME_MACHINE"-pc-cygwin - exit ;; - *:MINGW64*:*) - echo "$UNAME_MACHINE"-pc-mingw64 - exit ;; - *:MINGW*:*) - echo "$UNAME_MACHINE"-pc-mingw32 - exit ;; - *:MSYS*:*) - echo "$UNAME_MACHINE"-pc-msys - exit ;; - i*:PW*:*) - echo "$UNAME_MACHINE"-pc-pw32 - exit ;; - *:Interix*:*) - case "$UNAME_MACHINE" in - x86) - echo i586-pc-interix"$UNAME_RELEASE" - exit ;; - authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix"$UNAME_RELEASE" - exit ;; - IA64) - echo ia64-unknown-interix"$UNAME_RELEASE" - exit ;; - esac ;; - i*:UWIN*:*) - echo "$UNAME_MACHINE"-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - *:GNU:*:*) - # the GNU system - echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" - exit ;; - i*86:Minix:*:*) - echo "$UNAME_MACHINE"-pc-minix - exit ;; - aarch64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - aarch64_be:Linux:*:*) - UNAME_MACHINE=aarch64_be - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - arm*:Linux:*:*) - eval "$set_cc_for_build" - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - else - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi - else - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf - fi - fi - exit ;; - avr32*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - cris:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; - crisv32:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; - e2k:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - frv:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - hexagon:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - i*86:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" - exit ;; - ia64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - k1om:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - m32r*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - m68*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" - #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" - test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } - ;; - mips64el:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - openrisc*:Linux:*:*) - echo or1k-unknown-linux-"$LIBC" - exit ;; - or32:Linux:*:* | or1k*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-"$LIBC" - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-"$LIBC" - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; - PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; - *) echo hppa-unknown-linux-"$LIBC" ;; - esac - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-"$LIBC" - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-"$LIBC" - exit ;; - ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-"$LIBC" - exit ;; - ppcle:Linux:*:*) - echo powerpcle-unknown-linux-"$LIBC" - exit ;; - riscv32:Linux:*:* | riscv64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" - exit ;; - sh64*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - sh*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - tile*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - vax:Linux:*:*) - echo "$UNAME_MACHINE"-dec-linux-"$LIBC" - exit ;; - x86_64:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" - exit ;; - xtensa*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo "$UNAME_MACHINE"-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo "$UNAME_MACHINE"-unknown-stop - exit ;; - i*86:atheos:*:*) - echo "$UNAME_MACHINE"-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo "$UNAME_MACHINE"-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos"$UNAME_RELEASE" - exit ;; - i*86:*DOS:*:*) - echo "$UNAME_MACHINE"-pc-msdosdjgpp - exit ;; - i*86:*:4.*:*) - UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" - else - echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" - else - echo "$UNAME_MACHINE"-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configure will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos"$UNAME_RELEASE" - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos"$UNAME_RELEASE" - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos"$UNAME_RELEASE" - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos"$UNAME_RELEASE" - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv"$UNAME_RELEASE" - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo "$UNAME_MACHINE"-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo "$UNAME_MACHINE"-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux"$UNAME_RELEASE" - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv"$UNAME_RELEASE" - else - echo mips-unknown-sysv"$UNAME_RELEASE" - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux"$UNAME_RELEASE" - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux"$UNAME_RELEASE" - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux"$UNAME_RELEASE" - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux"$UNAME_RELEASE" - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux"$UNAME_RELEASE" - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux"$UNAME_RELEASE" - exit ;; - SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux"$UNAME_RELEASE" - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody"$UNAME_RELEASE" - exit ;; - *:Rhapsody:*:*) - echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval "$set_cc_for_build" - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc - fi - if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc - if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_PPC >/dev/null - then - UNAME_PROCESSOR=powerpc - fi - fi - elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 - fi - echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = x86; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NEO-*:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSR-*:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSV-*:NONSTOP_KERNEL:*:*) - echo nsv-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSX-*:NONSTOP_KERNEL:*:*) - echo nsx-tandem-nsk"$UNAME_RELEASE" - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = 386; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo "$UNAME_MACHINE"-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux"$UNAME_RELEASE" - exit ;; - *:DragonFly:*:*) - echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "$UNAME_MACHINE" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" - exit ;; - i*86:rdos:*:*) - echo "$UNAME_MACHINE"-pc-rdos - exit ;; - i*86:AROS:*:*) - echo "$UNAME_MACHINE"-pc-aros - exit ;; - x86_64:VMkernel:*:*) - echo "$UNAME_MACHINE"-unknown-esx - exit ;; - amd64:Isilon\ OneFS:*:*) - echo x86_64-unknown-onefs - exit ;; -esac - -echo "$0: unable to guess system type" >&2 - -case "$UNAME_MACHINE:$UNAME_SYSTEM" in - mips:Linux | mips64:Linux) - # If we got here on MIPS GNU/Linux, output extra information. - cat >&2 <&2 </dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = "$UNAME_MACHINE" -UNAME_RELEASE = "$UNAME_RELEASE" -UNAME_SYSTEM = "$UNAME_SYSTEM" -UNAME_VERSION = "$UNAME_VERSION" -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/Sources/Vendor/asio/config.sub b/Sources/Vendor/asio/config.sub deleted file mode 100755 index 9ccf09a..0000000 --- a/Sources/Vendor/asio/config.sub +++ /dev/null @@ -1,1801 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright 1992-2018 Free Software Foundation, Inc. - -timestamp='2018-03-08' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). - - -# Please send patches to . -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS - -Canonicalize a configuration name. - -Options: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright 1992-2018 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo "$1" - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | cloudabi*-eabi* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo "$1" | sed 's/-[^-]*$//'` - if [ "$basic_machine" != "$1" ] - then os=`echo "$1" | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | ba \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | e2k | epiphany \ - | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia16 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pru \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | wasm32 \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) - ;; - ms1) - basic_machine=mt-unknown - ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown - ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none - ;; - xscaleeb) - basic_machine=armeb-unknown - ;; - - xscaleel) - basic_machine=armel-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | ba-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pru-* \ - | pyramid-* \ - | riscv32-* | riscv64-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | wasm32-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-pc - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - asmjs) - basic_machine=asmjs-unknown - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2*) - basic_machine=m68k-bull - os=-sysv3 - ;; - e500v[12]) - basic_machine=powerpc-unknown - os=$os"spe" - ;; - e500v[12]-*) - basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=$os"spe" - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; - i*86v32) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - nsv-tandem) - basic_machine=nsv-tandem - ;; - nsx-tandem) - basic_machine=nsx-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc | ppcbe) basic_machine=powerpc-unknown - ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=-rdos - ;; - rdos32) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - strongarm-* | thumb-*) - basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tile*) - basic_machine=$basic_machine-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - x64) - basic_machine=x86_64-pc - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - xscale-* | xscalee[bl]-*) - basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases that might get confused - # with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux - ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # es1800 is here to avoid being matched by es* (a different OS) - -es1800*) - os=-ose - ;; - # Now accept the basic system types. - # The portable systems comes first. - # Each alternative MUST end in a * to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* | -cloudabi* | -sortix* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \ - | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ - | -midnightbsd*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -xray | -os68k* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo "$os" | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo "$os" | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo "$os" | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4*) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -pikeos*) - # Until real need of OS specific support for - # particular features comes up, bare metal - # configurations are quite functional. - case $basic_machine in - arm*) - os=-eabi - ;; - *) - os=-elf - ;; - esac - ;; - -nacl*) - ;; - -ios) - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - c8051-*) - os=-elf - ;; - hexagon-*) - os=-elf - ;; - tic54x-*) - os=-coff - ;; - tic55x-*) - os=-coff - ;; - tic6x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - pru-*) - os=-elf - ;; - *-be) - os=-beos - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -cnk*|-aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` - ;; -esac - -echo "$basic_machine$os" -exit - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/Sources/Vendor/asio/configure b/Sources/Vendor/asio/configure deleted file mode 100755 index 4082bc9..0000000 --- a/Sources/Vendor/asio/configure +++ /dev/null @@ -1,6474 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for asio 1.12.2. -# -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, -$0: including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='asio' -PACKAGE_TARNAME='asio' -PACKAGE_VERSION='1.12.2' -PACKAGE_STRING='asio 1.12.2' -PACKAGE_BUGREPORT='' -PACKAGE_URL='' - -ac_unique_file="include/asio.hpp" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -LIBOBJS -HAVE_CXX14_FALSE -HAVE_CXX14_TRUE -HAVE_CXX11_FALSE -HAVE_CXX11_TRUE -WINDOWS_TARGET_FALSE -WINDOWS_TARGET_TRUE -HAVE_BOOST_COROUTINE_FALSE -HAVE_BOOST_COROUTINE_TRUE -SEPARATE_COMPILATION_FALSE -SEPARATE_COMPILATION_TRUE -STANDALONE_FALSE -STANDALONE_TRUE -HAVE_OPENSSL_FALSE -HAVE_OPENSSL_TRUE -EGREP -GREP -CXXCPP -RANLIB -am__fastdepCXX_FALSE -am__fastdepCXX_TRUE -CXXDEPMODE -ac_ct_CXX -CXXFLAGS -CXX -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -am__nodep -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -MAINT -MAINTAINER_MODE_FALSE -MAINTAINER_MODE_TRUE -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL -am__quote' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_maintainer_mode -enable_silent_rules -enable_dependency_tracking -with_boost -enable_separate_compilation -enable_boost_coroutine -with_openssl -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CXX -CXXFLAGS -CCC -CXXCPP' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures asio 1.12.2 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/asio] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of asio 1.12.2:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-maintainer-mode - enable make rules and dependencies not useful (and - sometimes confusing) to the casual installer - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build - --enable-separate-compilation separate compilation of asio source - --enable-boost-coroutine use Boost.Coroutine to implement stackful coroutines - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-boost=DIR location of boost distribution - --with-openssl=DIR location of openssl - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CXX C++ compiler command - CXXFLAGS C++ compiler flags - CXXCPP C++ preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to the package provider. -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -asio configure 1.12.2 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_cxx_try_compile LINENO -# ---------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_compile - -# ac_fn_cxx_try_cpp LINENO -# ------------------------ -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_cpp - -# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES -# --------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_cxx_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_cxx_check_header_mongrel - -# ac_fn_cxx_try_run LINENO -# ------------------------ -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_cxx_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_run - -# ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES -# --------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_cxx_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_cxx_check_header_compile -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by asio $as_me 1.12.2, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - -am__api_version='1.16' - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi - -rm -f conftest.file - -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# Expand $ac_aux_dir to an absolute path. -am_aux_dir=`cd "$ac_aux_dir" && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -# Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=1;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='asio' - VERSION='1.12.2' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -mkdir_p='$(MKDIR_P)' - -# We need awk for the "check" target (and possibly the TAP driver). The -# system "awk" is bad on some platforms. -# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AMTAR='$${TAR-tar}' - - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar plaintar pax cpio none' - -# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5 -$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; } - if test $am_uid -le $am_max_uid; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - _am_tools=none - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5 -$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; } - if test $am_gid -le $am_max_gid; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - _am_tools=none - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 -$as_echo_n "checking how to create a ustar tar archive... " >&6; } - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_ustar-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - { echo "$as_me:$LINENO: $_am_tar --version" >&5 - ($_am_tar --version) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && break - done - am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x ustar -w "$$tardir"' - am__tar_='pax -L -x ustar -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H ustar -L' - am__tar_='find "$tardir" -print | cpio -o -H ustar -L' - am__untar='cpio -i -H ustar -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_ustar}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 - (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - rm -rf conftest.dir - if test -s conftest.tar; then - { echo "$as_me:$LINENO: $am__untar &5 - ($am__untar &5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 - (cat conftest.dir/file) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - grep GrepMe conftest.dir/file >/dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - if ${am_cv_prog_tar_ustar+:} false; then : - $as_echo_n "(cached) " >&6 -else - am_cv_prog_tar_ustar=$_am_tool -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 -$as_echo "$am_cv_prog_tar_ustar" >&6; } - - - - - - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 - fi -fi - - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 -$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } -cat > confinc.mk << 'END' -am__doit: - @echo this is the am__doit target >confinc.out -.PHONY: am__doit -END -am__include="#" -am__quote= -# BSD make does it like this. -echo '.include "confinc.mk" # ignored' > confmf.BSD -# Other make implementations (GNU, Solaris 10, AIX) do it like this. -echo 'include confinc.mk # ignored' > confmf.GNU -_am_result=no -for s in GNU BSD; do - { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 - (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - case $?:`cat confinc.out 2>/dev/null` in #( - '0:this is the am__doit target') : - case $s in #( - BSD) : - am__include='.include' am__quote='"' ;; #( - *) : - am__include='include' am__quote='' ;; -esac ;; #( - *) : - ;; -esac - if test "$am__include" != "#"; then - _am_result="yes ($s style)" - break - fi -done -rm -f confinc.* confmf.* -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 -$as_echo "${_am_result}" >&6; } - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 - ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -z "$CXX"; then - if test -n "$CCC"; then - CXX=$CCC - else - if test -n "$ac_tool_prefix"; then - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -$as_echo "$CXX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 -$as_echo "$ac_ct_CXX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CXX" && break -done - - if test "x$ac_ct_CXX" = x; then - CXX="g++" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CXX=$ac_ct_CXX - fi -fi - - fi -fi -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 -$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if ${ac_cv_cxx_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 -$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GXX=yes -else - GXX= -fi -ac_test_CXXFLAGS=${CXXFLAGS+set} -ac_save_CXXFLAGS=$CXXFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 -$as_echo_n "checking whether $CXX accepts -g... " >&6; } -if ${ac_cv_prog_cxx_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_cxx_werror_flag=$ac_cxx_werror_flag - ac_cxx_werror_flag=yes - ac_cv_prog_cxx_g=no - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes -else - CXXFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - -else - ac_cxx_werror_flag=$ac_save_cxx_werror_flag - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cxx_werror_flag=$ac_save_cxx_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 -$as_echo "$ac_cv_prog_cxx_g" >&6; } -if test "$ac_test_CXXFLAGS" = set; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CXX" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CXX_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CXX_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CXX_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CXX_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } -CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then - am__fastdepCXX_TRUE= - am__fastdepCXX_FALSE='#' -else - am__fastdepCXX_TRUE='#' - am__fastdepCXX_FALSE= -fi - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - - - -$as_echo "#define _REENTRANT 1" >>confdefs.h - - - -# Check whether --with-boost was given. -if test "${with_boost+set}" = set; then : - withval=$with_boost; - if test "${withval}" = no; then - STANDALONE="yes" - else - CPPFLAGS="$CPPFLAGS -I${withval} -DBOOST_CHRONO_HEADER_ONLY -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING" - LIBS="$LIBS -L${withval}/stage/lib" - fi - -else - - BOOSTDIR=`ls -1d ../boost_*_*_*/ 2>/dev/null | sort -t "_" -k 2nr -k 3nr -k 4nr | head -n 1 | sed -e 's/\/$//'` - if test "${BOOSTDIR}" != ""; then - BOOSTDIR="`pwd`/${BOOSTDIR}" - if test -d "${BOOSTDIR}"; then - echo "using automatically detected boost from ${BOOSTDIR}" - CPPFLAGS="$CPPFLAGS -I${BOOSTDIR} -DBOOST_CHRONO_HEADER_ONLY -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING" - LIBS="$LIBS -L${BOOSTDIR}/stage/lib" - fi - fi - -fi - - -# Check whether --enable-separate-compilation was given. -if test "${enable_separate_compilation+set}" = set; then : - enableval=$enable_separate_compilation; - SEPARATE_COMPILATION=yes - -fi - - -# Check whether --enable-boost-coroutine was given. -if test "${enable_boost_coroutine+set}" = set; then : - enableval=$enable_boost_coroutine; - HAVE_BOOST_COROUTINE=yes - -fi - - -if test "$STANDALONE" != yes; then - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 -$as_echo_n "checking how to run the C++ preprocessor... " >&6; } -if test -z "$CXXCPP"; then - if ${ac_cv_prog_CXXCPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CXXCPP needs to be expanded - for CXXCPP in "$CXX -E" "/lib/cpp" - do - ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CXXCPP=$CXXCPP - -fi - CXXCPP=$ac_cv_prog_CXXCPP -else - ac_cv_prog_CXXCPP=$CXXCPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 -$as_echo "$CXXCPP" >&6; } -ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_cxx_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -ac_fn_cxx_check_header_mongrel "$LINENO" "boost/noncopyable.hpp" "ac_cv_header_boost_noncopyable_hpp" "$ac_includes_default" -if test "x$ac_cv_header_boost_noncopyable_hpp" = xyes; then : - -else - - echo "Can't find boost headers. Please check the location of the boost" - echo "distribution and rerun configure using the --with-boost=DIR option." - echo "Alternatively, run with --without-boost to enable standalone build." - exit 1 - -fi - - -fi - - -# Check whether --with-openssl was given. -if test "${with_openssl+set}" = set; then : - withval=$with_openssl; - CPPFLAGS="$CPPFLAGS -I${withval}/include" - LIBS="$LIBS -L${withval}/lib" - -fi - - -ac_fn_cxx_check_header_mongrel "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default" -if test "x$ac_cv_header_openssl_ssl_h" = xyes; then : - -else - - OPENSSL_FOUND=no - -fi - - - -if test x$OPENSSL_FOUND != xno; then - LIBS="$LIBS -lssl -lcrypto" -fi - - if test x$OPENSSL_FOUND != xno; then - HAVE_OPENSSL_TRUE= - HAVE_OPENSSL_FALSE='#' -else - HAVE_OPENSSL_TRUE='#' - HAVE_OPENSSL_FALSE= -fi - - -WINDOWS=no -case $host in - *-*-linux*) - CXXFLAGS="$CXXFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - LIBS="$LIBS -lrt" - ;; - *-*-solaris*) - if test "$GXX" = yes; then - CXXFLAGS="$CXXFLAGS -D_PTHREADS" - else - # We'll assume Sun's CC. - CXXFLAGS="$CXXFLAGS -mt" - fi - LIBS="$LIBS -lsocket -lnsl -lpthread" - ;; - *-*-mingw32*) - CXXFLAGS="$CXXFLAGS -mthreads" - LDFLAGS="$LDFLAGS -mthreads" - LIBS="$LIBS -lws2_32 -lmswsock" - WINDOWS=yes - ;; - *-*-mingw64*) - CXXFLAGS="$CXXFLAGS -mthreads" - LDFLAGS="$LDFLAGS -mthreads" - LIBS="$LIBS -lws2_32 -lmswsock" - WINDOWS=yes - ;; - *-pc-cygwin*) - CXXFLAGS="$CXXFLAGS -D__USE_W32_SOCKETS -D_WIN32_WINNT=0x0501" - LIBS="$LIBS -lws2_32 -lmswsock" - WINDOWS=yes - ;; - *-apple-darwin*) - CXXFLAGS="$CXXFLAGS" - LDFLAGS="$LDFLAGS" - ;; - *-*-freebsd*) - CXXFLAGS="$CXXFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - ;; - *-*-netbsd*) - CXXFLAGS="$CXXFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - ;; -esac - -if test "$GXX" = yes; then - CXXFLAGS="$CXXFLAGS -ftemplate-depth-256" -fi - -if test "$STANDALONE" = yes; then - CPPFLAGS="$CPPFLAGS -DASIO_STANDALONE" -fi - -if test "$SEPARATE_COMPILATION" = yes; then - CPPFLAGS="$CPPFLAGS -DASIO_SEPARATE_COMPILATION" -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++11 is enabled" >&5 -$as_echo_n "checking whether C++11 is enabled... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if __cplusplus < 201103L - #error C++11 not available - #endif -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_CXX11=yes; -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - HAVE_CXX11=no; -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++14 is enabled" >&5 -$as_echo_n "checking whether C++14 is enabled... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if __cplusplus < 201402L - #error C++14 not available - #endif -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_CXX14=yes; -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - HAVE_CXX14=no; -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test "$GXX" = yes; then - if test "$STANDALONE" = yes; then - if test "$HAVE_CXX11" = no; then - HAVE_CXX11=yes - CPPFLAGS="-std=c++0x $CPPFLAGS" - fi - fi -fi - - if test x$STANDALONE = xyes; then - STANDALONE_TRUE= - STANDALONE_FALSE='#' -else - STANDALONE_TRUE='#' - STANDALONE_FALSE= -fi - - - if test x$SEPARATE_COMPILATION = xyes; then - SEPARATE_COMPILATION_TRUE= - SEPARATE_COMPILATION_FALSE='#' -else - SEPARATE_COMPILATION_TRUE='#' - SEPARATE_COMPILATION_FALSE= -fi - - - if test x$HAVE_BOOST_COROUTINE = xyes; then - HAVE_BOOST_COROUTINE_TRUE= - HAVE_BOOST_COROUTINE_FALSE='#' -else - HAVE_BOOST_COROUTINE_TRUE='#' - HAVE_BOOST_COROUTINE_FALSE= -fi - - - if test x$WINDOWS != xno; then - WINDOWS_TARGET_TRUE= - WINDOWS_TARGET_FALSE='#' -else - WINDOWS_TARGET_TRUE='#' - WINDOWS_TARGET_FALSE= -fi - - - if test x$HAVE_CXX11 = xyes; then - HAVE_CXX11_TRUE= - HAVE_CXX11_FALSE='#' -else - HAVE_CXX11_TRUE='#' - HAVE_CXX11_FALSE= -fi - - - if test x$HAVE_CXX14 = xyes; then - HAVE_CXX14_TRUE= - HAVE_CXX14_FALSE='#' -else - HAVE_CXX14_TRUE='#' - HAVE_CXX14_FALSE= -fi - - -ac_config_files="$ac_config_files Makefile include/Makefile src/Makefile src/tests/Makefile src/examples/cpp03/Makefile src/examples/cpp11/Makefile src/examples/cpp14/Makefile src/examples/cpp17/Makefile" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -ac_script=' -:mline -/\\$/{ - N - s,\\\n,, - b mline -} -t clear -:clear -s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g -t quote -s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g -t quote -b any -:quote -s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g -s/\[/\\&/g -s/\]/\\&/g -s/\$/$$/g -H -:any -${ - g - s/^\n// - s/\n/ /g - p -} -' -DEFS=`sed -n "$ac_script" confdefs.h` - - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_OPENSSL_TRUE}" && test -z "${HAVE_OPENSSL_FALSE}"; then - as_fn_error $? "conditional \"HAVE_OPENSSL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${STANDALONE_TRUE}" && test -z "${STANDALONE_FALSE}"; then - as_fn_error $? "conditional \"STANDALONE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${SEPARATE_COMPILATION_TRUE}" && test -z "${SEPARATE_COMPILATION_FALSE}"; then - as_fn_error $? "conditional \"SEPARATE_COMPILATION\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_BOOST_COROUTINE_TRUE}" && test -z "${HAVE_BOOST_COROUTINE_FALSE}"; then - as_fn_error $? "conditional \"HAVE_BOOST_COROUTINE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${WINDOWS_TARGET_TRUE}" && test -z "${WINDOWS_TARGET_FALSE}"; then - as_fn_error $? "conditional \"WINDOWS_TARGET\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_CXX11_TRUE}" && test -z "${HAVE_CXX11_FALSE}"; then - as_fn_error $? "conditional \"HAVE_CXX11\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_CXX14_TRUE}" && test -z "${HAVE_CXX14_FALSE}"; then - as_fn_error $? "conditional \"HAVE_CXX14\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by asio $as_me 1.12.2, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - -Configuration files: -$config_files - -Configuration commands: -$config_commands - -Report bugs to the package provider." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -asio config.status 1.12.2 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h | --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; - "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; - "src/examples/cpp03/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/cpp03/Makefile" ;; - "src/examples/cpp11/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/cpp11/Makefile" ;; - "src/examples/cpp14/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/cpp14/Makefile" ;; - "src/examples/cpp17/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/cpp17/Makefile" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - - -eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - # TODO: see whether this extra hack can be removed once we start - # requiring Autoconf 2.70 or later. - case $CONFIG_FILES in #( - *\'*) : - eval set x "$CONFIG_FILES" ;; #( - *) : - set x $CONFIG_FILES ;; #( - *) : - ;; -esac - shift - # Used to flag and report bootstrapping failures. - am_rc=0 - for am_mf - do - # Strip MF so we end up with the name of the file. - am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile which includes - # dependency-tracking related rules and includes. - # Grep'ing the whole file directly is not great: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ - || continue - am_dirpart=`$as_dirname -- "$am_mf" || -$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$am_mf" : 'X\(//\)[^/]' \| \ - X"$am_mf" : 'X\(//\)$' \| \ - X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$am_mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - am_filepart=`$as_basename -- "$am_mf" || -$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ - X"$am_mf" : 'X\(//\)$' \| \ - X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$am_mf" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { echo "$as_me:$LINENO: cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles" >&5 - (cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } || am_rc=$? - done - if test $am_rc -ne 0; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the - '--disable-dependency-tracking' option to at least be able to build - the package (albeit without support for automatic dependency tracking). -See \`config.log' for more details" "$LINENO" 5; } - fi - { am_dirpart=; unset am_dirpart;} - { am_filepart=; unset am_filepart;} - { am_mf=; unset am_mf;} - { am_rc=; unset am_rc;} - rm -f conftest-deps.mk -} - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/Sources/Vendor/asio/configure.ac b/Sources/Vendor/asio/configure.ac deleted file mode 100644 index d78c9d7..0000000 --- a/Sources/Vendor/asio/configure.ac +++ /dev/null @@ -1,186 +0,0 @@ -AC_INIT(asio, [1.12.2]) -AC_CONFIG_SRCDIR(include/asio.hpp) -AM_MAINTAINER_MODE -AM_INIT_AUTOMAKE([tar-ustar]) - -AC_CANONICAL_HOST -AM_PROG_CC_C_O -AC_PROG_CXX -AC_LANG(C++) -AC_PROG_RANLIB - -AC_DEFINE(_REENTRANT, [1], [Define this]) - -AC_ARG_WITH(boost, - AC_HELP_STRING([--with-boost=DIR],[location of boost distribution]), -[ - if test "${withval}" = no; then - STANDALONE="yes" - else - CPPFLAGS="$CPPFLAGS -I${withval} -DBOOST_CHRONO_HEADER_ONLY -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING" - LIBS="$LIBS -L${withval}/stage/lib" - fi -], -[ - BOOSTDIR=`ls -1d ../boost_*_*_*/ 2>/dev/null | sort -t "_" -k 2nr -k 3nr -k 4nr | head -n 1 | sed -e 's/\/$//'` - if test "${BOOSTDIR}" != ""; then - BOOSTDIR="`pwd`/${BOOSTDIR}" - if test -d "${BOOSTDIR}"; then - echo "using automatically detected boost from ${BOOSTDIR}" - CPPFLAGS="$CPPFLAGS -I${BOOSTDIR} -DBOOST_CHRONO_HEADER_ONLY -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING" - LIBS="$LIBS -L${BOOSTDIR}/stage/lib" - fi - fi -]) - -AC_ARG_ENABLE(separate-compilation, -[ --enable-separate-compilation separate compilation of asio source], -[ - SEPARATE_COMPILATION=yes -]) - -AC_ARG_ENABLE(boost-coroutine, -[ --enable-boost-coroutine use Boost.Coroutine to implement stackful coroutines], -[ - HAVE_BOOST_COROUTINE=yes -]) - -if test "$STANDALONE" != yes; then - AC_CHECK_HEADER([boost/noncopyable.hpp],, - [ - echo "Can't find boost headers. Please check the location of the boost" - echo "distribution and rerun configure using the --with-boost=DIR option." - echo "Alternatively, run with --without-boost to enable standalone build." - exit 1 - ],[]) -fi - -AC_ARG_WITH(openssl, - AC_HELP_STRING([--with-openssl=DIR],[location of openssl]), -[ - CPPFLAGS="$CPPFLAGS -I${withval}/include" - LIBS="$LIBS -L${withval}/lib" -],[]) - -AC_CHECK_HEADER([openssl/ssl.h],, -[ - OPENSSL_FOUND=no -],[]) - -if test x$OPENSSL_FOUND != xno; then - LIBS="$LIBS -lssl -lcrypto" -fi - -AM_CONDITIONAL(HAVE_OPENSSL,test x$OPENSSL_FOUND != xno) - -WINDOWS=no -case $host in - *-*-linux*) - CXXFLAGS="$CXXFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - LIBS="$LIBS -lrt" - ;; - *-*-solaris*) - if test "$GXX" = yes; then - CXXFLAGS="$CXXFLAGS -D_PTHREADS" - else - # We'll assume Sun's CC. - CXXFLAGS="$CXXFLAGS -mt" - fi - LIBS="$LIBS -lsocket -lnsl -lpthread" - ;; - *-*-mingw32*) - CXXFLAGS="$CXXFLAGS -mthreads" - LDFLAGS="$LDFLAGS -mthreads" - LIBS="$LIBS -lws2_32 -lmswsock" - WINDOWS=yes - ;; - *-*-mingw64*) - CXXFLAGS="$CXXFLAGS -mthreads" - LDFLAGS="$LDFLAGS -mthreads" - LIBS="$LIBS -lws2_32 -lmswsock" - WINDOWS=yes - ;; - *-pc-cygwin*) - CXXFLAGS="$CXXFLAGS -D__USE_W32_SOCKETS -D_WIN32_WINNT=0x0501" - LIBS="$LIBS -lws2_32 -lmswsock" - WINDOWS=yes - ;; - *-apple-darwin*) - CXXFLAGS="$CXXFLAGS" - LDFLAGS="$LDFLAGS" - ;; - *-*-freebsd*) - CXXFLAGS="$CXXFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - ;; - *-*-netbsd*) - CXXFLAGS="$CXXFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - ;; -esac - -if test "$GXX" = yes; then - CXXFLAGS="$CXXFLAGS -ftemplate-depth-256" -fi - -if test "$STANDALONE" = yes; then - CPPFLAGS="$CPPFLAGS -DASIO_STANDALONE" -fi - -if test "$SEPARATE_COMPILATION" = yes; then - CPPFLAGS="$CPPFLAGS -DASIO_SEPARATE_COMPILATION" -fi - -AC_MSG_CHECKING([whether C++11 is enabled]) -AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#if __cplusplus < 201103L]] - [[#error C++11 not available]] - [[#endif]])], - [AC_MSG_RESULT([yes]) - HAVE_CXX11=yes;], - [AC_MSG_RESULT([no]) - HAVE_CXX11=no;]) - -AC_MSG_CHECKING([whether C++14 is enabled]) -AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#if __cplusplus < 201402L]] - [[#error C++14 not available]] - [[#endif]])], - [AC_MSG_RESULT([yes]) - HAVE_CXX14=yes;], - [AC_MSG_RESULT([no]) - HAVE_CXX14=no;]) - -if test "$GXX" = yes; then - if test "$STANDALONE" = yes; then - if test "$HAVE_CXX11" = no; then - HAVE_CXX11=yes - CPPFLAGS="-std=c++0x $CPPFLAGS" - fi - fi -fi - -AM_CONDITIONAL(STANDALONE,test x$STANDALONE = xyes) - -AM_CONDITIONAL(SEPARATE_COMPILATION,test x$SEPARATE_COMPILATION = xyes) - -AM_CONDITIONAL(HAVE_BOOST_COROUTINE,test x$HAVE_BOOST_COROUTINE = xyes) - -AM_CONDITIONAL(WINDOWS_TARGET,test x$WINDOWS != xno) - -AM_CONDITIONAL(HAVE_CXX11,test x$HAVE_CXX11 = xyes) - -AM_CONDITIONAL(HAVE_CXX14,test x$HAVE_CXX14 = xyes) - -AC_OUTPUT([ - Makefile - include/Makefile - src/Makefile - src/tests/Makefile - src/examples/cpp03/Makefile - src/examples/cpp11/Makefile - src/examples/cpp14/Makefile - src/examples/cpp17/Makefile]) diff --git a/Sources/Vendor/asio/depcomp b/Sources/Vendor/asio/depcomp deleted file mode 100755 index 65cbf70..0000000 --- a/Sources/Vendor/asio/depcomp +++ /dev/null @@ -1,791 +0,0 @@ -#! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=2018-03-07.03; # UTC - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Alexandre Oliva . - -case $1 in - '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: depcomp [--help] [--version] PROGRAM [ARGS] - -Run PROGRAMS ARGS to compile a file, generating dependencies -as side-effects. - -Environment variables: - depmode Dependency tracking mode. - source Source file read by 'PROGRAMS ARGS'. - object Object file output by 'PROGRAMS ARGS'. - DEPDIR directory where to store dependencies. - depfile Dependency file to output. - tmpdepfile Temporary file to use when outputting dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit $? - ;; -esac - -# Get the directory component of the given path, and save it in the -# global variables '$dir'. Note that this directory component will -# be either empty or ending with a '/' character. This is deliberate. -set_dir_from () -{ - case $1 in - */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; - *) dir=;; - esac -} - -# Get the suffix-stripped basename of the given path, and save it the -# global variable '$base'. -set_base_from () -{ - base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` -} - -# If no dependency file was actually created by the compiler invocation, -# we still have to create a dummy depfile, to avoid errors with the -# Makefile "include basename.Plo" scheme. -make_dummy_depfile () -{ - echo "#dummy" > "$depfile" -} - -# Factor out some common post-processing of the generated depfile. -# Requires the auxiliary global variable '$tmpdepfile' to be set. -aix_post_process_depfile () -{ - # If the compiler actually managed to produce a dependency file, - # post-process it. - if test -f "$tmpdepfile"; then - # Each line is of the form 'foo.o: dependency.h'. - # Do two passes, one to just change these to - # $object: dependency.h - # and one to simply output - # dependency.h: - # which is needed to avoid the deleted-header problem. - { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" - sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" - } > "$depfile" - rm -f "$tmpdepfile" - else - make_dummy_depfile - fi -} - -# A tabulation character. -tab=' ' -# A newline character. -nl=' -' -# Character ranges might be problematic outside the C locale. -# These definitions help. -upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ -lower=abcdefghijklmnopqrstuvwxyz -digits=0123456789 -alpha=${upper}${lower} - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi - -# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. -depfile=${depfile-`echo "$object" | - sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Avoid interferences from the environment. -gccflag= dashmflag= - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -cygpath_u="cygpath -u -f -" -if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvisualcpp -fi - -if test "$depmode" = msvc7msys; then - # This is just like msvc7 but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvc7 -fi - -if test "$depmode" = xlc; then - # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. - gccflag=-qmakedep=gcc,-MF - depmode=gcc -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. -## Unfortunately, FreeBSD c89 acceptance of flags depends upon -## the command line argument order; so add the flags where they -## appear in depend2.am. Note that the slowdown incurred here -## affects only configure: in makefiles, %FASTDEP% shortcuts this. - for arg - do - case $arg in - -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; - *) set fnord "$@" "$arg" ;; - esac - shift # fnord - shift # $arg - done - "$@" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. -## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. -## (see the conditional assignment to $gccflag above). -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). Also, it might not be -## supported by the other compilers which use the 'gcc' depmode. -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - # The second -e expression handles DOS-style file names with drive - # letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the "deleted header file" problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. -## Some versions of gcc put a space before the ':'. On the theory -## that the space means something, we add a space to the output as -## well. hp depmode also adds that space, but also prefixes the VPATH -## to the object. Take care to not repeat it in the output. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like '#:fec' to the end of the - # dependency line. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ - | tr "$nl" ' ' >> "$depfile" - echo >> "$depfile" - # The second pass generates a dummy entry for each header file. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" - else - make_dummy_depfile - fi - rm -f "$tmpdepfile" - ;; - -xlc) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts '$object:' at the - # start of each line; $object doesn't have directory information. - # Version 6 uses the directory in both cases. - set_dir_from "$object" - set_base_from "$object" - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.u - tmpdepfile2=$base.u - tmpdepfile3=$dir.libs/$base.u - "$@" -Wc,-M - else - tmpdepfile1=$dir$base.u - tmpdepfile2=$dir$base.u - tmpdepfile3=$dir$base.u - "$@" -M - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - aix_post_process_depfile - ;; - -tcc) - # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 - # FIXME: That version still under development at the moment of writing. - # Make that this statement remains true also for stable, released - # versions. - # It will wrap lines (doesn't matter whether long or short) with a - # trailing '\', as in: - # - # foo.o : \ - # foo.c \ - # foo.h \ - # - # It will put a trailing '\' even on the last line, and will use leading - # spaces rather than leading tabs (at least since its commit 0394caf7 - # "Emit spaces for -MD"). - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. - # We have to change lines of the first kind to '$object: \'. - sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" - # And for each line of the second kind, we have to emit a 'dep.h:' - # dummy dependency, to avoid the deleted-header problem. - sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" - rm -f "$tmpdepfile" - ;; - -## The order of this option in the case statement is important, since the -## shell code in configure will try each of these formats in the order -## listed in this file. A plain '-MD' option would be understood by many -## compilers, so we must ensure this comes after the gcc and icc options. -pgcc) - # Portland's C compiler understands '-MD'. - # Will always output deps to 'file.d' where file is the root name of the - # source file under compilation, even if file resides in a subdirectory. - # The object file name does not affect the name of the '.d' file. - # pgcc 10.2 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using '\' : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - set_dir_from "$object" - # Use the source, not the object, to determine the base name, since - # that's sadly what pgcc will do too. - set_base_from "$source" - tmpdepfile=$base.d - - # For projects that build the same source file twice into different object - # files, the pgcc approach of using the *source* file root name can cause - # problems in parallel builds. Use a locking strategy to avoid stomping on - # the same $tmpdepfile. - lockdir=$base.d-lock - trap " - echo '$0: caught signal, cleaning up...' >&2 - rmdir '$lockdir' - exit 1 - " 1 2 13 15 - numtries=100 - i=$numtries - while test $i -gt 0; do - # mkdir is a portable test-and-set. - if mkdir "$lockdir" 2>/dev/null; then - # This process acquired the lock. - "$@" -MD - stat=$? - # Release the lock. - rmdir "$lockdir" - break - else - # If the lock is being held by a different process, wait - # until the winning process is done or we timeout. - while test -d "$lockdir" && test $i -gt 0; do - sleep 1 - i=`expr $i - 1` - done - fi - i=`expr $i - 1` - done - trap - 1 2 13 15 - if test $i -le 0; then - echo "$0: failed to acquire lock after $numtries attempts" >&2 - echo "$0: check lockdir '$lockdir'" >&2 - exit 1 - fi - - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp2) - # The "hp" stanza above does not work with aCC (C++) and HP's ia64 - # compilers, which have integrated preprocessors. The correct option - # to use with these is +Maked; it writes dependencies to a file named - # 'foo.d', which lands next to the object file, wherever that - # happens to be. - # Much of this is similar to the tru64 case; see comments there. - set_dir_from "$object" - set_base_from "$object" - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir.libs/$base.d - "$@" -Wc,+Maked - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - "$@" +Maked - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" - # Add 'dependent.h:' lines. - sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" - else - make_dummy_depfile - fi - rm -f "$tmpdepfile" "$tmpdepfile2" - ;; - -tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in 'foo.d' instead, so we check for that too. - # Subdirectories are respected. - set_dir_from "$object" - set_base_from "$object" - - if test "$libtool" = yes; then - # Libtool generates 2 separate objects for the 2 libraries. These - # two compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir$base.o.d # libtool 1.5 - tmpdepfile2=$dir.libs/$base.o.d # Likewise. - tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - # Same post-processing that is required for AIX mode. - aix_post_process_depfile - ;; - -msvc7) - if test "$libtool" = yes; then - showIncludes=-Wc,-showIncludes - else - showIncludes=-showIncludes - fi - "$@" $showIncludes > "$tmpdepfile" - stat=$? - grep -v '^Note: including file: ' "$tmpdepfile" - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - # The first sed program below extracts the file names and escapes - # backslashes for cygpath. The second sed program outputs the file - # name when reading, but also accumulates all include files in the - # hold buffer in order to output them again at the end. This only - # works with sed implementations that can handle large buffers. - sed < "$tmpdepfile" -n ' -/^Note: including file: *\(.*\)/ { - s//\1/ - s/\\/\\\\/g - p -}' | $cygpath_u | sort -u | sed -n ' -s/ /\\ /g -s/\(.*\)/'"$tab"'\1 \\/p -s/.\(.*\) \\/\1:/ -H -$ { - s/.*/'"$tab"'/ - G - p -}' >> "$depfile" - echo >> "$depfile" # make sure the fragment doesn't end with a backslash - rm -f "$tmpdepfile" - ;; - -msvc7msys) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - # Remove '-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for ':' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. - "$@" $dashmflag | - sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this sed invocation - # correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - "$@" || exit $? - # Remove any Libtool call - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no eat=no - for arg - do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - if test $eat = yes; then - eat=no - continue - fi - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source file. - -arch) - eat=yes ;; - -*|$object) - ;; - *) - set fnord "$@" "$arg"; shift ;; - esac - done - obj_suffix=`echo "$object" | sed 's/^.*\././'` - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" - rm -f "$depfile" - # makedepend may prepend the VPATH from the source file name to the object. - # No need to regex-escape $object, excess matching of '.' is harmless. - sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process the last invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed '1,2d' "$tmpdepfile" \ - | tr ' ' "$nl" \ - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - # Remove '-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - "$@" -E \ - | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - | sed '$ s: \\$::' > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - IFS=" " - for arg - do - case "$arg" in - -o) - shift - ;; - $object) - shift - ;; - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E 2>/dev/null | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" - echo "$tab" >> "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvcmsys) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/Sources/Vendor/asio/doc/asio.png b/Sources/Vendor/asio/doc/asio.png deleted file mode 100644 index c05fd3a4514fa9d962debe172b7c4fabf075ea35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3164 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 K`CC)3$NvSHCQGOQ diff --git a/Sources/Vendor/asio/doc/asio/examples.html b/Sources/Vendor/asio/doc/asio/examples.html deleted file mode 100644 index 4d977f8..0000000 --- a/Sources/Vendor/asio/doc/asio/examples.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Examples - - - - - - - - -
asio C++ library
-


-
-PrevUpHomeNext -
-
- -
    -
  • - C++03 Examples: Illustrates - the use of Asio using only C++03 language and library features. Where necessary, - the examples make use of selected Boost C++ libraries. -
  • -
  • - C++11 Examples: Contains - a limited set of the C++03 Asio examples, updated to use only C++11 library - and language facilities. These examples do not make direct use of Boost - C++ libraries. To show the changes between C++03 and C++11, these examples - include a diff between the C++03 and C++11 versions. -
  • -
  • - C++17 Examples: Selected - examples illustrating C++17 usage in conjunction with Technical Specifications. -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/examples/cpp03_examples.html b/Sources/Vendor/asio/doc/asio/examples/cpp03_examples.html deleted file mode 100644 index a116772..0000000 --- a/Sources/Vendor/asio/doc/asio/examples/cpp03_examples.html +++ /dev/null @@ -1,635 +0,0 @@ - - - -C++03 Examples - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
- - Allocation -
-

- This example shows how to customise the allocation of memory associated with - asynchronous operations. -

- -
- - Buffers -
-

- This example demonstrates how to create reference counted buffers that can - be used with socket read and write operations. -

- -
- - 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. -

- -

- The following POSIX-specific chat client demonstrates how to use the posix::stream_descriptor - class to perform console input and output. -

- -
- - Echo -
-

- A collection of simple clients and servers, showing the use of both synchronous - and asynchronous operations. -

- -
- - Fork -
-

- These POSIX-specific examples show how to use Asio in conjunction with the - fork() system call. The first example illustrates the steps - required to start a daemon process: -

- -

- The second example demonstrates how it is possible to fork a process from - within a completion handler. -

- -
- - HTTP - Client -
-

- Example programs implementing simple HTTP 1.0 clients. These examples show - how to use the read_until - and async_read_until - functions. -

- -
- - 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. -

- -
- - HTTP - Server 2 -
-

- An HTTP server using an io_context-per-CPU design. -

- -
- - HTTP - Server 3 -
-

- An HTTP server using a single io_context and a thread pool calling io_context::run(). -

- -
- - HTTP - Server 4 -
-

- A single-threaded HTTP server implemented using stackless coroutines. -

- -
- - ICMP -
-

- This example shows how to use raw sockets with ICMP to ping a remote host. -

- -
- - Invocation -
-

- This example shows how to customise handler invocation. Completion handlers - are added to a priority queue rather than executed immediately. -

- -
- - Iostreams -
-

- Two examples showing how to use ip::tcp::iostream. -

- -
- - Multicast -
-

- An example showing the use of multicast to transmit packets to a group of - subscribers. -

- -
- - Serialization -
-

- This example shows how Boost.Serialization can be used with asio to encode - and decode structures for transmission over a socket. -

- -
- - Services -
-

- This example demonstrates how to integrate custom functionality (in this - case, for logging) into asio's io_context, - and how to use a custom service with basic_stream_socket<>. -

- -
- - SOCKS - 4 -
-

- Example client program implementing the SOCKS 4 protocol for communication - via a proxy. -

- -
- - SSL -
-

- Example client and server programs showing the use of the ssl::stream<> - template with asynchronous operations. -

- -
- - Timeouts -
-

- A collection of examples showing how to cancel long running asynchronous - operations after a period of time. -

- -
- - Timers -
-

- Example showing how to customise basic_waitable_timer using a different clock - type. -

- -
- - Porthopper -
-

- Example illustrating mixed synchronous and asynchronous operations, and how - to use Boost.Lambda with Asio. -

- -
- - Nonblocking -
-

- Example demonstrating reactor-style operations for integrating a third-party - library that wants to perform the I/O operations itself. -

- -
- - Spawn -
-

- Example of using the asio::spawn() function, a wrapper around the Boost.Coroutine - library, to implement a chain of asynchronous operations using stackful coroutines. -

- -
- - UNIX - Domain Sockets -
-

- Examples showing how to use UNIX domain (local) sockets. -

- -
- - Windows -
-

- An example showing how to use the Windows-specific function TransmitFile - with Asio. -

- -
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/examples/cpp11_examples.html b/Sources/Vendor/asio/doc/asio/examples/cpp11_examples.html deleted file mode 100644 index e04eb46..0000000 --- a/Sources/Vendor/asio/doc/asio/examples/cpp11_examples.html +++ /dev/null @@ -1,434 +0,0 @@ - - - -C++11 Examples - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
- - Allocation -
-

- This example shows how to customise the allocation of memory associated with - asynchronous operations. -

- -
- - Buffers -
-

- This example demonstrates how to create reference counted buffers that can - be used with socket read and write operations. -

- -
- - 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. -

- -
- - Echo -
-

- A collection of simple clients and servers, showing the use of both synchronous - and asynchronous operations. -

- -
- - Fork -
-

- These POSIX-specific examples show how to use Asio in conjunction with the - fork() system call. The first example illustrates the steps - required to start a daemon process: -

- -

- The second example demonstrates how it is possible to fork a process from - within a completion handler. -

- -
- - Futures -
-

- This example demonstrates how to use std::future in conjunction with Asio's - asynchronous operations. -

- -
- - Handler - Tracking -
-

- This example shows how to implement custom handler tracking. -

- -
- - 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. -

- -
- - Multicast -
-

- An example showing the use of multicast to transmit packets to a group of - subscribers. -

- -
- - Nonblocking -
-

- Example demonstrating reactor-style operations for integrating a third-party - library that wants to perform the I/O operations itself. -

- -
- - Operations -
-

- Examples showing how to implement composed asynchronous operations as reusable - library functions. -

- -
- - SOCKS - 4 -
-

- Example client program implementing the SOCKS 4 protocol for communication - via a proxy. -

- -
- - Spawn -
-

- Example of using the asio::spawn() function, a wrapper around the Boost.Coroutine - library, to implement a chain of asynchronous operations using stackful coroutines. -

- -
- - SSL -
-

- Example client and server programs showing the use of the ssl::stream<> - template with asynchronous operations. -

- -
- - Timeouts -
-

- A collection of examples showing how to cancel long running asynchronous - operations after a period of time. -

- -
- - Timers -
-

- Example showing how to customise basic_waitable_timer using a different clock - type. -

- -
- - UNIX - Domain Sockets -
-

- Examples showing how to use UNIX domain (local) sockets. -

- -
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/examples/cpp17_examples.html b/Sources/Vendor/asio/doc/asio/examples/cpp17_examples.html deleted file mode 100644 index 262da2a..0000000 --- a/Sources/Vendor/asio/doc/asio/examples/cpp17_examples.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -C++17 Examples - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
- - - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/history.html b/Sources/Vendor/asio/doc/asio/history.html deleted file mode 100644 index c8b5d33..0000000 --- a/Sources/Vendor/asio/doc/asio/history.html +++ /dev/null @@ -1,2058 +0,0 @@ - - - -Revision History - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- - Asio - 1.12.2 -

-
    -
  • - Fixed a problem with the detection of std::future availability - with libstdc++. -
  • -
  • - Fixed compile error in regex overload of read_until. -
  • -
  • - Fixed a timer heap corruption issue that can occur when moving a cancelled - timer. -
  • -
  • - Fixed detection of std::experimental::string_view and std::string_view - with newer clang/libc++. -
  • -
  • - Fixed MSVC version detection for availability of std::invoke_result. -
  • -
  • - Fixed the buffer sequence traits to test the new requirements, if decltype - is available. -
  • -
  • - Fixed an MSVC issue when building with exceptions disabled. -
  • -
  • - Added SSL context options for TLS v1.3. -
  • -
  • - Added a compile-time test for TLS v1 support. -
  • -
  • - Fixed the macro used to test for TLS v1.2 support. -
  • -
  • - Prevented global objects from being created once per thread on Windows. -
  • -
  • - Fixed a crash when using size(), max_size() or - empty() on default-constructed resolver results. -
  • -
  • - Changed to move the return value in basic_resolver_results::begin() to - avoid copying. -
  • -
  • - Enabled move support for the Intel Compiler. -
  • -
  • - Fixed std::string_view detection issue when using clang-cl. -
  • -
  • - Fixed the handler tracking operation name for io_context::executor_type::dispatch. -
  • -
  • - Fixed a buffer overflow that could occur when parsing an address string - with a 64-bit scope id. -
  • -
  • - Added examples showing how to write composed operations. -
  • -
  • - Added C++11 versions of the Timeouts, Timers, SOCKS4 and SSL examples. -
  • -
  • - Fixed minor issues in documentation and examples. -
  • -
-

- - Asio - 1.12.1 -

-
    -
  • - Added missing const qualifier to basic_socket_acceptor::get_option. -
  • -
  • - Worked around a parsing error that occurs with some versions of gcc. -
  • -
  • - Fixed broken code samples in tutorial. -
  • -
  • - Added new experimental features. (Note that "experimental" features - may be changed without notice in subsequent releases.) -
      -
    • - Added experimental::detached completion token. -
    • -
    • - Added experimental::redirect_error completion token. -
    • -
    • - Added experimental::co_spawn facility for integration - with the coroutines technical specification. -
    • -
    -
  • -
  • - Updated timeout examples to use latest features. -
      -
    • - Used asio::steady_timer rather than asio::deadline_timer. -
    • -
    • - Used asio::dynamic_buffer rather than asio::streambuf. -
    • -
    • - Used timed asio::io_context::run_for() function for - blocking clients. -
    • -
    • - Added example showing a custom completion token for blocking with - timeouts. -
    • -
    -
  • -
  • - Fixed unit tests to compile when (BOOST_)ASIO_NO_DEPRECATED - is defined. -
  • -
  • - Changed socket iostreams to use chrono by default, to fix compatibility - with the Networking TS. Define (BOOST_)ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM - to enable the old Boost.Date_Time interface in basic_socket_streambuf - and basic_socket_iostream. -
  • -
  • - Updated examples to use chrono rather than Boost.Date_Time. -
  • -
  • - Fixed an incorrect member function detector in the is_dynamic_buffer - trait. -
  • -
  • - Fixed an async_result incompatibility with deprecated handler_type. -
  • -
  • - Added a missing move optimisation in the SSL stream implementation. -
  • -
  • - Fixed incorrect basic_resolver_results::value_type typedef. -
  • -
  • - Fixed a compile error with some OpenSSL versions when SSL_OP_NO_COMPRESSION - is defined. -
  • -
  • - Changed add_certificate_authority to process multiple certificates - in a bundle. -
  • -
  • - Eliminated deprecation warning with MSVC by using std::invoke_result - rather than std::result_of. -
  • -
  • - Changed to use std::string_view for C++17 or later, and std::experimental::string_view - for C++14. Define the preprocessor macro (BOOST_)ASIO_DISABLE_STD_STRING_VIEW - to force the use of std::experimental::string_view (assuming it is available) - when compiling in C++17 mode. -
  • -
  • - Ensured DynamicBuffer template arguments are decayed before - using in enable_if tests. -
  • -
  • - Changed documentation to distinguish legacy completion handlers (which - are still required to be CopyConstructible) from new MoveConstructible - handlers. -
  • -
  • - Suppressed a discarded return value warning in the buffer debugging support. -
  • -
  • - Fixed basic_yield_context to work with completion signatures - containing reference parameters. -
  • -
  • - Ensured that stackful coroutines launched using spawn() correctly - store decayed copies of their function and handler arguments. -
  • -
  • - Fixed some compatibility issues with Android. -
  • -
  • - Fixed some minor portability issues in examples. -
  • -
-

- - Asio - 1.12.0 -

-
    -
  • - Completed the interface changes to reflect the Networking TS (N4656). -
      -
    • - See the list of new interfaces - and, where applicable, the corresponding old interfaces that have - been superseded. -
    • -
    • - The service template parameters, and the corresponding classes, are - disabled by default. For example, instead of basic_socket<Protocol, - SocketService> we now have simply basic_socket<Protocol>. - The old interface can be enabled by defining the (BOOST_)ASIO_ENABLE_OLD_SERVICES - macro. -
    • -
    -
  • -
  • - Added support for customised handler tracking. -
  • -
  • - Added reactor-related (i.e. descriptor readiness) events to handler tracking. -
  • -
  • - Added special concurrency - hint values that may be used to disable locking on a per io_context - basis. -
  • -
  • - Enabled perfect forwarding for the first ssl::stream<> - constructor argument. -
  • -
  • - Added ability to release ownership of the underlying native socket. (Requires - Windows 8.1 or later when using the I/O completion port backend.) -
  • -
-

- - Asio - 1.11.0 -

-
    -
  • - Implemented changes to substantially reflect the Networking Library Proposal - (N4370). -
      -
    • - New Executor type requirements and classes to support - an executor framework, including the execution_context - base class, the executor_work class for tracking outstanding - work, and the executor polymorphic wrapper. Free functions - dispatch(), post() and defer() - have been added and are used to submit function objects to executors. -
    • -
    • - Completion handlers now have an associated executor and associated - allocator. The free function wrap() is used to associate - an executor with a handler or other object. The handler hooks for - allocation, invocation and continuation have been deprecated. -
    • -
    • - A system_executor class has been added as a default - executor. -
    • -
    • - The io_service class is now derived from execution_context - and implements the executor type requirements in its nested executor_type - class. The member functions dispatch(), post(), - defer() and wrap() have been deprecated. - The io_service::work class has been deprecated. -
    • -
    • - The io_service member function reset() - has been renamed to restart(). The old name is retained - for backward compatibility but has been deprecated. -
    • -
    • - The make_service<>() function is now used to add - a new service to an execution context such as an io_service. - The add_service() function has been deprecated. -
    • -
    • - A new strand<> template has been added to allow - strand functionality to be used with generic executor types. -
    • -
    • - I/O objects (such as sockets and timers) now provide access to their - associated io_service via a context() member - function. The get_io_service() member function is deprecated. -
    • -
    • - All asynchronous operations and executor operations now support move-only - handlers. However, the deprecated io_service::post(), - io_service::dispatch(), io_service::strand::post() - and io_service::strand::dispatch() functions still require - copyable handlers. -
    • -
    • - Waitable timer objects are now movable. -
    • -
    • - Waitable timers, socket iostreams and socket streambufs now provide - an expiry() member function for obtaining the expiry - time. The accessors expires_at() and expires_after() - have been deprecated, though those names are retained for the mutating - members. -
    • -
    • - The std::packaged_task class template is now supported - as a completion handler. The initiating operation automatically returns - the future associated with the task. The package() function - has been added as a convenient factory for packaged tasks. -
    • -
    • - Sockets, socket acceptors and descriptors now provide wait() - and async_wait() operations that may be used to wait - for readiness. The null_buffers type has been deprecated. -
    • -
    • - The proposed error code enum classes are simulated using namespaces. - Existing asio error codes now have a correspondence with the standard - error conditions. -
    • -
    • - Conversion between IP address types, and conversion from string to - address, is now supported via the address_cast<>(), - make_address(), make_address_v4() and - make_address_v6() free functions. The from_string(), - to_v4(), to_v6() and v4_mapped() - member functions have been deprecated. -
    • -
    • - A default-constructed ip::address now represents an - invalid address value that is neither IPv4 nor IPv6. -
    • -
    • - New buffer() overloads that generate mutable buffers - for non-const string objects. -
    • -
    • - Support for dynamic buffer sequences that automatically grow and - shrink to accomodate data as it is read or written. This is a generic - facility similar to the existing asio::streambuf class. - This support includes: -
        -
      • - New dynamic_string_buffer and dynamic_vector_buffer - adapter classes that meet the DynamicBufferSequence - type requirements. -
      • -
      • - New dynamic_buffer() factory functions for creating - a dynamic buffer adapter for a vector or string. -
      • -
      • - New overloads for the read(), async_read(), - write() and async_write(), read_until() - and async_read_until() free functions that directly - support dynamic buffer sequences. -
      • -
      -
    • -
    • - Support for networks and address ranges. Thanks go to Oliver Kowalke - for contributing to the design and providing the implementation on - which this facility is based. The following new classes have been - added: -
        -
      • - address_iterator_v4 for iterating across IPv4 - addresses -
      • -
      • - address_iterator_v6 for iterating across IPv6 - addresses -
      • -
      • - address_range_v4 to represent a range of IPv4 - addresses -
      • -
      • - address_range_v6 to represent a range of IPv6 - addresses -
      • -
      • - network_v4 for manipulating IPv4 CIDR addresses, - e.g. 1.2.3.0/24 -
      • -
      • - network_v6 for manipulating IPv6 CIDR addresses, - e.g. ffe0:/120 -
      • -
      -
    • -
    • - New convenience headers in <asio/ts/*.hpp> - that correspond to the headers in the proposal. -
    • -
    -
  • -
  • - Added a new, executor-aware thread_pool class. -
  • -
  • - Changed spawn() to be executor-aware. -
  • -
  • - Added a new spawn() overload that takes only a function object. -
  • -
  • - Changed spawn() and yield_context to permit nested - calls to the completion handler. -
  • -
  • - Removed previously deprecated functions. -
  • -
  • - Added options for disabling TLS v1.1 and v1.2. -
  • -
  • - Changed the SSL wrapper to call the password callback when loading an in-memory - key. -
  • -
  • - Changed the tutorial to use std::endl to ensure output is - flushed. -
  • -
  • - Fixed false SSL error reports by ensuring that the SSL error queue is cleared - prior to each operation. -
  • -
  • - Fixed an ssl::stream<> bug that may result in spurious - 'short read' errors. -
  • -
  • - Enabled perfect forwarding for the first ssl::stream<> - constructor argument. -
  • -
  • - Added standalone Asio support for Clang when used with libstdc++ and C++11. -
  • -
  • - Fixed an unsigned integer overflow reported by Clang's integer sanitizer. -
  • -
  • - Added support for move-only return types when using a yield_context - object with asynchronous operations. -
  • -
  • - Ensured errors generated by Windows' ConnectEx function are - mapped to their portable equivalents. -
  • -
  • - Changed multicast test to treat certain join_group failures - as non-fatal. -
  • -
-

- - Asio - 1.10.5 -

-
    -
  • - Fixed the kqueue reactor so that it works on FreeBSD. -
  • -
  • - Fixed an issue in the kqueue reactor which resulted - in spinning when using serial ports on Mac OS. -
  • -
  • - Fixed kqueue reactor support for read-only file descriptors. -
  • -
  • - Fixed a compile error when using the /dev/poll reactor. -
  • -
  • - Changed the Windows backend to use WSASocketW, as WSASocketA - has been deprecated. -
  • -
  • - Fixed some warnings reported by Visual C++ 2013. -
  • -
  • - Fixed integer type used in the WinRT version of the byte-order conversion - functions. -
  • -
  • - Changed documentation to indicate that use_future and spawn() - are not made available when including the asio.hpp convenience - header. -
  • -
  • - Explicitly marked asio::strand as deprecated. Use asio::io_service::strand - instead. -
  • -
-

- - Asio - 1.10.4 -

-
    -
  • - 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. -
  • -
-

- - Asio - 1.10.3 -

-
    -
  • - Worked around a gcc problem to do with anonymous enums. -
  • -
  • - 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. -
  • -
  • - Fixed an off-by-one error in the signal_set implementation's - signal number check. -
  • -
  • - Changed the Windows IOCP backend to not assume that SO_UPDATE_CONNECT_CONTEXT - is defined. -
  • -
  • - 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. -
  • -
-

- - Asio - 1.10.2 -

-
    -
  • - Fixed asio::spawn() to work correctly with new Boost.Coroutine - interface. -
  • -
  • - Ensured that incomplete asio::spawn() coroutines are correctly - unwound when cleaned up by the io_service destructor. -
  • -
  • - Fixed delegation of continuation hook for handlers produced by io_service::wrap() - and strand::wrap(). -
  • -
  • - 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. -
  • -
  • - 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~. -
  • -
  • - Made the select reactor more efficient on Windows for large - numbers of sockets. -
  • -
  • - Fixed a Windows-specific type-aliasing issue reported by gcc. -
  • -
  • - Prevented execution of compile-time-only buffer test to avoid triggering - an address sanitiser warning. -
  • -
  • - Disabled the GetQueuedCompletionStatus timeout workaround - on recent versions of Windows. -
  • -
  • - Changed implementation for Windows Runtime to use FormatMessageW - rather than FormatMessageA, as the Windows store does not - permit the latter. -
  • -
  • - 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. -
  • -
-

- - Asio - 1.10.1 -

-
    -
  • - 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. -
    • -
    -
  • -
  • - Extended the ability to use Asio without Boost to include Microsoft Visual - Studio 2012. When using a C++11 compiler, most of Asio may now be used - without a dependency on Boost header files or libraries. To use Asio in - this way, define ASIO_STANDALONE on your compiler command - line or as part of the project options. This standalone configuration has - been tested for the following platforms and compilers: -
      -
    • - Microsoft Visual Studio 2012 -
    • -
    • - Linux with g++ 4.7 or 4.8 (requires -std=c++11) -
    • -
    • - Mac OS X with clang++ / Xcode 4.6 (requires -std=c++11 -stdlib=libc++) -
    • -
    -
  • -
  • - Fixed a regression (introduced in 1.10.0) where, on some platforms, errors - from async_connect were not correctly propagated through to - the completion handler. -
  • -
  • - Fixed a Windows-specific regression (introduced in 1.10.0) 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. -
  • -
  • - Fixed a bug in handler tracking, where it was not correctly printing out - some handler IDs. -
  • -
  • - Fixed the comparison used to test for successful synchronous accept operations - so that it works correctly with unsigned socket descriptors. -
  • -
  • - Ensured the signal number is correctly passed to the completion handler - when starting an async_wait on a signal that is already raised. -
  • -
  • - Suppressed a g++ 4.8+ warning about unused typedefs. -
  • -
  • - Enabled the move optimisation for handlers that use the default invocation - hook. -
  • -
  • - Clarified that programs must not issue overlapping async_write_at - operations. -
  • -
  • - Changed the Windows HANDLE backend to treat ERROR_MORE_DATA - as a non-fatal error when returned by GetOverlappedResult - for a synchronous read. -
  • -
  • - 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 1.10.0. In particular, the buffered stream templates have been - updated so that they adhere to current handler patterns. -
  • -
  • - Enabled move support for Microsoft Visual Studio 2012. -
  • -
  • - 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. -
  • -
  • - Eliminated some unnecessary handler copies. -
  • -
  • - Fixed support for older versions of OpenSSL that do not provide the SSL_CTX_clear_options - function. -
  • -
  • - Fixed various minor and cosmetic issues in code and documentation. -
  • -
-

- - Asio - 1.10.0 -

-
    -
  • - 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 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 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 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 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 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 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. -
  • -
  • - Add the ability to use Asio without Boost, for a limited set of platforms. - When using a C++11 compiler, most of Asio may now be used without a dependency - on Boost header files or libraries. To use Asio in this way, define ASIO_STANDALONE - on your compiler command line or as part of the project options. This standalone - configuration has currently been tested for the following platforms and - compilers: -
      -
    • - Linux with g++ 4.7 (requires -std=c++11) -
    • -
    • - Mac OS X with clang++ / Xcode 4.6 (requires -std=c++11 -stdlib=libc++) -
    • -
    -
  • -
  • - 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. -
  • -
  • - Fixed copy-paste errors in waitable timer documentation. -
  • -
  • - Added assertions to satisfy some code analysis tools. -
  • -
  • - Fixed a malformed #warning directive. -
  • -
  • - 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. -
  • -
  • - 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. -
  • -
  • - Fixed implementation of asynchronous connect operation so that it can cope - with spurious readiness notifications from the reactor. -
  • -
  • - Fixed a memory leak in the ssl::rfc2818_verification class. -
  • -
  • - Added a mechanism for disabling automatic Winsock initialisation. See the - header file asio/detail/winsock_init.hpp for details. -
  • -
-

- - Asio - 1.8.3 -

-
    -
  • - Fixed some 64-to-32-bit conversion warnings. -
  • -
  • - Fixed various small errors in documentation and comments. -
  • -
  • - Fixed an error in the example embedded in basic_socket::get_option's - documentation. -
  • -
  • - Changed to use long rather than int for SSL_CTX - options, to match OpenSSL. -
  • -
  • - Changed to use _snwprintf to address a compile error due to - the changed swprintf signature in recent versions of MinGW. -
  • -
  • - Fixed a deadlock that can occur on Windows when shutting down a pool of - io_service threads due to running out of work. -
  • -
  • - Changed UNIX domain socket example to treat errors from accept - as non-fatal. -
  • -
  • - Added a small block recycling optimisation to improve default memory allocation - behaviour. -
  • -
-

- - Asio - 1.8.2 -

-
    -
  • - Fixed an incompatibility between ip::tcp::iostream and C++11. -
  • -
  • - Decorated GCC attribute names with underscores to prevent interaction with - user-defined macros. -
  • -
  • - Added missing #include <cctype>, needed for some versions - of MinGW. -
  • -
  • - Changed to use gcc's atomic builtins on ARM CPUs, when - available. -
  • -
  • - Changed strand destruction to be a no-op, to allow strand objects to be - destroyed after their associated io_service has been destroyed. -
  • -
  • - Added support for some newer versions of glibc which provide the epoll_create1() - function but always fail with ENOSYS. -
  • -
  • - Changed the SSL implementation to throw an exception if SSL engine initialisation - fails. -
  • -
  • - Fixed another regression in buffered_write_stream. -
  • -
  • - Implemented various minor performance improvements, primarily targeted - at Linux x86 and x86-64 platforms. -
  • -
-

- - Asio - 1.8.1 -

-
    -
  • - Changed the epoll_reactor backend to do lazy registration - for EPOLLOUT events. -
  • -
  • - Fixed the epoll_reactor handling of out-of-band data, which - was broken by an incomplete fix in the last release. -
  • -
  • - Changed Asio's SSL wrapper to respect OpenSSL's OPENSSL_NO_ENGINE - feature test #define. -
  • -
  • - Fixed windows::object_handle so that it works with Windows - compilers that support C++11 move semantics (such as g++). -
  • -
  • - Improved the performance of strand rescheduling. -
  • -
  • - Added support for g++ 4.7 when compiling in C++11 mode. -
  • -
  • - Fixed a problem where signal_set handlers were not being delivered - when the io_service was constructed with a concurrency_hint - of 1. -
  • -
-

- - Asio - 1.8.0 -

-
    -
  • - Added a new class template basic_waitable_timer based around - the C++11 clock type requirements. It may be used with the clocks from - the C++11 <chrono> library facility or, if those are - not available, Boost.Chrono. The typedefs high_resolution_timer, - steady_timer and system_timer may be used to - create timer objects for the standard clock types. -
  • -
  • - Added a new windows::object_handle class for performing waits - on Windows kernel objects. Thanks go to Boris Schaeling for contributing - substantially to the development of this feature. -
  • -
  • - On Linux, connect() can return EAGAIN in certain circumstances. - Remapped this to another error so that it doesn't look like a non-blocking - operation. -
  • -
  • - Fixed a compile error on NetBSD. -
  • -
  • - Fixed deadlock on Mac OS X. -
  • -
  • - Fixed a regression in buffered_write_stream. -
  • -
  • - Fixed a non-paged pool "leak" on Windows when an io_service - is repeatedly run without anything to do. -
  • -
  • - Reverted earlier change to allow some speculative operations to be performed - without holding the lock, as it introduced a race condition in some multithreaded - scenarios. -
  • -
  • - Fixed a bug where the second buffer in an array of two buffers may be ignored - if the first buffer is empty. -
  • -
-

- - Asio - 1.6.1 -

-
    -
  • - Implemented various performance improvements, including: -
      -
    • - Using thread-local operation queues in single-threaded use cases - (i.e. when concurrency_hint is 1) to eliminate a lock/unlock - pair. -
    • -
    • - Allowing some epoll_reactor speculative operations to - be performed without holding the lock. -
    • -
    • - Improving locality of reference by performing an epoll_reactor's - I/O operation immediately before the corresponding handler is called. - This also improves scalability across CPUs when multiple threads - are running the io_service. -
    • -
    • - Specialising asynchronous read and write operations for buffer sequences - that are arrays (boost::array or std::array) - of exactly two buffers. -
    • -
    -
  • -
  • - Fixed a compile error in the regex overload of async_read_until. -
  • -
  • - Fixed a Windows-specific compile error by explicitly specifying the signal() - function from the global namespace. -
  • -
  • - Changed the deadline_timer implementation so that it does - not read the clock unless the timer heap is non-empty. -
  • -
  • - Changed the SSL stream's buffers' sizes so that they are large enough to - hold a complete TLS record. -
  • -
  • - Fixed the behaviour of the synchronous null_buffers operations - so that they obey the user's non-blocking setting. -
  • -
  • - Changed to set the size of the select fd_set at runtime when - using Windows. -
  • -
  • - Disabled an MSVC warning due to const qualifier being applied to function - type. -
  • -
  • - Fixed a crash that occurs when using the Intel C++ compiler. -
  • -
  • - Changed the initialisation of the OpenSSL library so that it supports all - available algorithms. -
  • -
  • - Fixed the SSL error mapping used when the session is gracefully shut down. -
  • -
  • - Added some latency test programs. -
  • -
  • - Clarified that a read operation ends when the buffer is full. -
  • -
  • - Fixed an exception safety issue in epoll_reactor initialisation. -
  • -
  • - Made the number of strand implementations configurable by defining (BOOST_)ASIO_STRAND_IMPLEMENTATIONS - to the desired number. -
  • -
  • - Added support for a new (BOOST_)ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION - flag which switches the allocation of strand implementations to use a round-robin - approach rather than hashing. -
  • -
  • - Fixed potential strand starvation issue that can occur when strand.post() - is used. -
  • -
-

- - Asio - 1.6.0 -

-
    -
  • - Improved support for C++0x move construction to further reduce copying - of handler objects. In certain designs it is possible to eliminate virtually - all copies. Move support is now enabled when compiling in -std=c++0x - mode on g++ 4.5 or higher. -
  • -
  • - Added build support for platforms that don't provide either of signal() - or sigaction(). -
  • -
  • - Changed to use C++0x variadic templates when they are available, rather - than generating function overloads using the Boost.Preprocessor library. -
  • -
  • - Ensured the value of errno is preserved across the implementation's - signal handler. -
  • -
  • - On Windows, ensured the count of outstanding work is decremented for abandoned - operations (i.e. operations that are being cleaned up within the io_service - destructor). -
  • -
  • - Fixed behaviour of zero-length reads and writes in the new SSL implementation. -
  • -
  • - Added support for building with OpenSSL 1.0 when OPENSSL_NO_SSL2 - is defined. -
  • -
  • - Changed most examples to treat a failure by an accept operation as non-fatal. -
  • -
  • - Fixed an error in the tick_count_timer example by making - the duration type signed. Previously, a wait on an already-passed deadline - would not return for a very long time. -
  • -
-

- - Asio - 1.5.3 -

-
    -
  • - Added a new, completely rewritten SSL implementation. The new implementation - compiles faster, shows substantially improved performance, and supports - custom memory allocation and handler invocation. It includes new API features - such as certificate verification callbacks and has improved error reporting. - The new implementation is source-compatible with the old for most uses. - However, if necessary, the old implementation may still be used by defining - (BOOST_)ASIO_ENABLE_OLD_SSL. -
  • -
  • - Added new asio::buffer() overloads for std::array, - when available. The support is automatically enabled when compiling in - -std=c++0x mode on g++ 4.3 or higher, or when using - MSVC 10. The support may be explicitly enabled by defining (BOOST_)ASIO_HAS_STD_ARRAY, - or disabled by defining (BOOST_)ASIO_DISABLE_STD_ARRAY. -
  • -
  • - Changed to use the C++0x standard library templates array, - shared_ptr, weak_ptr and atomic - when they are available, rather than the Boost equivalents. -
  • -
  • - Support for std::error_code and std::system_error - is no longer enabled by default for g++ 4.5, as that compiler's standard - library does not implement std::system_error::what() correctly. -
  • -
-

- - Asio - 1.5.2 -

-
    -
  • - Added support for C++0x move construction and assignment to sockets, serial - ports, POSIX descriptors and Windows handles. -
  • -
  • - Added support for the fork() system call. Programs that use - fork() must call io_service.notify_fork() at - the appropriate times. Two new examples have been added showing how to - use this feature. -
  • -
  • - Cleaned up the handling of errors reported by the close() - system call. In particular, assume that most operating systems won't have - close() fail with EWOULDBLOCK, but if it does - then set the blocking mode and restart the call. If any other error occurs, - assume the descriptor is closed. -
  • -
  • - The kqueue flag EV_ONESHOT seems to cause problems on some - versions of Mac OS X, with the io_service destructor getting - stuck inside the close() system call. Changed the kqueue backend - to use EV_CLEAR instead. -
  • -
  • - Changed exception reporting to include the function name in exception - what() messages. -
  • -
  • - Fixed an insufficient initialisers warning with MinGW. -
  • -
  • - Changed the shutdown_service() member functions to be private. -
  • -
  • - Added archetypes for testing socket option functions. -
  • -
  • - Added a missing lock in signal_set_service::cancel(). -
  • -
  • - Fixed a copy/paste error in SignalHandler example. -
  • -
  • - Added the inclusion of the signal header to signal_set_service.hpp - so that constants like NSIG may be used. -
  • -
  • - Changed the signal_set_service implementation so that it doesn't - assume that SIGRTMAX is a compile-time constant. -
  • -
  • - Changed the Boost.Asio examples so that they don't use Boost.Thread's convenience - header. Use the header file that is specifically for the boost::thread - class instead. -
  • -
-

- - Asio - 1.5.1 -

-
    -
  • - Added support for signal handling, using a new class called signal_set. - Programs may add one or more signals to the set, and then perform an async_wait() - operation. The specified handler will be called when one of the signals - occurs. The same signal number may registered with multiple signal_set - objects, however the signal number must be used only with Asio. -
  • -
  • - Added handler tracking, a new debugging aid. When enabled by defining - (BOOST_)ASIO_ENABLE_HANDLER_TRACKING, Asio writes debugging - output to the standard error stream. The output records asynchronous operations - and the relationships between their handlers. It may be post-processed - using the included handlerviz.pl tool to create a visual - representation of the handlers (requires GraphViz). -
  • -
  • - Fixed a bug in asio::streambuf where the consume() - function did not always update the internal buffer pointers correctly. - The problem may occur when the asio::streambuf is filled with - data using the standard C++ member functions such as sputn(). - (Note: the problem does not manifest when the streambuf is populated by - the Asio free functions read(), async_read(), - read_until() or async_read_until().) -
  • -
  • - Fixed a bug on kqueue-based platforms, where reactor read operations that - return false from their perform() function are not correctly - re-registered with kqueue. -
  • -
  • - Support for std::error_code and std::system_error - is no longer enabled by default for MSVC10, as that compiler's standard - library does not implement std::system_error::what() correctly. -
  • -
  • - Modified the buffers_iterator<> and ip::basic_resolver_iterator - classes so that the value_type typedefs are non-const byte types. -
  • -
-

- - Asio - 1.5.0 -

-
    -
  • - Added support for timeouts on socket iostreams, such as ip::tcp::iostream. - A timeout is set by calling expires_at() or expires_from_now() - to establish a deadline. Any socket operations which occur past the deadline - will put the iostream into a bad state. -
  • -
  • - Added a new error() member function to socket iostreams, for - retrieving the error code from the most recent system call. -
  • -
  • - Added a new basic_deadline_timer::cancel_one() function. This - function lets you cancel a single waiting handler on a timer. Handlers - are cancelled in FIFO order. -
  • -
  • - Added a new transfer_exactly() completion condition. This - can be used to send or receive a specified number of bytes even if the - total size of the buffer (or buffer sequence) is larger. -
  • -
  • - Added new free functions connect() and async_connect(). - These operations try each endpoint in a list until the socket is successfully - connected. -
  • -
  • - Extended the buffer_size() function so that it works for buffer - sequences in addition to individual buffers. -
  • -
  • - Added a new buffer_copy() function that can be used to copy - the raw bytes between individual buffers and buffer sequences. -
  • -
  • - Added new non-throwing overloads of read(), read_at(), - write() and write_at() that do not require a - completion condition. -
  • -
  • - Added friendlier compiler errors for when a completion handler does not - meet the necessary type requirements. When C++0x is available (currently - supported for g++ 4.5 or later, and MSVC 10), static_assert - is also used to generate an informative error message. This checking may - be disabled by defining (BOOST_)ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS. -
  • -
  • - Added support for using std::error_code and std::system_error, - when available. The support is automatically enabled when compiling in - -std=c++0x mode on g++ 4.5 or higher, or when using - MSVC 10. The support may be explicitly enabled by defining ASIO_HAS_STD_SYSTEM_ERROR, - or disabled by defining ASIO_DISABLE_STD_SYSTEM_ERROR. (Available - in non-Boost version of Asio only.) -
  • -
  • - Made the is_loopback(), is_unspecified() and - is_multicast() functions consistently available across the - ip::address, ip::address_v4 and ip::address_v6 - classes. -
  • -
  • - Added new non_blocking() functions for managing the non-blocking - behaviour of a socket or descriptor. The io_control() commands - named non_blocking_io are now deprecated in favour of these - new functions. -
  • -
  • - Added new native_non_blocking() functions for managing the - non-blocking mode of the underlying socket or descriptor. These functions - are intended to allow the encapsulation of arbitrary non-blocking system - calls as asynchronous operations, in a way that is transparent to the user - of the socket object. The functions have no effect on the behaviour of - the synchronous operations of the socket or descriptor. -
  • -
  • - Added the io_control() member function for socket acceptors. -
  • -
  • - For consistency with the C++0x standard library, deprecated the native_type - typedefs in favour of native_handle_type, and the native() - member functions in favour of native_handle(). -
  • -
  • - Added a release() member function to posix descriptors. This - function releases ownership of the underlying native descriptor to the - caller. -
  • -
  • - Added support for sequenced packet sockets (SOCK_SEQPACKET). -
  • -
  • - Added a new io_service::stopped() function that can be used - to determine whether the io_service has stopped (i.e. a reset() - call is needed prior to any further calls to run(), run_one(), - poll() or poll_one()). -
  • -
  • - Reduced the copying of handler function objects. -
  • -
  • - Added support for C++0x move construction to further reduce copying of - handler objects. Move support is enabled when compiling in -std=c++0x - mode on g++ 4.5 or higher, or when using MSVC10. -
  • -
  • - Removed the dependency on OS-provided macros for the well-known IPv4 and - IPv6 addresses. This should eliminate the annoying "missing braces - around initializer" warnings. -
  • -
  • - Reduced the size of ip::basic_endpoint<> objects (such - as ip::tcp::endpoint and ip::udp::endpoint). -
  • -
  • - Changed the reactor backends to assume that any descriptors or sockets - added using assign() may have been dup()-ed, - and so require explicit deregistration from the reactor. -
  • -
  • - Changed the SSL error category to return error strings from the OpenSSL - library. -
  • -
  • - Changed the separate compilation support such that, to use Asio's SSL capabilities, - you should also include 'asio/ssl/impl/src.hpp` in one source file in your - program. -
  • -
  • - Removed the deprecated member functions named io_service(). - The get_io_service() member functions should be used instead. -
  • -
  • - Removed the deprecated typedefs resolver_query and resolver_iterator - from the ip::tcp, ip::udp and ip::icmp - classes. -
  • -
  • - Fixed a compile error on some versions of g++ due to anonymous enums. -
  • -
  • - Added an explicit cast to the FIONBIO constant to int to suppress - a compiler warning on some platforms. -
  • -
  • - Fixed warnings reported by g++'s -Wshadow compiler option. -
  • -
-

- - Asio - 1.4.8 -

-
    -
  • - Fixed an integer overflow problem that occurs when ip::address_v4::broadcast() - is used on 64-bit platforms. -
  • -
  • - Fixed a problem on older Linux kernels (where epoll is used without timerfd - support) that prevents timely delivery of deadline_timer handlers, - after the program has been running for some time. -
  • -
-

- - Asio - 1.4.7 -

-
    -
  • - Fixed a problem on kqueue-based platforms where a deadline_timer - may never fire if the io_service is running in a background - thread. -
  • -
  • - Fixed a const-correctness issue that prevented valid uses of has_service<> - from compiling. -
  • -
  • - Fixed MinGW cross-compilation. -
  • -
  • - Removed dependency on deprecated Boost.System functions (Boost.Asio only). -
  • -
  • - Ensured close()/closesocket() failures are correctly - propagated. -
  • -
  • - Added a check for errors returned by InitializeCriticalSectionAndSpinCount. -
  • -
  • - Added support for hardware flow control on QNX. -
  • -
  • - Always use pselect() on HP-UX, if it is available. -
  • -
  • - Ensured handler arguments are passed as lvalues. -
  • -
  • - Fixed Windows build when thread support is disabled. -
  • -
  • - Fixed a Windows-specific problem where deadline_timer objects - with expiry times set more than 5 minutes in the future may never expire. -
  • -
  • - Fixed the resolver backend on BSD platforms so that an empty service name - resolves to port number 0, as per the documentation. -
  • -
  • - Fixed read operations so that they do not accept buffer sequences of type - const_buffers_1. -
  • -
  • - Redefined Protocol and id to avoid clashing with - Objective-C++ keywords. -
  • -
  • - Fixed a vector reallocation performance issue that can occur - when there are many active deadline_timer objects. -
  • -
  • - Fixed the kqueue backend so that it compiles on NetBSD. -
  • -
  • - Fixed the socket io_control() implementation on 64-bit Mac - OS X and BSD platforms. -
  • -
  • - Fixed a Windows-specific problem where failures from accept() - are incorrectly treated as successes. -
  • -
  • - Deprecated the separate compilation header asio/impl/src.cpp - in favour of asio/impl/src.hpp. -
  • -
-

- - Asio - 1.4.6 -

-
    -
  • - Reduced compile times. (Note that some programs may need to add additional - #includes, e.g. if the program uses boost::array but does - not explicitly include <boost/array.hpp>.) -
  • -
  • - Reduced the size of generated code. -
  • -
  • - Refactored deadline_timer implementation to improve performance. -
  • -
  • - Improved multiprocessor scalability on Windows by using a dedicated hidden - thread to wait for timers. -
  • -
  • - Improved performance of asio::streambuf with async_read() - and async_read_until(). These read operations now use the - existing capacity of the streambuf when reading, rather than - limiting the read to 512 bytes. -
  • -
  • - Added optional separate compilation. To enable, include asio/impl/src.cpp - in one source file in a program, then build the program with (BOOST_)ASIO_SEPARATE_COMPILATION - defined in the project/compiler settings. Alternatively, (BOOST_)ASIO_DYN_LINK - may be defined to build a separately-compiled Asio as part of a shared - library. -
  • -
  • - Added new macro (BOOST_)ASIO_DISABLE_FENCED_BLOCK to permit - the disabling of memory fences around completion handlers, even if thread - support is enabled. -
  • -
  • - Reworked timeout examples to better illustrate typical use cases. -
  • -
  • - Ensured that handler arguments are passed as const types. -
  • -
  • - Fixed incorrect parameter order in null_buffers variant of - async_send_to. -
  • -
  • - Ensured unsigned char is used with isdigit in getaddrinfo - emulation. -
  • -
  • - Fixed handling of very small but non-zero timeouts. -
  • -
  • - Fixed crash that occurred when an empty buffer sequence was passed to a - composed read or write operation. -
  • -
  • - Added missing operator+ overload in buffers_iterator. -
  • -
  • - Implemented cancellation of null_buffers operations on Windows. -
  • -
-

- - Asio - 1.4.5 -

-
    -
  • - Improved performance. -
  • -
  • - Reduced compile times. -
  • -
  • - Reduced the size of generated code. -
  • -
  • - Extended the guarantee that background threads don't call user code to - all asynchronous operations. -
  • -
  • - Changed to use edge-triggered epoll on Linux. -
  • -
  • - Changed to use timerfd for dispatching timers on Linux, when - available. -
  • -
  • - Changed to use one-shot notifications with kqueue on Mac OS X and BSD platforms. -
  • -
  • - Added a bitmask type ip::resolver_query_base::flags as per - the TR2 proposal. This type prevents implicit conversion from int - to flags, allowing the compiler to catch cases where users - incorrectly pass a numeric port number as the service name. -
  • -
  • - Added #define NOMINMAX for all Windows compilers. Users can - define (BOOST_)ASIO_NO_NOMINMAX to suppress this definition. -
  • -
  • - Fixed a bug where 0-byte asynchronous reads were incorrectly passing an - error::eof result to the completion handler. -
  • -
  • - Changed the io_control() member functions to always call - ioctl on the underlying descriptor when modifying blocking - mode. -
  • -
  • - Changed the resolver implementation so that it no longer requires the typedefs - InternetProtocol::resolver_query and InternetProtocol::resolver_iterator, - as neither typedef is part of the documented InternetProtocol - requirements. The corresponding typedefs in the ip::tcp, - ip::udp and ip::icmp classes have been deprecated. -
  • -
  • - Fixed out-of-band handling for reactors not based on select(). -
  • -
  • - Added new (BOOST_)ASIO_DISABLE_THREADS macro that allows Asio's - threading support to be independently disabled. -
  • -
  • - Minor documentation improvements. -
  • -
-

- - Asio - 1.4.4 -

-
    -
  • - Added a new HTTP Server 4 example illustrating the use of stackless coroutines - with Asio. -
  • -
  • - Changed handler allocation and invocation to use boost::addressof - to get the address of handler objects, rather than applying operator& - directly. -
  • -
  • - Restricted MSVC buffer debugging workaround to 2008, as it causes a crash - with 2010 beta 2. -
  • -
  • - Fixed a problem with the lifetime of handler memory, where Windows needs - the OVERLAPPED structure to be valid until both the initiating - function call has returned and the completion packet has been delivered. -
  • -
  • - Don't block signals while performing system calls, but instead restart - the calls if they are interrupted. -
  • -
  • - Documented the guarantee made by strand objects with respect to order of - handler invocation. -
  • -
  • - Changed strands to use a pool of implementations, to make copying of strands - cheaper. -
  • -
  • - Ensured that kqueue support is enabled for BSD platforms. -
  • -
  • - Added a boost_ prefix to the extern "C" - thread entry point function. -
  • -
  • - In getaddrinfo emulation, only check the socket type (SOCK_STREAM - or SOCK_DGRAM) if a service name has been specified. This - should allow the emulation to work with raw sockets. -
  • -
  • - Added a workaround for some broken Windows firewalls that make a socket - appear bound to 0.0.0.0 when it is in fact bound to 127.0.0.1. -
  • -
  • - Applied a fix for reported excessive CPU usage under Solaris. -
  • -
  • - Added some support for platforms that use older compilers such as g++ 2.95. -
  • -
-

- - Asio - 1.4.3 -

-
    -
  • - Added a new ping example to illustrate the use of ICMP sockets. -
  • -
  • - Changed the buffered*_stream<> templates to treat 0-byte - reads and writes as no-ops, to comply with the documented type requirements - for SyncReadStream, AsyncReadStream, SyncWriteStream - and AsyncWriteStream. -
  • -
  • - Changed some instances of the throw keyword to boost::throw_exception() - to allow Asio to be used when exception support is disabled. Note that - the SSL wrappers still require exception support. -
  • -
  • - Made Asio compatible with the OpenSSL 1.0 beta. -
  • -
  • - Eliminated a redundant system call in the Solaris /dev/poll backend. -
  • -
  • - Fixed a bug in resizing of the bucket array in the internal hash maps. -
  • -
  • - Ensured correct propagation of the error code when a synchronous accept - fails. -
  • -
  • - Ensured correct propagation of the error code when a synchronous read or - write on a Windows HANDLE fails. -
  • -
  • - Fixed failures reported when _GLIBCXX_DEBUG is defined. -
  • -
  • - Fixed custom memory allocation support for timers. -
  • -
  • - Tidied up various warnings reported by g++. -
  • -
  • - Various documentation improvements, including more obvious hyperlinks to - function overloads, header file information, examples for the handler type - requirements, and adding enum values to the index. -
  • -
-

- - Asio - 1.4.2 -

-
    -
  • - Implement automatic resizing of the bucket array in the internal hash maps. - This is to improve performance for very large numbers of asynchronous operations - and also to reduce memory usage for very small numbers. A new macro (BOOST_)ASIO_HASH_MAP_BUCKETS - may be used to tweak the sizes used for the bucket arrays. (N.B. this feature - introduced a bug which was fixed in Asio 1.4.3 / Boost 1.40.) -
  • -
  • - Add performance optimisation for the Windows IOCP backend for when no timers - are used. -
  • -
  • - Prevent locale settings from affecting formatting of TCP and UDP endpoints. -
  • -
  • - Fix a memory leak that occurred when an asynchronous SSL operation's completion - handler threw an exception. -
  • -
  • - Fix the implementation of io_control() so that it adheres - to the documented type requirements for IoControlCommand. -
  • -
  • - Fix incompatibility between Asio and ncurses.h. -
  • -
  • - On Windows, specifically handle the case when an overlapped ReadFile - call fails with ERROR_MORE_DATA. This enables a hack where - a windows::stream_handle can be used with a message-oriented - named pipe. -
  • -
  • - Fix system call wrappers to always clear the error on success, as POSIX - allows successful system calls to modify errno. -
  • -
  • - Don't include termios.h if (BOOST_)ASIO_DISABLE_SERIAL_PORT - is defined. -
  • -
  • - Cleaned up some more MSVC level 4 warnings. -
  • -
  • - Various documentation fixes. -
  • -
-

- - Asio - 1.4.1 -

-
    -
  • - Improved compatibility with some Windows firewall software. -
  • -
  • - Ensured arguments to windows::overlapped_ptr::complete() are - correctly passed to the completion handler. -
  • -
  • - Fixed a link problem and multicast failure on QNX. -
  • -
  • - Fixed a compile error in SSL support on MinGW / g++ 3.4.5. -
  • -
  • - Drop back to using a pipe for notification if eventfd is not available - at runtime on Linux. -
  • -
  • - Various minor bug and documentation fixes. -
  • -
-

- - Asio - 1.4.0 -

-
    -
  • - Enhanced CompletionCondition concept with the signature size_t CompletionCondition(error_code - ec, size_t total), where the return value indicates the maximum - number of bytes to be transferred on the next read or write operation. - (The old CompletionCondition signature is still supported for backwards - compatibility). -
  • -
  • - New windows::overlapped_ptr class to allow arbitrary overlapped - I/O functions (such as TransmitFile) to be used with Asio. -
  • -
  • - On recent versions of Linux, an eventfd descriptor is now - used (rather than a pipe) to interrupt a blocked select/epoll reactor. -
  • -
  • - Added const overloads of lowest_layer(). -
  • -
  • - Synchronous read, write, accept and connect operations are now thread safe - (meaning that it is now permitted to perform concurrent synchronous operations - on an individual socket, if supported by the OS). -
  • -
  • - Reactor-based io_service implementations now use lazy initialisation - to reduce the memory usage of an io_service object used only - as a message queue. -
  • -
-

- - Asio - 1.2.0 -

-
    -
  • - Added support for serial ports. -
  • -
  • - Added support for UNIX domain sockets. -
  • -
  • - Added support for raw sockets and ICMP. -
  • -
  • - Added wrappers for POSIX stream-oriented file descriptors (excluding regular - files). -
  • -
  • - Added wrappers for Windows stream-oriented HANDLEs such as - named pipes (requires HANDLEs that work with I/O completion - ports). -
  • -
  • - Added wrappers for Windows random-access HANDLEs such as files - (requires HANDLEs that work with I/O completion ports). -
  • -
  • - Added support for reactor-style operations (i.e. they report readiness - but perform no I/O) using a new null_buffers type. -
  • -
  • - Added an iterator type for bytewise traversal of buffer sequences. -
  • -
  • - Added new read_until() and async_read_until() - overloads that take a user-defined function object for locating message - boundaries. -
  • -
  • - Added an experimental two-lock queue (enabled by defining (BOOST_)ASIO_ENABLE_TWO_LOCK_QUEUE) - that may provide better io_service scalability across many - processors. -
  • -
  • - Various fixes, performance improvements, and more complete coverage of - the custom memory allocation support. -
  • -
-

- - Asio - 1.0.0 -

-

- First stable release of Asio. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/index.html b/Sources/Vendor/asio/doc/asio/index.html deleted file mode 100644 index 0107366..0000000 --- a/Sources/Vendor/asio/doc/asio/index.html +++ /dev/null @@ -1,4988 +0,0 @@ - - - - - - - - - - - -
asio C++ library
-
-
-PrevUpHome -
-
-
-
-

-Index

-
-
-

Symbols

-
-
~awaitable
-
experimental::awaitable, experimental::awaitable::~awaitable -
-
~bad_address_cast
-
ip::bad_address_cast, ip::bad_address_cast::~bad_address_cast -
-
~basic_datagram_socket
-
basic_datagram_socket, basic_datagram_socket::~basic_datagram_socket -
-
~basic_deadline_timer
-
basic_deadline_timer, basic_deadline_timer::~basic_deadline_timer -
-
~basic_io_object
-
basic_io_object, basic_io_object::~basic_io_object -
-
~basic_raw_socket
-
basic_raw_socket, basic_raw_socket::~basic_raw_socket -
-
~basic_resolver
-
ip::basic_resolver, ip::basic_resolver::~basic_resolver -
-
~basic_seq_packet_socket
-
basic_seq_packet_socket, basic_seq_packet_socket::~basic_seq_packet_socket -
-
~basic_socket
-
basic_socket, basic_socket::~basic_socket -
-
~basic_socket_acceptor
-
basic_socket_acceptor, basic_socket_acceptor::~basic_socket_acceptor -
-
~basic_socket_streambuf
-
basic_socket_streambuf, basic_socket_streambuf::~basic_socket_streambuf -
-
~basic_stream_socket
-
basic_stream_socket, basic_stream_socket::~basic_stream_socket -
-
~basic_waitable_timer
-
basic_waitable_timer, basic_waitable_timer::~basic_waitable_timer -
-
~context
-
ssl::context, ssl::context::~context -
-
~context_base
-
ssl::context_base, ssl::context_base::~context_base -
-
~descriptor
-
posix::descriptor, posix::descriptor::~descriptor -
-
~descriptor_base
-
posix::descriptor_base, posix::descriptor_base::~descriptor_base -
-
~error_category
-
error_category, error_category::~error_category -
-
~execution_context
-
execution_context, execution_context::~execution_context -
-
~executor
-
executor, executor::~executor -
-
~executor_binder
-
executor_binder, executor_binder::~executor_binder -
-
~executor_work_guard
-
executor_work_guard, executor_work_guard::~executor_work_guard -
-
~io_context
-
io_context, io_context::~io_context -
-
~overlapped_handle
-
windows::overlapped_handle, windows::overlapped_handle::~overlapped_handle -
-
~overlapped_ptr
-
windows::overlapped_ptr, windows::overlapped_ptr::~overlapped_ptr -
-
~resolver_base
-
ip::resolver_base, ip::resolver_base::~resolver_base -
-
~resolver_query_base
-
ip::resolver_query_base, ip::resolver_query_base::~resolver_query_base -
-
~serial_port
-
serial_port, serial_port::~serial_port -
-
~serial_port_base
-
serial_port_base, serial_port_base::~serial_port_base -
-
~service
-
-
execution_context::service, execution_context::service::~service -
-
io_context::service, io_context::service::~service -
-
-
~signal_set
-
signal_set, signal_set::~signal_set -
-
~socket_base
-
socket_base, socket_base::~socket_base -
-
~strand
-
-
io_context::strand, io_context::strand::~strand -
-
strand, strand::~strand -
-
-
~stream
-
ssl::stream, ssl::stream::~stream -
-
~stream_base
-
ssl::stream_base, ssl::stream_base::~stream_base -
-
~system_context
-
system_context, system_context::~system_context -
-
~system_error
-
system_error, system_error::~system_error -
-
~thread
-
thread, thread::~thread -
-
~thread_pool
-
thread_pool, thread_pool::~thread_pool -
-
~work
-
io_context::work, io_context::work::~work -
-
-
-
-

A

-
-
accept
-
basic_socket_acceptor, basic_socket_acceptor::accept -
-
acceptor
-
-
ip::tcp, ip::tcp::acceptor -
-
local::stream_protocol, local::stream_protocol::acceptor -
-
-
access_denied
-
error::basic_errors, error::basic_errors -
-
add
-
-
signal_set, signal_set::add -
-
time_traits< boost::posix_time::ptime - >, time_traits< - boost::posix_time::ptime >::add -
-
-
address
-
-
ip::address, ip::address::address -
-
ip::basic_endpoint, ip::basic_endpoint::address -
-
ip::network_v4, ip::network_v4::address -
-
ip::network_v6, ip::network_v6::address -
-
-
address_configured
-
-
ip::basic_resolver, ip::basic_resolver::address_configured -
-
ip::basic_resolver_query, ip::basic_resolver_query::address_configured -
-
ip::resolver_base, ip::resolver_base::address_configured -
-
ip::resolver_query_base, ip::resolver_query_base::address_configured -
-
-
address_family_not_supported
-
error::basic_errors, error::basic_errors -
-
address_in_use
-
error::basic_errors, error::basic_errors -
-
address_v4
-
ip::address_v4, ip::address_v4::address_v4 -
-
address_v6
-
ip::address_v6, ip::address_v6::address_v6 -
-
add_certificate_authority
-
ssl::context, ssl::context::add_certificate_authority -
-
add_service, add_service -
-
-
execution_context, execution_context::add_service -
-
io_context, io_context::add_service -
-
system_context, system_context::add_service -
-
thread_pool, thread_pool::add_service -
-
-
add_verify_path
-
ssl::context, ssl::context::add_verify_path -
-
allocator_type
-
use_future_t, use_future_t::allocator_type -
-
all_matching
-
-
ip::basic_resolver, ip::basic_resolver::all_matching -
-
ip::basic_resolver_query, ip::basic_resolver_query::all_matching -
-
ip::resolver_base, ip::resolver_base::all_matching -
-
ip::resolver_query_base, ip::resolver_query_base::all_matching -
-
-
already_connected
-
error::basic_errors, error::basic_errors -
-
already_open
-
error::misc_errors, error::misc_errors -
-
already_started
-
error::basic_errors, error::basic_errors -
-
any
-
-
ip::address_v4, ip::address_v4::any -
-
ip::address_v6, ip::address_v6::any -
-
-
argument_type
-
executor_binder, executor_binder::argument_type -
-
asio_handler_allocate, asio_handler_allocate -
-
asio_handler_deallocate, asio_handler_deallocate -
-
asio_handler_invoke, asio_handler_invoke -
-
asio_handler_is_continuation, asio_handler_is_continuation -
-
asn1
-
-
ssl::context, ssl::context::file_format -
-
ssl::context_base, ssl::context_base::file_format -
-
-
assign
-
-
basic_datagram_socket, basic_datagram_socket::assign -
-
basic_raw_socket, basic_raw_socket::assign -
-
basic_seq_packet_socket, basic_seq_packet_socket::assign -
-
basic_socket, basic_socket::assign -
-
basic_socket_acceptor, basic_socket_acceptor::assign -
-
basic_stream_socket, basic_stream_socket::assign -
-
error_code, error_code::assign -
-
posix::descriptor, posix::descriptor::assign -
-
posix::stream_descriptor, posix::stream_descriptor::assign -
-
serial_port, serial_port::assign -
-
windows::object_handle, windows::object_handle::assign -
-
windows::overlapped_handle, windows::overlapped_handle::assign -
-
windows::random_access_handle, windows::random_access_handle::assign -
-
windows::stream_handle, windows::stream_handle::assign -
-
-
async_accept
-
basic_socket_acceptor, basic_socket_acceptor::async_accept -
-
async_completion
-
async_completion, async_completion::async_completion -
-
async_connect, async_connect -
-
-
basic_datagram_socket, basic_datagram_socket::async_connect -
-
basic_raw_socket, basic_raw_socket::async_connect -
-
basic_seq_packet_socket, basic_seq_packet_socket::async_connect -
-
basic_socket, basic_socket::async_connect -
-
basic_stream_socket, basic_stream_socket::async_connect -
-
-
async_fill
-
-
buffered_read_stream, buffered_read_stream::async_fill -
-
buffered_stream, buffered_stream::async_fill -
-
-
async_flush
-
-
buffered_stream, buffered_stream::async_flush -
-
buffered_write_stream, buffered_write_stream::async_flush -
-
-
async_handshake
-
ssl::stream, ssl::stream::async_handshake -
-
async_read, async_read -
-
async_read_at, async_read_at -
-
async_read_some
-
-
basic_stream_socket, basic_stream_socket::async_read_some -
-
buffered_read_stream, buffered_read_stream::async_read_some -
-
buffered_stream, buffered_stream::async_read_some -
-
buffered_write_stream, buffered_write_stream::async_read_some -
-
posix::stream_descriptor, posix::stream_descriptor::async_read_some -
-
serial_port, serial_port::async_read_some -
-
ssl::stream, ssl::stream::async_read_some -
-
windows::stream_handle, windows::stream_handle::async_read_some -
-
-
async_read_some_at
-
windows::random_access_handle, windows::random_access_handle::async_read_some_at -
-
async_read_until, async_read_until -
-
async_receive
-
-
basic_datagram_socket, basic_datagram_socket::async_receive -
-
basic_raw_socket, basic_raw_socket::async_receive -
-
basic_seq_packet_socket, basic_seq_packet_socket::async_receive -
-
basic_stream_socket, basic_stream_socket::async_receive -
-
-
async_receive_from
-
-
basic_datagram_socket, basic_datagram_socket::async_receive_from -
-
basic_raw_socket, basic_raw_socket::async_receive_from -
-
-
async_resolve
-
ip::basic_resolver, ip::basic_resolver::async_resolve -
-
async_result
-
-
async_result, async_result::async_result -
-
async_result< - Handler >, async_result< - Handler >::async_result -
-
async_result< - std::packaged_task< Result(Args...)>, Signature >, async_result< - std::packaged_task< Result(Args...)>, Signature >::async_result -
-
-
async_send
-
-
basic_datagram_socket, basic_datagram_socket::async_send -
-
basic_raw_socket, basic_raw_socket::async_send -
-
basic_seq_packet_socket, basic_seq_packet_socket::async_send -
-
basic_stream_socket, basic_stream_socket::async_send -
-
-
async_send_to
-
-
basic_datagram_socket, basic_datagram_socket::async_send_to -
-
basic_raw_socket, basic_raw_socket::async_send_to -
-
-
async_shutdown
-
ssl::stream, ssl::stream::async_shutdown -
-
async_wait
-
-
basic_datagram_socket, basic_datagram_socket::async_wait -
-
basic_deadline_timer, basic_deadline_timer::async_wait -
-
basic_raw_socket, basic_raw_socket::async_wait -
-
basic_seq_packet_socket, basic_seq_packet_socket::async_wait -
-
basic_socket, basic_socket::async_wait -
-
basic_socket_acceptor, basic_socket_acceptor::async_wait -
-
basic_stream_socket, basic_stream_socket::async_wait -
-
basic_waitable_timer, basic_waitable_timer::async_wait -
-
posix::descriptor, posix::descriptor::async_wait -
-
posix::stream_descriptor, posix::stream_descriptor::async_wait -
-
signal_set, signal_set::async_wait -
-
windows::object_handle, windows::object_handle::async_wait -
-
-
async_write, async_write -
-
async_write_at, async_write_at -
-
async_write_some
-
-
basic_stream_socket, basic_stream_socket::async_write_some -
-
buffered_read_stream, buffered_read_stream::async_write_some -
-
buffered_stream, buffered_stream::async_write_some -
-
buffered_write_stream, buffered_write_stream::async_write_some -
-
posix::stream_descriptor, posix::stream_descriptor::async_write_some -
-
serial_port, serial_port::async_write_some -
-
ssl::stream, ssl::stream::async_write_some -
-
windows::stream_handle, windows::stream_handle::async_write_some -
-
-
async_write_some_at
-
windows::random_access_handle, windows::random_access_handle::async_write_some_at -
-
at_mark
-
-
basic_datagram_socket, basic_datagram_socket::at_mark -
-
basic_raw_socket, basic_raw_socket::at_mark -
-
basic_seq_packet_socket, basic_seq_packet_socket::at_mark -
-
basic_socket, basic_socket::at_mark -
-
basic_stream_socket, basic_stream_socket::at_mark -
-
-
available
-
-
basic_datagram_socket, basic_datagram_socket::available -
-
basic_raw_socket, basic_raw_socket::available -
-
basic_seq_packet_socket, basic_seq_packet_socket::available -
-
basic_socket, basic_socket::available -
-
basic_stream_socket, basic_stream_socket::available -
-
-
awaitable
-
experimental::awaitable, experimental::awaitable::awaitable -
-
await_token
-
experimental::await_token, experimental::await_token::await_token -
-
-
-
-

B

-
-
bad_address_cast
-
ip::bad_address_cast, ip::bad_address_cast::bad_address_cast -
-
bad_descriptor
-
error::basic_errors, error::basic_errors -
-
bad_executor
-
bad_executor, bad_executor::bad_executor -
-
basic_address_iterator
-
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::basic_address_iterator -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::basic_address_iterator -
-
-
basic_address_range
-
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::basic_address_range -
-
ip::basic_address_range< - address_v6 >, ip::basic_address_range< - address_v6 >::basic_address_range -
-
-
basic_datagram_socket
-
basic_datagram_socket, basic_datagram_socket::basic_datagram_socket -
-
basic_deadline_timer
-
basic_deadline_timer, basic_deadline_timer::basic_deadline_timer -
-
basic_endpoint
-
-
generic::basic_endpoint, generic::basic_endpoint::basic_endpoint -
-
ip::basic_endpoint, ip::basic_endpoint::basic_endpoint -
-
local::basic_endpoint, local::basic_endpoint::basic_endpoint -
-
-
basic_io_object
-
basic_io_object, basic_io_object::basic_io_object -
-
basic_raw_socket
-
basic_raw_socket, basic_raw_socket::basic_raw_socket -
-
basic_resolver
-
ip::basic_resolver, ip::basic_resolver::basic_resolver -
-
basic_resolver_entry
-
ip::basic_resolver_entry, ip::basic_resolver_entry::basic_resolver_entry -
-
basic_resolver_iterator
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::basic_resolver_iterator -
-
basic_resolver_query
-
ip::basic_resolver_query, ip::basic_resolver_query::basic_resolver_query -
-
basic_resolver_results
-
ip::basic_resolver_results, ip::basic_resolver_results::basic_resolver_results -
-
basic_seq_packet_socket
-
basic_seq_packet_socket, basic_seq_packet_socket::basic_seq_packet_socket -
-
basic_socket
-
basic_socket, basic_socket::basic_socket -
-
basic_socket_acceptor
-
basic_socket_acceptor, basic_socket_acceptor::basic_socket_acceptor -
-
basic_socket_iostream
-
basic_socket_iostream, basic_socket_iostream::basic_socket_iostream -
-
basic_socket_streambuf
-
basic_socket_streambuf, basic_socket_streambuf::basic_socket_streambuf -
-
basic_streambuf
-
basic_streambuf, basic_streambuf::basic_streambuf -
-
basic_streambuf_ref
-
basic_streambuf_ref, basic_streambuf_ref::basic_streambuf_ref -
-
basic_stream_socket
-
basic_stream_socket, basic_stream_socket::basic_stream_socket -
-
basic_waitable_timer
-
basic_waitable_timer, basic_waitable_timer::basic_waitable_timer -
-
basic_yield_context
-
basic_yield_context, basic_yield_context::basic_yield_context -
-
baud_rate
-
serial_port_base::baud_rate, serial_port_base::baud_rate::baud_rate -
-
begin
-
-
buffers_iterator, buffers_iterator::begin -
-
const_buffers_1, const_buffers_1::begin -
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::begin -
-
ip::basic_address_range< - address_v6 >, ip::basic_address_range< - address_v6 >::begin -
-
ip::basic_resolver_results, ip::basic_resolver_results::begin -
-
mutable_buffers_1, mutable_buffers_1::begin -
-
null_buffers, null_buffers::begin -
-
-
bind
-
-
basic_datagram_socket, basic_datagram_socket::bind -
-
basic_raw_socket, basic_raw_socket::bind -
-
basic_seq_packet_socket, basic_seq_packet_socket::bind -
-
basic_socket, basic_socket::bind -
-
basic_socket_acceptor, basic_socket_acceptor::bind -
-
basic_stream_socket, basic_stream_socket::bind -
-
-
bind_executor, bind_executor -
-
broadcast
-
-
basic_datagram_socket, basic_datagram_socket::broadcast -
-
basic_raw_socket, basic_raw_socket::broadcast -
-
basic_seq_packet_socket, basic_seq_packet_socket::broadcast -
-
basic_socket, basic_socket::broadcast -
-
basic_socket_acceptor, basic_socket_acceptor::broadcast -
-
basic_stream_socket, basic_stream_socket::broadcast -
-
ip::address_v4, ip::address_v4::broadcast -
-
ip::network_v4, ip::network_v4::broadcast -
-
socket_base, socket_base::broadcast -
-
-
broken_pipe
-
error::basic_errors, error::basic_errors -
-
buffer, buffer -
-
buffered_read_stream
-
buffered_read_stream, buffered_read_stream::buffered_read_stream -
-
buffered_stream
-
buffered_stream, buffered_stream::buffered_stream -
-
buffered_write_stream
-
buffered_write_stream, buffered_write_stream::buffered_write_stream -
-
buffers_begin, buffers_begin -
-
buffers_end, buffers_end -
-
buffers_iterator
-
buffers_iterator, buffers_iterator::buffers_iterator -
-
buffer_cast, buffer_cast -
-
buffer_copy, buffer_copy -
-
buffer_sequence_begin, buffer_sequence_begin -
-
buffer_sequence_end, buffer_sequence_end -
-
buffer_size, buffer_size -
-
bytes_readable
-
-
basic_datagram_socket, basic_datagram_socket::bytes_readable -
-
basic_raw_socket, basic_raw_socket::bytes_readable -
-
basic_seq_packet_socket, basic_seq_packet_socket::bytes_readable -
-
basic_socket, basic_socket::bytes_readable -
-
basic_socket_acceptor, basic_socket_acceptor::bytes_readable -
-
basic_stream_socket, basic_stream_socket::bytes_readable -
-
posix::descriptor, posix::descriptor::bytes_readable -
-
posix::descriptor_base, posix::descriptor_base::bytes_readable -
-
posix::stream_descriptor, posix::stream_descriptor::bytes_readable -
-
socket_base, socket_base::bytes_readable -
-
-
bytes_type
-
-
ip::address_v4, ip::address_v4::bytes_type -
-
ip::address_v6, ip::address_v6::bytes_type -
-
-
-
-
-

C

-
-
callee_type
-
basic_yield_context, basic_yield_context::callee_type -
-
caller_type
-
basic_yield_context, basic_yield_context::caller_type -
-
cancel
-
-
basic_datagram_socket, basic_datagram_socket::cancel -
-
basic_deadline_timer, basic_deadline_timer::cancel -
-
basic_raw_socket, basic_raw_socket::cancel -
-
basic_seq_packet_socket, basic_seq_packet_socket::cancel -
-
basic_socket, basic_socket::cancel -
-
basic_socket_acceptor, basic_socket_acceptor::cancel -
-
basic_stream_socket, basic_stream_socket::cancel -
-
basic_waitable_timer, basic_waitable_timer::cancel -
-
ip::basic_resolver, ip::basic_resolver::cancel -
-
posix::descriptor, posix::descriptor::cancel -
-
posix::stream_descriptor, posix::stream_descriptor::cancel -
-
serial_port, serial_port::cancel -
-
signal_set, signal_set::cancel -
-
windows::object_handle, windows::object_handle::cancel -
-
windows::overlapped_handle, windows::overlapped_handle::cancel -
-
windows::random_access_handle, windows::random_access_handle::cancel -
-
windows::stream_handle, windows::stream_handle::cancel -
-
-
cancel_one
-
-
basic_deadline_timer, basic_deadline_timer::cancel_one -
-
basic_waitable_timer, basic_waitable_timer::cancel_one -
-
-
canonical
-
-
ip::network_v4, ip::network_v4::canonical -
-
ip::network_v6, ip::network_v6::canonical -
-
-
canonical_name
-
-
ip::basic_resolver, ip::basic_resolver::canonical_name -
-
ip::basic_resolver_query, ip::basic_resolver_query::canonical_name -
-
ip::resolver_base, ip::resolver_base::canonical_name -
-
ip::resolver_query_base, ip::resolver_query_base::canonical_name -
-
-
capacity
-
-
basic_streambuf, basic_streambuf::capacity -
-
basic_streambuf_ref, basic_streambuf_ref::capacity -
-
dynamic_string_buffer, dynamic_string_buffer::capacity -
-
dynamic_vector_buffer, dynamic_vector_buffer::capacity -
-
generic::basic_endpoint, generic::basic_endpoint::capacity -
-
ip::basic_endpoint, ip::basic_endpoint::capacity -
-
local::basic_endpoint, local::basic_endpoint::capacity -
-
-
category
-
error_code, error_code::category -
-
cbegin
-
ip::basic_resolver_results, ip::basic_resolver_results::cbegin -
-
cend
-
ip::basic_resolver_results, ip::basic_resolver_results::cend -
-
character_size
-
serial_port_base::character_size, serial_port_base::character_size::character_size -
-
clear
-
-
error_code, error_code::clear -
-
signal_set, signal_set::clear -
-
-
clear_options
-
ssl::context, ssl::context::clear_options -
-
client
-
-
ssl::stream, ssl::stream::handshake_type -
-
ssl::stream_base, ssl::stream_base::handshake_type -
-
-
clock_type
-
-
basic_socket_iostream, basic_socket_iostream::clock_type -
-
basic_socket_streambuf, basic_socket_streambuf::clock_type -
-
basic_waitable_timer, basic_waitable_timer::clock_type -
-
-
close
-
-
basic_datagram_socket, basic_datagram_socket::close -
-
basic_raw_socket, basic_raw_socket::close -
-
basic_seq_packet_socket, basic_seq_packet_socket::close -
-
basic_socket, basic_socket::close -
-
basic_socket_acceptor, basic_socket_acceptor::close -
-
basic_socket_iostream, basic_socket_iostream::close -
-
basic_socket_streambuf, basic_socket_streambuf::close -
-
basic_stream_socket, basic_stream_socket::close -
-
buffered_read_stream, buffered_read_stream::close -
-
buffered_stream, buffered_stream::close -
-
buffered_write_stream, buffered_write_stream::close -
-
posix::descriptor, posix::descriptor::close -
-
posix::stream_descriptor, posix::stream_descriptor::close -
-
serial_port, serial_port::close -
-
windows::object_handle, windows::object_handle::close -
-
windows::overlapped_handle, windows::overlapped_handle::close -
-
windows::random_access_handle, windows::random_access_handle::close -
-
windows::stream_handle, windows::stream_handle::close -
-
-
code
-
system_error, system_error::code -
-
commit
-
-
basic_streambuf, basic_streambuf::commit -
-
basic_streambuf_ref, basic_streambuf_ref::commit -
-
dynamic_string_buffer, dynamic_string_buffer::commit -
-
dynamic_vector_buffer, dynamic_vector_buffer::commit -
-
-
complete
-
windows::overlapped_ptr, windows::overlapped_ptr::complete -
-
completion_handler
-
async_completion, async_completion::completion_handler -
-
completion_handler_type
-
-
async_completion, async_completion::completion_handler_type -
-
async_result, async_result::completion_handler_type -
-
async_result< - std::packaged_task< Result(Args...)>, Signature >, async_result< - std::packaged_task< Result(Args...)>, Signature >::completion_handler_type -
-
-
connect, connect -
-
-
basic_datagram_socket, basic_datagram_socket::connect -
-
basic_raw_socket, basic_raw_socket::connect -
-
basic_seq_packet_socket, basic_seq_packet_socket::connect -
-
basic_socket, basic_socket::connect -
-
basic_socket_iostream, basic_socket_iostream::connect -
-
basic_socket_streambuf, basic_socket_streambuf::connect -
-
basic_stream_socket, basic_stream_socket::connect -
-
-
connection_aborted
-
error::basic_errors, error::basic_errors -
-
connection_refused
-
error::basic_errors, error::basic_errors -
-
connection_reset
-
error::basic_errors, error::basic_errors -
-
const_buffer
-
const_buffer, const_buffer::const_buffer -
-
const_buffers_1
-
const_buffers_1, const_buffers_1::const_buffers_1 -
-
const_buffers_type
-
-
basic_streambuf, basic_streambuf::const_buffers_type -
-
basic_streambuf_ref, basic_streambuf_ref::const_buffers_type -
-
dynamic_string_buffer, dynamic_string_buffer::const_buffers_type -
-
dynamic_vector_buffer, dynamic_vector_buffer::const_buffers_type -
-
-
const_iterator
-
-
const_buffers_1, const_buffers_1::const_iterator -
-
ip::basic_resolver_results, ip::basic_resolver_results::const_iterator -
-
mutable_buffers_1, mutable_buffers_1::const_iterator -
-
null_buffers, null_buffers::const_iterator -
-
-
const_reference
-
ip::basic_resolver_results, ip::basic_resolver_results::const_reference -
-
consume
-
-
basic_streambuf, basic_streambuf::consume -
-
basic_streambuf_ref, basic_streambuf_ref::consume -
-
dynamic_string_buffer, dynamic_string_buffer::consume -
-
dynamic_vector_buffer, dynamic_vector_buffer::consume -
-
-
context
-
-
execution_context::service, execution_context::service::context -
-
executor, executor::context -
-
io_context::executor_type, io_context::executor_type::context -
-
io_context::strand, io_context::strand::context -
-
ssl::context, ssl::context::context -
-
strand, strand::context -
-
system_executor, system_executor::context -
-
thread_pool::executor_type, thread_pool::executor_type::context -
-
-
coroutine
-
coroutine, coroutine::coroutine -
-
count_type
-
io_context, io_context::count_type -
-
-
-
-

D

-
-
data
-
-
basic_streambuf, basic_streambuf::data -
-
basic_streambuf_ref, basic_streambuf_ref::data -
-
const_buffer, const_buffer::data -
-
const_buffers_1, const_buffers_1::data -
-
dynamic_string_buffer, dynamic_string_buffer::data -
-
dynamic_vector_buffer, dynamic_vector_buffer::data -
-
generic::basic_endpoint, generic::basic_endpoint::data -
-
ip::basic_endpoint, ip::basic_endpoint::data -
-
local::basic_endpoint, local::basic_endpoint::data -
-
mutable_buffer, mutable_buffer::data -
-
mutable_buffers_1, mutable_buffers_1::data -
-
-
datagram_protocol
-
generic::datagram_protocol, generic::datagram_protocol::datagram_protocol -
-
data_type
-
-
generic::basic_endpoint, generic::basic_endpoint::data_type -
-
ip::basic_endpoint, ip::basic_endpoint::data_type -
-
local::basic_endpoint, local::basic_endpoint::data_type -
-
-
deadline_timer, deadline_timer -
-
debug
-
-
basic_datagram_socket, basic_datagram_socket::debug -
-
basic_raw_socket, basic_raw_socket::debug -
-
basic_seq_packet_socket, basic_seq_packet_socket::debug -
-
basic_socket, basic_socket::debug -
-
basic_socket_acceptor, basic_socket_acceptor::debug -
-
basic_stream_socket, basic_stream_socket::debug -
-
socket_base, socket_base::debug -
-
-
default_buffer_size
-
-
buffered_read_stream, buffered_read_stream::default_buffer_size -
-
buffered_write_stream, buffered_write_stream::default_buffer_size -
-
-
default_workarounds
-
-
ssl::context, ssl::context::default_workarounds -
-
ssl::context_base, ssl::context_base::default_workarounds -
-
-
defer, defer -
-
-
executor, executor::defer -
-
io_context::executor_type, io_context::executor_type::defer -
-
io_context::strand, io_context::strand::defer -
-
strand, strand::defer -
-
system_executor, system_executor::defer -
-
thread_pool::executor_type, thread_pool::executor_type::defer -
-
-
dereference
-
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::dereference -
-
ip::basic_resolver_results, ip::basic_resolver_results::dereference -
-
-
descriptor
-
posix::descriptor, posix::descriptor::descriptor -
-
destroy
-
-
execution_context, execution_context::destroy -
-
io_context, io_context::destroy -
-
system_context, system_context::destroy -
-
thread_pool, thread_pool::destroy -
-
-
detached_t
-
experimental::detached_t, experimental::detached_t::detached_t -
-
difference_type
-
-
buffers_iterator, buffers_iterator::difference_type -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::difference_type -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::difference_type -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::difference_type -
-
ip::basic_resolver_results, ip::basic_resolver_results::difference_type -
-
-
dispatch, dispatch -
-
-
executor, executor::dispatch -
-
io_context, io_context::dispatch -
-
io_context::executor_type, io_context::executor_type::dispatch -
-
io_context::strand, io_context::strand::dispatch -
-
strand, strand::dispatch -
-
system_executor, system_executor::dispatch -
-
thread_pool::executor_type, thread_pool::executor_type::dispatch -
-
-
do_not_route
-
-
basic_datagram_socket, basic_datagram_socket::do_not_route -
-
basic_raw_socket, basic_raw_socket::do_not_route -
-
basic_seq_packet_socket, basic_seq_packet_socket::do_not_route -
-
basic_socket, basic_socket::do_not_route -
-
basic_socket_acceptor, basic_socket_acceptor::do_not_route -
-
basic_stream_socket, basic_stream_socket::do_not_route -
-
socket_base, socket_base::do_not_route -
-
-
duration
-
-
basic_socket_iostream, basic_socket_iostream::duration -
-
basic_socket_streambuf, basic_socket_streambuf::duration -
-
basic_waitable_timer, basic_waitable_timer::duration -
-
-
duration_type
-
-
basic_deadline_timer, basic_deadline_timer::duration_type -
-
basic_socket_iostream, basic_socket_iostream::duration_type -
-
basic_socket_streambuf, basic_socket_streambuf::duration_type -
-
time_traits< - boost::posix_time::ptime >, time_traits< - boost::posix_time::ptime >::duration_type -
-
-
dynamic_buffer, dynamic_buffer -
-
dynamic_string_buffer
-
dynamic_string_buffer, dynamic_string_buffer::dynamic_string_buffer -
-
dynamic_vector_buffer
-
dynamic_vector_buffer, dynamic_vector_buffer::dynamic_vector_buffer -
-
-
-
-

E

-
-
ec_
-
experimental::redirect_error_t, experimental::redirect_error_t::ec_ -
-
empty
-
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::empty -
-
ip::basic_address_range< - address_v6 >, ip::basic_address_range< - address_v6 >::empty -
-
ip::basic_resolver_results, ip::basic_resolver_results::empty -
-
-
enable_connection_aborted
-
-
basic_datagram_socket, basic_datagram_socket::enable_connection_aborted -
-
basic_raw_socket, basic_raw_socket::enable_connection_aborted -
-
basic_seq_packet_socket, basic_seq_packet_socket::enable_connection_aborted -
-
basic_socket, basic_socket::enable_connection_aborted -
-
basic_socket_acceptor, basic_socket_acceptor::enable_connection_aborted -
-
basic_stream_socket, basic_stream_socket::enable_connection_aborted -
-
socket_base, socket_base::enable_connection_aborted -
-
-
end
-
-
buffers_iterator, buffers_iterator::end -
-
const_buffers_1, const_buffers_1::end -
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::end -
-
ip::basic_address_range< - address_v6 >, ip::basic_address_range< - address_v6 >::end -
-
ip::basic_resolver_results, ip::basic_resolver_results::end -
-
mutable_buffers_1, mutable_buffers_1::end -
-
null_buffers, null_buffers::end -
-
-
endpoint
-
-
generic::datagram_protocol, generic::datagram_protocol::endpoint -
-
generic::raw_protocol, generic::raw_protocol::endpoint -
-
generic::seq_packet_protocol, generic::seq_packet_protocol::endpoint -
-
generic::stream_protocol, generic::stream_protocol::endpoint -
-
ip::basic_resolver_entry, ip::basic_resolver_entry::endpoint -
-
ip::icmp, ip::icmp::endpoint -
-
ip::tcp, ip::tcp::endpoint -
-
ip::udp, ip::udp::endpoint -
-
local::datagram_protocol, local::datagram_protocol::endpoint -
-
local::stream_protocol, local::stream_protocol::endpoint -
-
-
endpoint_type
-
-
basic_datagram_socket, basic_datagram_socket::endpoint_type -
-
basic_raw_socket, basic_raw_socket::endpoint_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::endpoint_type -
-
basic_socket, basic_socket::endpoint_type -
-
basic_socket_acceptor, basic_socket_acceptor::endpoint_type -
-
basic_socket_iostream, basic_socket_iostream::endpoint_type -
-
basic_socket_streambuf, basic_socket_streambuf::endpoint_type -
-
basic_stream_socket, basic_stream_socket::endpoint_type -
-
ip::basic_resolver, ip::basic_resolver::endpoint_type -
-
ip::basic_resolver_entry, ip::basic_resolver_entry::endpoint_type -
-
ip::basic_resolver_results, ip::basic_resolver_results::endpoint_type -
-
-
eof
-
error::misc_errors, error::misc_errors -
-
equal
-
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::equal -
-
ip::basic_resolver_results, ip::basic_resolver_results::equal -
-
-
error
-
-
basic_socket_iostream, basic_socket_iostream::error -
-
basic_socket_streambuf, basic_socket_streambuf::error -
-
-
error::addrinfo_category, error::addrinfo_category -
-
error::addrinfo_errors, error::addrinfo_errors -
-
error::basic_errors, error::basic_errors -
-
error::get_addrinfo_category, error::get_addrinfo_category -
-
error::get_misc_category, error::get_misc_category -
-
error::get_netdb_category, error::get_netdb_category -
-
error::get_ssl_category, error::get_ssl_category -
-
error::get_system_category, error::get_system_category -
-
error::make_error_code, error::make_error_code -
-
error::misc_category, error::misc_category -
-
error::misc_errors, error::misc_errors -
-
error::netdb_category, error::netdb_category -
-
error::netdb_errors, error::netdb_errors -
-
error::ssl_category, error::ssl_category -
-
error::ssl_errors, error::ssl_errors -
-
error::system_category, error::system_category -
-
error_code
-
error_code, error_code::error_code -
-
even
-
serial_port_base::parity, serial_port_base::parity::type -
-
execution_context
-
execution_context, execution_context::execution_context -
-
executor
-
executor, executor::executor -
-
executor_arg, executor_arg -
-
executor_arg_t
-
executor_arg_t, executor_arg_t::executor_arg_t -
-
executor_binder
-
executor_binder, executor_binder::executor_binder -
-
executor_type
-
-
basic_datagram_socket, basic_datagram_socket::executor_type -
-
basic_deadline_timer, basic_deadline_timer::executor_type -
-
basic_io_object, basic_io_object::executor_type -
-
basic_raw_socket, basic_raw_socket::executor_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::executor_type -
-
basic_socket, basic_socket::executor_type -
-
basic_socket_acceptor, basic_socket_acceptor::executor_type -
-
basic_stream_socket, basic_stream_socket::executor_type -
-
basic_waitable_timer, basic_waitable_timer::executor_type -
-
buffered_read_stream, buffered_read_stream::executor_type -
-
buffered_stream, buffered_stream::executor_type -
-
buffered_write_stream, buffered_write_stream::executor_type -
-
executor_binder, executor_binder::executor_type -
-
executor_work_guard, executor_work_guard::executor_type -
-
experimental::awaitable, experimental::awaitable::executor_type -
-
experimental::await_token, experimental::await_token::executor_type -
-
ip::basic_resolver, ip::basic_resolver::executor_type -
-
posix::descriptor, posix::descriptor::executor_type -
-
posix::stream_descriptor, posix::stream_descriptor::executor_type -
-
serial_port, serial_port::executor_type -
-
signal_set, signal_set::executor_type -
-
ssl::stream, ssl::stream::executor_type -
-
system_context, system_context::executor_type -
-
windows::object_handle, windows::object_handle::executor_type -
-
windows::overlapped_handle, windows::overlapped_handle::executor_type -
-
windows::random_access_handle, windows::random_access_handle::executor_type -
-
windows::stream_handle, windows::stream_handle::executor_type -
-
-
executor_work_guard
-
executor_work_guard, executor_work_guard::executor_work_guard -
-
experimental::co_spawn, experimental::co_spawn -
-
experimental::detached, experimental::detached -
-
experimental::redirect_error, experimental::redirect_error -
-
experimental::this_coro::executor, experimental::this_coro::executor -
-
experimental::this_coro::token, experimental::this_coro::token -
-
expires_after
-
-
basic_socket_iostream, basic_socket_iostream::expires_after -
-
basic_socket_streambuf, basic_socket_streambuf::expires_after -
-
basic_waitable_timer, basic_waitable_timer::expires_after -
-
-
expires_at
-
-
basic_deadline_timer, basic_deadline_timer::expires_at -
-
basic_socket_iostream, basic_socket_iostream::expires_at -
-
basic_socket_streambuf, basic_socket_streambuf::expires_at -
-
basic_waitable_timer, basic_waitable_timer::expires_at -
-
-
expires_from_now
-
-
basic_deadline_timer, basic_deadline_timer::expires_from_now -
-
basic_socket_iostream, basic_socket_iostream::expires_from_now -
-
basic_socket_streambuf, basic_socket_streambuf::expires_from_now -
-
basic_waitable_timer, basic_waitable_timer::expires_from_now -
-
-
expiry
-
-
basic_socket_iostream, basic_socket_iostream::expiry -
-
basic_socket_streambuf, basic_socket_streambuf::expiry -
-
basic_waitable_timer, basic_waitable_timer::expiry -
-
-
-
-
-

F

-
-
family
-
-
generic::datagram_protocol, generic::datagram_protocol::family -
-
generic::raw_protocol, generic::raw_protocol::family -
-
generic::seq_packet_protocol, generic::seq_packet_protocol::family -
-
generic::stream_protocol, generic::stream_protocol::family -
-
ip::icmp, ip::icmp::family -
-
ip::tcp, ip::tcp::family -
-
ip::udp, ip::udp::family -
-
local::datagram_protocol, local::datagram_protocol::family -
-
local::stream_protocol, local::stream_protocol::family -
-
-
fault
-
error::basic_errors, error::basic_errors -
-
fd_set_failure
-
error::misc_errors, error::misc_errors -
-
file_format
-
-
ssl::context, ssl::context::file_format -
-
ssl::context_base, ssl::context_base::file_format -
-
-
fill
-
-
buffered_read_stream, buffered_read_stream::fill -
-
buffered_stream, buffered_stream::fill -
-
-
find
-
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::find -
-
ip::basic_address_range< - address_v6 >, ip::basic_address_range< - address_v6 >::find -
-
-
first_argument_type
-
executor_binder, executor_binder::first_argument_type -
-
flags
-
-
ip::basic_resolver, ip::basic_resolver::flags -
-
ip::basic_resolver_query, ip::basic_resolver_query::flags -
-
ip::resolver_base, ip::resolver_base::flags -
-
ip::resolver_query_base, ip::resolver_query_base::flags -
-
-
flow_control
-
serial_port_base::flow_control, serial_port_base::flow_control::flow_control -
-
flush
-
-
buffered_stream, buffered_stream::flush -
-
buffered_write_stream, buffered_write_stream::flush -
-
-
fork_child
-
-
execution_context, execution_context::fork_event -
-
io_context, io_context::fork_event -
-
system_context, system_context::fork_event -
-
thread_pool, thread_pool::fork_event -
-
-
fork_event
-
-
execution_context, execution_context::fork_event -
-
io_context, io_context::fork_event -
-
system_context, system_context::fork_event -
-
thread_pool, thread_pool::fork_event -
-
-
fork_parent
-
-
execution_context, execution_context::fork_event -
-
io_context, io_context::fork_event -
-
system_context, system_context::fork_event -
-
thread_pool, thread_pool::fork_event -
-
-
fork_prepare
-
-
execution_context, execution_context::fork_event -
-
io_context, io_context::fork_event -
-
system_context, system_context::fork_event -
-
thread_pool, thread_pool::fork_event -
-
-
for_reading
-
-
ssl::context, ssl::context::password_purpose -
-
ssl::context_base, ssl::context_base::password_purpose -
-
-
for_writing
-
-
ssl::context, ssl::context::password_purpose -
-
ssl::context_base, ssl::context_base::password_purpose -
-
-
from_string
-
-
ip::address, ip::address::from_string -
-
ip::address_v4, ip::address_v4::from_string -
-
ip::address_v6, ip::address_v6::from_string -
-
-
-
-
-

G

-
-
get
-
-
associated_allocator, associated_allocator::get -
-
associated_executor, associated_executor::get -
-
async_result, async_result::get -
-
async_result< Handler - >, async_result< - Handler >::get -
-
async_result< - std::packaged_task< Result(Args...)>, Signature >, async_result< - std::packaged_task< Result(Args...)>, Signature >::get -
-
executor_binder, executor_binder::get -
-
windows::overlapped_ptr, windows::overlapped_ptr::get -
-
-
get_allocator
-
use_future_t, use_future_t::get_allocator -
-
get_associated_allocator, get_associated_allocator -
-
get_associated_executor, get_associated_executor -
-
get_executor
-
-
basic_datagram_socket, basic_datagram_socket::get_executor -
-
basic_deadline_timer, basic_deadline_timer::get_executor -
-
basic_io_object, basic_io_object::get_executor -
-
basic_raw_socket, basic_raw_socket::get_executor -
-
basic_seq_packet_socket, basic_seq_packet_socket::get_executor -
-
basic_socket, basic_socket::get_executor -
-
basic_socket_acceptor, basic_socket_acceptor::get_executor -
-
basic_stream_socket, basic_stream_socket::get_executor -
-
basic_waitable_timer, basic_waitable_timer::get_executor -
-
buffered_read_stream, buffered_read_stream::get_executor -
-
buffered_stream, buffered_stream::get_executor -
-
buffered_write_stream, buffered_write_stream::get_executor -
-
executor_binder, executor_binder::get_executor -
-
executor_work_guard, executor_work_guard::get_executor -
-
experimental::await_token, experimental::await_token::get_executor -
-
io_context, io_context::get_executor -
-
ip::basic_resolver, ip::basic_resolver::get_executor -
-
posix::descriptor, posix::descriptor::get_executor -
-
posix::stream_descriptor, posix::stream_descriptor::get_executor -
-
serial_port, serial_port::get_executor -
-
signal_set, signal_set::get_executor -
-
ssl::stream, ssl::stream::get_executor -
-
system_context, system_context::get_executor -
-
thread_pool, thread_pool::get_executor -
-
windows::object_handle, windows::object_handle::get_executor -
-
windows::overlapped_handle, windows::overlapped_handle::get_executor -
-
windows::random_access_handle, windows::random_access_handle::get_executor -
-
windows::stream_handle, windows::stream_handle::get_executor -
-
-
get_implementation
-
basic_io_object, basic_io_object::get_implementation -
-
get_inner_executor
-
strand, strand::get_inner_executor -
-
get_io_context
-
-
basic_datagram_socket, basic_datagram_socket::get_io_context -
-
basic_deadline_timer, basic_deadline_timer::get_io_context -
-
basic_io_object, basic_io_object::get_io_context -
-
basic_raw_socket, basic_raw_socket::get_io_context -
-
basic_seq_packet_socket, basic_seq_packet_socket::get_io_context -
-
basic_socket, basic_socket::get_io_context -
-
basic_socket_acceptor, basic_socket_acceptor::get_io_context -
-
basic_stream_socket, basic_stream_socket::get_io_context -
-
basic_waitable_timer, basic_waitable_timer::get_io_context -
-
buffered_read_stream, buffered_read_stream::get_io_context -
-
buffered_stream, buffered_stream::get_io_context -
-
buffered_write_stream, buffered_write_stream::get_io_context -
-
io_context::service, io_context::service::get_io_context -
-
io_context::strand, io_context::strand::get_io_context -
-
io_context::work, io_context::work::get_io_context -
-
ip::basic_resolver, ip::basic_resolver::get_io_context -
-
posix::descriptor, posix::descriptor::get_io_context -
-
posix::stream_descriptor, posix::stream_descriptor::get_io_context -
-
serial_port, serial_port::get_io_context -
-
signal_set, signal_set::get_io_context -
-
ssl::stream, ssl::stream::get_io_context -
-
windows::object_handle, windows::object_handle::get_io_context -
-
windows::overlapped_handle, windows::overlapped_handle::get_io_context -
-
windows::random_access_handle, windows::random_access_handle::get_io_context -
-
windows::stream_handle, windows::stream_handle::get_io_context -
-
-
get_io_service
-
-
basic_datagram_socket, basic_datagram_socket::get_io_service -
-
basic_deadline_timer, basic_deadline_timer::get_io_service -
-
basic_io_object, basic_io_object::get_io_service -
-
basic_raw_socket, basic_raw_socket::get_io_service -
-
basic_seq_packet_socket, basic_seq_packet_socket::get_io_service -
-
basic_socket, basic_socket::get_io_service -
-
basic_socket_acceptor, basic_socket_acceptor::get_io_service -
-
basic_stream_socket, basic_stream_socket::get_io_service -
-
basic_waitable_timer, basic_waitable_timer::get_io_service -
-
buffered_read_stream, buffered_read_stream::get_io_service -
-
buffered_stream, buffered_stream::get_io_service -
-
buffered_write_stream, buffered_write_stream::get_io_service -
-
io_context::service, io_context::service::get_io_service -
-
io_context::strand, io_context::strand::get_io_service -
-
io_context::work, io_context::work::get_io_service -
-
ip::basic_resolver, ip::basic_resolver::get_io_service -
-
posix::descriptor, posix::descriptor::get_io_service -
-
posix::stream_descriptor, posix::stream_descriptor::get_io_service -
-
serial_port, serial_port::get_io_service -
-
signal_set, signal_set::get_io_service -
-
ssl::stream, ssl::stream::get_io_service -
-
windows::object_handle, windows::object_handle::get_io_service -
-
windows::overlapped_handle, windows::overlapped_handle::get_io_service -
-
windows::random_access_handle, windows::random_access_handle::get_io_service -
-
windows::stream_handle, windows::stream_handle::get_io_service -
-
-
get_option
-
-
basic_datagram_socket, basic_datagram_socket::get_option -
-
basic_raw_socket, basic_raw_socket::get_option -
-
basic_seq_packet_socket, basic_seq_packet_socket::get_option -
-
basic_socket, basic_socket::get_option -
-
basic_socket_acceptor, basic_socket_acceptor::get_option -
-
basic_stream_socket, basic_stream_socket::get_option -
-
serial_port, serial_port::get_option -
-
-
get_service
-
basic_io_object, basic_io_object::get_service -
-
-
-
-

H

-
-
handshake
-
ssl::stream, ssl::stream::handshake -
-
handshake_type
-
-
ssl::stream, ssl::stream::handshake_type -
-
ssl::stream_base, ssl::stream_base::handshake_type -
-
-
hardware
-
serial_port_base::flow_control, serial_port_base::flow_control::type -
-
has_service, has_service -
-
-
execution_context, execution_context::has_service -
-
io_context, io_context::has_service -
-
system_context, system_context::has_service -
-
thread_pool, thread_pool::has_service -
-
-
high_resolution_timer, high_resolution_timer -
-
hints
-
ip::basic_resolver_query, ip::basic_resolver_query::hints -
-
hosts
-
-
ip::network_v4, ip::network_v4::hosts -
-
ip::network_v6, ip::network_v6::hosts -
-
-
host_name
-
-
ip::basic_resolver_entry, ip::basic_resolver_entry::host_name -
-
ip::basic_resolver_query, ip::basic_resolver_query::host_name -
-
-
host_not_found
-
error::netdb_errors, error::netdb_errors -
-
host_not_found_try_again
-
error::netdb_errors, error::netdb_errors -
-
host_unreachable
-
error::basic_errors, error::basic_errors -
-
-
-
-

I

-
-
id
-
execution_context::id, execution_context::id::id -
-
implementation_type
-
basic_io_object, basic_io_object::implementation_type -
-
increment
-
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::increment -
-
ip::basic_resolver_results, ip::basic_resolver_results::increment -
-
-
index_
-
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::index_ -
-
ip::basic_resolver_results, ip::basic_resolver_results::index_ -
-
-
inner_executor_type
-
strand, strand::inner_executor_type -
-
interrupted
-
error::basic_errors, error::basic_errors -
-
invalid_argument
-
error::basic_errors, error::basic_errors -
-
invalid_service_owner
-
invalid_service_owner, invalid_service_owner::invalid_service_owner -
-
in_avail
-
-
buffered_read_stream, buffered_read_stream::in_avail -
-
buffered_stream, buffered_stream::in_avail -
-
buffered_write_stream, buffered_write_stream::in_avail -
-
-
in_progress
-
error::basic_errors, error::basic_errors -
-
iostream
-
-
generic::stream_protocol, generic::stream_protocol::iostream -
-
ip::tcp, ip::tcp::iostream -
-
local::stream_protocol, local::stream_protocol::iostream -
-
-
io_context
-
io_context, io_context::io_context -
-
io_control
-
-
basic_datagram_socket, basic_datagram_socket::io_control -
-
basic_raw_socket, basic_raw_socket::io_control -
-
basic_seq_packet_socket, basic_seq_packet_socket::io_control -
-
basic_socket, basic_socket::io_control -
-
basic_socket_acceptor, basic_socket_acceptor::io_control -
-
basic_stream_socket, basic_stream_socket::io_control -
-
posix::descriptor, posix::descriptor::io_control -
-
posix::stream_descriptor, posix::stream_descriptor::io_control -
-
-
io_service, io_service -
-
ip::address_v4_iterator, ip::address_v4_iterator -
-
ip::address_v4_range, ip::address_v4_range -
-
ip::address_v6_iterator, ip::address_v6_iterator -
-
ip::address_v6_range, ip::address_v6_range -
-
ip::host_name, ip::host_name -
-
ip::multicast::enable_loopback, ip::multicast::enable_loopback -
-
ip::multicast::hops, ip::multicast::hops -
-
ip::multicast::join_group, ip::multicast::join_group -
-
ip::multicast::leave_group, ip::multicast::leave_group -
-
ip::multicast::outbound_interface, ip::multicast::outbound_interface -
-
ip::unicast::hops, ip::unicast::hops -
-
ip::v4_mapped_t, ip::v4_mapped_t -
-
ip::v6_only, ip::v6_only -
-
is_child
-
coroutine, coroutine::is_child -
-
is_class_a
-
ip::address_v4, ip::address_v4::is_class_a -
-
is_class_b
-
ip::address_v4, ip::address_v4::is_class_b -
-
is_class_c
-
ip::address_v4, ip::address_v4::is_class_c -
-
is_complete
-
coroutine, coroutine::is_complete -
-
is_host
-
-
ip::network_v4, ip::network_v4::is_host -
-
ip::network_v6, ip::network_v6::is_host -
-
-
is_link_local
-
ip::address_v6, ip::address_v6::is_link_local -
-
is_loopback
-
-
ip::address, ip::address::is_loopback -
-
ip::address_v4, ip::address_v4::is_loopback -
-
ip::address_v6, ip::address_v6::is_loopback -
-
-
is_multicast
-
-
ip::address, ip::address::is_multicast -
-
ip::address_v4, ip::address_v4::is_multicast -
-
ip::address_v6, ip::address_v6::is_multicast -
-
-
is_multicast_global
-
ip::address_v6, ip::address_v6::is_multicast_global -
-
is_multicast_link_local
-
ip::address_v6, ip::address_v6::is_multicast_link_local -
-
is_multicast_node_local
-
ip::address_v6, ip::address_v6::is_multicast_node_local -
-
is_multicast_org_local
-
ip::address_v6, ip::address_v6::is_multicast_org_local -
-
is_multicast_site_local
-
ip::address_v6, ip::address_v6::is_multicast_site_local -
-
is_open
-
-
basic_datagram_socket, basic_datagram_socket::is_open -
-
basic_raw_socket, basic_raw_socket::is_open -
-
basic_seq_packet_socket, basic_seq_packet_socket::is_open -
-
basic_socket, basic_socket::is_open -
-
basic_socket_acceptor, basic_socket_acceptor::is_open -
-
basic_stream_socket, basic_stream_socket::is_open -
-
posix::descriptor, posix::descriptor::is_open -
-
posix::stream_descriptor, posix::stream_descriptor::is_open -
-
serial_port, serial_port::is_open -
-
windows::object_handle, windows::object_handle::is_open -
-
windows::overlapped_handle, windows::overlapped_handle::is_open -
-
windows::random_access_handle, windows::random_access_handle::is_open -
-
windows::stream_handle, windows::stream_handle::is_open -
-
-
is_parent
-
coroutine, coroutine::is_parent -
-
is_site_local
-
ip::address_v6, ip::address_v6::is_site_local -
-
is_subnet_of
-
-
ip::network_v4, ip::network_v4::is_subnet_of -
-
ip::network_v6, ip::network_v6::is_subnet_of -
-
-
is_unspecified
-
-
ip::address, ip::address::is_unspecified -
-
ip::address_v4, ip::address_v4::is_unspecified -
-
ip::address_v6, ip::address_v6::is_unspecified -
-
-
is_v4
-
ip::address, ip::address::is_v4 -
-
is_v4_compatible
-
ip::address_v6, ip::address_v6::is_v4_compatible -
-
is_v4_mapped
-
ip::address_v6, ip::address_v6::is_v4_mapped -
-
is_v6
-
ip::address, ip::address::is_v6 -
-
iterator
-
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::iterator -
-
ip::basic_address_range< - address_v6 >, ip::basic_address_range< - address_v6 >::iterator -
-
ip::basic_resolver, ip::basic_resolver::iterator -
-
ip::basic_resolver_results, ip::basic_resolver_results::iterator -
-
-
iterator_category
-
-
buffers_iterator, buffers_iterator::iterator_category -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::iterator_category -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::iterator_category -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::iterator_category -
-
ip::basic_resolver_results, ip::basic_resolver_results::iterator_category -
-
-
-
-
-

J

-
-
join
-
-
system_context, system_context::join -
-
thread, thread::join -
-
thread_pool, thread_pool::join -
-
-
-
-
-

K

-
-
keep_alive
-
-
basic_datagram_socket, basic_datagram_socket::keep_alive -
-
basic_raw_socket, basic_raw_socket::keep_alive -
-
basic_seq_packet_socket, basic_seq_packet_socket::keep_alive -
-
basic_socket, basic_socket::keep_alive -
-
basic_socket_acceptor, basic_socket_acceptor::keep_alive -
-
basic_stream_socket, basic_stream_socket::keep_alive -
-
socket_base, socket_base::keep_alive -
-
-
-
-
-

L

-
-
less_than
-
time_traits< - boost::posix_time::ptime >, time_traits< - boost::posix_time::ptime >::less_than -
-
linger
-
-
basic_datagram_socket, basic_datagram_socket::linger -
-
basic_raw_socket, basic_raw_socket::linger -
-
basic_seq_packet_socket, basic_seq_packet_socket::linger -
-
basic_socket, basic_socket::linger -
-
basic_socket_acceptor, basic_socket_acceptor::linger -
-
basic_stream_socket, basic_stream_socket::linger -
-
socket_base, socket_base::linger -
-
-
listen
-
basic_socket_acceptor, basic_socket_acceptor::listen -
-
load
-
-
serial_port_base::baud_rate, serial_port_base::baud_rate::load -
-
serial_port_base::character_size, serial_port_base::character_size::load -
-
serial_port_base::flow_control, serial_port_base::flow_control::load -
-
serial_port_base::parity, serial_port_base::parity::load -
-
serial_port_base::stop_bits, serial_port_base::stop_bits::load -
-
-
load_verify_file
-
ssl::context, ssl::context::load_verify_file -
-
local::connect_pair, local::connect_pair -
-
local_endpoint
-
-
basic_datagram_socket, basic_datagram_socket::local_endpoint -
-
basic_raw_socket, basic_raw_socket::local_endpoint -
-
basic_seq_packet_socket, basic_seq_packet_socket::local_endpoint -
-
basic_socket, basic_socket::local_endpoint -
-
basic_socket_acceptor, basic_socket_acceptor::local_endpoint -
-
basic_stream_socket, basic_stream_socket::local_endpoint -
-
-
loopback
-
-
ip::address_v4, ip::address_v4::loopback -
-
ip::address_v6, ip::address_v6::loopback -
-
-
lowest_layer
-
-
basic_datagram_socket, basic_datagram_socket::lowest_layer -
-
basic_raw_socket, basic_raw_socket::lowest_layer -
-
basic_seq_packet_socket, basic_seq_packet_socket::lowest_layer -
-
basic_socket, basic_socket::lowest_layer -
-
basic_stream_socket, basic_stream_socket::lowest_layer -
-
buffered_read_stream, buffered_read_stream::lowest_layer -
-
buffered_stream, buffered_stream::lowest_layer -
-
buffered_write_stream, buffered_write_stream::lowest_layer -
-
posix::descriptor, posix::descriptor::lowest_layer -
-
posix::stream_descriptor, posix::stream_descriptor::lowest_layer -
-
serial_port, serial_port::lowest_layer -
-
ssl::stream, ssl::stream::lowest_layer -
-
windows::object_handle, windows::object_handle::lowest_layer -
-
windows::overlapped_handle, windows::overlapped_handle::lowest_layer -
-
windows::random_access_handle, windows::random_access_handle::lowest_layer -
-
windows::stream_handle, windows::stream_handle::lowest_layer -
-
-
lowest_layer_type
-
-
basic_datagram_socket, basic_datagram_socket::lowest_layer_type -
-
basic_raw_socket, basic_raw_socket::lowest_layer_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::lowest_layer_type -
-
basic_socket, basic_socket::lowest_layer_type -
-
basic_stream_socket, basic_stream_socket::lowest_layer_type -
-
buffered_read_stream, buffered_read_stream::lowest_layer_type -
-
buffered_stream, buffered_stream::lowest_layer_type -
-
buffered_write_stream, buffered_write_stream::lowest_layer_type -
-
posix::descriptor, posix::descriptor::lowest_layer_type -
-
posix::stream_descriptor, posix::stream_descriptor::lowest_layer_type -
-
serial_port, serial_port::lowest_layer_type -
-
ssl::stream, ssl::stream::lowest_layer_type -
-
windows::object_handle, windows::object_handle::lowest_layer_type -
-
windows::overlapped_handle, windows::overlapped_handle::lowest_layer_type -
-
windows::random_access_handle, windows::random_access_handle::lowest_layer_type -
-
windows::stream_handle, windows::stream_handle::lowest_layer_type -
-
-
-
-
-

M

-
-
make_address
-
ip::address, ip::address::make_address -
-
make_address_v4
-
ip::address_v4, ip::address_v4::make_address_v4 -
-
make_address_v6
-
ip::address_v6, ip::address_v6::make_address_v6 -
-
make_network_v4
-
-
ip::address_v4, ip::address_v4::make_network_v4 -
-
ip::network_v4, ip::network_v4::make_network_v4 -
-
-
make_network_v6
-
-
ip::address_v6, ip::address_v6::make_network_v6 -
-
ip::network_v6, ip::network_v6::make_network_v6 -
-
-
make_service
-
-
execution_context, execution_context::make_service -
-
io_context, io_context::make_service -
-
system_context, system_context::make_service -
-
thread_pool, thread_pool::make_service -
-
-
make_work_guard, make_work_guard -
-
max_connections
-
-
basic_datagram_socket, basic_datagram_socket::max_connections -
-
basic_raw_socket, basic_raw_socket::max_connections -
-
basic_seq_packet_socket, basic_seq_packet_socket::max_connections -
-
basic_socket, basic_socket::max_connections -
-
basic_socket_acceptor, basic_socket_acceptor::max_connections -
-
basic_stream_socket, basic_stream_socket::max_connections -
-
socket_base, socket_base::max_connections -
-
-
max_listen_connections
-
-
basic_datagram_socket, basic_datagram_socket::max_listen_connections -
-
basic_raw_socket, basic_raw_socket::max_listen_connections -
-
basic_seq_packet_socket, basic_seq_packet_socket::max_listen_connections -
-
basic_socket, basic_socket::max_listen_connections -
-
basic_socket_acceptor, basic_socket_acceptor::max_listen_connections -
-
basic_stream_socket, basic_stream_socket::max_listen_connections -
-
socket_base, socket_base::max_listen_connections -
-
-
max_size
-
-
basic_streambuf, basic_streambuf::max_size -
-
basic_streambuf_ref, basic_streambuf_ref::max_size -
-
dynamic_string_buffer, dynamic_string_buffer::max_size -
-
dynamic_vector_buffer, dynamic_vector_buffer::max_size -
-
ip::basic_resolver_results, ip::basic_resolver_results::max_size -
-
-
message
-
-
error_category, error_category::message -
-
error_code, error_code::message -
-
-
message_do_not_route
-
-
basic_datagram_socket, basic_datagram_socket::message_do_not_route -
-
basic_raw_socket, basic_raw_socket::message_do_not_route -
-
basic_seq_packet_socket, basic_seq_packet_socket::message_do_not_route -
-
basic_socket, basic_socket::message_do_not_route -
-
basic_socket_acceptor, basic_socket_acceptor::message_do_not_route -
-
basic_stream_socket, basic_stream_socket::message_do_not_route -
-
socket_base, socket_base::message_do_not_route -
-
-
message_end_of_record
-
-
basic_datagram_socket, basic_datagram_socket::message_end_of_record -
-
basic_raw_socket, basic_raw_socket::message_end_of_record -
-
basic_seq_packet_socket, basic_seq_packet_socket::message_end_of_record -
-
basic_socket, basic_socket::message_end_of_record -
-
basic_socket_acceptor, basic_socket_acceptor::message_end_of_record -
-
basic_stream_socket, basic_stream_socket::message_end_of_record -
-
socket_base, socket_base::message_end_of_record -
-
-
message_flags
-
-
basic_datagram_socket, basic_datagram_socket::message_flags -
-
basic_raw_socket, basic_raw_socket::message_flags -
-
basic_seq_packet_socket, basic_seq_packet_socket::message_flags -
-
basic_socket, basic_socket::message_flags -
-
basic_socket_acceptor, basic_socket_acceptor::message_flags -
-
basic_stream_socket, basic_stream_socket::message_flags -
-
socket_base, socket_base::message_flags -
-
-
message_out_of_band
-
-
basic_datagram_socket, basic_datagram_socket::message_out_of_band -
-
basic_raw_socket, basic_raw_socket::message_out_of_band -
-
basic_seq_packet_socket, basic_seq_packet_socket::message_out_of_band -
-
basic_socket, basic_socket::message_out_of_band -
-
basic_socket_acceptor, basic_socket_acceptor::message_out_of_band -
-
basic_stream_socket, basic_stream_socket::message_out_of_band -
-
socket_base, socket_base::message_out_of_band -
-
-
message_peek
-
-
basic_datagram_socket, basic_datagram_socket::message_peek -
-
basic_raw_socket, basic_raw_socket::message_peek -
-
basic_seq_packet_socket, basic_seq_packet_socket::message_peek -
-
basic_socket, basic_socket::message_peek -
-
basic_socket_acceptor, basic_socket_acceptor::message_peek -
-
basic_stream_socket, basic_stream_socket::message_peek -
-
socket_base, socket_base::message_peek -
-
-
message_size
-
error::basic_errors, error::basic_errors -
-
method
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
mutable_buffer
-
mutable_buffer, mutable_buffer::mutable_buffer -
-
mutable_buffers_1
-
mutable_buffers_1, mutable_buffers_1::mutable_buffers_1 -
-
mutable_buffers_type
-
-
basic_streambuf, basic_streambuf::mutable_buffers_type -
-
basic_streambuf_ref, basic_streambuf_ref::mutable_buffers_type -
-
dynamic_string_buffer, dynamic_string_buffer::mutable_buffers_type -
-
dynamic_vector_buffer, dynamic_vector_buffer::mutable_buffers_type -
-
-
-
-
-

N

-
-
name
-
error_category, error_category::name -
-
name_too_long
-
error::basic_errors, error::basic_errors -
-
native_handle
-
-
basic_datagram_socket, basic_datagram_socket::native_handle -
-
basic_raw_socket, basic_raw_socket::native_handle -
-
basic_seq_packet_socket, basic_seq_packet_socket::native_handle -
-
basic_socket, basic_socket::native_handle -
-
basic_socket_acceptor, basic_socket_acceptor::native_handle -
-
basic_stream_socket, basic_stream_socket::native_handle -
-
posix::descriptor, posix::descriptor::native_handle -
-
posix::stream_descriptor, posix::stream_descriptor::native_handle -
-
serial_port, serial_port::native_handle -
-
ssl::context, ssl::context::native_handle -
-
ssl::stream, ssl::stream::native_handle -
-
ssl::verify_context, ssl::verify_context::native_handle -
-
windows::object_handle, windows::object_handle::native_handle -
-
windows::overlapped_handle, windows::overlapped_handle::native_handle -
-
windows::random_access_handle, windows::random_access_handle::native_handle -
-
windows::stream_handle, windows::stream_handle::native_handle -
-
-
native_handle_type
-
-
basic_datagram_socket, basic_datagram_socket::native_handle_type -
-
basic_raw_socket, basic_raw_socket::native_handle_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::native_handle_type -
-
basic_socket, basic_socket::native_handle_type -
-
basic_socket_acceptor, basic_socket_acceptor::native_handle_type -
-
basic_stream_socket, basic_stream_socket::native_handle_type -
-
posix::descriptor, posix::descriptor::native_handle_type -
-
posix::stream_descriptor, posix::stream_descriptor::native_handle_type -
-
serial_port, serial_port::native_handle_type -
-
ssl::context, ssl::context::native_handle_type -
-
ssl::stream, ssl::stream::native_handle_type -
-
ssl::verify_context, ssl::verify_context::native_handle_type -
-
windows::object_handle, windows::object_handle::native_handle_type -
-
windows::overlapped_handle, windows::overlapped_handle::native_handle_type -
-
windows::random_access_handle, windows::random_access_handle::native_handle_type -
-
windows::stream_handle, windows::stream_handle::native_handle_type -
-
-
native_non_blocking
-
-
basic_datagram_socket, basic_datagram_socket::native_non_blocking -
-
basic_raw_socket, basic_raw_socket::native_non_blocking -
-
basic_seq_packet_socket, basic_seq_packet_socket::native_non_blocking -
-
basic_socket, basic_socket::native_non_blocking -
-
basic_socket_acceptor, basic_socket_acceptor::native_non_blocking -
-
basic_stream_socket, basic_stream_socket::native_non_blocking -
-
posix::descriptor, posix::descriptor::native_non_blocking -
-
posix::stream_descriptor, posix::stream_descriptor::native_non_blocking -
-
-
netmask
-
-
ip::address_v4, ip::address_v4::netmask -
-
ip::network_v4, ip::network_v4::netmask -
-
-
network
-
-
ip::network_v4, ip::network_v4::network -
-
ip::network_v6, ip::network_v6::network -
-
-
network_down
-
error::basic_errors, error::basic_errors -
-
network_reset
-
error::basic_errors, error::basic_errors -
-
network_unreachable
-
error::basic_errors, error::basic_errors -
-
network_v4
-
ip::network_v4, ip::network_v4::network_v4 -
-
network_v6
-
ip::network_v6, ip::network_v6::network_v6 -
-
next_layer
-
-
buffered_read_stream, buffered_read_stream::next_layer -
-
buffered_stream, buffered_stream::next_layer -
-
buffered_write_stream, buffered_write_stream::next_layer -
-
ssl::stream, ssl::stream::next_layer -
-
-
next_layer_type
-
-
buffered_read_stream, buffered_read_stream::next_layer_type -
-
buffered_stream, buffered_stream::next_layer_type -
-
buffered_write_stream, buffered_write_stream::next_layer_type -
-
ssl::stream, ssl::stream::next_layer_type -
-
-
none
-
-
serial_port_base::flow_control, serial_port_base::flow_control::type -
-
serial_port_base::parity, serial_port_base::parity::type -
-
-
non_blocking
-
-
basic_datagram_socket, basic_datagram_socket::non_blocking -
-
basic_raw_socket, basic_raw_socket::non_blocking -
-
basic_seq_packet_socket, basic_seq_packet_socket::non_blocking -
-
basic_socket, basic_socket::non_blocking -
-
basic_socket_acceptor, basic_socket_acceptor::non_blocking -
-
basic_stream_socket, basic_stream_socket::non_blocking -
-
posix::descriptor, posix::descriptor::non_blocking -
-
posix::stream_descriptor, posix::stream_descriptor::non_blocking -
-
-
notify_fork
-
-
execution_context, execution_context::notify_fork -
-
execution_context::service, execution_context::service::notify_fork -
-
io_context, io_context::notify_fork -
-
system_context, system_context::notify_fork -
-
thread_pool, thread_pool::notify_fork -
-
-
not_connected
-
error::basic_errors, error::basic_errors -
-
not_found
-
error::misc_errors, error::misc_errors -
-
not_socket
-
error::basic_errors, error::basic_errors -
-
now
-
time_traits< boost::posix_time::ptime - >, time_traits< - boost::posix_time::ptime >::now -
-
no_buffer_space
-
error::basic_errors, error::basic_errors -
-
no_compression
-
-
ssl::context, ssl::context::no_compression -
-
ssl::context_base, ssl::context_base::no_compression -
-
-
no_data
-
error::netdb_errors, error::netdb_errors -
-
no_delay
-
ip::tcp, ip::tcp::no_delay -
-
no_descriptors
-
error::basic_errors, error::basic_errors -
-
no_memory
-
error::basic_errors, error::basic_errors -
-
no_permission
-
error::basic_errors, error::basic_errors -
-
no_protocol_option
-
error::basic_errors, error::basic_errors -
-
no_recovery
-
error::netdb_errors, error::netdb_errors -
-
no_sslv2
-
-
ssl::context, ssl::context::no_sslv2 -
-
ssl::context_base, ssl::context_base::no_sslv2 -
-
-
no_sslv3
-
-
ssl::context, ssl::context::no_sslv3 -
-
ssl::context_base, ssl::context_base::no_sslv3 -
-
-
no_such_device
-
error::basic_errors, error::basic_errors -
-
no_tlsv1
-
-
ssl::context, ssl::context::no_tlsv1 -
-
ssl::context_base, ssl::context_base::no_tlsv1 -
-
-
no_tlsv1_1
-
-
ssl::context, ssl::context::no_tlsv1_1 -
-
ssl::context_base, ssl::context_base::no_tlsv1_1 -
-
-
no_tlsv1_2
-
-
ssl::context, ssl::context::no_tlsv1_2 -
-
ssl::context_base, ssl::context_base::no_tlsv1_2 -
-
-
no_tlsv1_3
-
-
ssl::context, ssl::context::no_tlsv1_3 -
-
ssl::context_base, ssl::context_base::no_tlsv1_3 -
-
-
numeric_host
-
-
ip::basic_resolver, ip::basic_resolver::numeric_host -
-
ip::basic_resolver_query, ip::basic_resolver_query::numeric_host -
-
ip::resolver_base, ip::resolver_base::numeric_host -
-
ip::resolver_query_base, ip::resolver_query_base::numeric_host -
-
-
numeric_service
-
-
ip::basic_resolver, ip::basic_resolver::numeric_service -
-
ip::basic_resolver_query, ip::basic_resolver_query::numeric_service -
-
ip::resolver_base, ip::resolver_base::numeric_service -
-
ip::resolver_query_base, ip::resolver_query_base::numeric_service -
-
-
-
-
-

O

-
-
object_handle
-
windows::object_handle, windows::object_handle::object_handle -
-
odd
-
serial_port_base::parity, serial_port_base::parity::type -
-
one
-
serial_port_base::stop_bits, serial_port_base::stop_bits::type -
-
onepointfive
-
serial_port_base::stop_bits, serial_port_base::stop_bits::type -
-
on_work_finished
-
-
executor, executor::on_work_finished -
-
io_context::executor_type, io_context::executor_type::on_work_finished -
-
io_context::strand, io_context::strand::on_work_finished -
-
strand, strand::on_work_finished -
-
system_executor, system_executor::on_work_finished -
-
thread_pool::executor_type, thread_pool::executor_type::on_work_finished -
-
-
on_work_started
-
-
executor, executor::on_work_started -
-
io_context::executor_type, io_context::executor_type::on_work_started -
-
io_context::strand, io_context::strand::on_work_started -
-
strand, strand::on_work_started -
-
system_executor, system_executor::on_work_started -
-
thread_pool::executor_type, thread_pool::executor_type::on_work_started -
-
-
open
-
-
basic_datagram_socket, basic_datagram_socket::open -
-
basic_raw_socket, basic_raw_socket::open -
-
basic_seq_packet_socket, basic_seq_packet_socket::open -
-
basic_socket, basic_socket::open -
-
basic_socket_acceptor, basic_socket_acceptor::open -
-
basic_stream_socket, basic_stream_socket::open -
-
serial_port, serial_port::open -
-
-
operation_aborted
-
error::basic_errors, error::basic_errors -
-
operation_not_supported
-
error::basic_errors, error::basic_errors -
-
operator *
-
-
buffers_iterator, buffers_iterator::operator - * -
-
ip::basic_address_iterator< address_v4 >, ip::basic_address_iterator< - address_v4 >::operator * -
-
ip::basic_address_iterator< address_v6 >, ip::basic_address_iterator< - address_v6 >::operator * -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::operator - * -
-
ip::basic_resolver_results, ip::basic_resolver_results::operator - * -
-
-
operator - endpoint_type
-
ip::basic_resolver_entry, ip::basic_resolver_entry::operator - endpoint_type -
-
operator unspecified_bool_type
-
-
error_code, error_code::operator - unspecified_bool_type -
-
executor, executor::operator - unspecified_bool_type -
-
-
operator!
-
error_code, error_code::operator! -
-
operator!=
-
-
buffers_iterator, buffers_iterator::operator!= -
-
error_category, error_category::operator!= -
-
error_code, error_code::operator!= -
-
executor, executor::operator!= -
-
generic::basic_endpoint, generic::basic_endpoint::operator!= -
-
generic::datagram_protocol, generic::datagram_protocol::operator!= -
-
generic::raw_protocol, generic::raw_protocol::operator!= -
-
generic::seq_packet_protocol, generic::seq_packet_protocol::operator!= -
-
generic::stream_protocol, generic::stream_protocol::operator!= -
-
io_context::executor_type, io_context::executor_type::operator!= -
-
io_context::strand, io_context::strand::operator!= -
-
ip::address, ip::address::operator!= -
-
ip::address_v4, ip::address_v4::operator!= -
-
ip::address_v6, ip::address_v6::operator!= -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::operator!= -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::operator!= -
-
ip::basic_endpoint, ip::basic_endpoint::operator!= -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::operator!= -
-
ip::basic_resolver_results, ip::basic_resolver_results::operator!= -
-
ip::icmp, ip::icmp::operator!= -
-
ip::network_v4, ip::network_v4::operator!= -
-
ip::network_v6, ip::network_v6::operator!= -
-
ip::tcp, ip::tcp::operator!= -
-
ip::udp, ip::udp::operator!= -
-
local::basic_endpoint, local::basic_endpoint::operator!= -
-
strand, strand::operator!= -
-
system_executor, system_executor::operator!= -
-
thread_pool::executor_type, thread_pool::executor_type::operator!= -
-
-
operator()
-
-
executor_binder, executor_binder::operator() -
-
ssl::rfc2818_verification, ssl::rfc2818_verification::operator() -
-
use_future_t, use_future_t::operator() -
-
-
operator+
-
-
buffers_iterator, buffers_iterator::operator+ -
-
const_buffer, const_buffer::operator+ -
-
const_buffers_1, const_buffers_1::operator+ -
-
mutable_buffer, mutable_buffer::operator+ -
-
mutable_buffers_1, mutable_buffers_1::operator+ -
-
-
operator++
-
-
buffers_iterator, buffers_iterator::operator++ -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::operator++ -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::operator++ -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::operator++ -
-
ip::basic_resolver_results, ip::basic_resolver_results::operator++ -
-
-
operator+=
-
-
buffers_iterator, buffers_iterator::operator+= -
-
const_buffer, const_buffer::operator+= -
-
const_buffers_1, const_buffers_1::operator+= -
-
mutable_buffer, mutable_buffer::operator+= -
-
mutable_buffers_1, mutable_buffers_1::operator+= -
-
-
operator-
-
buffers_iterator, buffers_iterator::operator- -
-
operator--
-
-
buffers_iterator, buffers_iterator::operator-- -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::operator-- -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::operator-- -
-
-
operator-=
-
buffers_iterator, buffers_iterator::operator-= -
-
operator->
-
-
buffers_iterator, buffers_iterator::operator-> -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::operator-> -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::operator-> -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::operator-> -
-
ip::basic_resolver_results, ip::basic_resolver_results::operator-> -
-
-
operator<
-
-
buffers_iterator, buffers_iterator::operator< -
-
generic::basic_endpoint, generic::basic_endpoint::operator< -
-
ip::address, ip::address::operator< -
-
ip::address_v4, ip::address_v4::operator< -
-
ip::address_v6, ip::address_v6::operator< -
-
ip::basic_endpoint, ip::basic_endpoint::operator< -
-
local::basic_endpoint, local::basic_endpoint::operator< -
-
-
operator<<, operator<< -
-
-
ip::address, ip::address::operator<< -
-
ip::address_v4, ip::address_v4::operator<< -
-
ip::address_v6, ip::address_v6::operator<< -
-
ip::basic_endpoint, ip::basic_endpoint::operator<< -
-
local::basic_endpoint, local::basic_endpoint::operator<< -
-
-
operator<=
-
-
buffers_iterator, buffers_iterator::operator<= -
-
generic::basic_endpoint, generic::basic_endpoint::operator<= -
-
ip::address, ip::address::operator<= -
-
ip::address_v4, ip::address_v4::operator<= -
-
ip::address_v6, ip::address_v6::operator<= -
-
ip::basic_endpoint, ip::basic_endpoint::operator<= -
-
local::basic_endpoint, local::basic_endpoint::operator<= -
-
-
operator=
-
-
basic_datagram_socket, basic_datagram_socket::operator= -
-
basic_deadline_timer, basic_deadline_timer::operator= -
-
basic_io_object, basic_io_object::operator= -
-
basic_raw_socket, basic_raw_socket::operator= -
-
basic_seq_packet_socket, basic_seq_packet_socket::operator= -
-
basic_socket, basic_socket::operator= -
-
basic_socket_acceptor, basic_socket_acceptor::operator= -
-
basic_socket_iostream, basic_socket_iostream::operator= -
-
basic_socket_streambuf, basic_socket_streambuf::operator= -
-
basic_stream_socket, basic_stream_socket::operator= -
-
basic_waitable_timer, basic_waitable_timer::operator= -
-
executor, executor::operator= -
-
generic::basic_endpoint, generic::basic_endpoint::operator= -
-
ip::address, ip::address::operator= -
-
ip::address_v4, ip::address_v4::operator= -
-
ip::address_v6, ip::address_v6::operator= -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::operator= -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::operator= -
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::operator= -
-
ip::basic_address_range< - address_v6 >, ip::basic_address_range< - address_v6 >::operator= -
-
ip::basic_endpoint, ip::basic_endpoint::operator= -
-
ip::basic_resolver, ip::basic_resolver::operator= -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::operator= -
-
ip::basic_resolver_results, ip::basic_resolver_results::operator= -
-
ip::network_v4, ip::network_v4::operator= -
-
ip::network_v6, ip::network_v6::operator= -
-
local::basic_endpoint, local::basic_endpoint::operator= -
-
posix::descriptor, posix::descriptor::operator= -
-
posix::stream_descriptor, posix::stream_descriptor::operator= -
-
serial_port, serial_port::operator= -
-
ssl::context, ssl::context::operator= -
-
strand, strand::operator= -
-
system_error, system_error::operator= -
-
windows::object_handle, windows::object_handle::operator= -
-
windows::overlapped_handle, windows::overlapped_handle::operator= -
-
windows::random_access_handle, windows::random_access_handle::operator= -
-
windows::stream_handle, windows::stream_handle::operator= -
-
-
operator==
-
-
buffers_iterator, buffers_iterator::operator== -
-
error_category, error_category::operator== -
-
error_code, error_code::operator== -
-
executor, executor::operator== -
-
generic::basic_endpoint, generic::basic_endpoint::operator== -
-
generic::datagram_protocol, generic::datagram_protocol::operator== -
-
generic::raw_protocol, generic::raw_protocol::operator== -
-
generic::seq_packet_protocol, generic::seq_packet_protocol::operator== -
-
generic::stream_protocol, generic::stream_protocol::operator== -
-
io_context::executor_type, io_context::executor_type::operator== -
-
io_context::strand, io_context::strand::operator== -
-
ip::address, ip::address::operator== -
-
ip::address_v4, ip::address_v4::operator== -
-
ip::address_v6, ip::address_v6::operator== -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::operator== -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::operator== -
-
ip::basic_endpoint, ip::basic_endpoint::operator== -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::operator== -
-
ip::basic_resolver_results, ip::basic_resolver_results::operator== -
-
ip::icmp, ip::icmp::operator== -
-
ip::network_v4, ip::network_v4::operator== -
-
ip::network_v6, ip::network_v6::operator== -
-
ip::tcp, ip::tcp::operator== -
-
ip::udp, ip::udp::operator== -
-
local::basic_endpoint, local::basic_endpoint::operator== -
-
strand, strand::operator== -
-
system_executor, system_executor::operator== -
-
thread_pool::executor_type, thread_pool::executor_type::operator== -
-
-
operator>
-
-
buffers_iterator, buffers_iterator::operator> -
-
generic::basic_endpoint, generic::basic_endpoint::operator> -
-
ip::address, ip::address::operator> -
-
ip::address_v4, ip::address_v4::operator> -
-
ip::address_v6, ip::address_v6::operator> -
-
ip::basic_endpoint, ip::basic_endpoint::operator> -
-
local::basic_endpoint, local::basic_endpoint::operator> -
-
-
operator>=
-
-
buffers_iterator, buffers_iterator::operator>= -
-
generic::basic_endpoint, generic::basic_endpoint::operator>= -
-
ip::address, ip::address::operator>= -
-
ip::address_v4, ip::address_v4::operator>= -
-
ip::address_v6, ip::address_v6::operator>= -
-
ip::basic_endpoint, ip::basic_endpoint::operator>= -
-
local::basic_endpoint, local::basic_endpoint::operator>= -
-
-
operator[]
-
-
basic_yield_context, basic_yield_context::operator[] -
-
buffers_iterator, buffers_iterator::operator[] -
-
use_future_t, use_future_t::operator[] -
-
-
options
-
-
ssl::context, ssl::context::options -
-
ssl::context_base, ssl::context_base::options -
-
-
out_of_band_inline
-
-
basic_datagram_socket, basic_datagram_socket::out_of_band_inline -
-
basic_raw_socket, basic_raw_socket::out_of_band_inline -
-
basic_seq_packet_socket, basic_seq_packet_socket::out_of_band_inline -
-
basic_socket, basic_socket::out_of_band_inline -
-
basic_socket_acceptor, basic_socket_acceptor::out_of_band_inline -
-
basic_stream_socket, basic_stream_socket::out_of_band_inline -
-
socket_base, socket_base::out_of_band_inline -
-
-
overflow
-
-
basic_socket_streambuf, basic_socket_streambuf::overflow -
-
basic_streambuf, basic_streambuf::overflow -
-
-
overlapped_handle
-
windows::overlapped_handle, windows::overlapped_handle::overlapped_handle -
-
overlapped_ptr
-
windows::overlapped_ptr, windows::overlapped_ptr::overlapped_ptr -
-
owns_work
-
executor_work_guard, executor_work_guard::owns_work -
-
-
-
-

P

-
-
parity
-
serial_port_base::parity, serial_port_base::parity::parity -
-
passive
-
-
ip::basic_resolver, ip::basic_resolver::passive -
-
ip::basic_resolver_query, ip::basic_resolver_query::passive -
-
ip::resolver_base, ip::resolver_base::passive -
-
ip::resolver_query_base, ip::resolver_query_base::passive -
-
-
password_purpose
-
-
ssl::context, ssl::context::password_purpose -
-
ssl::context_base, ssl::context_base::password_purpose -
-
-
path
-
local::basic_endpoint, local::basic_endpoint::path -
-
peek
-
-
buffered_read_stream, buffered_read_stream::peek -
-
buffered_stream, buffered_stream::peek -
-
buffered_write_stream, buffered_write_stream::peek -
-
-
pem
-
-
ssl::context, ssl::context::file_format -
-
ssl::context_base, ssl::context_base::file_format -
-
-
placeholders::bytes_transferred, placeholders::bytes_transferred -
-
placeholders::endpoint, placeholders::endpoint -
-
placeholders::error, placeholders::error -
-
placeholders::iterator, placeholders::iterator -
-
placeholders::results, placeholders::results -
-
placeholders::signal_number, placeholders::signal_number -
-
pointer
-
-
buffers_iterator, buffers_iterator::pointer -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::pointer -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::pointer -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::pointer -
-
ip::basic_resolver_results, ip::basic_resolver_results::pointer -
-
-
poll
-
io_context, io_context::poll -
-
poll_one
-
io_context, io_context::poll_one -
-
port
-
ip::basic_endpoint, ip::basic_endpoint::port -
-
post, post -
-
-
executor, executor::post -
-
io_context, io_context::post -
-
io_context::executor_type, io_context::executor_type::post -
-
io_context::strand, io_context::strand::post -
-
strand, strand::post -
-
system_executor, system_executor::post -
-
thread_pool::executor_type, thread_pool::executor_type::post -
-
-
prefix_length
-
-
ip::network_v4, ip::network_v4::prefix_length -
-
ip::network_v6, ip::network_v6::prefix_length -
-
-
prepare
-
-
basic_streambuf, basic_streambuf::prepare -
-
basic_streambuf_ref, basic_streambuf_ref::prepare -
-
dynamic_string_buffer, dynamic_string_buffer::prepare -
-
dynamic_vector_buffer, dynamic_vector_buffer::prepare -
-
-
protocol
-
-
generic::basic_endpoint, generic::basic_endpoint::protocol -
-
generic::datagram_protocol, generic::datagram_protocol::protocol -
-
generic::raw_protocol, generic::raw_protocol::protocol -
-
generic::seq_packet_protocol, generic::seq_packet_protocol::protocol -
-
generic::stream_protocol, generic::stream_protocol::protocol -
-
ip::basic_endpoint, ip::basic_endpoint::protocol -
-
ip::icmp, ip::icmp::protocol -
-
ip::tcp, ip::tcp::protocol -
-
ip::udp, ip::udp::protocol -
-
local::basic_endpoint, local::basic_endpoint::protocol -
-
local::datagram_protocol, local::datagram_protocol::protocol -
-
local::stream_protocol, local::stream_protocol::protocol -
-
-
protocol_type
-
-
basic_datagram_socket, basic_datagram_socket::protocol_type -
-
basic_raw_socket, basic_raw_socket::protocol_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::protocol_type -
-
basic_socket, basic_socket::protocol_type -
-
basic_socket_acceptor, basic_socket_acceptor::protocol_type -
-
basic_socket_iostream, basic_socket_iostream::protocol_type -
-
basic_socket_streambuf, basic_socket_streambuf::protocol_type -
-
basic_stream_socket, basic_stream_socket::protocol_type -
-
generic::basic_endpoint, generic::basic_endpoint::protocol_type -
-
ip::basic_endpoint, ip::basic_endpoint::protocol_type -
-
ip::basic_resolver, ip::basic_resolver::protocol_type -
-
ip::basic_resolver_entry, ip::basic_resolver_entry::protocol_type -
-
ip::basic_resolver_query, ip::basic_resolver_query::protocol_type -
-
ip::basic_resolver_results, ip::basic_resolver_results::protocol_type -
-
local::basic_endpoint, local::basic_endpoint::protocol_type -
-
-
puberror
-
basic_socket_streambuf, basic_socket_streambuf::puberror -
-
-
-
-

Q

-
-
query
-
ip::basic_resolver, ip::basic_resolver::query -
-
-
-
-

R

-
-
random_access_handle
-
windows::random_access_handle, windows::random_access_handle::random_access_handle -
-
raw_protocol
-
generic::raw_protocol, generic::raw_protocol::raw_protocol -
-
rdbuf
-
basic_socket_iostream, basic_socket_iostream::rdbuf -
-
read, read -
-
read_at, read_at -
-
read_some
-
-
basic_stream_socket, basic_stream_socket::read_some -
-
buffered_read_stream, buffered_read_stream::read_some -
-
buffered_stream, buffered_stream::read_some -
-
buffered_write_stream, buffered_write_stream::read_some -
-
posix::stream_descriptor, posix::stream_descriptor::read_some -
-
serial_port, serial_port::read_some -
-
ssl::stream, ssl::stream::read_some -
-
windows::stream_handle, windows::stream_handle::read_some -
-
-
read_some_at
-
windows::random_access_handle, windows::random_access_handle::read_some_at -
-
read_until, read_until -
-
rebind
-
use_future_t, use_future_t::rebind -
-
receive
-
-
basic_datagram_socket, basic_datagram_socket::receive -
-
basic_raw_socket, basic_raw_socket::receive -
-
basic_seq_packet_socket, basic_seq_packet_socket::receive -
-
basic_stream_socket, basic_stream_socket::receive -
-
-
receive_buffer_size
-
-
basic_datagram_socket, basic_datagram_socket::receive_buffer_size -
-
basic_raw_socket, basic_raw_socket::receive_buffer_size -
-
basic_seq_packet_socket, basic_seq_packet_socket::receive_buffer_size -
-
basic_socket, basic_socket::receive_buffer_size -
-
basic_socket_acceptor, basic_socket_acceptor::receive_buffer_size -
-
basic_stream_socket, basic_stream_socket::receive_buffer_size -
-
socket_base, socket_base::receive_buffer_size -
-
-
receive_from
-
-
basic_datagram_socket, basic_datagram_socket::receive_from -
-
basic_raw_socket, basic_raw_socket::receive_from -
-
-
receive_low_watermark
-
-
basic_datagram_socket, basic_datagram_socket::receive_low_watermark -
-
basic_raw_socket, basic_raw_socket::receive_low_watermark -
-
basic_seq_packet_socket, basic_seq_packet_socket::receive_low_watermark -
-
basic_socket, basic_socket::receive_low_watermark -
-
basic_socket_acceptor, basic_socket_acceptor::receive_low_watermark -
-
basic_stream_socket, basic_stream_socket::receive_low_watermark -
-
socket_base, socket_base::receive_low_watermark -
-
-
redirect_error_t
-
experimental::redirect_error_t, experimental::redirect_error_t::redirect_error_t -
-
reference
-
-
buffers_iterator, buffers_iterator::reference -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::reference -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::reference -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::reference -
-
ip::basic_resolver_results, ip::basic_resolver_results::reference -
-
-
release
-
-
basic_datagram_socket, basic_datagram_socket::release -
-
basic_raw_socket, basic_raw_socket::release -
-
basic_seq_packet_socket, basic_seq_packet_socket::release -
-
basic_socket, basic_socket::release -
-
basic_socket_acceptor, basic_socket_acceptor::release -
-
basic_stream_socket, basic_stream_socket::release -
-
posix::descriptor, posix::descriptor::release -
-
posix::stream_descriptor, posix::stream_descriptor::release -
-
windows::overlapped_ptr, windows::overlapped_ptr::release -
-
-
remote_endpoint
-
-
basic_datagram_socket, basic_datagram_socket::remote_endpoint -
-
basic_raw_socket, basic_raw_socket::remote_endpoint -
-
basic_seq_packet_socket, basic_seq_packet_socket::remote_endpoint -
-
basic_socket, basic_socket::remote_endpoint -
-
basic_stream_socket, basic_stream_socket::remote_endpoint -
-
-
remove
-
signal_set, signal_set::remove -
-
reserve
-
basic_streambuf, basic_streambuf::reserve -
-
reset
-
-
executor_work_guard, executor_work_guard::reset -
-
io_context, io_context::reset -
-
windows::overlapped_ptr, windows::overlapped_ptr::reset -
-
-
resize
-
-
generic::basic_endpoint, generic::basic_endpoint::resize -
-
ip::basic_endpoint, ip::basic_endpoint::resize -
-
local::basic_endpoint, local::basic_endpoint::resize -
-
-
resolve
-
ip::basic_resolver, ip::basic_resolver::resolve -
-
resolver
-
-
ip::icmp, ip::icmp::resolver -
-
ip::tcp, ip::tcp::resolver -
-
ip::udp, ip::udp::resolver -
-
-
resolver_errc::try_again, resolver_errc::try_again -
-
restart
-
io_context, io_context::restart -
-
result
-
async_completion, async_completion::result -
-
results_type
-
ip::basic_resolver, ip::basic_resolver::results_type -
-
result_type
-
-
executor_binder, executor_binder::result_type -
-
ssl::rfc2818_verification, ssl::rfc2818_verification::result_type -
-
-
return_type
-
-
async_result, async_result::return_type -
-
async_result< - std::packaged_task< Result(Args...)>, Signature >, async_result< - std::packaged_task< Result(Args...)>, Signature >::return_type -
-
-
reuse_address
-
-
basic_datagram_socket, basic_datagram_socket::reuse_address -
-
basic_raw_socket, basic_raw_socket::reuse_address -
-
basic_seq_packet_socket, basic_seq_packet_socket::reuse_address -
-
basic_socket, basic_socket::reuse_address -
-
basic_socket_acceptor, basic_socket_acceptor::reuse_address -
-
basic_stream_socket, basic_stream_socket::reuse_address -
-
socket_base, socket_base::reuse_address -
-
-
rfc2818_verification
-
ssl::rfc2818_verification, ssl::rfc2818_verification::rfc2818_verification -
-
run
-
io_context, io_context::run -
-
running_in_this_thread
-
-
io_context::executor_type, io_context::executor_type::running_in_this_thread -
-
io_context::strand, io_context::strand::running_in_this_thread -
-
strand, strand::running_in_this_thread -
-
thread_pool::executor_type, thread_pool::executor_type::running_in_this_thread -
-
-
run_for
-
io_context, io_context::run_for -
-
run_one
-
io_context, io_context::run_one -
-
run_one_for
-
io_context, io_context::run_one_for -
-
run_one_until
-
io_context, io_context::run_one_until -
-
run_until
-
io_context, io_context::run_until -
-
-
-
-

S

-
-
scope_id
-
ip::address_v6, ip::address_v6::scope_id -
-
second_argument_type
-
executor_binder, executor_binder::second_argument_type -
-
send
-
-
basic_datagram_socket, basic_datagram_socket::send -
-
basic_raw_socket, basic_raw_socket::send -
-
basic_seq_packet_socket, basic_seq_packet_socket::send -
-
basic_stream_socket, basic_stream_socket::send -
-
-
send_break
-
serial_port, serial_port::send_break -
-
send_buffer_size
-
-
basic_datagram_socket, basic_datagram_socket::send_buffer_size -
-
basic_raw_socket, basic_raw_socket::send_buffer_size -
-
basic_seq_packet_socket, basic_seq_packet_socket::send_buffer_size -
-
basic_socket, basic_socket::send_buffer_size -
-
basic_socket_acceptor, basic_socket_acceptor::send_buffer_size -
-
basic_stream_socket, basic_stream_socket::send_buffer_size -
-
socket_base, socket_base::send_buffer_size -
-
-
send_low_watermark
-
-
basic_datagram_socket, basic_datagram_socket::send_low_watermark -
-
basic_raw_socket, basic_raw_socket::send_low_watermark -
-
basic_seq_packet_socket, basic_seq_packet_socket::send_low_watermark -
-
basic_socket, basic_socket::send_low_watermark -
-
basic_socket_acceptor, basic_socket_acceptor::send_low_watermark -
-
basic_stream_socket, basic_stream_socket::send_low_watermark -
-
socket_base, socket_base::send_low_watermark -
-
-
send_to
-
-
basic_datagram_socket, basic_datagram_socket::send_to -
-
basic_raw_socket, basic_raw_socket::send_to -
-
-
seq_packet_protocol
-
generic::seq_packet_protocol, generic::seq_packet_protocol::seq_packet_protocol -
-
serial_port
-
serial_port, serial_port::serial_port -
-
server
-
-
ssl::stream, ssl::stream::handshake_type -
-
ssl::stream_base, ssl::stream_base::handshake_type -
-
-
service
-
-
execution_context::service, execution_context::service::service -
-
io_context::service, io_context::service::service -
-
-
service_already_exists
-
service_already_exists, service_already_exists::service_already_exists -
-
service_name
-
-
ip::basic_resolver_entry, ip::basic_resolver_entry::service_name -
-
ip::basic_resolver_query, ip::basic_resolver_query::service_name -
-
-
service_not_found
-
error::addrinfo_errors, error::addrinfo_errors -
-
service_type
-
basic_io_object, basic_io_object::service_type -
-
setbuf
-
basic_socket_streambuf, basic_socket_streambuf::setbuf -
-
set_default_verify_paths
-
ssl::context, ssl::context::set_default_verify_paths -
-
set_option
-
-
basic_datagram_socket, basic_datagram_socket::set_option -
-
basic_raw_socket, basic_raw_socket::set_option -
-
basic_seq_packet_socket, basic_seq_packet_socket::set_option -
-
basic_socket, basic_socket::set_option -
-
basic_socket_acceptor, basic_socket_acceptor::set_option -
-
basic_stream_socket, basic_stream_socket::set_option -
-
serial_port, serial_port::set_option -
-
-
set_options
-
ssl::context, ssl::context::set_options -
-
set_password_callback
-
ssl::context, ssl::context::set_password_callback -
-
set_verify_callback
-
-
ssl::context, ssl::context::set_verify_callback -
-
ssl::stream, ssl::stream::set_verify_callback -
-
-
set_verify_depth
-
-
ssl::context, ssl::context::set_verify_depth -
-
ssl::stream, ssl::stream::set_verify_depth -
-
-
set_verify_mode
-
-
ssl::context, ssl::context::set_verify_mode -
-
ssl::stream, ssl::stream::set_verify_mode -
-
-
shutdown
-
-
basic_datagram_socket, basic_datagram_socket::shutdown -
-
basic_raw_socket, basic_raw_socket::shutdown -
-
basic_seq_packet_socket, basic_seq_packet_socket::shutdown -
-
basic_socket, basic_socket::shutdown -
-
basic_stream_socket, basic_stream_socket::shutdown -
-
execution_context, execution_context::shutdown -
-
execution_context::service, execution_context::service::shutdown -
-
io_context, io_context::shutdown -
-
ssl::stream, ssl::stream::shutdown -
-
system_context, system_context::shutdown -
-
thread_pool, thread_pool::shutdown -
-
-
shutdown_both
-
-
basic_datagram_socket, basic_datagram_socket::shutdown_type -
-
basic_raw_socket, basic_raw_socket::shutdown_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::shutdown_type -
-
basic_socket, basic_socket::shutdown_type -
-
basic_socket_acceptor, basic_socket_acceptor::shutdown_type -
-
basic_stream_socket, basic_stream_socket::shutdown_type -
-
socket_base, socket_base::shutdown_type -
-
-
shutdown_receive
-
-
basic_datagram_socket, basic_datagram_socket::shutdown_type -
-
basic_raw_socket, basic_raw_socket::shutdown_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::shutdown_type -
-
basic_socket, basic_socket::shutdown_type -
-
basic_socket_acceptor, basic_socket_acceptor::shutdown_type -
-
basic_stream_socket, basic_stream_socket::shutdown_type -
-
socket_base, socket_base::shutdown_type -
-
-
shutdown_send
-
-
basic_datagram_socket, basic_datagram_socket::shutdown_type -
-
basic_raw_socket, basic_raw_socket::shutdown_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::shutdown_type -
-
basic_socket, basic_socket::shutdown_type -
-
basic_socket_acceptor, basic_socket_acceptor::shutdown_type -
-
basic_stream_socket, basic_stream_socket::shutdown_type -
-
socket_base, socket_base::shutdown_type -
-
-
shutdown_type
-
-
basic_datagram_socket, basic_datagram_socket::shutdown_type -
-
basic_raw_socket, basic_raw_socket::shutdown_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::shutdown_type -
-
basic_socket, basic_socket::shutdown_type -
-
basic_socket_acceptor, basic_socket_acceptor::shutdown_type -
-
basic_stream_socket, basic_stream_socket::shutdown_type -
-
socket_base, socket_base::shutdown_type -
-
-
shut_down
-
error::basic_errors, error::basic_errors -
-
signal_set
-
signal_set, signal_set::signal_set -
-
single_dh_use
-
-
ssl::context, ssl::context::single_dh_use -
-
ssl::context_base, ssl::context_base::single_dh_use -
-
-
size
-
-
basic_streambuf, basic_streambuf::size -
-
basic_streambuf_ref, basic_streambuf_ref::size -
-
const_buffer, const_buffer::size -
-
const_buffers_1, const_buffers_1::size -
-
dynamic_string_buffer, dynamic_string_buffer::size -
-
dynamic_vector_buffer, dynamic_vector_buffer::size -
-
generic::basic_endpoint, generic::basic_endpoint::size -
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::size -
-
ip::basic_endpoint, ip::basic_endpoint::size -
-
ip::basic_resolver_results, ip::basic_resolver_results::size -
-
local::basic_endpoint, local::basic_endpoint::size -
-
mutable_buffer, mutable_buffer::size -
-
mutable_buffers_1, mutable_buffers_1::size -
-
-
size_type
-
ip::basic_resolver_results, ip::basic_resolver_results::size_type -
-
socket
-
-
basic_socket_iostream, basic_socket_iostream::socket -
-
basic_socket_streambuf, basic_socket_streambuf::socket -
-
generic::datagram_protocol, generic::datagram_protocol::socket -
-
generic::raw_protocol, generic::raw_protocol::socket -
-
generic::seq_packet_protocol, generic::seq_packet_protocol::socket -
-
generic::stream_protocol, generic::stream_protocol::socket -
-
ip::icmp, ip::icmp::socket -
-
ip::tcp, ip::tcp::socket -
-
ip::udp, ip::udp::socket -
-
local::datagram_protocol, local::datagram_protocol::socket -
-
local::stream_protocol, local::stream_protocol::socket -
-
-
socket_type_not_supported
-
error::addrinfo_errors, error::addrinfo_errors -
-
software
-
serial_port_base::flow_control, serial_port_base::flow_control::type -
-
spawn, spawn -
-
ssl
-
ssl::stream::impl_struct, ssl::stream::impl_struct::ssl -
-
ssl::error::get_stream_category, ssl::error::get_stream_category -
-
ssl::error::make_error_code, ssl::error::make_error_code -
-
ssl::error::stream_category, ssl::error::stream_category -
-
ssl::error::stream_errors, ssl::error::stream_errors -
-
ssl::verify_client_once, ssl::verify_client_once -
-
ssl::verify_fail_if_no_peer_cert, ssl::verify_fail_if_no_peer_cert -
-
ssl::verify_mode, ssl::verify_mode -
-
ssl::verify_none, ssl::verify_none -
-
ssl::verify_peer, ssl::verify_peer -
-
sslv2
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv23
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv23_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv23_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv2_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv2_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv3
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv3_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv3_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
steady_timer, steady_timer -
-
stop
-
-
io_context, io_context::stop -
-
system_context, system_context::stop -
-
thread_pool, thread_pool::stop -
-
-
stopped
-
-
io_context, io_context::stopped -
-
system_context, system_context::stopped -
-
-
stop_bits
-
serial_port_base::stop_bits, serial_port_base::stop_bits::stop_bits -
-
store
-
-
serial_port_base::baud_rate, serial_port_base::baud_rate::store -
-
serial_port_base::character_size, serial_port_base::character_size::store -
-
serial_port_base::flow_control, serial_port_base::flow_control::store -
-
serial_port_base::parity, serial_port_base::parity::store -
-
serial_port_base::stop_bits, serial_port_base::stop_bits::store -
-
-
strand
-
-
io_context::strand, io_context::strand::strand -
-
strand, strand::strand -
-
-
stream
-
ssl::stream, ssl::stream::stream -
-
streambuf, streambuf -
-
stream_descriptor
-
posix::stream_descriptor, posix::stream_descriptor::stream_descriptor -
-
stream_handle
-
windows::stream_handle, windows::stream_handle::stream_handle -
-
stream_protocol
-
generic::stream_protocol, generic::stream_protocol::stream_protocol -
-
stream_truncated
-
ssl::error::stream_errors, ssl::error::stream_errors -
-
subtract
-
time_traits< - boost::posix_time::ptime >, time_traits< - boost::posix_time::ptime >::subtract -
-
swap
-
ip::basic_resolver_results, ip::basic_resolver_results::swap -
-
sync
-
basic_socket_streambuf, basic_socket_streambuf::sync -
-
system_category, system_category -
-
system_error
-
system_error, system_error::system_error -
-
system_timer, system_timer -
-
-
-
-

T

-
-
target
-
executor, executor::target -
-
target_type
-
-
executor, executor::target_type -
-
executor_binder, executor_binder::target_type -
-
-
thread
-
thread, thread::thread -
-
thread_pool
-
thread_pool, thread_pool::thread_pool -
-
timed_out
-
error::basic_errors, error::basic_errors -
-
time_point
-
-
basic_socket_iostream, basic_socket_iostream::time_point -
-
basic_socket_streambuf, basic_socket_streambuf::time_point -
-
basic_waitable_timer, basic_waitable_timer::time_point -
-
-
time_type
-
-
basic_deadline_timer, basic_deadline_timer::time_type -
-
basic_socket_iostream, basic_socket_iostream::time_type -
-
basic_socket_streambuf, basic_socket_streambuf::time_type -
-
time_traits< - boost::posix_time::ptime >, time_traits< - boost::posix_time::ptime >::time_type -
-
-
tls
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv1
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv11
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv11_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv11_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv12
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv12_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv12_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv13
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv13_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv13_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv1_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv1_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tls_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tls_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
token_
-
experimental::redirect_error_t, experimental::redirect_error_t::token_ -
-
to_bytes
-
-
ip::address_v4, ip::address_v4::to_bytes -
-
ip::address_v6, ip::address_v6::to_bytes -
-
-
to_posix_duration
-
time_traits< - boost::posix_time::ptime >, time_traits< - boost::posix_time::ptime >::to_posix_duration -
-
to_string
-
-
ip::address, ip::address::to_string -
-
ip::address_v4, ip::address_v4::to_string -
-
ip::address_v6, ip::address_v6::to_string -
-
ip::network_v4, ip::network_v4::to_string -
-
ip::network_v6, ip::network_v6::to_string -
-
-
to_uint
-
ip::address_v4, ip::address_v4::to_uint -
-
to_ulong
-
ip::address_v4, ip::address_v4::to_ulong -
-
to_v4
-
-
ip::address, ip::address::to_v4 -
-
ip::address_v6, ip::address_v6::to_v4 -
-
-
to_v6
-
ip::address, ip::address::to_v6 -
-
to_wait_duration
-
wait_traits, wait_traits::to_wait_duration -
-
traits_type
-
-
basic_deadline_timer, basic_deadline_timer::traits_type -
-
basic_waitable_timer, basic_waitable_timer::traits_type -
-
-
transfer_all, transfer_all -
-
transfer_at_least, transfer_at_least -
-
transfer_exactly, transfer_exactly -
-
try_again
-
error::basic_errors, error::basic_errors -
-
two
-
serial_port_base::stop_bits, serial_port_base::stop_bits::type -
-
type
-
-
associated_allocator, associated_allocator::type -
-
associated_executor, associated_executor::type -
-
async_result< Handler - >, async_result< - Handler >::type -
-
generic::datagram_protocol, generic::datagram_protocol::type -
-
generic::raw_protocol, generic::raw_protocol::type -
-
generic::seq_packet_protocol, generic::seq_packet_protocol::type -
-
generic::stream_protocol, generic::stream_protocol::type -
-
handler_type, handler_type::type -
-
ip::icmp, ip::icmp::type -
-
ip::tcp, ip::tcp::type -
-
ip::udp, ip::udp::type -
-
local::datagram_protocol, local::datagram_protocol::type -
-
local::stream_protocol, local::stream_protocol::type -
-
serial_port_base::flow_control, serial_port_base::flow_control::type -
-
serial_port_base::parity, serial_port_base::parity::type -
-
serial_port_base::stop_bits, serial_port_base::stop_bits::type -
-
-
-
-
-

U

-
-
uint_type
-
ip::address_v4, ip::address_v4::uint_type -
-
underflow
-
-
basic_socket_streambuf, basic_socket_streambuf::underflow -
-
basic_streambuf, basic_streambuf::underflow -
-
-
unspecified_bool_true
-
-
error_code, error_code::unspecified_bool_true -
-
executor, executor::unspecified_bool_true -
-
-
unspecified_bool_type
-
-
error_code, error_code::unspecified_bool_type -
-
executor, executor::unspecified_bool_type -
-
-
use_certificate
-
ssl::context, ssl::context::use_certificate -
-
use_certificate_chain
-
ssl::context, ssl::context::use_certificate_chain -
-
use_certificate_chain_file
-
ssl::context, ssl::context::use_certificate_chain_file -
-
use_certificate_file
-
ssl::context, ssl::context::use_certificate_file -
-
use_future, use_future -
-
use_future_t
-
use_future_t, use_future_t::use_future_t -
-
use_private_key
-
ssl::context, ssl::context::use_private_key -
-
use_private_key_file
-
ssl::context, ssl::context::use_private_key_file -
-
use_rsa_private_key
-
ssl::context, ssl::context::use_rsa_private_key -
-
use_rsa_private_key_file
-
ssl::context, ssl::context::use_rsa_private_key_file -
-
use_service, use_service -
-
-
execution_context, execution_context::use_service -
-
io_context, io_context::use_service -
-
system_context, system_context::use_service -
-
thread_pool, thread_pool::use_service -
-
-
use_tmp_dh
-
ssl::context, ssl::context::use_tmp_dh -
-
use_tmp_dh_file
-
ssl::context, ssl::context::use_tmp_dh_file -
-
-
-
-

V

-
-
v4
-
-
ip::icmp, ip::icmp::v4 -
-
ip::tcp, ip::tcp::v4 -
-
ip::udp, ip::udp::v4 -
-
-
v4_compatible
-
ip::address_v6, ip::address_v6::v4_compatible -
-
v4_mapped
-
-
ip::address_v6, ip::address_v6::v4_mapped -
-
ip::basic_resolver, ip::basic_resolver::v4_mapped -
-
ip::basic_resolver_query, ip::basic_resolver_query::v4_mapped -
-
ip::resolver_base, ip::resolver_base::v4_mapped -
-
ip::resolver_query_base, ip::resolver_query_base::v4_mapped -
-
ip::v4_mapped_t, ip::v4_mapped_t -
-
-
v6
-
-
ip::icmp, ip::icmp::v6 -
-
ip::tcp, ip::tcp::v6 -
-
ip::udp, ip::udp::v6 -
-
-
value
-
-
error_code, error_code::value -
-
is_endpoint_sequence, is_endpoint_sequence::value -
-
is_match_condition, is_match_condition::value -
-
is_read_buffered, is_read_buffered::value -
-
is_write_buffered, is_write_buffered::value -
-
serial_port_base::baud_rate, serial_port_base::baud_rate::value -
-
serial_port_base::character_size, serial_port_base::character_size::value -
-
serial_port_base::flow_control, serial_port_base::flow_control::value -
-
serial_port_base::parity, serial_port_base::parity::value -
-
serial_port_base::stop_bits, serial_port_base::stop_bits::value -
-
-
values_
-
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::values_ -
-
ip::basic_resolver_results, ip::basic_resolver_results::values_ -
-
-
value_type
-
-
buffers_iterator, buffers_iterator::value_type -
-
const_buffers_1, const_buffers_1::value_type -
-
experimental::awaitable, experimental::awaitable::value_type -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::value_type -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::value_type -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::value_type -
-
ip::basic_resolver_results, ip::basic_resolver_results::value_type -
-
mutable_buffers_1, mutable_buffers_1::value_type -
-
null_buffers, null_buffers::value_type -
-
-
verify_context
-
ssl::verify_context, ssl::verify_context::verify_context -
-
-
-
-

W

-
-
wait
-
-
basic_datagram_socket, basic_datagram_socket::wait -
-
basic_deadline_timer, basic_deadline_timer::wait -
-
basic_raw_socket, basic_raw_socket::wait -
-
basic_seq_packet_socket, basic_seq_packet_socket::wait -
-
basic_socket, basic_socket::wait -
-
basic_socket_acceptor, basic_socket_acceptor::wait -
-
basic_stream_socket, basic_stream_socket::wait -
-
basic_waitable_timer, basic_waitable_timer::wait -
-
posix::descriptor, posix::descriptor::wait -
-
posix::stream_descriptor, posix::stream_descriptor::wait -
-
windows::object_handle, windows::object_handle::wait -
-
-
wait_error
-
-
basic_datagram_socket, basic_datagram_socket::wait_type -
-
basic_raw_socket, basic_raw_socket::wait_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::wait_type -
-
basic_socket, basic_socket::wait_type -
-
basic_socket_acceptor, basic_socket_acceptor::wait_type -
-
basic_stream_socket, basic_stream_socket::wait_type -
-
posix::descriptor, posix::descriptor::wait_type -
-
posix::descriptor_base, posix::descriptor_base::wait_type -
-
posix::stream_descriptor, posix::stream_descriptor::wait_type -
-
socket_base, socket_base::wait_type -
-
-
wait_read
-
-
basic_datagram_socket, basic_datagram_socket::wait_type -
-
basic_raw_socket, basic_raw_socket::wait_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::wait_type -
-
basic_socket, basic_socket::wait_type -
-
basic_socket_acceptor, basic_socket_acceptor::wait_type -
-
basic_stream_socket, basic_stream_socket::wait_type -
-
posix::descriptor, posix::descriptor::wait_type -
-
posix::descriptor_base, posix::descriptor_base::wait_type -
-
posix::stream_descriptor, posix::stream_descriptor::wait_type -
-
socket_base, socket_base::wait_type -
-
-
wait_type
-
-
basic_datagram_socket, basic_datagram_socket::wait_type -
-
basic_raw_socket, basic_raw_socket::wait_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::wait_type -
-
basic_socket, basic_socket::wait_type -
-
basic_socket_acceptor, basic_socket_acceptor::wait_type -
-
basic_stream_socket, basic_stream_socket::wait_type -
-
posix::descriptor, posix::descriptor::wait_type -
-
posix::descriptor_base, posix::descriptor_base::wait_type -
-
posix::stream_descriptor, posix::stream_descriptor::wait_type -
-
socket_base, socket_base::wait_type -
-
-
wait_write
-
-
basic_datagram_socket, basic_datagram_socket::wait_type -
-
basic_raw_socket, basic_raw_socket::wait_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::wait_type -
-
basic_socket, basic_socket::wait_type -
-
basic_socket_acceptor, basic_socket_acceptor::wait_type -
-
basic_stream_socket, basic_stream_socket::wait_type -
-
posix::descriptor, posix::descriptor::wait_type -
-
posix::descriptor_base, posix::descriptor_base::wait_type -
-
posix::stream_descriptor, posix::stream_descriptor::wait_type -
-
socket_base, socket_base::wait_type -
-
-
what
-
-
bad_executor, bad_executor::what -
-
ip::bad_address_cast, ip::bad_address_cast::what -
-
system_error, system_error::what -
-
-
work
-
io_context::work, io_context::work::work -
-
would_block
-
error::basic_errors, error::basic_errors -
-
wrap
-
-
io_context, io_context::wrap -
-
io_context::strand, io_context::strand::wrap -
-
-
write, write -
-
write_at, write_at -
-
write_some
-
-
basic_stream_socket, basic_stream_socket::write_some -
-
buffered_read_stream, buffered_read_stream::write_some -
-
buffered_stream, buffered_stream::write_some -
-
buffered_write_stream, buffered_write_stream::write_some -
-
posix::stream_descriptor, posix::stream_descriptor::write_some -
-
serial_port, serial_port::write_some -
-
ssl::stream, ssl::stream::write_some -
-
windows::stream_handle, windows::stream_handle::write_some -
-
-
write_some_at
-
windows::random_access_handle, windows::random_access_handle::write_some_at -
-
-
-
-

Y

-
yield_context, yield_context -
-
-
-
-
- - - -
-
-
-PrevUpHome -
- - diff --git a/Sources/Vendor/asio/doc/asio/net_ts.html b/Sources/Vendor/asio/doc/asio/net_ts.html deleted file mode 100644 index e1f85e0..0000000 --- a/Sources/Vendor/asio/doc/asio/net_ts.html +++ /dev/null @@ -1,1240 +0,0 @@ - - - -Networking TS compatibility - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio now provides the interfaces and functionality specified by the "C++ - Extensions for Networking" Technical Specification. In addition to access - via the usual Asio header files, this functionality may be accessed through - special headers that correspond to the header files defined in the TS. These - are listed in the table below: -

-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Networking TS header -

-
-

- Asio header -

-
-

- #include <buffer> -

-
-

- #include <asio/ts/buffer.hpp> -

-
-

- #include <executor> -

-
-

- #include <asio/ts/executor.hpp> -

-
-

- #include <internet> -

-
-

- #include <asio/ts/internet.hpp> -

-
-

- #include <io_context> -

-
-

- #include <asio/ts/io_context.hpp> -

-
-

- #include <net> -

-
-

- #include <asio/ts/net.hpp> -

-
-

- #include <netfwd> -

-
-

- #include <asio/ts/netfwd.hpp> -

-
-

- #include <socket> -

-
-

- #include <asio/ts/socket.hpp> -

-
-

- #include <timer> -

-
-

- #include <asio/ts/timer.hpp> -

-
-

- In some cases the new Networking TS compatible interfaces supersede older Asio - facilities. In these cases the older interfaces have been deprecated. The table - below shows the new Networking TS interfaces and the facilities they replace: -

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- New interface -

-
-

- Old interface -

-
-

- Notes -

-
-

- io_context -

-
-

- io_service -

-
-

- The name io_service is retained as a typedef. -

-
-

- dispatch -

-
-

- io_service::dispatch -

-
-

- The dispatch free function can be used to submit functions - to any Executor or - ExecutionContext. -

-
-

- post -

-
-

- io_service::post -

-
-

- The dispatch free function can be used to submit functions - to any Executor or - ExecutionContext. -

-
-

- defer -

-
-

- io_service::post - when the asio_handler_is_continuation - hook returns true -

-
-

- The defer free function can be used to submit functions - to any Executor or - ExecutionContext. -

-
-

- io_context::poll -

-
-

- io_service::poll - overload that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- io_context::poll_one -

-
-

- io_service::poll_one - overload that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- io_context::run -

-
-

- io_service::run - overload that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- io_context::run_one -

-
-

- io_service::run_one - overload that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- io_context::run_for, - io_context::run_until, - io_context::run_one_for, - and io_context::run_one_until -

-
- -

- These functions add the ability to run an io_context - for a limited time. -

-
-

- io_context::restart -

-
-

- io_service::reset -

-
-
-

- io_context - constructor concurrency_hint parameter is type int -

-
-

- io_context - constructor concurrency_hint parameter is type std::size_t -

-
-

- The old constructor has not been retained as a deprecated overload. -

-
-

- execution_context, - execution_context::service, - and execution_context::id -

-
-

- io_service, - io_service::service, - and io_service::id -

-
-

- The service-related functionality has been moved to the execution_context - base class. This may also be used as a base for creating custom execution - contexts. -

-
-

- make_service -

-
-

- add_service -

-
-
-

- strand -

-
-

- io_service::strand -

-
-

- This template works with any valid executor, and is itself a valid - executor. -

-
-

- executor_work_guard - and make_work_guard -

-
-

- io_service::work -

-
-

- Work tracking is now covered by the Executor - requirements. These templates work with any valid executor. -

-
-

- executor_binder - and bind_executor -

-
-

- io_service::wrap - and io_service::strand::wrap -

-
-

- These templates work with any valid executor. -

-
-

- async_result - with CompletionToken and Signature template - parameters -

-
-

- handler_type - and single parameter async_result -

-
-

- The async_result trait is now the single point of customisation - for asynchronous operation completion handlers and return type. -

-
-

- associated_executor - and get_associated_executor -

-
-

- asio_handler_invoke -

-
-

- The handler invocation hook has been replaced by the new Executor - requirements and the associated executor traits. -

-
-

- associated_allocator - and get_associated_allocator -

-
-

- asio_handler_allocate - and asio_handler_deallocate -

-
-

- The handler allocation hooks have been replaced by the standard Allocator - requirements and the associated allocator traits. -

-
-

- const_buffer::data - and mutable_buffer::data -

-
-

- buffer_cast -

-
-
-

- const_buffer::size - and mutable_buffer::size -

-
-

- buffer_size - for single buffers -

-
-

- buffer_size is not deprecated for single buffers as - const_buffer and mutable_buffer now satisfy - the buffer sequence requirements -

-
-

- const_buffer -

-
-

- const_buffers_1 -

-
-

- The ConstBufferSequence - requirements have been modified such that const_buffer - now satisfies them. -

-
-

- mutable_buffer -

-
-

- mutable_buffers_1 -

-
-

- The MutableBufferSequence - requirements have been modified such that mutable_buffer - now satisfies them. -

-
-

- basic_socket::get_executor - (and corresponding member for I/O objects such as timers, serial - ports, etc.) -

-
-

- basic_io_object::get_io_service -

-
-

- Use get_executor().context() to obtain the associated - io_context. -

-
-

- socket_base::max_listen_connections -

-
-

- socket_base::max_connections -

-
-
-

- socket_base::wait_type, - basic_socket::wait, - basic_socket::async_wait, - basic_socket_acceptor::wait, - and basic_socket_acceptor::async_wait -

-
-

- null_buffers -

-
-

- Operations for reactive I/O. -

-
-

- basic_socket_acceptor::accept - returns a socket -

-
-

- basic_socket_acceptor::accept - takes a socket by reference -

-
-

- Uses move support so requires C++11 or later. To accept a connection - into a socket object on a different io_context, pass - the destination context to accept. -

-
-

- basic_socket_acceptor::async_accept - passes socket to handler -

-
-

- basic_socket_acceptor::async_accept - takes a socket by reference -

-
-

- Uses move support so requires C++11 or later. To accept a connection - into a socket object on a different io_context, pass - the destination context to async_accept. -

-
-

- connect - overloads that take a range -

-
-

- connect - overloads that take a single iterator -

-
-

- The ip::basic_resolver::resolve - function now returns a range. When the resolve function's - result is passed directly to connect, the range overload - will be selected. -

-
-

- async_connect - overloads that take a range -

-
-

- async_connect - overloads that take a single iterator -

-
-

- The ip::basic_resolver::resolve - function now returns a range. When the resolve function's - result is passed directly to async_connect, the range - overload will be selected. -

-
-

- basic_socket_streambuf::duration -

-
-

- basic_socket_streambuf::duration_type -

-
-
-

- basic_socket_streambuf::time_point -

-
-

- basic_socket_streambuf::time_type -

-
-
-

- basic_socket_streambuf::expiry -

-
-

- basic_socket_streambuf::expires_at - and basic_socket_streambuf::expires_from_now - getters -

-
-
-

- basic_socket_streambuf::expires_after -

-
-

- basic_socket_streambuf::expires_from_now - setter -

-
-
-

- basic_socket_streambuf::error -

-
-

- basic_socket_streambuf::puberror -

-
-
-

- basic_socket_iostream::duration -

-
-

- basic_socket_iostream::duration_type -

-
-
-

- basic_socket_iostream::time_point -

-
-

- basic_socket_iostream::time_type -

-
-
-

- basic_socket_iostream::expiry -

-
-

- basic_socket_iostream::expires_at - and basic_socket_iostream::expires_from_now - getters -

-
-
-

- basic_socket_iostream::expires_after -

-
-

- basic_socket_iostream::expires_from_now - setter -

-
-
-

- basic_waitable_timer::cancel -

-
-

- basic_waitable_timer::cancel - overload that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- basic_waitable_timer::cancel_one -

-
-

- basic_waitable_timer::cancel_one - overload that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- basic_waitable_timer::expires_at - setter -

-
-

- basic_waitable_timer::expires_at - setter that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- basic_waitable_timer::expiry -

-
-

- basic_waitable_timer::expires_at - and basic_waitable_timer::expires_from_now - getters -

-
-
-

- basic_waitable_timer::expires_after -

-
-

- basic_waitable_timer::expires_from_now - setter -

-
-
-

- ip::make_address -

-
-

- ip::address::from_string -

-
-
-

- ip::make_address_v4 -

-
-

- ip::address_v4::from_string - and ip::address_v6::to_v4 -

-
-
-

- ip::make_address_v6 -

-
-

- ip::address_v6::from_string - and ip::address_v6::v4_mapped -

-
-
-

- ip::address::to_string -

-
-

- ip::address::to_string - that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- ip::address_v4::to_string -

-
-

- ip::address_v4::to_string - that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- ip::address_v6::to_string -

-
-

- ip::address_v6::to_string - that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- No replacement -

-
-

- ip::address_v6::is_v4_compatible - and ip::address_v6::v4_compatible -

-
-
-

- ip::network_v4 -

-
-

- ip::address_v4::broadcast, - ip::address_v4::is_class_a, - ip::address_v4::is_class_b, - ip::address_v4::is_class_c, - and ip::address_v4::netmask -

-
-

- The network_v4 class adds the ability to manipulate - IPv4 network addresses using CIDR notation. -

-
-

- ip::network_v6 -

-
- -

- The network_v6 class adds the ability to manipulate - IPv6 network addresses using CIDR notation. -

-
-

- ip::address_v4_iterator - and ip::address_v4_range -

-
- -

- The ip::address_v4_iterator and address_v4_range - classes add the ability to iterate over all, or a subset of, IPv4 - addresses. -

-
-

- ip::address_v6_iterator - and ip::address_v6_range -

-
- -

- The ip::address_v6_iterator and address_v6_range - classes add the ability to iterate over all, or a subset of, IPv6 - addresses. -

-
-

- ip::basic_resolver::results_type -

-
-

- ip::basic_resolver::iterator -

-
-

- Resolvers now produce ranges rather than single iterators. -

-
-

- ip::basic_resolver::resolve - overloads taking hostname and service as arguments -

-
-

- ip::basic_resolver::resolve - overloads taking a ip::basic_resolver::query -

-
-
-

- ip::basic_resolver::resolve - returns a range -

-
-

- ip::basic_resolver::resolve - returns a single iterator -

-
-
-

- ip::basic_resolver::async_resolve - overloads taking hostname and service as arguments -

-
-

- ip::basic_resolver::async_resolve - overloads taking a ip::basic_resolver::query -

-
-
-

- ip::basic_resolver::async_resolve - calls the handler with a range -

-
-

- ip::basic_resolver::async_resolve - calls the handler with a single iterator -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview.html b/Sources/Vendor/asio/doc/asio/overview.html deleted file mode 100644 index e4c62de..0000000 --- a/Sources/Vendor/asio/doc/asio/overview.html +++ /dev/null @@ -1,155 +0,0 @@ - - - -Overview - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
- - - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core.html b/Sources/Vendor/asio/doc/asio/overview/core.html deleted file mode 100644 index 0585152..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -Core Concepts and Functionality - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
- - - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/allocation.html b/Sources/Vendor/asio/doc/asio/overview/core/allocation.html deleted file mode 100644 index 6b29c8a..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/allocation.html +++ /dev/null @@ -1,135 +0,0 @@ - - - -Custom Memory Allocation - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Many asynchronous operations need to allocate an object to store state - associated with the operation. For example, a Win32 implementation needs - OVERLAPPED-derived objects - to pass to Win32 API functions. -

-

- Furthermore, programs typically contain easily identifiable chains of asynchronous - operations. A half duplex protocol implementation (e.g. an HTTP server) - would have a single chain of operations per client (receives followed by - sends). A full duplex protocol implementation would have two chains executing - in parallel. Programs should be able to leverage this knowledge to reuse - memory for all asynchronous operations in a chain. -

-

- Given a copy of a user-defined Handler - object h, if the implementation - needs to allocate memory associated with that handler it will obtain an - allocator using the get_associated_allocator - function. For example: -

-
asio::associated_allocator_t<Handler> a = asio::get_associated_allocator(h);
-
-

- The associated allocator must satisfy the standard Allocator requirements. -

-

- By default, handlers use the standard allocator (which is implemented in - terms of ::operator - new() - and ::operator - delete()). - The allocator may be customised for a particular handler type by specifying - a nested type allocator_type - and member function get_allocator(): -

-
class my_handler
-{
-public:
-  // Custom implementation of Allocator type requirements.
-  typedef my_allocator allocator_type;
-
-  // Return a custom allocator implementation.
-  allocator_type get_allocator() const noexcept
-  {
-    return my_allocator();
-  }
-
-  void operator()() { ... }
-};
-
-

- In more complex cases, the associated_allocator - template may be partially specialised directly: -

-
namespace asio {
-
-  template <typename Allocator>
-  struct associated_allocator<my_handler, Allocator>
-  {
-    // Custom implementation of Allocator type requirements.
-    typedef my_allocator type;
-
-    // Return a custom allocator implementation.
-    static type get(const my_handler&,
-        const Allocator& a = Allocator()) noexcept
-    {
-      return my_allocator();
-    }
-  };
-
-} // namespace asio
-
-

- The implementation guarantees that the deallocation will occur before the - associated handler is invoked, which means the memory is ready to be reused - for any new asynchronous operations started by the handler. -

-

- The custom memory allocation functions may be called from any user-created - thread that is calling a library function. The implementation guarantees - that, for the asynchronous operations included the library, the implementation - will not make concurrent calls to the memory allocation functions for that - handler. The implementation will insert appropriate memory barriers to - ensure correct memory visibility should allocation functions need to be - called from different threads. -

-
- - See - Also -
-

- associated_allocator, - get_associated_allocator, - custom memory allocation - example (C++03), custom - memory allocation example (C++11). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/async.html b/Sources/Vendor/asio/doc/asio/overview/core/async.html deleted file mode 100644 index c0b7b9a..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/async.html +++ /dev/null @@ -1,279 +0,0 @@ - - - -The Proactor Design Pattern: Concurrency Without Threads - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The Asio library offers side-by-side support for synchronous and asynchronous - operations. The asynchronous support is based on the Proactor design pattern - [POSA2]. The - advantages and disadvantages of this approach, when compared to a synchronous-only - or Reactor approach, are outlined below. -

-
- - Proactor - and Asio -
-

- Let us examine how the Proactor design pattern is implemented in Asio, - without reference to platform-specific details. -

-

- proactor -

-

- Proactor design pattern (adapted from [POSA2]) -

-

- — Asynchronous Operation -

-

- Defines an operation that is executed asynchronously, such as an asynchronous - read or write on a socket. -

-

- — Asynchronous Operation Processor -

-

- Executes asynchronous operations and queues events on a completion event - queue when operations complete. From a high-level point of view, internal - services like reactive_socket_service - are asynchronous operation processors. -

-

- — Completion Event Queue -

-

- Buffers completion events until they are dequeued by an asynchronous - event demultiplexer. -

-

- — Completion Handler -

-

- Processes the result of an asynchronous operation. These are function - objects, often created using boost::bind. -

-

- — Asynchronous Event Demultiplexer -

-

- Blocks waiting for events to occur on the completion event queue, and - returns a completed event to its caller. -

-

- — Proactor -

-

- Calls the asynchronous event demultiplexer to dequeue events, and dispatches - the completion handler (i.e. invokes the function object) associated - with the event. This abstraction is represented by the io_context class. -

-

- — Initiator -

-

- Application-specific code that starts asynchronous operations. The initiator - interacts with an asynchronous operation processor via a high-level interface - such as basic_stream_socket, - which in turn delegates to a service like reactive_socket_service. -

-
- - Implementation - Using Reactor -
-

- On many platforms, Asio implements the Proactor design pattern in terms - of a Reactor, such as select, - epoll or kqueue. This implementation approach - corresponds to the Proactor design pattern as follows: -

-

- — Asynchronous Operation Processor -

-

- A reactor implemented using select, - epoll or kqueue. When the reactor indicates - that the resource is ready to perform the operation, the processor executes - the asynchronous operation and enqueues the associated completion handler - on the completion event queue. -

-

- — Completion Event Queue -

-

- A linked list of completion handlers (i.e. function objects). -

-

- — Asynchronous Event Demultiplexer -

-

- This is implemented by waiting on an event or condition variable until - a completion handler is available in the completion event queue. -

-
- - Implementation - Using Windows Overlapped I/O -
-

- On Windows NT, 2000 and XP, Asio takes advantage of overlapped I/O to provide - an efficient implementation of the Proactor design pattern. This implementation - approach corresponds to the Proactor design pattern as follows: -

-

- — Asynchronous Operation Processor -

-

- This is implemented by the operating system. Operations are initiated - by calling an overlapped function such as AcceptEx. -

-

- — Completion Event Queue -

-

- This is implemented by the operating system, and is associated with an - I/O completion port. There is one I/O completion port for each io_context instance. -

-

- — Asynchronous Event Demultiplexer -

-

- Called by Asio to dequeue events and their associated completion handlers. -

-
- - Advantages -
-

- — Portability. -

-

- Many operating systems offer a native asynchronous I/O API (such as overlapped - I/O on Windows) as the preferred option for developing - high performance network applications. The library may be implemented - in terms of native asynchronous I/O. However, if native support is not - available, the library may also be implemented using synchronous event - demultiplexors that typify the Reactor pattern, such as POSIX - select(). -

-

- — Decoupling threading from concurrency. -

-

- Long-duration operations are performed asynchronously by the implementation - on behalf of the application. Consequently applications do not need to - spawn many threads in order to increase concurrency. -

-

- — Performance and scalability. -

-

- Implementation strategies such as thread-per-connection (which a synchronous-only - approach would require) can degrade system performance, due to increased - context switching, synchronisation and data movement among CPUs. With - asynchronous operations it is possible to avoid the cost of context switching - by minimising the number of operating system threads — typically a limited - resource — and only activating the logical threads of control that have - events to process. -

-

- — Simplified application synchronisation. -

-

- Asynchronous operation completion handlers can be written as though they - exist in a single-threaded environment, and so application logic can - be developed with little or no concern for synchronisation issues. -

-

- — Function composition. -

-

- Function composition refers to the implementation of functions to provide - a higher-level operation, such as sending a message in a particular format. - Each function is implemented in terms of multiple calls to lower-level - read or write operations. -

-

- For example, consider a protocol where each message consists of a fixed-length - header followed by a variable length body, where the length of the body - is specified in the header. A hypothetical read_message operation could - be implemented using two lower-level reads, the first to receive the - header and, once the length is known, the second to receive the body. -

-

- To compose functions in an asynchronous model, asynchronous operations - can be chained together. That is, a completion handler for one operation - can initiate the next. Starting the first call in the chain can be encapsulated - so that the caller need not be aware that the higher-level operation - is implemented as a chain of asynchronous operations. -

-

- The ability to compose new operations in this way simplifies the development - of higher levels of abstraction above a networking library, such as functions - to support a specific protocol. -

-
- - Disadvantages -
-

- — Program complexity. -

-

- It is more difficult to develop applications using asynchronous mechanisms - due to the separation in time and space between operation initiation - and completion. Applications may also be harder to debug due to the inverted - flow of control. -

-

- — Memory usage. -

-

- Buffer space must be committed for the duration of a read or write operation, - which may continue indefinitely, and a separate buffer is required for - each concurrent operation. The Reactor pattern, on the other hand, does - not require buffer space until a socket is ready for reading or writing. -

-
- - References -
-

- [POSA2] D. Schmidt et al, Pattern Oriented Software Architecture, - Volume 2. Wiley, 2000. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/basics.html b/Sources/Vendor/asio/doc/asio/overview/core/basics.html deleted file mode 100644 index eef3931..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/basics.html +++ /dev/null @@ -1,166 +0,0 @@ - - - -Basic Asio Anatomy - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio may be used to perform both synchronous and asynchronous operations - on I/O objects such as sockets. Before using Asio it may be useful to get - a conceptual picture of the various parts of Asio, your program, and how - they work together. -

-

- As an introductory example, let's consider what happens when you perform - a connect operation on a socket. We shall start by examining synchronous - operations. -

-

- sync_op -

-

- Your program will have at least one io_context object. The io_context - represents your program's link to the - operating system's I/O services. -

-
asio::io_context io_context;
-
-

- To perform I/O operations your program - will need an I/O object such as a TCP - socket: -

-
asio::ip::tcp::socket socket(io_context);
-
-

- When a synchronous connect operation is performed, the following sequence - of events occurs: -

-

- 1. Your program initiates the connect - operation by calling the I/O object: -

-
socket.connect(server_endpoint);
-
-

- 2. The I/O object forwards the request - to the io_context. -

-

- 3. The io_context calls on the operating system to perform the connect operation. -

-

- 4. The operating system returns the result - of the operation to the io_context. -

-

- 5. The io_context translates any error - resulting from the operation into an object of type asio::error_code. - An error_code may be compared - with specific values, or tested as a boolean (where a false - result means that no error occurred). The result is then forwarded back - up to the I/O object. -

-

- 6. The I/O object throws an exception - of type asio::system_error if the operation failed. - If the code to initiate the operation had instead been written as: -

-
asio::error_code ec;
-socket.connect(server_endpoint, ec);
-
-

- then the error_code variable - ec would be set to the - result of the operation, and no exception would be thrown. -

-

- When an asynchronous operation is used, a different sequence of events - occurs. -

-

- async_op1 -

-

- 1. Your program initiates the connect - operation by calling the I/O object: -

-
socket.async_connect(server_endpoint, your_completion_handler);
-
-

- where your_completion_handler - is a function or function object with the signature: -

-
void your_completion_handler(const asio::error_code& ec);
-
-

- The exact signature required depends on the asynchronous operation being - performed. The reference documentation indicates the appropriate form for - each operation. -

-

- 2. The I/O object forwards the request - to the io_context. -

-

- 3. The io_context signals to the operating system that it should start an asynchronous - connect. -

-

- Time passes. (In the synchronous case this wait would have been contained - entirely within the duration of the connect operation.) -

-

- async_op2 -

-

- 4. The operating system indicates that - the connect operation has completed by placing the result on a queue, ready - to be picked up by the io_context. -

-

- 5. Your program must make a call to io_context::run() - (or to one of the similar io_context member - functions) in order for the result to be retrieved. A call to io_context::run() - blocks while there are unfinished asynchronous operations, so you would - typically call it as soon as you have started your first asynchronous operation. -

-

- 6. While inside the call to io_context::run(), the io_context - dequeues the result of the operation, translates it into an error_code, and then passes it to your completion handler. -

-

- This is a simplified picture of how Asio operates. You will want to delve - further into the documentation if your needs are more advanced, such as - extending Asio to perform other types of asynchronous operations. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/buffers.html b/Sources/Vendor/asio/doc/asio/overview/core/buffers.html deleted file mode 100644 index dde3533..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/buffers.html +++ /dev/null @@ -1,234 +0,0 @@ - - - -Buffers - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Fundamentally, I/O involves the transfer of data to and from contiguous - regions of memory, called buffers. These buffers can be simply expressed - as a tuple consisting of a pointer and a size in bytes. However, to allow - the development of efficient network applications, Asio includes support - for scatter-gather operations. These operations involve one or more buffers: -

-
    -
  • - A scatter-read receives data into multiple buffers. -
  • -
  • - A gather-write transmits multiple buffers. -
  • -
-

- Therefore we require an abstraction to represent a collection of buffers. - The approach used in Asio is to define a type (actually two types) to represent - a single buffer. These can be stored in a container, which may be passed - to the scatter-gather operations. -

-

- In addition to specifying buffers as a pointer and size in bytes, Asio - makes a distinction between modifiable memory (called mutable) and non-modifiable - memory (where the latter is created from the storage for a const-qualified - variable). These two types could therefore be defined as follows: -

-
typedef std::pair<void*, std::size_t> mutable_buffer;
-typedef std::pair<const void*, std::size_t> const_buffer;
-
-

- Here, a mutable_buffer would be convertible to a const_buffer, but conversion - in the opposite direction is not valid. -

-

- However, Asio does not use the above definitions as-is, but instead defines - two classes: mutable_buffer - and const_buffer. The goal - of these is to provide an opaque representation of contiguous memory, where: -

-
    -
  • - Types behave as std::pair would in conversions. That is, a mutable_buffer is convertible to - a const_buffer, but - the opposite conversion is disallowed. -
  • -
  • - There is protection against buffer overruns. Given a buffer instance, - a user can only create another buffer representing the same range of - memory or a sub-range of it. To provide further safety, the library - also includes mechanisms for automatically determining the size of - a buffer from an array, boost::array - or std::vector of POD elements, or from a - std::string. -
  • -
  • - The underlying memory is explicitly accessed using the data() - member function. In general an application should never need to do - this, but it is required by the library implementation to pass the - raw memory to the underlying operating system functions. -
  • -
-

- Finally, multiple buffers can be passed to scatter-gather operations (such - as read() or write()) - by putting the buffer objects into a container. The MutableBufferSequence - and ConstBufferSequence - concepts have been defined so that containers such as std::vector, - std::list, std::vector - or boost::array can be used. -

-
- - Streambuf - for Integration with Iostreams -
-

- The class asio::basic_streambuf is derived from std::basic_streambuf to associate the input - sequence and output sequence with one or more objects of some character - array type, whose elements store arbitrary values. These character array - objects are internal to the streambuf object, but direct access to the - array elements is provided to permit them to be used with I/O operations, - such as the send or receive operations of a socket: -

-
    -
  • - The input sequence of the streambuf is accessible via the data() - member function. The return type of this function meets the ConstBufferSequence requirements. -
  • -
  • - The output sequence of the streambuf is accessible via the prepare() - member function. The return type of this function meets the MutableBufferSequence requirements. -
  • -
  • - Data is transferred from the front of the output sequence to the back - of the input sequence by calling the commit() - member function. -
  • -
  • - Data is removed from the front of the input sequence by calling the - consume() - member function. -
  • -
-

- The streambuf constructor accepts a size_t - argument specifying the maximum of the sum of the sizes of the input sequence - and output sequence. Any operation that would, if successful, grow the - internal data beyond this limit will throw a std::length_error - exception. -

-
- - Bytewise - Traversal of Buffer Sequences -
-

- The buffers_iterator<> - class template allows buffer sequences (i.e. types meeting MutableBufferSequence or ConstBufferSequence requirements) to - be traversed as though they were a contiguous sequence of bytes. Helper - functions called buffers_begin() and buffers_end() are also provided, where - the buffers_iterator<> template parameter is automatically deduced. -

-

- As an example, to read a single line from a socket and into a std::string, you may write: -

-
asio::streambuf sb;
-...
-std::size_t n = asio::read_until(sock, sb, '\n');
-asio::streambuf::const_buffers_type bufs = sb.data();
-std::string line(
-    asio::buffers_begin(bufs),
-    asio::buffers_begin(bufs) + n);
-
-
- - Buffer - Debugging -
-

- Some standard library implementations, such as the one that ships with - Microsoft Visual C++ 8.0 and later, provide a feature called iterator debugging. - What this means is that the validity of iterators is checked at runtime. - If a program tries to use an iterator that has been invalidated, an assertion - will be triggered. For example: -

-
std::vector<int> v(1)
-std::vector<int>::iterator i = v.begin();
-v.clear(); // invalidates iterators
-*i = 0; // assertion!
-
-

- Asio takes advantage of this feature to add buffer debugging. Consider - the following code: -

-
void dont_do_this()
-{
- std::string msg = "Hello, world!";
- asio::async_write(sock, asio::buffer(msg), my_handler);
-}
-
-

- When you call an asynchronous read or write you need to ensure that the - buffers for the operation are valid until the completion handler is called. - In the above example, the buffer is the std::string - variable msg. This variable - is on the stack, and so it goes out of scope before the asynchronous operation - completes. If you're lucky then the application will crash, but random - failures are more likely. -

-

- When buffer debugging is enabled, Asio stores an iterator into the string - until the asynchronous operation completes, and then dereferences it to - check its validity. In the above example you would observe an assertion - failure just before Asio tries to call the completion handler. -

-

- This feature is automatically made available for Microsoft Visual Studio - 8.0 or later and for GCC when _GLIBCXX_DEBUG - is defined. There is a performance cost to this checking, so buffer debugging - is only enabled in debug builds. For other compilers it may be enabled - by defining ASIO_ENABLE_BUFFER_DEBUGGING. - It can also be explicitly disabled by defining ASIO_DISABLE_BUFFER_DEBUGGING. -

-
- - See - Also -
-

- buffer, buffers_begin, - buffers_end, buffers_iterator, - const_buffer, const_buffers_1, mutable_buffer, mutable_buffers_1, - streambuf, ConstBufferSequence, - MutableBufferSequence, - buffers example (C++03), - buffers example (c++11). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/concurrency_hint.html b/Sources/Vendor/asio/doc/asio/overview/core/concurrency_hint.html deleted file mode 100644 index 7205a29..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/concurrency_hint.html +++ /dev/null @@ -1,167 +0,0 @@ - - - -Concurrency Hints - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The io_context constructor allows - programs to specify a concurrency hint. This is a suggestion to the io_context implementation as to the number - of active threads that should be used for running completion handlers. -

-

- When the Windows I/O completion port backend is in use, this value is passed - to CreateIoCompletionPort. -

-

- When a reactor-based backend is used, the implementation recognises the - following special concurrency hint values: -

-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Value -

-
-

- Description -

-
-

- 1 -

-
-

- The implementation assumes that the io_context - will be run from a single thread, and applies several optimisations - based on this assumption. -

-

- For example, when a handler is posted from within another handler, - the new handler is added to a fast thread-local queue (with the - consequence that the new handler is held back until the currently - executing handler finishes). -

-
-

- ASIO_CONCURRENCY_HINT_UNSAFE -

-
-

- This special concurrency hint disables locking in both the scheduler - and reactor I/O. This hint has the following restrictions: -

-

- — Care must be taken to ensure that all operations on the io_context and any of its associated - I/O objects (such as sockets and timers) occur in only one thread - at a time. -

-

- — Asynchronous resolve operations fail with operation_not_supported. -

-

- — If a signal_set - is used with the io_context, - signal_set objects - cannot be used with any other io_context in the program. -

-
-

- ASIO_CONCURRENCY_HINT_UNSAFE_IO -

-
-

- This special concurrency hint disables locking in the reactor - I/O. This hint has the following restrictions: -

-

- — Care must be taken to ensure that run functions on the io_context, and all operations - on the context's associated I/O objects (such as sockets and - timers), occur in only one thread at a time. -

-
-

- ASIO_CONCURRENCY_HINT_SAFE -

-
-

- The default. The io_context - provides full thread safety, and distinct I/O objects may be - used from any thread. -

-
-

- The concurrency hint used by default-constructed io_context - objects can be overridden at compile time by defining the ASIO_CONCURRENCY_HINT_DEFAULT - macro. For example, specifying -

-
-DASIO_CONCURRENCY_HINT_DEFAULT=1
-
-

- on the compiler command line means that a concurrency hint of 1 - is used for all default-constructed io_context objects in - the program. Similarly, the concurrency hint used by io_context - objects constructed with 1 can be overridden by defining - ASIO_CONCURRENCY_HINT_1. For example, passing -

-
-DASIO_CONCURRENCY_HINT_1=ASIO_CONCURRENCY_HINT_UNSAFE
-
-

- to the compiler will disable thread safety for all of these objects. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/coroutine.html b/Sources/Vendor/asio/doc/asio/overview/core/coroutine.html deleted file mode 100644 index a6789a3..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/coroutine.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -Stackless Coroutines - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The 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 : 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()(asio::error_code ec = asio::error_code(), std::size_t n = 0)
-  {
-    if (!ec) reenter (this)
-    {
-      for (;;)
-      {
-        yield socket_->async_read_some(asio::buffer(*buffer_), *this);
-        yield asio::async_write(*socket_, 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 coroutine - class's documentation provides a complete description of these pseudo-keywords. -

-
- - See - Also -
-

- coroutine, HTTP - Server 4 example, Stackful - Coroutines. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/coroutines_ts.html b/Sources/Vendor/asio/doc/asio/overview/core/coroutines_ts.html deleted file mode 100644 index 609e8db..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/coroutines_ts.html +++ /dev/null @@ -1,147 +0,0 @@ - - - -Coroutines TS Support (experimental) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Note: "Experimental" means that this interface is provided to - gather feedback and may change in subsequent Asio releases.) -

-

- Experimental support for the Coroutines TS is provided via the experimental::co_spawn() - function. This co_spawn() function enables programs to implement - asynchronous logic in a synchronous manner, in conjunction with the co_await - keyword, as shown in the following example: -

-
asio::experimental::co_spawn(executor,
-    [socket = std::move(socket)]() mutable
-    {
-      return echo(std::move(socket));
-    },
-    asio::experimental::detached);
-
-// ...
-
-asio::experimental::awaitable<void> echo(tcp::socket socket)
-{
-  auto token = co_await asio::experimental::this_coro::token();
-
-  try
-  {
-    char data[1024];
-    for (;;)
-    {
-      std::size_t n = co_await socket.async_read_some(asio::buffer(data), token);
-      co_await async_write(socket, asio::buffer(data, n), token);
-    }
-  }
-  catch (std::exception& e)
-  {
-    std::printf("echo Exception: %s\n", e.what());
-  }
-}
-
-

- The first argument to co_spawn() is an executor - that 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 nullary function object that returns a asio::awaitable<R>, - where R is the type of return value produced by the coroutine. - In the above example, the coroutine returns void. -

-

- The third argument is a completion token, and this is used by co_spawn() - to produce a completion handler with signature void(std::exception_ptr, - R). This completion handler is invoked with the result of the coroutine - once it has finished. In the above example we pass a completion token type, - asio::experimental::detached, - which is used to explicitly ignore the result of an asynchronous operation. -

-

- In this example the body of the coroutine is implemented in the echo - function. This function first obtains a completion token that represents - the current coroutine: -

-
auto token = co_await asio::experimental::this_coro::token();
-
-

- When this completion token is passed to an asynchronous operation, the - operation's initiating function returns an awaitable that - may be used with the co_await keyword: -

-
std::size_t n = co_await socket.async_read_some(asio::buffer(data), token);
-
-

- Where an asynchronous operation's handler signature has the form: -

-
void handler(asio::error_code ec, result_type result);
-
-

- the resulting type of the co_await expression is 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(asio::error_code ec);
-
-

- the co_await expression produces a void result. - As above, an error is passed back to the coroutine as a system_error - exception. -

-
- - See - Also -
-

- experimental::co_spawn, - experimental::detached, - experimental::redirect_error, - experimental::awaitable, - experimental::await_token, - experimental::this_coro::executor, - experimental::this_coro::token, - Coroutines - TS examples, Stackful Coroutines, - Stackless Coroutines. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/handler_tracking.html b/Sources/Vendor/asio/doc/asio/overview/core/handler_tracking.html deleted file mode 100644 index 088ad75..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/handler_tracking.html +++ /dev/null @@ -1,414 +0,0 @@ - - - -Handler Tracking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- To aid in debugging asynchronous programs, Asio provides support for handler - tracking. When enabled by defining ASIO_ENABLE_HANDLER_TRACKING, - Asio writes debugging output to the standard error stream. The output records - asynchronous operations and the relationships between their handlers. -

-

- This feature is useful when debugging and you need to know how your asynchronous - operations are chained together, or what the pending asynchronous operations - are. As an illustration, here is the output when you run the HTTP Server - example, handle a single request, then shut down via Ctrl+C: -

-
@asio|1512254357.979980|0*1|signal_set@0x7ffeaaaa20d8.async_wait
-@asio|1512254357.980127|0*2|socket@0x7ffeaaaa20f8.async_accept
-@asio|1512254357.980150|.2|non_blocking_accept,ec=asio.system:11
-@asio|1512254357.980162|0|resolver@0x7ffeaaaa1fd8.cancel
-@asio|1512254368.457147|.2|non_blocking_accept,ec=system:0
-@asio|1512254368.457193|>2|ec=system:0
-@asio|1512254368.457219|2*3|socket@0x55cf39f0a238.async_receive
-@asio|1512254368.457244|.3|non_blocking_recv,ec=system:0,bytes_transferred=141
-@asio|1512254368.457275|2*4|socket@0x7ffeaaaa20f8.async_accept
-@asio|1512254368.457293|.4|non_blocking_accept,ec=asio.system:11
-@asio|1512254368.457301|<2|
-@asio|1512254368.457310|>3|ec=system:0,bytes_transferred=141
-@asio|1512254368.457441|3*5|socket@0x55cf39f0a238.async_send
-@asio|1512254368.457502|.5|non_blocking_send,ec=system:0,bytes_transferred=156
-@asio|1512254368.457511|<3|
-@asio|1512254368.457519|>5|ec=system:0,bytes_transferred=156
-@asio|1512254368.457544|5|socket@0x55cf39f0a238.close
-@asio|1512254368.457559|<5|
-@asio|1512254371.385106|>1|ec=system:0,signal_number=2
-@asio|1512254371.385130|1|socket@0x7ffeaaaa20f8.close
-@asio|1512254371.385163|<1|
-@asio|1512254371.385175|>4|ec=asio.system:125
-@asio|1512254371.385182|<4|
-@asio|1512254371.385202|0|signal_set@0x7ffeaaaa20d8.cancel
-
-

- Each line is of the form: -

-
<tag>|<timestamp>|<action>|<description>
-
-

- The <tag> is always @asio, and is used - to identify and extract the handler tracking messages from the program - output. -

-

- The <timestamp> is seconds and microseconds from 1 Jan - 1970 UTC. -

-

- The <action> takes one of the following forms: -

-
-

-
-
>n
-

- The program entered the handler number n. The <description> - shows the arguments to the handler. -

-
<n
-

- The program left handler number n. -

-
!n
-

- The program left handler number n due to an exception. -

-
~n
-

- The handler number n was destroyed without having been - invoked. This is usually the case for any unfinished asynchronous - operations when the io_context is destroyed. -

-
n*m
-

- The handler number n created a new asynchronous operation - with completion handler number m. The <description> - shows what asynchronous operation was started. -

-
n
-

- The handler number n performed some other operation. - The <description> shows what function was called. - Currently only close() and cancel() operations - are logged, as these may affect the state of pending asynchronous - operations. -

-
.n
-

- The implementation performed a system call as part of the asynchronous - operation for which handler number n is the completion - handler. The <description> shows what function - was called and its results. These tracking events are only emitted - when using a reactor-based implementation. -

-
-
-

- Where the <description> shows a synchronous or asynchronous - operation, the format is <object-type>@<pointer>.<operation>. - For handler entry, it shows a comma-separated list of arguments and their - values. -

-

- As shown above, Each handler is assigned a numeric identifier. Where the - handler tracking output shows a handler number of 0, it means that the - action was performed outside of any handler. -

-
- - Visual - Representations -
-

- The handler tracking output may be post-processed using the included handlerviz.pl - tool to create a visual representation of the handlers (requires the GraphViz - tool dot). -

-
- - Custom Tracking -
-

- Handling tracking may be customised by defining the ASIO_CUSTOM_HANDLER_TRACKING - macro to the name of a header file (enclosed in "" - or <>). This header - file must implement the following preprocessor macros: -

-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Macro -

-
-

- Description -

-
-

- ASIO_INHERIT_TRACKED_HANDLER -

-
-

- Specifies a base class for classes that implement asynchronous - operations. When used, the macro immediately follows the class - name, so it must have the form : - public my_class. -

-
-

- ASIO_ALSO_INHERIT_TRACKED_HANDLER -

-
-

- Specifies a base class for classes that implement asynchronous - operations. When used, the macro follows other base classes, - so it must have the form , - public my_class. -

-
-

- ASIO_HANDLER_TRACKING_INIT(args) -

-
-

- An expression that is used to initialise the tracking mechanism. -

-
-

- ASIO_HANDLER_CREATION(args) -

-
-

- An expression that is called on creation of an asynchronous operation. - args is a parenthesised - function argument list containing the owning execution context, - the tracked handler, the name of the object type, a pointer to - the object, the object's native handle, and the operation name. -

-
-

- ASIO_HANDLER_COMPLETION(args) -

-
-

- An expression that is called on completion of an asynchronous - operation. args - is a parenthesised function argument list containing the tracked - handler. -

-
-

- ASIO_HANDLER_INVOCATION_BEGIN(args) -

-
-

- An expression that is called immediately before a completion - handler is invoked. args - is a parenthesised function argument list containing the arguments - to the completion handler. -

-
-

- ASIO_HANDLER_INVOCATION_END -

-
-

- An expression that is called immediately after a completion handler - is invoked. -

-
-

- ASIO_HANDLER_OPERATION(args) -

-
-

- An expression that is called when some synchronous object operation - is called (such as close() or cancel()). args - is a parenthesised function argument list containing the owning - execution context, the name of the object type, a pointer to - the object, the object's native handle, and the operation name. -

-
-

- ASIO_HANDLER_REACTOR_REGISTRATION(args) -

-
-

- An expression that is called when an object is registered with - the reactor. args - is a parenthesised function argument list containing the owning - execution context, the object's native handle, and a unique registration - key. -

-
-

- ASIO_HANDLER_REACTOR_DEREGISTRATION(args) -

-
-

- An expression that is called when an object is deregistered from - the reactor. args - is a parenthesised function argument list containing the owning - execution context, the object's native handle, and a unique registration - key. -

-
-

- ASIO_HANDLER_REACTOR_READ_EVENT -

-
-

- A bitmask constant used to identify reactor read readiness events. -

-
-

- ASIO_HANDLER_REACTOR_WRITE_EVENT -

-
-

- A bitmask constant used to identify reactor write readiness events. -

-
-

- ASIO_HANDLER_REACTOR_ERROR_EVENT -

-
-

- A bitmask constant used to identify reactor error readiness events. -

-
-

- ASIO_HANDLER_REACTOR_EVENTS(args) -

-
-

- An expression that is called when an object registered with the - reactor becomes ready. args - is a parenthesised function argument list containing the owning - execution context, the unique registration key, and a bitmask - of the ready events. -

-
-

- ASIO_HANDLER_REACTOR_OPERATION(args) -

-
-

- An expression that is called when the implementation performs - a system call as part of a reactor-based asynchronous operation. - args is a parenthesised - function argument list containing the tracked handler, the operation - name, the error code produced by the operation, and (optionally) - the number of bytes transferred. -

-
-
- - See - Also -
-

- Custom handler - tracking example. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/line_based.html b/Sources/Vendor/asio/doc/asio/overview/core/line_based.html deleted file mode 100644 index 2640240..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/line_based.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -Line-Based Operations - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Many commonly-used internet protocols are line-based, which means that - they have protocol elements that are delimited by the character sequence - "\r\n". Examples - include HTTP, SMTP and FTP. To more easily permit the implementation of - line-based protocols, as well as other protocols that use delimiters, Asio - includes the functions read_until() and async_read_until(). -

-

- The following example illustrates the use of async_read_until() in an HTTP server, to receive the first - line of an HTTP request from a client: -

-
class http_connection
-{
-  ...
-
-  void start()
-  {
-    asio::async_read_until(socket_, data_, "\r\n",
-        boost::bind(&http_connection::handle_request_line, this, _1));
-  }
-
-  void handle_request_line(asio::error_code ec)
-  {
-    if (!ec)
-    {
-      std::string method, uri, version;
-      char sp1, sp2, cr, lf;
-      std::istream is(&data_);
-      is.unsetf(std::ios_base::skipws);
-      is >> method >> sp1 >> uri >> sp2 >> version >> cr >> lf;
-      ...
-    }
-  }
-
-  ...
-
-  asio::ip::tcp::socket socket_;
-  asio::streambuf data_;
-};
-
-

- The streambuf data member - serves as a place to store the data that has been read from the socket - before it is searched for the delimiter. It is important to remember that - there may be additional data after the delimiter. - This surplus data should be left in the streambuf - so that it may be inspected by a subsequent call to read_until() or async_read_until(). -

-

- The delimiters may be specified as a single char, - a std::string or a boost::regex. - The read_until() - and async_read_until() - functions also include overloads that accept a user-defined function object - called a match condition. For example, to read data into a streambuf until - whitespace is encountered: -

-
typedef asio::buffers_iterator<
-    asio::streambuf::const_buffers_type> iterator;
-
-std::pair<iterator, bool>
-match_whitespace(iterator begin, iterator end)
-{
-  iterator i = begin;
-  while (i != end)
-    if (std::isspace(*i++))
-      return std::make_pair(i, true);
-  return std::make_pair(i, false);
-}
-...
-asio::streambuf b;
-asio::read_until(s, b, match_whitespace);
-
-

- To read data into a streambuf until a matching character is found: -

-
class match_char
-{
-public:
-  explicit match_char(char c) : c_(c) {}
-
-  template <typename Iterator>
-  std::pair<Iterator, bool> operator()(
-      Iterator begin, Iterator end) const
-  {
-    Iterator i = begin;
-    while (i != end)
-      if (c_ == *i++)
-        return std::make_pair(i, true);
-    return std::make_pair(i, false);
-  }
-
-private:
-  char c_;
-};
-
-namespace asio {
-  template <> struct is_match_condition<match_char>
-    : public boost::true_type {};
-} // namespace asio
-...
-asio::streambuf b;
-asio::read_until(s, b, match_char('a'));
-
-

- The is_match_condition<> type trait automatically evaluates - to true for functions, and for function objects with a nested result_type typedef. For other types - the trait must be explicitly specialised, as shown above. -

-
- - See - Also -
-

- async_read_until(), - is_match_condition, - read_until(), streambuf, - HTTP client example. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/reactor.html b/Sources/Vendor/asio/doc/asio/overview/core/reactor.html deleted file mode 100644 index 70f39f6..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/reactor.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Reactor-Style Operations - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sometimes a program must be integrated with a third-party library that - wants to perform the I/O operations itself. To facilitate this, Asio includes - synchronous and asynchronous operations that may be used to wait for a - socket to become ready to read, ready to write, or to have a pending error - condition. -

-

- As an example, to perform a non-blocking read something like the following - may be used: -

-
ip::tcp::socket socket(my_io_context);
-...
-socket.non_blocking(true);
-...
-socket.async_wait(ip::tcp::socket::wait_read, read_handler);
-...
-void read_handler(asio::error_code ec)
-{
-  if (!ec)
-  {
-    std::vector<char> buf(socket.available());
-    socket.read_some(buffer(buf));
-  }
-}
-
-

- These operations are supported for sockets on all platforms, and for the - POSIX stream-oriented descriptor classes. -

-
- - See - Also -
-

- basic_socket::wait(), - basic_socket::async_wait(), - basic_socket::non_blocking(), - basic_socket::native_non_blocking(), - nonblocking example. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/spawn.html b/Sources/Vendor/asio/doc/asio/overview/core/spawn.html deleted file mode 100644 index 7fef898..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/spawn.html +++ /dev/null @@ -1,145 +0,0 @@ - - - -Stackful Coroutines - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The 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: -

-
asio::spawn(my_strand, do_echo);
-
-// ...
-
-void do_echo(asio::yield_context yield)
-{
-  try
-  {
-    char data[128];
-    for (;;)
-    {
-      std::size_t length =
-        my_socket.async_read_some(
-          asio::buffer(data), yield);
-
-      asio::async_write(my_socket,
-          asio::buffer(data, length), yield);
-    }
-  }
-  catch (std::exception& e)
-  {
-    // ...
-  }
-}
-
-

- The first argument to spawn() may be a strand, - io_context, - or 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(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(
-    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(asio::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(asio::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: -

-
asio::error_code ec;
-std::size_t length =
-  my_socket.async_read_some(
-    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(asio::basic_yield_context<Handler> yield);
-
-
- - See - Also -
-

- spawn, yield_context, - basic_yield_context, - Spawn example (C++03), - Spawn example (C++11), - Stackless Coroutines. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/strands.html b/Sources/Vendor/asio/doc/asio/overview/core/strands.html deleted file mode 100644 index b861e5b..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/strands.html +++ /dev/null @@ -1,160 +0,0 @@ - - - -Strands: Use Threads Without Explicit Locking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A strand is defined as a strictly sequential invocation of event handlers - (i.e. no concurrent invocation). Use of strands allows execution of code - in a multithreaded program without the need for explicit locking (e.g. - using mutexes). -

-

- Strands may be either implicit or explicit, as illustrated by the following - alternative approaches: -

-
    -
  • - Calling io_context::run() from only one thread means all event handlers - execute in an implicit strand, due to the io_context's guarantee that - handlers are only invoked from inside run(). -
  • -
  • - Where there is a single chain of asynchronous operations associated - with a connection (e.g. in a half duplex protocol implementation like - HTTP) there is no possibility of concurrent execution of the handlers. - This is an implicit strand. -
  • -
  • - An explicit strand is an instance of strand<> or io_context::strand. - All event handler function objects need to be bound to the strand using - asio::bind_executor() - or otherwise posted/dispatched through the strand object. -
  • -
-

- In the case of composed asynchronous operations, such as async_read() - or async_read_until(), - if a completion handler goes through a strand, then all intermediate handlers - should also go through the same strand. This is needed to ensure thread - safe access for any objects that are shared between the caller and the - composed operation (in the case of async_read() it's the socket, which the caller can - close() - to cancel the operation). -

-

- To achieve this, all asynchronous operations obtain the handler's associated - executor by using the get_associated_executor - function. For example: -

-
asio::associated_executor_t<Handler> a = asio::get_associated_executor(h);
-
-

- The associated executor must satisfy the Executor requirements. It will - be used by the asynchronous operation to submit both intermediate and final - handlers for execution. -

-

- The executor may be customised for a particular handler type by specifying - a nested type executor_type - and member function get_executor(): -

-
class my_handler
-{
-public:
-  // Custom implementation of Executor type requirements.
-  typedef my_executor executor_type;
-
-  // Return a custom executor implementation.
-  executor_type get_executor() const noexcept
-  {
-    return my_executor();
-  }
-
-  void operator()() { ... }
-};
-
-

- In more complex cases, the associated_executor - template may be partially specialised directly: -

-
struct my_handler
-{
-  void operator()() { ... }
-};
-
-namespace asio {
-
-  template <class Executor>
-  struct associated_executor<my_handler, Executor>
-  {
-    // Custom implementation of Executor type requirements.
-    typedef my_executor type;
-
-    // Return a custom executor implementation.
-    static type get(const my_handler&,
-        const Executor& = Executor()) noexcept
-    {
-      return my_executor();
-    }
-  };
-
-} // namespace asio
-
-

- The asio::bind_executor() - function is a helper to bind a specific executor object, such as a strand, - to a completion handler. This binding automatically associates an executor - as shown above. For example, to bind a strand to a completion handler we - would simply write: -

-
my_socket.async_read_some(my_buffer,
-    asio::bind_executor(my_strand,
-      [](error_code ec, size_t length)
-      {
-        // ...
-      }));
-
-
- - See - Also -
-

- associated_executor, - get_associated_executor, - bind_executor, strand, io_context::strand, - tutorial Timer.5, HTTP server 3 example. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/streams.html b/Sources/Vendor/asio/doc/asio/overview/core/streams.html deleted file mode 100644 index 932f674..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/streams.html +++ /dev/null @@ -1,120 +0,0 @@ - - - -Streams, Short Reads and Short Writes - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Many I/O objects in Asio are stream-oriented. This means that: -

-
    -
  • - There are no message boundaries. The data being transferred is a continuous - sequence of bytes. -
  • -
  • - Read or write operations may transfer fewer bytes than requested. This - is referred to as a short read or short write. -
  • -
-

- Objects that provide stream-oriented I/O model one or more of the following - type requirements: -

-
    -
  • - SyncReadStream, where - synchronous read operations are performed using a member function called - read_some(). -
  • -
  • - AsyncReadStream, where - asynchronous read operations are performed using a member function - called async_read_some(). -
  • -
  • - SyncWriteStream, where - synchronous write operations are performed using a member function - called write_some(). -
  • -
  • - AsyncWriteStream, where - asynchronous write operations are performed using a member function - called async_write_some(). -
  • -
-

- Examples of stream-oriented I/O objects include ip::tcp::socket, - ssl::stream<>, - posix::stream_descriptor, windows::stream_handle, - etc. -

-

- Programs typically want to transfer an exact number of bytes. When a short - read or short write occurs the program must restart the operation, and - continue to do so until the required number of bytes has been transferred. - Asio provides generic functions that do this automatically: read(), - async_read(), - write() - and async_write(). -

-
- - Why - EOF is an Error -
-
    -
  • - The end of a stream can cause read, - async_read, read_until or async_read_until - functions to violate their contract. E.g. a read of N bytes may finish - early due to EOF. -
  • -
  • - An EOF error may be used to distinguish the end of a stream from a - successful read of size 0. -
  • -
-
- - See - Also -
-

- async_read(), async_write(), - read(), write(), - AsyncReadStream, - AsyncWriteStream, - SyncReadStream, SyncWriteStream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/threads.html b/Sources/Vendor/asio/doc/asio/overview/core/threads.html deleted file mode 100644 index 6f5542f..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/threads.html +++ /dev/null @@ -1,123 +0,0 @@ - - - -Threads and Asio - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
- - Thread - Safety -
-

- In general, it is safe to make concurrent use of distinct objects, but - unsafe to make concurrent use of a single object. However, types such as - io_context provide a stronger - guarantee that it is safe to use a single object concurrently. -

-
- - Thread - Pools -
-

- Multiple threads may call io_context::run() to set up a pool of threads from which - completion handlers may be invoked. This approach may also be used with - post() - as a means to perform arbitrary computational tasks across a thread pool. -

-

- Note that all threads that have joined an io_context's - pool are considered equivalent, and the io_context - may distribute work across them in an arbitrary fashion. -

-
- - Internal - Threads -
-

- The implementation of this library for a particular platform may make use - of one or more internal threads to emulate asynchronicity. As far as possible, - these threads must be invisible to the library user. In particular, the - threads: -

-
    -
  • - must not call the user's code directly; and -
  • -
  • - must block all signals. -
  • -
-

- This approach is complemented by the following guarantee: -

-
  • - Asynchronous completion handlers will only be called from threads that - are currently calling io_context::run(). -
-

- Consequently, it is the library user's responsibility to create and manage - all threads to which the notifications will be delivered. -

-

- The reasons for this approach include: -

-
    -
  • - By only calling io_context::run() from a single thread, the user's - code can avoid the development complexity associated with synchronisation. - For example, a library user can implement scalable servers that are - single-threaded (from the user's point of view). -
  • -
  • - A library user may need to perform initialisation in a thread shortly - after the thread starts and before any other application code is executed. - For example, users of Microsoft's COM must call CoInitializeEx - before any other COM operations can be called from that thread. -
  • -
  • - The library interface is decoupled from interfaces for thread creation - and management, and permits implementations on platforms where threads - are not available. -
  • -
-
- - See - Also -
-

- io_context, post. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011.html deleted file mode 100644 index d7dce4d..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -C++ 2011 Support - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
- - - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/array.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/array.html deleted file mode 100644 index bf2ac8c..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/array.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -Array Container - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Where the standard library provides std::array<>, Asio: -

-
-

- Support for std::array<> is automatically enabled for - g++ 4.3 and later, when the -std=c++0x - or -std=gnu++0x compiler options are used, as well as - for Microsoft Visual C++ 10. It may be disabled by defining ASIO_DISABLE_STD_ARRAY, - or explicitly enabled for other compilers by defining ASIO_HAS_STD_ARRAY. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/atomic.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/atomic.html deleted file mode 100644 index cd9622e..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/atomic.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -Atomics - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio's implementation can use std::atomic<> in preference - to boost::detail::atomic_count. -

-

- Support for the standard atomic integer template is automatically enabled - for g++ 4.5 and later, when the -std=c++0x - or -std=gnu++0x compiler options are used. It may be - disabled by defining ASIO_DISABLE_STD_ATOMIC, or explicitly - enabled for other compilers by defining ASIO_HAS_STD_ATOMIC. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/chrono.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/chrono.html deleted file mode 100644 index 5354f36..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/chrono.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Chrono - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-Chrono -

-

- Asio provides timers based on the std::chrono facilities via - the basic_waitable_timer - class template. The typedefs system_timer, - steady_timer and high_resolution_timer - utilise the standard clocks system_clock, steady_clock - and high_resolution_clock respectively. -

-

- Support for the std::chrono facilities is automatically enabled - for g++ 4.6 and later, when the -std=c++0x - or -std=gnu++0x compiler options are used. (Note that, - for g++, the draft-standard monotonic_clock - is used in place of steady_clock.) Support may be disabled - by defining ASIO_DISABLE_STD_CHRONO, or explicitly enabled - for other compilers by defining ASIO_HAS_STD_CHRONO. -

-

- When standard chrono is unavailable, Asio will otherwise use - the Boost.Chrono library. The basic_waitable_timer - class template may be used with either. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/futures.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/futures.html deleted file mode 100644 index 7b57fe1..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/futures.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -Futures - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The 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 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, asio::use_future);
-
-

- Where a handler signature has the form: -

-
void handler(asio::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(asio::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. -

-

- use_future, use_future_t, - Futures example (C++11). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/move_handlers.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/move_handlers.html deleted file mode 100644 index 8795063..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/move_handlers.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -Movable Handlers - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- As an optimisation, user-defined completion handlers may provide move constructors, - and Asio's implementation will use a handler's move constructor in preference - to its copy constructor. In certain circumstances, Asio may be able to - eliminate all calls to a handler's copy constructor. However, handler types - are still required to be copy constructible. -

-

- When move support is enabled, asynchronous that are documented as follows: -

-
template <typename Handler>
-void async_XYZ(..., Handler handler);
-
-

- are actually declared as: -

-
template <typename Handler>
-void async_XYZ(..., Handler&& handler);
-
-

- The handler argument is perfectly forwarded and the move construction occurs - within the body of async_XYZ(). This ensures that all other - function arguments are evaluated prior to the move. This is critical when - the other arguments to async_XYZ() are members of the handler. - For example: -

-
struct my_operation
-{
-  shared_ptr<tcp::socket> socket;
-  shared_ptr<vector<char>> buffer;
-  ...
-  void operator(error_code ec, size_t length)
-  {
-    ...
-    socket->async_read_some(asio::buffer(*buffer), std::move(*this));
-    ...
-  }
-};
-
-

- Move support is automatically enabled for g++ 4.5 and - later, when the -std=c++0x or -std=gnu++0x - compiler options are used. It may be disabled by defining ASIO_DISABLE_MOVE, - or explicitly enabled for other compilers by defining ASIO_HAS_MOVE. - Note that these macros also affect the availability of movable - I/O objects. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/move_objects.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/move_objects.html deleted file mode 100644 index 6449701..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/move_objects.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -Movable I/O Objects - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- When move support is available (via rvalue references), Asio allows move - construction and assignment of sockets, serial ports, POSIX descriptors - and Windows handles. -

-

- Move support allows you to write code like: -

-
tcp::socket make_socket(io_context& i)
-{
-  tcp::socket s(i);
-  ...
-  std::move(s);
-}
-
-

- or: -

-
class connection : public enable_shared_from_this<connection>
-{
-private:
-  tcp::socket socket_;
-  ...
-public:
-  connection(tcp::socket&& s) : socket_(std::move(s)) {}
-  ...
-};
-
-...
-
-class server
-{
-private:
-  tcp::acceptor acceptor_;
-  ...
-  void handle_accept(error_code ec, tcp::socket socket)
-  {
-    if (!ec)
-      std::make_shared<connection>(std::move(socket))->go();
-    acceptor_.async_accept(...);
-  }
-  ...
-};
-
-

- as well as: -

-
std::vector<tcp::socket> sockets;
-sockets.push_back(tcp::socket(...));
-
-

- A word of warning: There is nothing stopping you from moving these objects - while there are pending asynchronous operations, but it is unlikely to - be a good idea to do so. In particular, composed operations like async_read() store a reference - to the stream object. Moving during the composed operation means that the - composed operation may attempt to access a moved-from object. -

-

- Move support is automatically enabled for g++ 4.5 and - later, when the -std=c++0x or -std=gnu++0x - compiler options are used. It may be disabled by defining ASIO_DISABLE_MOVE, - or explicitly enabled for other compilers by defining ASIO_HAS_MOVE. - Note that these macros also affect the availability of movable - handlers. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/shared_ptr.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/shared_ptr.html deleted file mode 100644 index e6c408f..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/shared_ptr.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -Shared Pointers - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio's implementation can use std::shared_ptr<> and - std::weak_ptr<> in preference to the Boost equivalents. -

-

- Support for the standard smart pointers is automatically enabled for g++ - 4.3 and later, when the -std=c++0x or -std=gnu++0x - compiler options are used, as well as for Microsoft Visual C++ 10. It may - be disabled by defining ASIO_DISABLE_STD_SHARED_PTR, or explicitly - enabled for other compilers by defining ASIO_HAS_STD_SHARED_PTR. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/system_error.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/system_error.html deleted file mode 100644 index dc95d9d..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/system_error.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -System Errors and Error Codes - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- When available, Asio can use the std::error_code and std::system_error - classes for reporting errors. In this case, the names asio::error_code - and asio::system_error will be typedefs for these standard - classes. -

-

- System error support is automatically enabled for g++ - 4.6 and later, when the -std=c++0x or -std=gnu++0x - compiler options are used. It may be disabled by defining ASIO_DISABLE_STD_SYSTEM_ERROR, - or explicitly enabled for other compilers by defining ASIO_HAS_STD_SYSTEM_ERROR. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/variadic.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/variadic.html deleted file mode 100644 index dce1575..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/variadic.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -Variadic Templates - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- When supported by a compiler, Asio can use variadic templates to implement - the basic_socket_streambuf::connect() - and basic_socket_iostream::connect() - functions. -

-

- Support for variadic templates is automatically enabled for g++ - 4.3 and later, when the -std=c++0x or -std=gnu++0x - compiler options are used. It may be disabled by defining ASIO_DISABLE_VARIADIC_TEMPLATES, - or explicitly enabled for other compilers by defining ASIO_HAS_VARIADIC_TEMPLATES. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/implementation.html b/Sources/Vendor/asio/doc/asio/overview/implementation.html deleted file mode 100644 index 13299d6..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/implementation.html +++ /dev/null @@ -1,490 +0,0 @@ - - - -Platform-Specific Implementation Notes - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This section lists platform-specific implementation details, such as the - default demultiplexing mechanism, the number of threads created internally, - and when threads are created. -

-
- - Linux - Kernel 2.4 -
-

- Demultiplexing mechanism: -

-
  • - Uses select for demultiplexing. This means that the number - of file descriptors in the process cannot be permitted to exceed FD_SETSIZE. -
-

- Threads: -

-
    -
  • - Demultiplexing using select is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - Linux - Kernel 2.6 -
-

- Demultiplexing mechanism: -

-
  • - Uses epoll for demultiplexing. -
-

- Threads: -

-
    -
  • - Demultiplexing using epoll is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - Solaris -
-

- Demultiplexing mechanism: -

-
  • - Uses /dev/poll for demultiplexing. -
-

- Threads: -

-
    -
  • - Demultiplexing using /dev/poll is performed in one - of the threads that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - QNX - Neutrino -
-

- Demultiplexing mechanism: -

-
  • - Uses select for demultiplexing. This means that the number - of file descriptors in the process cannot be permitted to exceed FD_SETSIZE. -
-

- Threads: -

-
    -
  • - Demultiplexing using select is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - Mac - OS X -
-

- Demultiplexing mechanism: -

-
  • - Uses kqueue for demultiplexing. -
-

- Threads: -

-
    -
  • - Demultiplexing using kqueue is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - FreeBSD -
-

- Demultiplexing mechanism: -

-
  • - Uses kqueue for demultiplexing. -
-

- Threads: -

-
    -
  • - Demultiplexing using kqueue is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - AIX -
-

- Demultiplexing mechanism: -

-
  • - Uses select for demultiplexing. This means that the number - of file descriptors in the process cannot be permitted to exceed FD_SETSIZE. -
-

- Threads: -

-
    -
  • - Demultiplexing using select is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - HP-UX -
-

- Demultiplexing mechanism: -

-
  • - Uses select for demultiplexing. This means that the number - of file descriptors in the process cannot be permitted to exceed FD_SETSIZE. -
-

- Threads: -

-
    -
  • - Demultiplexing using select is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - Tru64 -
-

- Demultiplexing mechanism: -

-
  • - Uses select for demultiplexing. This means that the number - of file descriptors in the process cannot be permitted to exceed FD_SETSIZE. -
-

- Threads: -

-
    -
  • - Demultiplexing using select is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - Windows - 95, 98 and Me -
-

- Demultiplexing mechanism: -

-
  • - Uses select for demultiplexing. -
-

- Threads: -

-
    -
  • - Demultiplexing using select is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - For sockets, at most 16 buffers may be transferred in a single operation. -
-
- - Windows - NT, 2000, XP, 2003, Vista, 7 and 8 -
-

- Demultiplexing mechanism: -

-
    -
  • - Uses overlapped I/O and I/O completion ports for all asynchronous socket - operations except for asynchronous connect. -
  • -
  • - Uses select for emulating asynchronous connect. -
  • -
-

- Threads: -

-
    -
  • - Demultiplexing using I/O completion ports is performed in all threads - that call io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to trigger timers. - This thread is created on construction of the first basic_deadline_timer - or basic_waitable_timer objects. -
  • -
  • - An additional thread per io_context is used for the select - demultiplexing. This thread is created on the first call to async_connect(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
    -
  • - For sockets, at most 64 buffers may be transferred in a single operation. -
  • -
  • - For stream-oriented handles, only one buffer may be transferred in a - single operation. -
  • -
-
- - Windows - Runtime -
-

- 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_context, 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_context for the handler to be executed. -
  • -
  • - An additional thread per io_context 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. -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/networking.html b/Sources/Vendor/asio/doc/asio/overview/networking.html deleted file mode 100644 index 84472a6..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/networking.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -Networking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
- - - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/networking/bsd_sockets.html b/Sources/Vendor/asio/doc/asio/overview/networking/bsd_sockets.html deleted file mode 100644 index 9d9c41f..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/networking/bsd_sockets.html +++ /dev/null @@ -1,545 +0,0 @@ - - - -The BSD Socket API and Asio - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The Asio library includes a low-level socket interface based on the BSD - socket API, which is widely implemented and supported by extensive literature. - It is also used as the basis for networking APIs in other languages, like - Java. This low-level interface is designed to support the development of - efficient and scalable applications. For example, it permits programmers - to exert finer control over the number of system calls, avoid redundant - data copying, minimise the use of resources like threads, and so on. -

-

- Unsafe and error prone aspects of the BSD socket API not included. For - example, the use of int to represent all sockets lacks type - safety. The socket representation in Asio uses a distinct type for each - protocol, e.g. for TCP one would use ip::tcp::socket, and - for UDP one uses ip::udp::socket. -

-

- The following table shows the mapping between the BSD socket API and Asio: -

-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- BSD Socket API Elements -

-
-

- Equivalents in Asio -

-
-

- socket descriptor - int (POSIX) or SOCKET - (Windows) -

-
-

- For TCP: ip::tcp::socket, - ip::tcp::acceptor -

-

- For UDP: ip::udp::socket -

-

- basic_socket, - basic_stream_socket, - basic_datagram_socket, - basic_raw_socket -

-
-

- in_addr, in6_addr -

-
-

- ip::address, - ip::address_v4, - ip::address_v6 -

-
-

- sockaddr_in, sockaddr_in6 -

-
-

- For TCP: ip::tcp::endpoint -

-

- For UDP: ip::udp::endpoint -

-

- ip::basic_endpoint -

-
-

- accept() -

-
-

- For TCP: ip::tcp::acceptor::accept() -

-

- basic_socket_acceptor::accept() -

-
-

- bind() -

-
-

- For TCP: ip::tcp::acceptor::bind(), - ip::tcp::socket::bind() -

-

- For UDP: ip::udp::socket::bind() -

-

- basic_socket::bind() -

-
-

- close() -

-
-

- For TCP: ip::tcp::acceptor::close(), - ip::tcp::socket::close() -

-

- For UDP: ip::udp::socket::close() -

-

- basic_socket::close() -

-
-

- connect() -

-
-

- For TCP: ip::tcp::socket::connect() -

-

- For UDP: ip::udp::socket::connect() -

-

- basic_socket::connect() -

-
-

- getaddrinfo(), gethostbyaddr(), gethostbyname(), - getnameinfo(), getservbyname(), getservbyport() -

-
-

- For TCP: ip::tcp::resolver::resolve(), - ip::tcp::resolver::async_resolve() -

-

- For UDP: ip::udp::resolver::resolve(), - ip::udp::resolver::async_resolve() -

-

- ip::basic_resolver::resolve(), - ip::basic_resolver::async_resolve() -

-
-

- gethostname() -

-
-

- ip::host_name() -

-
-

- getpeername() -

-
-

- For TCP: ip::tcp::socket::remote_endpoint() -

-

- For UDP: ip::udp::socket::remote_endpoint() -

-

- basic_socket::remote_endpoint() -

-
-

- getsockname() -

-
-

- For TCP: ip::tcp::acceptor::local_endpoint(), - ip::tcp::socket::local_endpoint() -

-

- For UDP: ip::udp::socket::local_endpoint() -

-

- basic_socket::local_endpoint() -

-
-

- getsockopt() -

-
-

- For TCP: ip::tcp::acceptor::get_option(), - ip::tcp::socket::get_option() -

-

- For UDP: ip::udp::socket::get_option() -

-

- basic_socket::get_option() -

-
-

- inet_addr(), inet_aton(), inet_pton() -

-
-

- ip::address::from_string(), - ip::address_v4::from_string(), - ip_address_v6::from_string() -

-
-

- inet_ntoa(), inet_ntop() -

-
-

- ip::address::to_string(), - ip::address_v4::to_string(), - ip_address_v6::to_string() -

-
-

- ioctl() -

-
-

- For TCP: ip::tcp::socket::io_control() -

-

- For UDP: ip::udp::socket::io_control() -

-

- basic_socket::io_control() -

-
-

- listen() -

-
-

- For TCP: ip::tcp::acceptor::listen() -

-

- basic_socket_acceptor::listen() -

-
-

- poll(), select(), pselect() -

-
-

- io_context::run(), - io_context::run_one(), - io_context::poll(), - io_context::poll_one() -

-

- Note: in conjunction with asynchronous operations. -

-
-

- readv(), recv(), read() -

-
-

- For TCP: ip::tcp::socket::read_some(), - ip::tcp::socket::async_read_some(), - ip::tcp::socket::receive(), - ip::tcp::socket::async_receive() -

-

- For UDP: ip::udp::socket::receive(), - ip::udp::socket::async_receive() -

-

- basic_stream_socket::read_some(), - basic_stream_socket::async_read_some(), - basic_stream_socket::receive(), - basic_stream_socket::async_receive(), - basic_datagram_socket::receive(), - basic_datagram_socket::async_receive() -

-
-

- recvfrom() -

-
-

- For UDP: ip::udp::socket::receive_from(), - ip::udp::socket::async_receive_from() -

-

- basic_datagram_socket::receive_from(), - basic_datagram_socket::async_receive_from() -

-
-

- send(), write(), writev() -

-
-

- For TCP: ip::tcp::socket::write_some(), - ip::tcp::socket::async_write_some(), - ip::tcp::socket::send(), - ip::tcp::socket::async_send() -

-

- For UDP: ip::udp::socket::send(), - ip::udp::socket::async_send() -

-

- basic_stream_socket::write_some(), - basic_stream_socket::async_write_some(), - basic_stream_socket::send(), - basic_stream_socket::async_send(), - basic_datagram_socket::send(), - basic_datagram_socket::async_send() -

-
-

- sendto() -

-
-

- For UDP: ip::udp::socket::send_to(), - ip::udp::socket::async_send_to() -

-

- basic_datagram_socket::send_to(), - basic_datagram_socket::async_send_to() -

-
-

- setsockopt() -

-
-

- For TCP: ip::tcp::acceptor::set_option(), - ip::tcp::socket::set_option() -

-

- For UDP: ip::udp::socket::set_option() -

-

- basic_socket::set_option() -

-
-

- shutdown() -

-
-

- For TCP: ip::tcp::socket::shutdown() -

-

- For UDP: ip::udp::socket::shutdown() -

-

- basic_socket::shutdown() -

-
-

- sockatmark() -

-
-

- For TCP: ip::tcp::socket::at_mark() -

-

- basic_socket::at_mark() -

-
-

- socket() -

-
-

- For TCP: ip::tcp::acceptor::open(), - ip::tcp::socket::open() -

-

- For UDP: ip::udp::socket::open() -

-

- basic_socket::open() -

-
-

- socketpair() -

-
-

- local::connect_pair() -

-

- Note: POSIX operating systems only. -

-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/networking/iostreams.html b/Sources/Vendor/asio/doc/asio/overview/networking/iostreams.html deleted file mode 100644 index a3cb508..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/networking/iostreams.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -Socket Iostreams - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio includes classes that implement iostreams on top of sockets. These - hide away the complexities associated with endpoint resolution, protocol - independence, etc. To create a connection one might simply write: -

-
ip::tcp::iostream stream("www.boost.org", "http");
-if (!stream)
-{
-  // Can't connect.
-}
-
-

- The iostream class can also be used in conjunction with an acceptor to - create simple servers. For example: -

-
io_context ioc;
-
-ip::tcp::endpoint endpoint(tcp::v4(), 80);
-ip::tcp::acceptor acceptor(ios, endpoint);
-
-for (;;)
-{
-  ip::tcp::iostream stream;
-  acceptor.accept(stream.socket());
-  ...
-}
-
-

- Timeouts may be set by calling expires_at() or expires_from_now() - to establish a deadline. Any socket operations that occur past the deadline - will put the iostream into a "bad" state. -

-

- For example, a simple client program like this: -

-
ip::tcp::iostream stream;
-stream.expires_from_now(boost::posix_time::seconds(60));
-stream.connect("www.boost.org", "http");
-stream << "GET /LICENSE_1_0.txt HTTP/1.0\r\n";
-stream << "Host: www.boost.org\r\n";
-stream << "Accept: */*\r\n";
-stream << "Connection: close\r\n\r\n";
-stream.flush();
-std::cout << stream.rdbuf();
-
-

- will fail if all the socket operations combined take longer than 60 seconds. -

-

- If an error does occur, the iostream's error() member function - may be used to retrieve the error code from the most recent system call: -

-
if (!stream)
-{
-  std::cout << "Error: " << stream.error().message() << "\n";
-}
-
-
- - See - Also -
-

- ip::tcp::iostream, - basic_socket_iostream, - iostreams examples. -

-
- - Notes -
-

- These iostream templates only support char, not wchar_t, - and do not perform any code conversion. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/networking/other_protocols.html b/Sources/Vendor/asio/doc/asio/overview/networking/other_protocols.html deleted file mode 100644 index b1ec7fe..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/networking/other_protocols.html +++ /dev/null @@ -1,151 +0,0 @@ - - - -Support for Other Protocols - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Support for other socket protocols (such as Bluetooth or IRCOMM sockets) - can be added by implementing the protocol - type requirements. However, in many cases these protocols may also - be used with Asio's generic protocol support. For this, Asio provides the - following four classes: -

- -

- These classes 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 example: -

-
asio::generic::stream_protocol::socket my_socket(my_io_context);
-my_socket.open(asio::generic::stream_protocol(AF_INET, IPPROTO_TCP));
-...
-
-

- An endpoint class template, 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 - endpoint type requirements: -

-
asio::ip::tcp::endpoint my_endpoint1 = ...;
-asio::generic::stream_protocol::endpoint my_endpoint2(my_endpoint1);
-
-

- The conversion is implicit, so as to support the following use cases: -

-
asio::generic::stream_protocol::socket my_socket(my_io_context);
-asio::ip::tcp::endpoint my_endpoint = ...;
-my_socket.connect(my_endpoint);
-
-
- - 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_context);
-...
-Protocol2::socket my_socket2(std::move(my_socket1));
-
-

- For example, one possible conversion is from a TCP socket to a generic - stream-oriented socket: -

-
asio::ip::tcp::socket my_socket1(my_io_context);
-...
-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. -

-
- - 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 asio::ip::tcp - is convertible to asio::generic::stream_protocol: -

-
asio::ip::tcp::acceptor my_acceptor(my_io_context);
-...
-asio::generic::stream_protocol::socket my_socket(my_io_context);
-my_acceptor.accept(my_socket);
-
-
- - See - Also -
-

- generic::datagram_protocol, - generic::raw_protocol, - generic::seq_packet_protocol, - generic::stream_protocol, - protocol type requirements. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/networking/protocols.html b/Sources/Vendor/asio/doc/asio/overview/networking/protocols.html deleted file mode 100644 index 7f9f06a..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/networking/protocols.html +++ /dev/null @@ -1,203 +0,0 @@ - - - -TCP, UDP and ICMP - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio provides off-the-shelf support for the internet protocols TCP, UDP - and ICMP. -

-
- - TCP - Clients -
-

- Hostname resolution is performed using a resolver, where host and service - names are looked up and converted into one or more endpoints: -

-
ip::tcp::resolver resolver(my_io_context);
-ip::tcp::resolver::query query("www.boost.org", "http");
-ip::tcp::resolver::iterator iter = resolver.resolve(query);
-ip::tcp::resolver::iterator end; // End marker.
-while (iter != end)
-{
-  ip::tcp::endpoint endpoint = *iter++;
-  std::cout << endpoint << std::endl;
-}
-
-

- The list of endpoints obtained above could contain both IPv4 and IPv6 endpoints, - so a program should try each of them until it finds one that works. This - keeps the client program independent of a specific IP version. -

-

- To simplify the development of protocol-independent programs, TCP clients - may establish connections using the free functions connect() - and async_connect(). - These operations try each endpoint in a list until the socket is successfully - connected. For example, a single call: -

-
ip::tcp::socket socket(my_io_context);
-asio::connect(socket, resolver.resolve(query));
-
-

- will synchronously try all endpoints until one is successfully connected. - Similarly, an asynchronous connect may be performed by writing: -

-
asio::async_connect(socket_, iter,
-    boost::bind(&client::handle_connect, this,
-      asio::placeholders::error));
-
-// ...
-
-void handle_connect(const error_code& error)
-{
-  if (!error)
-  {
-    // Start read or write operations.
-  }
-  else
-  {
-    // Handle error.
-  }
-}
-
-

- When a specific endpoint is available, a socket can be created and connected: -

-
ip::tcp::socket socket(my_io_context);
-socket.connect(endpoint);
-
-

- Data may be read from or written to a connected TCP socket using the receive(), - async_receive(), - send() or - async_send() - member functions. However, as these could result in short - writes or reads, an application will typically use the following - operations instead: read(), - async_read(), write() - and async_write(). -

-
- - TCP - Servers -
-

- A program uses an acceptor to accept incoming TCP connections: -

-
ip::tcp::acceptor acceptor(my_io_context, my_endpoint);
-...
-ip::tcp::socket socket(my_io_context);
-acceptor.accept(socket);
-
-

- After a socket has been successfully accepted, it may be read from or written - to as illustrated for TCP clients above. -

-
- - UDP -
-

- UDP hostname resolution is also performed using a resolver: -

-
ip::udp::resolver resolver(my_io_context);
-ip::udp::resolver::query query("localhost", "daytime");
-ip::udp::resolver::iterator iter = resolver.resolve(query);
-...
-
-

- A UDP socket is typically bound to a local endpoint. The following code - will create an IP version 4 UDP socket and bind it to the "any" - address on port 12345: -

-
ip::udp::endpoint endpoint(ip::udp::v4(), 12345);
-ip::udp::socket socket(my_io_context, endpoint);
-
-

- Data may be read from or written to an unconnected UDP socket using the - receive_from(), - async_receive_from(), - send_to() - or async_send_to() - member functions. For a connected UDP socket, use the receive(), - async_receive(), - send() - or async_send() - member functions. -

-
- - ICMP -
-

- As with TCP and UDP, ICMP hostname resolution is performed using a resolver: -

-
ip::icmp::resolver resolver(my_io_context);
-ip::icmp::resolver::query query("localhost", "");
-ip::icmp::resolver::iterator iter = resolver.resolve(query);
-...
-
-

- An ICMP socket may be bound to a local endpoint. The following code will - create an IP version 6 ICMP socket and bind it to the "any" address: -

-
ip::icmp::endpoint endpoint(ip::icmp::v6(), 0);
-ip::icmp::socket socket(my_io_context, endpoint);
-
-

- The port number is not used for ICMP. -

-

- Data may be read from or written to an unconnected ICMP socket using the - receive_from(), - async_receive_from(), - send_to() - or async_send_to() - member functions. -

-
- - See - Also -
-

- ip::tcp, ip::udp, - ip::icmp, daytime - protocol tutorials, ICMP - ping example. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/posix.html b/Sources/Vendor/asio/doc/asio/overview/posix.html deleted file mode 100644 index 361269b..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/posix.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -POSIX-Specific Functionality - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
- - - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/posix/fork.html b/Sources/Vendor/asio/doc/asio/overview/posix/fork.html deleted file mode 100644 index 28f89ab..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/posix/fork.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Fork - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-Fork -

-

- Asio supports programs that utilise the fork() system call. - Provided the program calls io_context.notify_fork() at the - appropriate times, Asio will recreate any internal file descriptors (such - as the "self-pipe trick" descriptor used for waking up a reactor). - The notification is usually performed as follows: -

-
io_context_.notify_fork(asio::io_context::fork_prepare);
-if (fork() == 0)
-{
-  io_context_.notify_fork(asio::io_context::fork_child);
-  ...
-}
-else
-{
-  io_context_.notify_fork(asio::io_context::fork_parent);
-  ...
-}
-
-

- User-defined services can also be made fork-aware by overriding the io_context::service::notify_fork() - virtual function. -

-

- Note that any file descriptors accessible via Asio's public API (e.g. the - descriptors underlying basic_socket<>, posix::stream_descriptor, - etc.) are not altered during a fork. It is the program's responsibility - to manage these as required. -

-
- - See - Also -
-

- io_context::notify_fork(), - io_context::fork_event, - io_context::service::notify_fork(), - Fork examples. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/posix/local.html b/Sources/Vendor/asio/doc/asio/overview/posix/local.html deleted file mode 100644 index b825e5d..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/posix/local.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -UNIX Domain Sockets - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio provides basic support UNIX domain sockets (also known as local sockets). - The simplest use involves creating a pair of connected sockets. The following - code: -

-
local::stream_protocol::socket socket1(my_io_context);
-local::stream_protocol::socket socket2(my_io_context);
-local::connect_pair(socket1, socket2);
-
-

- will create a pair of stream-oriented sockets. To do the same for datagram-oriented - sockets, use: -

-
local::datagram_protocol::socket socket1(my_io_context);
-local::datagram_protocol::socket socket2(my_io_context);
-local::connect_pair(socket1, socket2);
-
-

- A UNIX domain socket server may be created by binding an acceptor to an - endpoint, in much the same way as one does for a TCP server: -

-
::unlink("/tmp/foobar"); // Remove previous binding.
-local::stream_protocol::endpoint ep("/tmp/foobar");
-local::stream_protocol::acceptor acceptor(my_io_context, ep);
-local::stream_protocol::socket socket(my_io_context);
-acceptor.accept(socket);
-
-

- A client that connects to this server might look like: -

-
local::stream_protocol::endpoint ep("/tmp/foobar");
-local::stream_protocol::socket socket(my_io_context);
-socket.connect(ep);
-
-

- Transmission of file descriptors or credentials across UNIX domain sockets - is not directly supported within Asio, but may be achieved by accessing - the socket's underlying descriptor using the native_handle() - member function. -

-
- - See - Also -
-

- local::connect_pair, - local::datagram_protocol, - local::datagram_protocol::endpoint, - local::datagram_protocol::socket, - local::stream_protocol, - local::stream_protocol::acceptor, - local::stream_protocol::endpoint, - local::stream_protocol::iostream, - local::stream_protocol::socket, - UNIX domain - sockets examples. -

-
- - Notes -
-

- UNIX domain sockets are only available at compile time if supported by - the target operating system. A program may test for the macro ASIO_HAS_LOCAL_SOCKETS - to determine whether they are supported. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/posix/stream_descriptor.html b/Sources/Vendor/asio/doc/asio/overview/posix/stream_descriptor.html deleted file mode 100644 index cc89054..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/posix/stream_descriptor.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -Stream-Oriented File Descriptors - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio includes classes added to permit synchronous and asynchronous read - and write operations to be performed on POSIX file descriptors, such as - pipes, standard input and output, and various devices. -

-

- These classes also provide limited support for regular files. This support - assumes that the underlying read and write operations provided by the operating - system never fail with EAGAIN or EWOULDBLOCK. - (This assumption normally holds for buffered file I/O.) Synchronous and - asynchronous read and write operations on file descriptors will succeed - but the I/O will always be performed immediately. Wait operations, and - operations involving asio::null_buffers, are not portably - supported. -

-

- For example, to perform read and write operations on standard input and - output, the following objects may be created: -

-
posix::stream_descriptor in(my_io_context, ::dup(STDIN_FILENO));
-posix::stream_descriptor out(my_io_context, ::dup(STDOUT_FILENO));
-
-

- These are then used as synchronous or asynchronous read and write streams. - This means the objects can be used with any of the read(), - async_read(), write(), - async_write(), read_until() or async_read_until() - free functions. -

-
- - See - Also -
-

- posix::stream_descriptor, - Chat example (C++03), - Chat example (C++11). -

-
- - Notes -
-

- POSIX stream descriptors are only available at compile time if supported - by the target operating system. A program may test for the macro ASIO_HAS_POSIX_STREAM_DESCRIPTOR - to determine whether they are supported. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/rationale.html b/Sources/Vendor/asio/doc/asio/overview/rationale.html deleted file mode 100644 index 23d7416..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/rationale.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -Rationale - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Most programs interact with the outside world in some way, whether it be - via a file, a network, a serial cable, or the console. Sometimes, as is the - case with networking, individual I/O operations can take a long time to complete. - This poses particular challenges to application development. -

-

- Asio provides the tools to manage these long running operations, without - requiring programs to use concurrency models based on threads and explicit - locking. -

-

- The Asio library is intended for programmers using C++ for systems programming, - where access to operating system functionality such as networking is often - required. In particular, Asio addresses the following goals: -

-
    -
  • - Portability. The library should support - a range of commonly used operating systems, and provide consistent behaviour - across these operating systems. -
  • -
  • - Scalability. The library should facilitate - the development of network applications that scale to thousands of concurrent - connections. The library implementation for each operating system should - use the mechanism that best enables this scalability. -
  • -
  • - Efficiency. The library should support - techniques such as scatter-gather I/O, and allow programs to minimise - data copying. -
  • -
  • - Model concepts from established APIs, such as BSD - sockets. The BSD socket API is widely implemented and understood, - and is covered in much literature. Other programming languages often - use a similar interface for networking APIs. As far as is reasonable, - Asio should leverage existing practice. -
  • -
  • - Ease of use. The library should provide - a lower entry barrier for new users by taking a toolkit, rather than - framework, approach. That is, it should try to minimise the up-front - investment in time to just learning a few basic rules and guidelines. - After that, a library user should only need to understand the specific - functions that are being used. -
  • -
  • - Basis for further abstraction. The library - should permit the development of other libraries that provide higher - levels of abstraction. For example, implementations of commonly used - protocols such as HTTP. -
  • -
-

- Although Asio started life focused primarily on networking, its concepts - of asynchronous I/O have been extended to include other operating system - resources such as serial ports, file descriptors, and so on. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/serial_ports.html b/Sources/Vendor/asio/doc/asio/overview/serial_ports.html deleted file mode 100644 index 4a864f9..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/serial_ports.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -Serial Ports - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio includes classes for creating and manipulating serial ports in a portable - manner. For example, a serial port may be opened using: -

-
serial_port port(my_io_context, name);
-
-

- where name is something like "COM1" on Windows, and - "/dev/ttyS0" on POSIX platforms. -

-

- Once opened, the serial port may be used as a stream. - This means the objects can be used with any of the read(), - async_read(), write(), - async_write(), read_until() - or async_read_until() - free functions. -

-

- The serial port implementation also includes option classes for configuring - the port's baud rate, flow control type, parity, stop bits and character - size. -

-
- - See - Also -
-

- serial_port, serial_port_base, - serial_port_base::baud_rate, - serial_port_base::flow_control, - serial_port_base::parity, - serial_port_base::stop_bits, - serial_port_base::character_size. -

-
- - Notes -
-

- 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 ASIO_HAS_SERIAL_PORT - to determine whether they are supported. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/signals.html b/Sources/Vendor/asio/doc/asio/overview/signals.html deleted file mode 100644 index a0d0161..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/signals.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -Signal Handling - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio supports signal handling using a class called signal_set. - Programs may add one or more signals to the set, and then perform an async_wait() - operation. The specified handler will be called when one of the signals occurs. - The same signal number may be registered with multiple signal_set - objects, however the signal number must be used only with Asio. -

-
void handler(
-    const asio::error_code& error,
-    int signal_number)
-{
-  if (!error)
-  {
-    // A signal occurred.
-  }
-}
-
-...
-
-// Construct a signal set registered for process termination.
-asio::signal_set signals(io_context, SIGINT, SIGTERM);
-
-// Start an asynchronous wait for one of the signals to occur.
-signals.async_wait(handler);
-
-

- Signal handling also works on Windows, as the Microsoft Visual C++ runtime - library maps console events like Ctrl+C to the equivalent signal. -

-
- - See - Also -
-

- signal_set, HTTP - server example (C++03), HTTP - server example (C++11). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/ssl.html b/Sources/Vendor/asio/doc/asio/overview/ssl.html deleted file mode 100644 index 1547375..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/ssl.html +++ /dev/null @@ -1,188 +0,0 @@ - - - -SSL - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-SSL -

-

- Asio contains classes and class templates for basic SSL support. These classes - allow encrypted communication to be layered on top of an existing stream, - such as a TCP socket. -

-

- Before creating an encrypted stream, an application must construct an SSL - context object. This object is used to set SSL options such as verification - mode, certificate files, and so on. As an illustration, client-side initialisation - may look something like: -

-
ssl::context ctx(ssl::context::sslv23);
-ctx.set_verify_mode(ssl::verify_peer);
-ctx.load_verify_file("ca.pem");
-
-

- To use SSL with a TCP socket, one may write: -

-
ssl::stream<ip::tcp::socket> ssl_sock(my_io_context, ctx);
-
-

- To perform socket-specific operations, such as establishing an outbound connection - or accepting an incoming one, the underlying socket must first be obtained - using the ssl::stream template's lowest_layer() - member function: -

-
ip::tcp::socket::lowest_layer_type& sock = ssl_sock.lowest_layer();
-sock.connect(my_endpoint);
-
-

- In some use cases the underlying stream object will need to have a longer - lifetime than the SSL stream, in which case the template parameter should - be a reference to the stream type: -

-
ip::tcp::socket sock(my_io_context);
-ssl::stream<ip::tcp::socket&> ssl_sock(sock, ctx);
-
-

- SSL handshaking must be performed prior to transmitting or receiving data - over an encrypted connection. This is accomplished using the ssl::stream - template's handshake() - or async_handshake() - member functions. -

-

- Once connected, SSL stream objects are used as synchronous or asynchronous - read and write streams. This means the objects can be used with any of the - read(), async_read(), - write(), async_write(), - read_until() or async_read_until() - free functions. -

-
- - Certificate - Verification -
-

- Asio provides various methods for configuring the way SSL certificates are - verified: -

- -

- To simplify use cases where certificates are verified according to the rules - in RFC 2818 (certificate verification for HTTPS), Asio provides a reusable - verification callback as a function object: -

- -

- The following example shows verification of a remote host's certificate according - to the rules used by HTTPS: -

-
using asio::ip::tcp;
-namespace ssl = asio::ssl;
-typedef ssl::stream<tcp::socket> ssl_socket;
-
-// Create a context that uses the default paths for
-// finding CA certificates.
-ssl::context ctx(ssl::context::sslv23);
-ctx.set_default_verify_paths();
-
-// Open a socket and connect it to the remote host.
-asio::io_context io_context;
-ssl_socket sock(io_context, ctx);
-tcp::resolver resolver(io_context);
-tcp::resolver::query query("host.name", "https");
-asio::connect(sock.lowest_layer(), resolver.resolve(query));
-sock.lowest_layer().set_option(tcp::no_delay(true));
-
-// Perform SSL handshake and verify the remote host's
-// certificate.
-sock.set_verify_mode(ssl::verify_peer);
-sock.set_verify_callback(ssl::rfc2818_verification("host.name"));
-sock.handshake(ssl_socket::client);
-
-// ... read and write as normal ...
-
-
- - SSL - and Threads -
-

- SSL stream objects perform no locking of their own. Therefore, it is essential - that all asynchronous SSL operations are performed in an implicit or explicit - strand. Note that this - means that no synchronisation is required (and so no locking overhead is - incurred) in single threaded programs. -

-
- - See - Also -
-

- ssl::context, ssl::rfc2818_verification, - ssl::stream, SSL - example (C++03), SSL - example (C++11). -

-
- - Notes -
-

- OpenSSL is required to make use - of Asio's SSL support. When an application needs to use OpenSSL functionality - that is not wrapped by Asio, the underlying OpenSSL types may be obtained - by calling ssl::context::native_handle() - or ssl::stream::native_handle(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/timers.html b/Sources/Vendor/asio/doc/asio/overview/timers.html deleted file mode 100644 index 01354cf..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/timers.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -Timers - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-Timers -

-

- Long running I/O operations will often have a deadline by which they must - have completed. These deadlines may be expressed as absolute times, but are - often calculated relative to the current time. -

-

- As a simple example, to perform a synchronous wait operation on a timer using - a relative time one may write: -

-
io_context i;
-...
-deadline_timer t(i);
-t.expires_from_now(boost::posix_time::seconds(5));
-t.wait();
-
-

- More commonly, a program will perform an asynchronous wait operation on a - timer: -

-
void handler(asio::error_code ec) { ... }
-...
-io_context i;
-...
-deadline_timer t(i);
-t.expires_from_now(boost::posix_time::milliseconds(400));
-t.async_wait(handler);
-...
-i.run();
-
-

- The deadline associated with a timer may also be obtained as a relative time: -

-
boost::posix_time::time_duration time_until_expiry
-  = t.expires_from_now();
-
-

- or as an absolute time to allow composition of timers: -

-
deadline_timer t2(i);
-t2.expires_at(t.expires_at() + boost::posix_time::seconds(30));
-
-
- - See - Also -
-

- basic_deadline_timer, - deadline_timer, timer tutorials. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/windows.html b/Sources/Vendor/asio/doc/asio/overview/windows.html deleted file mode 100644 index 867d906..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/windows.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -Windows-Specific Functionality - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
- - - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/windows/object_handle.html b/Sources/Vendor/asio/doc/asio/overview/windows/object_handle.html deleted file mode 100644 index da8cffb..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/windows/object_handle.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -Object HANDLEs - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio provides Windows-specific classes that permit asynchronous wait operations - to be performed on HANDLEs to kernel objects of the following types: -

-
    -
  • - Change notification -
  • -
  • - Console input -
  • -
  • - Event -
  • -
  • - Memory resource notification -
  • -
  • - Process -
  • -
  • - Semaphore -
  • -
  • - Thread -
  • -
  • - Waitable timer -
  • -
-

- For example, to perform asynchronous operations on an event, the following - object may be created: -

-
HANDLE handle = ::CreateEvent(...);
-windows::object_handle file(my_io_context, handle);
-
-

- The wait() and async_wait() member functions - may then be used to wait until the kernel object is signalled. -

-
- - See - Also -
-

- windows::object_handle. -

-
- - Notes -
-

- Windows object HANDLEs are only available at compile time - when targeting Windows. Programs may test for the macro ASIO_HAS_WINDOWS_OBJECT_HANDLE - to determine whether they are supported. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/windows/random_access_handle.html b/Sources/Vendor/asio/doc/asio/overview/windows/random_access_handle.html deleted file mode 100644 index fb1d48c..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/windows/random_access_handle.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -Random-Access HANDLEs - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio provides Windows-specific classes that permit asynchronous read and - write operations to be performed on HANDLEs that refer to regular files. -

-

- For example, to perform asynchronous operations on a file the following - object may be created: -

-
HANDLE handle = ::CreateFile(...);
-windows::random_access_handle file(my_io_context, handle);
-
-

- Data may be read from or written to the handle using one of the read_some_at(), - async_read_some_at(), write_some_at() or async_write_some_at() - member functions. However, like the equivalent functions (read_some(), - etc.) on streams, these functions are only required to transfer one or - more bytes in a single operation. Therefore free functions called read_at(), async_read_at(), - write_at() and async_write_at() - have been created to repeatedly call the corresponding *_some_at() function until all data has - been transferred. -

-
- - See Also -
-

- windows::random_access_handle. -

-
- - Notes -
-

- Windows random-access HANDLEs are only available at compile - time when targeting Windows and only when the I/O completion port backend - is used (which is the default). A program may test for the macro ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE - to determine whether they are supported. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/windows/stream_handle.html b/Sources/Vendor/asio/doc/asio/overview/windows/stream_handle.html deleted file mode 100644 index dbfb523..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/windows/stream_handle.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Stream-Oriented HANDLEs - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio contains classes to allow asynchronous read and write operations to - be performed on Windows HANDLEs, such as named pipes. -

-

- For example, to perform asynchronous operations on a named pipe, the following - object may be created: -

-
HANDLE handle = ::CreateFile(...);
-windows::stream_handle pipe(my_io_context, handle);
-
-

- These are then used as synchronous or asynchronous read and write streams. - This means the objects can be used with any of the read(), - async_read(), write(), - async_write(), read_until() or async_read_until() - free functions. -

-

- The kernel object referred to by the HANDLE must support use - with I/O completion ports (which means that named pipes are supported, - but anonymous pipes and console streams are not). -

-
- - See - Also -
-

- windows::stream_handle. -

-
- - Notes -
-

- Windows stream HANDLEs are only available at compile time - when targeting Windows and only when the I/O completion port backend is - used (which is the default). A program may test for the macro ASIO_HAS_WINDOWS_STREAM_HANDLE - to determine whether they are supported. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference.html b/Sources/Vendor/asio/doc/asio/reference.html deleted file mode 100644 index 6a2b909..0000000 --- a/Sources/Vendor/asio/doc/asio/reference.html +++ /dev/null @@ -1,591 +0,0 @@ - - - -Reference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
- ------ - - - - - - - -
-

-Core

-
-

-Classes

- - - - - - - - - - - - - - - - - - - - - -
coroutine
error_code
execution_context
execution_context::id
execution_context::service
executor
executor_arg_t
invalid_service_owner
io_context
io_context::executor_type
io_context::service
io_context::strand
-io_context::work (deprecated)
service_already_exists
system_error
system_executor
thread
thread_pool
thread_pool::executor_type
yield_context
-
-

-Free Functions

- - - - - - - - - - - - - - - - -
add_service
asio_handler_allocate
asio_handler_deallocate
asio_handler_invoke
asio_handler_is_continuation
bind_executor
dispatch
defer
get_associated_allocator
get_associated_executor
has_service
make_work_guard
post
spawn
use_service
-
-

-Class Templates

- - - - - - - - -
async_completion
basic_io_object
basic_yield_context
executor_binder
executor_work_guard
strand
use_future_t
-

-Special Values

- - - -
executor_arg
use_future
-

-Boost.Bind Placeholders

- - - - - - - -
placeholders::bytes_transferred
placeholders::endpoint
placeholders::error
placeholders::iterator
placeholders::results
placeholders::signal_number
-
-

-Error Codes

- - - - - -
error::basic_errors
error::netdb_errors
error::addrinfo_errors
error::misc_errors
-

-Type Traits

- - - - - - - -
associated_allocator
associated_executor
async_result
-handler_type (deprecated)
is_executor
uses_executor
-

-Type Requirements

- - - - - - - -
Asynchronous operations
CompletionHandler
ExecutionContext
Executor
Handler
Service
-
- ------ - - - - - - - -
-

-Buffers and Buffer-Oriented Operations

-
-

-Classes

- - - - - - - -
const_buffer
mutable_buffer
-const_buffers_1 (deprecated)
-mutable_buffers_1 (deprecated)
-null_buffers (deprecated)
streambuf
-

-Class Templates

- - - - - - - - -
basic_streambuf
buffered_read_stream
buffered_stream
buffered_write_stream
buffers_iterator
dynamic_string_buffer
dynamic_vector_buffer
-
-

-Free Functions

- - - - - - - - - - - - - - - - - - - - - -
async_read
async_read_at
async_read_until
async_write
async_write_at
buffer
-buffer_cast (deprecated)
buffer_copy
buffer_size
buffers_begin
buffers_end
dynamic_buffer
read
read_at
read_until
transfer_all
transfer_at_least
transfer_exactly
write
write_at
-
-

-Type Traits

- - - - - - -
is_const_buffer_sequence
is_match_condition
is_mutable_buffer_sequence
is_read_buffered
is_write_buffered
-
-

-Type Requirements

- - - - - - - - - - - - - - - - -
Read and write operations
AsyncRandomAccessReadDevice
AsyncRandomAccessWriteDevice
AsyncReadStream
AsyncWriteStream
CompletionCondition
ConstBufferSequence
DynamicBuffer
MutableBufferSequence
ReadHandler
SyncRandomAccessReadDevice
SyncRandomAccessWriteDevice
SyncReadStream
SyncWriteStream
WriteHandler
-
- ------ - - - - - - - -
-

-Networking

-
-

-Classes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
generic::datagram_protocol
generic::datagram_protocol::endpoint
generic::datagram_protocol::socket
generic::raw_protocol
generic::raw_protocol::endpoint
generic::raw_protocol::socket
generic::seq_packet_protocol
generic::seq_packet_protocol::endpoint
generic::seq_packet_protocol::socket
generic::stream_protocol
generic::stream_protocol::endpoint
generic::stream_protocol::iostream
generic::stream_protocol::socket
ip::address
ip::address_v4
ip::address_v4_iterator
ip::address_v4_range
ip::address_v6
ip::address_v6_iterator
ip::address_v6_range
ip::icmp
ip::icmp::endpoint
ip::icmp::resolver
ip::icmp::socket
ip::network_v4
ip::network_v6
ip::resolver_query_base
ip::tcp
ip::tcp::acceptor
ip::tcp::endpoint
ip::tcp::iostream
ip::tcp::resolver
ip::tcp::socket
ip::udp
ip::udp::endpoint
ip::udp::resolver
ip::udp::socket
socket_base
-
-

-Free Functions

- - - - - - - - - -
async_connect
connect
ip::host_name
ip::make_address
ip::make_address_v4
ip::make_address_v6
ip::make_network_v4
ip::make_network_v6
-

-Class Templates

- - - - - - - - - - - - - - - -
basic_datagram_socket
basic_raw_socket
basic_seq_packet_socket
basic_socket
basic_socket_acceptor
basic_socket_iostream
basic_socket_streambuf
basic_stream_socket
generic::basic_endpoint
ip::basic_endpoint
ip::basic_resolver
ip::basic_resolver_entry
ip::basic_resolver_iterator
ip::basic_resolver_query
-
-

-Socket Options

- - - - - - - - - - - - - - - - - - - - -
ip::multicast::enable_loopback
ip::multicast::hops
ip::multicast::join_group
ip::multicast::leave_group
ip::multicast::outbound_interface
ip::tcp::no_delay
ip::unicast::hops
ip::v6_only
socket_base::broadcast
socket_base::debug
socket_base::do_not_route
socket_base::enable_connection_aborted
socket_base::keep_alive
socket_base::linger
socket_base::receive_buffer_size
socket_base::receive_low_watermark
socket_base::reuse_address
socket_base::send_buffer_size
socket_base::send_low_watermark
-
-

-I/O Control Commands

-
socket_base::bytes_readable
-

-Type Requirements

- - - - - - - - - - - - - - - - - - -
Synchronous socket operations
Asynchronous socket operations
AcceptableProtocol
AcceptHandler
ConnectCondition
ConnectHandler
Endpoint
EndpointSequence
GettableSocketOption
InternetProtocol
IoControlCommand
IteratorConnectHandler
MoveAcceptHandler
Protocol
RangeConnectHandler
ResolveHandler
SettableSocketOption
-
- ------ - - - - - - - - - - - - -
-

-Timers

-
-

-SSL

-
-

-Serial Ports

-
-

-Signal Handling

-
-

-Classes

- - - - - -
deadline_timer
high_resolution_timer
steady_timer
system_timer
-

-Class Templates

- - - - - -
basic_deadline_timer
basic_waitable_timer
time_traits
wait_traits
-

-Type Requirements

- - - - -
TimeTraits
WaitHandler
WaitTraits
-
-

-Classes

- - - - - - -
ssl::context
ssl::context_base
ssl::rfc2818_verification
ssl::stream_base
ssl::verify_context
-

-Class Templates

-
ssl::stream
-

-Type Requirements

- - - - -
BufferedHandshakeHandler
HandshakeHandler
ShutdownHandler
-
-

-Classes

- - - -
serial_port
serial_port_base
-

-Serial Port Options

- - - - - - -
serial_port_base::baud_rate
serial_port_base::flow_control
serial_port_base::parity
serial_port_base::stop_bits
serial_port_base::character_size
-

-Type Requirements

- - - -
GettableSerialPortOption
SettableSerialPortOption
-
-

-Classes

-
signal_set
-

-Type Requirements

-
SignalHandler
-
- ------ - - - - - - - - - - - -
-

-POSIX-specific

-
-

-Windows-specific

-
-

-Experimental

-
-

-Classes

- - - - - - - - - - - - -
local::stream_protocol
local::stream_protocol::acceptor
local::stream_protocol::endpoint
local::stream_protocol::iostream
local::stream_protocol::socket
local::datagram_protocol
local::datagram_protocol::endpoint
local::datagram_protocol::socket
posix::descriptor
posix::descriptor_base
posix::stream_descriptor
-
-

-Free Functions

-
local::connect_pair
-

-Class Templates

-
local::basic_endpoint
-
-

-Classes

- - - - - - -
windows::object_handle
windows::overlapped_handle
windows::overlapped_ptr
windows::random_access_handle
windows::stream_handle
-
-

-Classes

- - - - -
experimental::detached_t
experimental::this_coro::executor_t
experimental::this_coro::token_t
-

-Class Templates

- - - - -
experimental::awaitable
experimental::await_token
experimental::redirect_error_t
-

-Free Functions

- - - - -
experimental::co_spawn
experimental::this_coro::executor
experimental::this_coro::token
-

-Special Values

-
experimental::detached
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/AcceptHandler.html b/Sources/Vendor/asio/doc/asio/reference/AcceptHandler.html deleted file mode 100644 index a3f9208..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/AcceptHandler.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -Accept handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An accept handler must meet the requirements for a handler. - A value h of an accept handler class should work correctly in - the expression h(ec), where ec is an lvalue of - type const error_code. -

-
- - Examples -
-

- A free function as an accept handler: -

-
void accept_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-
-

- An accept handler function object: -

-
struct accept_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as an accept handler: -

-
acceptor.async_accept(...,
-    [](const asio::error_code& ec)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to an accept handler using std::bind(): -

-
void my_class::accept_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-acceptor.async_accept(...,
-    std::bind(&my_class::accept_handler,
-      this, std::placeholders::_1));
-
-

- A non-static class member function adapted to an accept handler using boost::bind(): -

-
void my_class::accept_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-acceptor.async_accept(...,
-    boost::bind(&my_class::accept_handler,
-      this, asio::placeholders::error));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/AcceptableProtocol.html b/Sources/Vendor/asio/doc/asio/reference/AcceptableProtocol.html deleted file mode 100644 index 11e9e76..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/AcceptableProtocol.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -Acceptable protocol requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the AcceptableProtocol requirements - if it satisfies the requirements of Protocol - as well as the additional requirements listed below. -

-
-

Table 1. AcceptableProtocol requirements

-
----- - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-conditions -

-
-

- X::socket -

-
-

- A type that satisfies the requirements of Destructible - (C++Std [destructible]) and MoveConstructible (C++Std - [moveconstructible]), and that is publicly and unambiguously derived - from basic_socket<X>. -

-
-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/AsyncRandomAccessReadDevice.html b/Sources/Vendor/asio/doc/asio/reference/AsyncRandomAccessReadDevice.html deleted file mode 100644 index 407f0ad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/AsyncRandomAccessReadDevice.html +++ /dev/null @@ -1,127 +0,0 @@ - - - -Buffer-oriented asynchronous random-access read device requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In the table below, a denotes an asynchronous random access - read device object, o denotes an offset of type boost::uint64_t, - mb denotes an object satisfying mutable - buffer sequence requirements, and h denotes an object - satisfying read handler - requirements. -

-
-

Table 2. Buffer-oriented asynchronous random-access read device requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.get_executor() -

-
-

- A type satisfying the Executor - requirements. -

-
-

- Returns the associated I/O executor. -

-
-

- a.async_read_some_at(o, mb, h); -

-
-

- void -

-
-

- Initiates an asynchronous operation to read one or more bytes of - data from the device a at the offset o. - The operation is performed via the io_service object - a.get_io_service() and behaves according to asynchronous operation - requirements.

The mutable buffer sequence mb - specifies memory where the data should be placed. The async_read_some_at - operation shall always fill a buffer in the sequence completely - before proceeding to the next.

The implementation - shall maintain one or more copies of mb until such - time as the read operation no longer requires access to the memory - specified by the buffers in the sequence. The program must ensure - the memory is valid until:

— the last copy of mb - is destroyed, or

— the handler for the asynchronous - read operation is invoked,

whichever comes first.
-
If the total size of all buffers in the sequence mb - is 0, the asynchronous read operation shall complete - immediately and pass 0 as the argument to the handler - that specifies the number of bytes read. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/AsyncRandomAccessWriteDevice.html b/Sources/Vendor/asio/doc/asio/reference/AsyncRandomAccessWriteDevice.html deleted file mode 100644 index b72680f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/AsyncRandomAccessWriteDevice.html +++ /dev/null @@ -1,128 +0,0 @@ - - - -Buffer-oriented asynchronous random-access write device requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In the table below, a denotes an asynchronous write stream object, - o denotes an offset of type boost::uint64_t, cb - denotes an object satisfying constant - buffer sequence requirements, and h denotes an object - satisfying write handler - requirements. -

-
-

Table 3. Buffer-oriented asynchronous random-access write device requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.get_executor() -

-
-

- A type satisfying the Executor - requirements. -

-
-

- Returns the associated I/O executor. -

-
-

- a.async_write_some_at(o, cb, h); -

-
-

- void -

-
-

- Initiates an asynchronous operation to write one or more bytes - of data to the device a at offset o. - The operation is performed via the io_service object - a.get_io_service() and behaves according to asynchronous operation - requirements.

The constant buffer sequence cb - specifies memory where the data to be written is located. The - async_write_some_at operation shall always write a - buffer in the sequence completely before proceeding to the next.
-
The implementation shall maintain one or more copies of - cb until such time as the write operation no longer - requires access to the memory specified by the buffers in the sequence. - The program must ensure the memory is valid until:

- — the last copy of cb is destroyed, or

- — the handler for the asynchronous write operation is invoked,
-
whichever comes first.

If the total size of - all buffers in the sequence cb is 0, - the asynchronous write operation shall complete immediately and - pass 0 as the argument to the handler that specifies - the number of bytes written. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/AsyncReadStream.html b/Sources/Vendor/asio/doc/asio/reference/AsyncReadStream.html deleted file mode 100644 index a2868dc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/AsyncReadStream.html +++ /dev/null @@ -1,128 +0,0 @@ - - - -Buffer-oriented asynchronous read stream requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the AsyncReadStream requirements - if it satisfies the requirements listed below. -

-

- In the table below, a denotes a value of type X, - mb denotes a (possibly const) value satisfying the MutableBufferSequence - requirements, and t is a completion token. -

-
-

Table 4. AsyncReadStream requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.get_executor() -

-
-

- A type satisfying the Executor - requirements. -

-
-

- Returns the associated I/O executor. -

-
-

- a.async_read_some(mb,t) -

-
-

- The return type is determined according to the requirements for - an asynchronous - operation. -

-
-

- Meets the requirements for a read - operation and an asynchronous - operation with completion signature void(error_code - ec, size_t n).

If buffer_size(mb) > - 0, initiates an asynchronous operation to read one or more - bytes of data from the stream a into the buffer sequence - mb. If successful, ec is set such that - !ec is true, and n is the - number of bytes read. If an error occurred, ec is - set such that !!ec is true, and n - is 0. If all data has been read from the stream, and the stream - performed an orderly shutdown, ec is stream_errc::eof - and n is 0.

If buffer_size(mb) - == 0, the operation completes immediately. ec - is set such that !ec is true, and n - is 0. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/AsyncWriteStream.html b/Sources/Vendor/asio/doc/asio/reference/AsyncWriteStream.html deleted file mode 100644 index 3b8ffc2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/AsyncWriteStream.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -Buffer-oriented asynchronous write stream requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the AsyncWriteStream requirements - if it satisfies the requirements listed below. -

-

- In the table below, a denotes a value of type X, - cb denotes a (possibly const) value satisfying the ConstBufferSequence - requirements, and t is a completion token. -

-
-

Table 5. AsyncWriteStream requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.get_executor() -

-
-

- A type satisfying the Executor - requirements. -

-
-

- Returns the associated I/O executor. -

-
-

- a.async_write_some(cb,t) -

-
-

- The return type is determined according to the requirements for - an asynchronous - operation. -

-
-

- Meets the requirements for a write - operation and an asynchronous - operation with completion signature void(error_code - ec, size_t n).

If buffer_size(cb) > - 0, initiates an asynchronous operation to write one or more - bytes of data to the stream a from the buffer sequence - cb. If successful, ec is set such that - !ec is true, and n is the - number of bytes written. If an error occurred, ec - is set such that !!ec is true, and n - is 0.

If buffer_size(cb) == 0, the operation - completes immediately. ec is set such that !ec - is true, and n is 0. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/BufferedHandshakeHandler.html b/Sources/Vendor/asio/doc/asio/reference/BufferedHandshakeHandler.html deleted file mode 100644 index 94d7b7d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/BufferedHandshakeHandler.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -Buffered handshake handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A buffered handshake handler must meet the requirements for a 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. -

-
- - Examples -
-

- A free function as a buffered handshake handler: -

-
void handshake_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-
-

- A buffered handshake handler function object: -

-
struct handshake_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec,
-      std::size_t bytes_transferred)
-  {
-    ...
-  }
-  ...
-};
-
-

- A non-static class member function adapted to a buffered handshake handler - using boost::bind(): -

-
void my_class::handshake_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-...
-socket.async_handshake(...,
-    boost::bind(&my_class::handshake_handler,
-      this, asio::placeholders::error,
-      asio::placeholders::bytes_transferred));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/CompletionCondition.html b/Sources/Vendor/asio/doc/asio/reference/CompletionCondition.html deleted file mode 100644 index d1a1ae7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/CompletionCondition.html +++ /dev/null @@ -1,105 +0,0 @@ - - - -Completion condition requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A completion condition is a function object that is - used with the algorithms read, - async_read, - write, and async_write to determine - when the algorithm has completed transferring data. -

-

- A type X meets the CompletionCondition requirements - if it satisfies the requirements of Destructible (C++Std [destructible]) - and CopyConstructible (C++Std [copyconstructible]), as well - as the additional requirements listed below. -

-

- In the table below, x denotes a value of type X, - ec denotes a (possibly const) value of type error_code, - and n denotes a (possibly const) value of type size_t. -

-
-

Table 6. CompletionCondition requirements

-
----- - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- x(ec, n) -

-
-

- size_t -

-
-

- Let n be the total number of bytes transferred by - the read or write algorithm so far.

Returns the maximum - number of bytes to be transferred on the next read_some, - async_read_some, write_some, or async_write_some - operation performed by the algorithm. Returns 0 to - indicate that the algorithm is complete. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/CompletionHandler.html b/Sources/Vendor/asio/doc/asio/reference/CompletionHandler.html deleted file mode 100644 index e3636cc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/CompletionHandler.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -Completion handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A completion handler must meet the requirements for a handler. - A value h of a completion handler class should work correctly - in the expression h(). -

-
- - Examples -
-

- A free function as a completion handler: -

-
void completion_handler()
-{
-  ...
-}
-
-

- A completion handler function object: -

-
struct completion_handler
-{
-  ...
-  void operator()()
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a completion handler: -

-
my_io_service.post(
-    []()
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a completion handler using - std::bind(): -

-
void my_class::completion_handler()
-{
-  ...
-}
-...
-my_io_service.post(std::bind(&my_class::completion_handler, this));
-
-

- A non-static class member function adapted to a completion handler using - boost::bind(): -

-
void my_class::completion_handler()
-{
-  ...
-}
-...
-my_io_service.post(boost::bind(&my_class::completion_handler, this));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ConnectCondition.html b/Sources/Vendor/asio/doc/asio/reference/ConnectCondition.html deleted file mode 100644 index bbd9fe7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ConnectCondition.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -Connect condition requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the ConnectCondition requirements - if it satisfies the requirements of Destructible (C++Std [destructible]) - and CopyConstructible (C++Std [copyconstructible]), as well - as the additional requirements listed below. -

-

- In the table below, x denotes a value of type X, - ec denotes a (possibly const) value of type error_code, - and ep denotes a (possibly const) value of some type satisfying - the endpoint requirements. -

-
-

Table 7. ConnectCondition requirements

-
----- - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- x(ec, ep) -

-
-

- bool -

-
-

- Returns true to indicate that the connect - or async_connect algorithm should attempt a connection - to the endpoint ep. Otherwise, returns false - to indicate that the algorithm should not attempt connection to - the endpoint ep, and should instead skip to the next - endpoint in the sequence. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ConnectHandler.html b/Sources/Vendor/asio/doc/asio/reference/ConnectHandler.html deleted file mode 100644 index 221a521..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ConnectHandler.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -Connect handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A connect handler must meet the requirements for a handler. - A value h of a connect handler class should work correctly in - the expression h(ec), where ec is an lvalue of - type const error_code. -

-
- - Examples -
-

- A free function as a connect handler: -

-
void connect_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-
-

- A connect handler function object: -

-
struct connect_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a connect handler: -

-
socket.async_connect(...,
-    [](const asio::error_code& ec)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a connect handler using std::bind(): -

-
void my_class::connect_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-socket.async_connect(...,
-    std::bind(&my_class::connect_handler,
-      this, std::placeholders::_1));
-
-

- A non-static class member function adapted to a connect handler using boost::bind(): -

-
void my_class::connect_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-socket.async_connect(...,
-    boost::bind(&my_class::connect_handler,
-      this, asio::placeholders::error));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ConstBufferSequence.html b/Sources/Vendor/asio/doc/asio/reference/ConstBufferSequence.html deleted file mode 100644 index 7395387..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ConstBufferSequence.html +++ /dev/null @@ -1,129 +0,0 @@ - - - -Constant buffer sequence requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A constant buffer sequence represents a set of memory - regions that may be used as input to an operation, such as the send - operation of a socket. -

-

- A type X meets the ConstBufferSequence requirements - if it satisfies the requirements of Destructible (C++Std [destructible]) - and CopyConstructible (C++Std [copyconstructible]), as well - as the additional requirements listed below. -

-

- In the table below, x denotes a (possibly const) value of type - X, and u denotes an identifier. -

-
-

Table 8. ConstBufferSequence requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- asio::buffer_sequence_begin(x)
asio::buffer_sequence_end(x) -

-
-

- An iterator type meeting the requirements for bidirectional iterators - (C++Std [bidirectional.iterators]) whose value type is convertible - to const_buffer. -

-
-
-

-

-
X u(x);
-
-

-

-
- -

- post:
-

-
equal(
-  asio::buffer_sequence_begin(x),
-  asio::buffer_sequence_end(x),
-  asio::buffer_sequence_begin(u),
-  asio::buffer_sequence_end(u),
-  [](const const_buffer& b1,
-     const const_buffer& b2)
-   {
-     return b1.data() == b2.data()
-         && b1.size() == b2.size();
-   })
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/DynamicBuffer.html b/Sources/Vendor/asio/doc/asio/reference/DynamicBuffer.html deleted file mode 100644 index 648a8a0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/DynamicBuffer.html +++ /dev/null @@ -1,256 +0,0 @@ - - - -Dynamic buffer requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A dynamic buffer encapsulates memory storage that may be automatically resized - as required, where the memory is divided into an input sequence followed - by an output sequence. These memory regions are internal to the dynamic buffer - sequence, but direct access to the elements is provided to permit them to - be efficiently used with I/O operations, such as the send or - receive operations of a socket. Data written to the output sequence - of a dynamic buffer sequence object is appended to the input sequence of - the same object. -

-

- A dynamic buffer type X shall satisfy the requirements of MoveConstructible - (C++ Std, [moveconstructible]) types in addition to those listed below. -

-

- In the table below, X denotes a dynamic buffer class, x - denotes a value of type X&, x1 denotes values - of type const X&, and n denotes a value of - type size_t, and u denotes an identifier. -

-
-

Table 9. DynamicBuffer requirements

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- X::const_buffers_type -

-
-

- type meeting ConstBufferSequence - requirements. -

-
-

- This type represents the memory associated with the input sequence. -

-
-

- X::mutable_buffers_type -

-
-

- type meeting MutableBufferSequence - requirements. -

-
-

- This type represents the memory associated with the output sequence. -

-
-

- x1.size() -

-
-

- size_t -

-
-

- Returns the size, in bytes, of the input sequence. -

-
-

- x1.max_size() -

-
-

- size_t -

-
-

- Returns the permitted maximum of the sum of the sizes of the input - sequence and output sequence. -

-
-

- x1.capacity() -

-
-

- size_t -

-
-

- Returns the maximum sum of the sizes of the input sequence and - output sequence that the dynamic buffer can hold without requiring - reallocation. -

-
-

- x1.data() -

-
-

- X::const_buffers_type -

-
-

- Returns a constant buffer sequence u that represents - the memory associated with the input sequence, and where buffer_size(u) - == size(). -

-
-

- x.prepare(n) -

-
-

- X::mutable_buffers_type -

-
-

- Requires: size() + n <= max_size().

- Returns a mutable buffer sequence u representing the - output sequence, and where buffer_size(u) == n. The - dynamic buffer reallocates memory as required. All constant or - mutable buffer sequences previously obtained using data() - or prepare() are invalidated.

Throws: - length_error if size() + n > max_size(). -

-
-

- x.commit(n) -

-
- -

- Appends n bytes from the start of the output sequence - to the end of the input sequence. The remainder of the output sequence - is discarded. If n is greater than the size of the - output sequence, the entire output sequence is appended to the - input sequence. All constant or mutable buffer sequences previously - obtained using data() or prepare() are - invalidated. -

-
-

- x.consume(n) -

-
- -

- Removes n bytes from beginning of the input sequence. - If n is greater than the size of the input sequence, - the entire input sequence is removed. All constant or mutable buffer - sequences previously obtained using data() or prepare() - are invalidated. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/Endpoint.html b/Sources/Vendor/asio/doc/asio/reference/Endpoint.html deleted file mode 100644 index c8ba39a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/Endpoint.html +++ /dev/null @@ -1,251 +0,0 @@ - - - -Endpoint requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the Endpoint requirements if it - satisfies the requirements of Destructible (C++Std [destructible]), - DefaultConstructible (C++Std [defaultconstructible]), CopyConstructible - (C++Std [copyconstructible]), and CopyAssignable (C++Std [copyassignable]), - as well as the additional requirements listed below. -

-

- In the table below, a denotes a (possibly const) value of type - X, and u denotes an identifier. -

-
-

Table 10. Endpoint requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- X::protocol_type -

-
-

- type meeting Protocol - requirements -

-
-
-

- a.protocol() -

-
-

- protocol_type -

-
-
-
-

- In the table below, a denotes a (possibly const) value of type - X, b denotes a value of type X, and - s denotes a (possibly const) value of a type that is convertible - to size_t and denotes a size in bytes. -

-
-

Table 11. Endpoint requirements for extensible implementations

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- a.data() -

-
-

- const void* -

-
-

- Returns a pointer suitable for passing as the address - argument to functions such as POSIX connect(), - or as the dest_addr argument to functions - such as POSIX sendto(). - The implementation shall perform a static_cast on - the pointer to convert it to const sockaddr*. -

-
-

- b.data() -

-
-

- void* -

-
-

- Returns a pointer suitable for passing as the address - argument to functions such as POSIX accept(), - getpeername(), - getsockname() - and recvfrom(). - The implementation shall perform a static_cast on - the pointer to convert it to sockaddr*. -

-
-

- a.size() -

-
-

- size_t -

-
-

- Returns a value suitable for passing as the address_len - argument to functions such as POSIX connect(), - or as the dest_len argument to functions such - as POSIX sendto(), - after appropriate integer conversion has been performed. -

-
-

- b.resize(s) -

-
- -

- pre: s >= 0
post: a.size() == s
- Passed the value contained in the address_len - argument to functions such as POSIX accept(), - getpeername(), - getsockname() - and recvfrom(), - after successful completion of the function. Permitted to throw - an exception if the protocol associated with the endpoint object - a does not support the specified size. -

-
-

- a.capacity() -

-
-

- size_t -

-
-

- Returns a value suitable for passing as the address_len - argument to functions such as POSIX accept(), - getpeername(), - getsockname() - and recvfrom(), - after appropriate integer conversion has been performed. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/EndpointSequence.html b/Sources/Vendor/asio/doc/asio/reference/EndpointSequence.html deleted file mode 100644 index 3e4fb80..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/EndpointSequence.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -Endpoint sequence requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the EndpointSequence requirements - if it satisfies the requirements of Destructible (C++Std [destructible]) - and CopyConstructible (C++Std [copyconstructible]), as well - as the additional requirements listed below. -

-

- In the table below, x denotes a (possibly const) value of type - X. -

-
-

Table 12. EndpointSequence requirements

-
----- - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- x.begin()
x.end() -

-
-

- A type meeting the requirements for forward iterators (C++Std [forward.iterators]) - whose value type is convertible to a type satisfying the Endpoint - requirements. -

-
-

- [x.begin(),x.end()) is a valid range. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ExecutionContext.html b/Sources/Vendor/asio/doc/asio/reference/ExecutionContext.html deleted file mode 100644 index 3c4224b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ExecutionContext.html +++ /dev/null @@ -1,122 +0,0 @@ - - - -Execution context requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the ExecutionContext requirements - if it is publicly and unambiguously derived from execution_context, - and satisfies the additional requirements listed below. -

-

- In the table below, x denotes a value of type X. -

-
-

Table 13. ExecutionContext requirements

-
----- - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- X::executor_type -

-
-

- type meeting Executor - requirements -

-
-
-

- x.~X() -

-
- -

- Destroys all unexecuted function objects that were submitted via - an executor object that is associated with the execution context. -

-
-

- x.get_executor() -

-
-

- X::executor_type -

-
-

- Returns an executor object that is associated with the execution - context. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/Executor1.html b/Sources/Vendor/asio/doc/asio/reference/Executor1.html deleted file mode 100644 index 2cae0ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/Executor1.html +++ /dev/null @@ -1,289 +0,0 @@ - - - -Executor requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The library describes a standard set of requirements for executors. - A type meeting the Executor requirements embodies a set of rules - for determining how submitted function objects are to be executed. -

-

- A type X meets the Executor requirements if it - satisfies the requirements of CopyConstructible (C++Std [copyconstructible]) - and Destructible (C++Std [destructible]), as well as the additional - requirements listed below. -

-

- No constructor, comparison operator, copy operation, move operation, swap - operation, or member functions context, on_work_started, - and on_work_finished on these types shall exit via an exception. -

-

- The executor copy constructor, comparison operators, and other member functions - defined in these requirements shall not introduce data races as a result - of concurrent calls to those functions from different threads. -

-

- Let ctx be the execution context returned by the executor's - context() member function. An executor becomes invalid - when the first call to ctx.shutdown() returns. The effect of - calling on_work_started, on_work_finished, dispatch, - post, or defer on an invalid executor is undefined. - [Note: The copy constructor, comparison operators, and - context() member function continue to remain valid until ctx - is destroyed. —end note] -

-

- In the table below, x1 and x2 denote (possibly - const) values of type X, mx1 denotes an xvalue - of type X, f denotes a MoveConstructible - (C++Std [moveconstructible]) function object callable with zero arguments, - a denotes a (possibly const) value of type A meeting - the Allocator requirements (C++Std [allocator.requirements]), - and u denotes an identifier. -

-
-

Table 14. Executor requirements

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- X u(x1); -

-
- -

- Shall not exit via an exception.

post: u == - x1 and std::addressof(u.context()) == std::addressof(x1.context()). -

-
-

- X u(mx1); -

-
- -

- Shall not exit via an exception.

post: u - equals the prior value of mx1 and std::addressof(u.context()) - equals the prior value of std::addressof(mx1.context()). -

-
-

- x1 == x2 -

-
-

- bool -

-
-

- Returns true only if x1 and x2 - can be interchanged with identical effects in any of the expressions - defined in these type requirements. [Note: - Returning false does not necessarily imply that the - effects are not identical. —end note]
-
operator== shall be reflexive, symmetric, and - transitive, and shall not exit via an exception. -

-
-

- x1 != x2 -

-
-

- bool -

-
-

- Same as !(x1 == x2). -

-
-

- x1.context() -

-
-

- execution_context&, or E& where - E is a type that satifisfies the ExecutionContext - requirements. -

-
-

- Shall not exit via an exception.

The comparison operators - and member functions defined in these requirements shall not alter - the reference returned by this function. -

-
-

- x1.on_work_started() -

-
- -

- Shall not exit via an exception. -

-
-

- x1.on_work_finished() -

-
- -

- Shall not exit via an exception.

Precondition: A preceding - call x2.on_work_started() where x1 == x2. -

-
-

- x1.dispatch(std::move(f),a) -

-
- -

- Effects: Creates an object f1 initialized with DECAY_COPY(forward<Func>(f)) - (C++Std [thread.decaycopy]) in the current thread of execution - . Calls f1() at most once. The executor may block - forward progress of the caller until f1() finishes - execution.

Executor implementations should use the - supplied allocator to allocate any memory required to store the - function object. Prior to invoking the function object, the executor - shall deallocate any memory allocated. [Note: - Executors defined in this Technical Specification always use the - supplied allocator unless otherwise specified. —end note] -

Synchronization: The invocation of dispatch - synchronizes with (C++Std [intro.multithread]) the invocation of - f1. -

-
-

- x1.post(std::move(f),a)
x1.defer(std::move(f),a) -

-
- -

- Effects: Creates an object f1 initialized with DECAY_COPY(forward<Func>(f)) - in the current thread of execution. Calls f1() at - most once. The executor shall not block forward progress of the - caller pending completion of f1().

Executor - implementations should use the supplied allocator to allocate any - memory required to store the function object. Prior to invoking - the function object, the executor shall deallocate any memory allocated. - [Note: Executors defined in this Technical - Specification always use the supplied allocator unless otherwise - specified. —end note]

Synchronization: - The invocation of post or defer synchronizes - with (C++Std [intro.multithread]) the invocation of f1.
-
[Note: Although the requirements placed - on defer are identical to post, the use - of post conveys a preference that the caller does - not block the first step of f1's - progress, whereas defer conveys a preference that - the caller does block the first step of f1. - One use of defer is to convey the intention of the - caller that f1 is a continuation of the current - call context. The executor may use this information to optimize - or otherwise adjust the way in which f1 is invoked. - —end note] -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/GettableSerialPortOption.html b/Sources/Vendor/asio/doc/asio/reference/GettableSerialPortOption.html deleted file mode 100644 index 71398c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/GettableSerialPortOption.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -Gettable serial port option requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In the table below, X denotes a serial port option class, a - denotes a value of X, ec denotes a value of type - error_code, and s denotes a value of implementation-defined - type storage (where storage - is the type DCB on Windows and termios on POSIX - platforms), and u denotes an identifier. -

-
-

Table 15. GettableSerialPortOption requirements

-
----- - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- const storage& - u = s;
a.load(u, ec); -

-
-

- error_code -

-
-

- Retrieves the value of the serial port option from the storage.
-
If successful, sets ec such that !ec - is true. If an error occurred, sets ec such that - !!ec is true. Returns ec. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/GettableSocketOption.html b/Sources/Vendor/asio/doc/asio/reference/GettableSocketOption.html deleted file mode 100644 index 4fa1e3f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/GettableSocketOption.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -Gettable socket option requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the GettableSocketOption requirements - if it satisfies the requirements listed below. -

-

- In the table below, a denotes a (possibly const) value of type - X, b denotes a value of type X, p - denotes a (possibly const) value that meets the Protocol - requirements, and s denotes a (possibly const) value of a type - that is convertible to size_t and denotes a size in bytes. -

-
-

Table 16. GettableSocketOption requirements for extensible implementations

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- a.level(p) -

-
-

- int -

-
-

- Returns a value suitable for passing as the level - argument to POSIX getsockopt() - (or equivalent). -

-
-

- a.name(p) -

-
-

- int -

-
-

- Returns a value suitable for passing as the option_name - argument to POSIX getsockopt() - (or equivalent). -

-
-

- b.data(p) -

-
-

- void* -

-
-

- Returns a pointer suitable for passing as the option_value - argument to POSIX getsockopt() - (or equivalent). -

-
-

- a.size(p) -

-
-

- size_t -

-
-

- Returns a value suitable for passing as the option_len - argument to POSIX getsockopt() - (or equivalent), after appropriate integer conversion has been - performed. -

-
-

- b.resize(p,s) -

-
- -

- post: b.size(p) == s.
Passed the value contained - in the option_len argument to POSIX - getsockopt() - (or equivalent) after successful completion of the function. Permitted - to throw an exception if the socket option object b - does not support the specified size. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/Handler.html b/Sources/Vendor/asio/doc/asio/reference/Handler.html deleted file mode 100644 index dd34105..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/Handler.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -Handlers - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A handler must meet the requirements of MoveConstructible types - (C++Std [moveconstructible]). -

-

- In the table below, X denotes a handler class, h - denotes a value of X, p denotes a pointer to a - block of allocated memory of type void*, s denotes - the size for a block of allocated memory, and f denotes a function - object taking no arguments. -

-
-

Table 17. Handler requirements

-
----- - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-conditions -

-
-

-

-
using asio::asio_handler_allocate;
-asio_handler_allocate(s, &h);
-
-

-

-
-

- void* -

-
-

- Returns a pointer to a block of memory of size s. - The pointer must satisfy the same alignment requirements as a pointer - returned by ::operator new(). Throws bad_alloc - on failure.

The asio_handler_allocate() - function is located using argument-dependent lookup. The function - asio::asio_handler_allocate() serves as a default - if no user-supplied function is available. -

-
-

-

-
using asio::asio_handler_deallocate;
-asio_handler_deallocate(p, s, &h);
-
-

-

-
- -

- Frees a block of memory associated with a pointer p, - of at least size s, that was previously allocated - using asio_handler_allocate().

The asio_handler_deallocate() - function is located using argument-dependent lookup. The function - asio::asio_handler_deallocate() serves as a default - if no user-supplied function is available. -

-
-

-

-
using asio::asio_handler_invoke;
-asio_handler_invoke(f, &h);
-
-

-

-
- -

- Causes the function object f to be executed as if - by calling f().

The asio_handler_invoke() - function is located using argument-dependent lookup. The function - asio::asio_handler_invoke() serves as a default if - no user-supplied function is available. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/HandshakeHandler.html b/Sources/Vendor/asio/doc/asio/reference/HandshakeHandler.html deleted file mode 100644 index 1d162b5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/HandshakeHandler.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -SSL handshake handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A handshake handler must meet the requirements for a handler. - A value h of a handshake handler class should work correctly - in the expression h(ec), where ec is an lvalue - of type const error_code. -

-
- - Examples -
-

- A free function as a handshake handler: -

-
void handshake_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-
-

- A handshake handler function object: -

-
struct handshake_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a handshake handler: -

-
ssl_stream.async_handshake(...,
-    [](const asio::error_code& ec)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a handshake handler using - std::bind(): -

-
void my_class::handshake_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-ssl_stream.async_handshake(...,
-    std::bind(&my_class::handshake_handler,
-      this, std::placeholders::_1));
-
-

- A non-static class member function adapted to a handshake handler using - boost::bind(): -

-
void my_class::handshake_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-ssl_stream.async_handshake(...,
-    boost::bind(&my_class::handshake_handler,
-      this, asio::placeholders::error));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/InternetProtocol.html b/Sources/Vendor/asio/doc/asio/reference/InternetProtocol.html deleted file mode 100644 index cb7ff11..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/InternetProtocol.html +++ /dev/null @@ -1,162 +0,0 @@ - - - -Internet protocol requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the InternetProtocol requirements - if it satisfies the requirements of AcceptableProtocol, - as well as the additional requirements listed below. -

-

- In the table below, a denotes a (possibly const) value of type - X, and b denotes a (possibly const) value of type - X. -

-
-

Table 18. InternetProtocol requirements

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-conditions -

-
-

- X::resolver -

-
-

- ip::basic_resolver<X> -

-
-

- The type of a resolver for the protocol. -

-
-

- X::v4() -

-
-

- X -

-
-

- Returns an object representing the IP version 4 protocol. -

-
-

- X::v6() -

-
-

- X -

-
-

- Returns an object representing the IP version 6 protocol. -

-
-

- a == b -

-
-

- convertible to bool -

-
-

- Returns true if a and b - represent the same IP protocol version, otherwise false. -

-
-

- a != b -

-
-

- convertible to bool -

-
-

- Returns !(a == b). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/IoControlCommand.html b/Sources/Vendor/asio/doc/asio/reference/IoControlCommand.html deleted file mode 100644 index ed8d257..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/IoControlCommand.html +++ /dev/null @@ -1,108 +0,0 @@ - - - -I/O control command requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the IoControlCommand requirements - if it satisfies the requirements listed below. -

-

- In the table below, a denotes a (possibly const) value of type - X, and b denotes a value of type X. -

-
-

Table 19. IoControlCommand requirements for extensible implementations

-
----- - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- a.name() -

-
-

- int -

-
-

- Returns a value suitable for passing as the request - argument to POSIX ioctl() - (or equivalent). -

-
-

- b.data() -

-
-

- void* -

-
-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/IoObjectService.html b/Sources/Vendor/asio/doc/asio/reference/IoObjectService.html deleted file mode 100644 index e39b74d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/IoObjectService.html +++ /dev/null @@ -1,169 +0,0 @@ - - - -I/O object service requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An I/O object service must meet the requirements for a service, - as well as the requirements listed below. -

-

- In the table below, X denotes an I/O object service class, - a and ao denote values of type X, - b and c denote values of type X::implementation_type, - and u denotes an identifier. -

-
-

Table 20. IoObjectService requirements

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- X::implementation_type -

-
- -
-

- X::implementation_type u; -

-
- -

- note: X::implementation_type has a public default - constructor and destructor. -

-
-

-

-
a.construct(b);
-
-

-

-
- -
-

-

-
a.destroy(b);
-
-

-

-
- -

- note: destroy() will only be called on a value that - has previously been initialised with construct() or - move_construct(). -

-
-

-

-
a.move_construct(b, c);
-
-

-

-
- -

- note: only required for I/O objects that support movability. -

-
-

-

-
a.move_assign(b, ao, c);
-
-

-

-
- -

- note: only required for I/O objects that support movability. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/IteratorConnectHandler.html b/Sources/Vendor/asio/doc/asio/reference/IteratorConnectHandler.html deleted file mode 100644 index 2e86601..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/IteratorConnectHandler.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -Iterator connect handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An iterator connect handler must meet the requirements for a handler. - A value h of an iterator connect handler class should work correctly - in the expression h(ec, i), where ec is an lvalue - of type const error_code and i is an lvalue of - the type Iterator used in the corresponding connect() - or async_connect()` function. -

-
- - Examples -
-

- A free function as an iterator connect handler: -

-
void connect_handler(
-    const asio::error_code& ec,
-    asio::ip::tcp::resolver::iterator iterator)
-{
-  ...
-}
-
-

- An iterator connect handler function object: -

-
struct connect_handler
-{
-  ...
-  template <typename Iterator>
-  void operator()(
-      const asio::error_code& ec,
-      Iterator iterator)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as an iterator connect handler: -

-
asio::async_connect(...,
-    [](const asio::error_code& ec,
-      asio::ip::tcp::resolver::iterator iterator)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to an iterator connect handler - using std::bind(): -

-
void my_class::connect_handler(
-    const asio::error_code& ec,
-    asio::ip::tcp::resolver::iterator iterator)
-{
-  ...
-}
-...
-asio::async_connect(...,
-    std::bind(&my_class::connect_handler,
-      this, std::placeholders::_1,
-      std::placeholders::_2));
-
-

- A non-static class member function adapted to an iterator connect handler - using boost::bind(): -

-
void my_class::connect_handler(
-    const asio::error_code& ec,
-    asio::ip::tcp::resolver::iterator iterator)
-{
-  ...
-}
-...
-asio::async_connect(...,
-    boost::bind(&my_class::connect_handler,
-      this, asio::placeholders::error,
-      asio::placeholders::iterator));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/LegacyCompletionHandler.html b/Sources/Vendor/asio/doc/asio/reference/LegacyCompletionHandler.html deleted file mode 100644 index bafc11d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/LegacyCompletionHandler.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -Legacy completion handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A legacy completion handler must meet the requirements for a handler. - A legacy completion handler must meet the requirements of CopyConstructible - types (C++Std [copyconstructible]). A value h of a completion - handler class should work correctly in the expression h(). -

-
- - Examples -
-

- A free function as a completion handler: -

-
void completion_handler()
-{
-  ...
-}
-
-

- A completion handler function object: -

-
struct completion_handler
-{
-  ...
-  void operator()()
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a completion handler: -

-
my_io_service.post(
-    []()
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a completion handler using - std::bind(): -

-
void my_class::completion_handler()
-{
-  ...
-}
-...
-my_io_service.post(std::bind(&my_class::completion_handler, this));
-
-

- A non-static class member function adapted to a completion handler using - boost::bind(): -

-
void my_class::completion_handler()
-{
-  ...
-}
-...
-my_io_service.post(boost::bind(&my_class::completion_handler, this));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/MoveAcceptHandler.html b/Sources/Vendor/asio/doc/asio/reference/MoveAcceptHandler.html deleted file mode 100644 index 78a62ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/MoveAcceptHandler.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -Move accept handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A move accept handler must meet the requirements for a handler. - A value h of a move accept 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 - the nested type Protocol::socket for the type Protocol - of the socket class template. -

-
- - Examples -
-

- A free function as a move accept handler: -

-
void accept_handler(
-    const asio::error_code& ec, asio::ip::tcp::socket s)
-{
-  ...
-}
-
-

- A move accept handler function object: -

-
struct accept_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec, asio::ip::tcp::socket s)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a move accept handler: -

-
acceptor.async_accept(...,
-    [](const asio::error_code& ec, asio::ip::tcp::socket s)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a move accept handler using - std::bind(): -

-
void my_class::accept_handler(
-    const asio::error_code& ec, asio::ip::tcp::socket socket)
-{
-  ...
-}
-...
-asio::async_accept(...,
-    std::bind(&my_class::accept_handler,
-      this, std::placeholders::_1,
-      std::placeholders::_2));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/MutableBufferSequence.html b/Sources/Vendor/asio/doc/asio/reference/MutableBufferSequence.html deleted file mode 100644 index 8324dfe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/MutableBufferSequence.html +++ /dev/null @@ -1,129 +0,0 @@ - - - -Mutable buffer sequence requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A mutable buffer sequence represents a set of memory - regions that may be used to receive the output of an operation, such as the - receive operation of a socket. -

-

- A type X meets the MutableBufferSequence requirements - if it satisfies the requirements of Destructible (C++Std [destructible]) - and CopyConstructible (C++Std [copyconstructible]), as well - as the additional requirements listed below. -

-

- In the table below, x denotes a (possibly const) value of type - X, and u denotes an identifier. -

-
-

Table 21. MutableBufferSequence requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- asio::buffer_sequence_begin(x)
asio::buffer_sequence_end(x) -

-
-

- An iterator type meeting the requirements for bidirectional iterators - (C++Std [bidirectional.iterators]) whose value type is convertible - to mutable_buffer. -

-
-
-

-

-
X u(x);
-
-

-

-
- -

- post:
-

-
equal(
-  asio::buffer_sequence_begin(x),
-  asio::buffer_sequence_end(x),
-  asio::buffer_sequence_begin(u),
-  asio::buffer_sequence_end(u),
-  [](const mutable_buffer& b1,
-     const mutable_buffer& b2)
-   {
-     return b1.data() == b2.data()
-         && b1.size() == b2.size();
-   })
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ProtoAllocator.html b/Sources/Vendor/asio/doc/asio/reference/ProtoAllocator.html deleted file mode 100644 index 93450b5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ProtoAllocator.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -Proto-allocator requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type A meets the proto-allocator requirements if A - is CopyConstructible (C++Std [copyconstructible]), Destructible - (C++Std [destructible]), and allocator_traits<A>::rebind_alloc<U> - meets the allocator requirements (C++Std [allocator.requirements]), where - U is an object type. [Note: For example, - std::allocator<void> meets the proto-allocator requirements - but not the allocator requirements. —end note] No constructor, - comparison operator, copy operation, move operation, or swap operation on - these types shall exit via an exception. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/Protocol.html b/Sources/Vendor/asio/doc/asio/reference/Protocol.html deleted file mode 100644 index 0933f87..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/Protocol.html +++ /dev/null @@ -1,176 +0,0 @@ - - - -Protocol requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the Protocol requirements if it - satisfies the requirements of Destructible (C++Std [destructible]), - CopyConstructible (C++Std [copyconstructible]), and CopyAssignable - (C++Std [copyassignable]), as well as the additional requirements listed - below. -

-
-

Table 22. Protocol requirements

-
----- - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-conditions -

-
-

- X::endpoint -

-
-

- type meeting endpoint - requirements -

-
-
-
-

- In the table below, a denotes a (possibly const) value of type - X. -

-
-

Table 23. Protocol requirements for extensible implementations

-
----- - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-conditions -

-
-

- a.family() -

-
-

- int -

-
-

- Returns a value suitable for passing as the domain - argument to POSIX socket() - (or equivalent). -

-
-

- a.type() -

-
-

- int -

-
-

- Returns a value suitable for passing as the type - argument to POSIX socket() - (or equivalent). -

-
-

- a.protocol() -

-
-

- int -

-
-

- Returns a value suitable for passing as the protocol - argument to POSIX socket() - (or equivalent). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/RangeConnectHandler.html b/Sources/Vendor/asio/doc/asio/reference/RangeConnectHandler.html deleted file mode 100644 index 2342ebb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/RangeConnectHandler.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -Range connect handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A range connect handler must meet the requirements for a handler. - A value h of a range connect handler class should work correctly - in the expression h(ec, ep), where ec is an lvalue - of type const error_code and ep is an lvalue of - the type Protocol::endpoint for the Protocol type - in the corresponding connect() or async_connect()` function. -

-
- - Examples -
-

- A free function as a range connect handler: -

-
void connect_handler(
-    const asio::error_code& ec,
-    const asio::ip::tcp::endpoint& endpoint)
-{
-  ...
-}
-
-

- A range connect handler function object: -

-
struct connect_handler
-{
-  ...
-  template <typename Range>
-  void operator()(
-      const asio::error_code& ec,
-      const asio::ip::tcp::endpoint& endpoint)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a range connect handler: -

-
asio::async_connect(...,
-    [](const asio::error_code& ec,
-      const asio::ip::tcp::endpoint& endpoint)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a range connect handler using - std::bind(): -

-
void my_class::connect_handler(
-    const asio::error_code& ec,
-    const asio::ip::tcp::endpoint& endpoint)
-{
-  ...
-}
-...
-asio::async_connect(...,
-    std::bind(&my_class::connect_handler,
-      this, std::placeholders::_1,
-      std::placeholders::_2));
-
-

- A non-static class member function adapted to a range connect handler using - boost::bind(): -

-
void my_class::connect_handler(
-    const asio::error_code& ec,
-    const asio::ip::tcp::endpoint& endpoint)
-{
-  ...
-}
-...
-asio::async_connect(...,
-    boost::bind(&my_class::connect_handler,
-      this, asio::placeholders::error,
-      asio::placeholders::endpoint));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ReadHandler.html b/Sources/Vendor/asio/doc/asio/reference/ReadHandler.html deleted file mode 100644 index 7ebf2f8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ReadHandler.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -Read handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A read handler must meet the requirements for a handler. - A value h of a read 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. -

-
- - Examples -
-

- A free function as a read handler: -

-
void read_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-
-

- A read handler function object: -

-
struct read_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec,
-      std::size_t bytes_transferred)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a read handler: -

-
socket.async_read(...
-    [](const asio::error_code& ec,
-      std::size_t bytes_transferred)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a read handler using std::bind(): -

-
void my_class::read_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-...
-socket.async_read(...,
-    std::bind(&my_class::read_handler,
-      this, std::placeholders::_1,
-      std::placeholders::_2));
-
-

- A non-static class member function adapted to a read handler using boost::bind(): -

-
void my_class::read_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-...
-socket.async_read(...,
-    boost::bind(&my_class::read_handler,
-      this, asio::placeholders::error,
-      asio::placeholders::bytes_transferred));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ResolveHandler.html b/Sources/Vendor/asio/doc/asio/reference/ResolveHandler.html deleted file mode 100644 index c921f2e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ResolveHandler.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -Resolve handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A resolve handler must meet the requirements for a handler. - A value h of a resolve handler class should work correctly in - the expression h(ec, r), where ec is an lvalue - of type const error_code and r is an lvalue of - type const ip::basic_resolver_results<InternetProtocol>. - InternetProtocol is the template parameter of the ip::basic_resolver<> - which is used to initiate the asynchronous operation. -

-
- - Examples -
-

- A free function as a resolve handler: -

-
void resolve_handler(
-    const asio::error_code& ec,
-    asio::ip::tcp::resolver::results_type results)
-{
-  ...
-}
-
-

- A resolve handler function object: -

-
struct resolve_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec,
-      asio::ip::tcp::resolver::results_type results)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a resolve handler: -

-
resolver.async_resolve(...,
-    [](const asio::error_code& ec,
-      asio::ip::tcp::resolver::results_type results)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a resolve handler using std::bind(): -

-
void my_class::resolve_handler(
-    const asio::error_code& ec,
-    asio::ip::tcp::resolver::results_type results)
-{
-  ...
-}
-...
-resolver.async_resolve(...,
-    std::bind(&my_class::resolve_handler,
-      this, std::placeholders::_1,
-      std::placeholders::_2));
-
-

- A non-static class member function adapted to a resolve handler using boost::bind(): -

-
void my_class::resolve_handler(
-    const asio::error_code& ec,
-    asio::ip::tcp::resolver::results_type results)
-{
-  ...
-}
-...
-resolver.async_resolve(...,
-    boost::bind(&my_class::resolve_handler,
-      this, asio::placeholders::error,
-      asio::placeholders::results));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/Service.html b/Sources/Vendor/asio/doc/asio/reference/Service.html deleted file mode 100644 index 21431ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/Service.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -Service requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A class is a service if it is publicly and unambiguously - derived from execution_context::service, or if it is publicly - and unambiguously derived from another service. For a service S, - S::key_type shall be valid and denote a type (C++Std [temp.deduct]), - is_base_of_v<typename S::key_type, S> shall be true, - and S shall satisfy the Destructible requirements - (C++Std [destructible]). -

-

- The first parameter of all service constructors shall be an lvalue reference - to execution_context. This parameter denotes the execution_context - object that represents a set of services, of which the service object will - be a member. [Note: These constructors may be called - by the make_service function. —end note] -

-

- A service shall provide an explicit constructor with a single parameter of - lvalue reference to execution_context. [Note: - This constructor may be called by the use_service function. - —end note] -

-
class my_service : public execution_context::service
-{
-public:
-  typedef my_service key_type;
-  explicit my_service(execution_context& ctx);
-  my_service(execution_context& ctx, int some_value);
-private:
-  virtual void shutdown() noexcept override;
-  ...
-};
-
-

- A service's shutdown member function shall destroy all copies - of user-defined function objects that are held by the service. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/SettableSerialPortOption.html b/Sources/Vendor/asio/doc/asio/reference/SettableSerialPortOption.html deleted file mode 100644 index 3ed7164..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/SettableSerialPortOption.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -Settable serial port option requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In the table below, X denotes a serial port option class, a - denotes a value of X, ec denotes a value of type - error_code, and s denotes a value of implementation-defined - type storage (where storage - is the type DCB on Windows and termios on POSIX - platforms), and u denotes an identifier. -

-
-

Table 24. SettableSerialPortOption requirements

-
----- - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- const X& u = a;
u.store(s, ec); -

-
-

- error_code -

-
-

- Saves the value of the serial port option to the storage.
-
If successful, sets ec such that !ec - is true. If an error occurred, sets ec such that - !!ec is true. Returns ec. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/SettableSocketOption.html b/Sources/Vendor/asio/doc/asio/reference/SettableSocketOption.html deleted file mode 100644 index bd705c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/SettableSocketOption.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -Settable socket option requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the SettableSocketOption requirements - if it satisfies the requirements listed below. -

-

- In the table below, a denotes a (possibly const) value of type - X, p denotes a (possibly const) value that meets - the Protocol - requirements, and u denotes an identifier. -

-
-

Table 25. SettableSocketOption requirements for extensible implementations

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- a.level(p) -

-
-

- int -

-
-

- Returns a value suitable for passing as the level - argument to POSIX setsockopt() - (or equivalent). -

-
-

- a.name(p) -

-
-

- int -

-
-

- Returns a value suitable for passing as the option_name - argument to POSIX setsockopt() - (or equivalent). -

-
-

- a.data(p) -

-
-

- const void* -

-
-

- Returns a pointer suitable for passing as the option_value - argument to POSIX setsockopt() - (or equivalent). -

-
-

- a.size(p) -

-
-

- size_t -

-
-

- Returns a value suitable for passing as the option_len - argument to POSIX setsockopt() - (or equivalent), after appropriate integer conversion has been - performed. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ShutdownHandler.html b/Sources/Vendor/asio/doc/asio/reference/ShutdownHandler.html deleted file mode 100644 index 71b8e24..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ShutdownHandler.html +++ /dev/null @@ -1,105 +0,0 @@ - - - -SSL shutdown handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A shutdown handler must meet the requirements for a handler. - A value h of a shutdown handler class should work correctly - in the expression h(ec), where ec is an lvalue - of type const error_code. -

-
- - Examples -
-

- A free function as a shutdown handler: -

-
void shutdown_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-
-

- A shutdown handler function object: -

-
struct shutdown_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a shutdown handler: -

-
ssl_stream.async_shutdown(...,
-    [](const asio::error_code& ec)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a shutdown handler using std::bind(): -

-
void my_class::shutdown_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-ssl_stream.async_shutdown(
-    std::bind(&my_class::shutdown_handler,
-      this, std::placeholders::_1));
-
-

- A non-static class member function adapted to a shutdown handler using boost::bind(): -

-
void my_class::shutdown_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-ssl_stream.async_shutdown(
-    boost::bind(&my_class::shutdown_handler,
-      this, asio::placeholders::error));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/SignalHandler.html b/Sources/Vendor/asio/doc/asio/reference/SignalHandler.html deleted file mode 100644 index 678eb10..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/SignalHandler.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -Signal handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A signal handler must meet the requirements for a handler. - A value h of a signal handler class should work correctly in - the expression h(ec, n), where ec is an lvalue - of type const error_code and n is an lvalue of - type const int. -

-
- - Examples -
-

- A free function as a signal handler: -

-
void signal_handler(
-    const asio::error_code& ec,
-    int signal_number)
-{
-  ...
-}
-
-

- A signal handler function object: -

-
struct signal_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec,
-      int signal_number)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a signal handler: -

-
my_signal_set.async_wait(
-    [](const asio::error_code& ec,
-      int signal_number)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a signal handler using std::bind(): -

-
void my_class::signal_handler(
-    const asio::error_code& ec,
-    int signal_number)
-{
-  ...
-}
-...
-my_signal_set.async_wait(
-    std::bind(&my_class::signal_handler,
-      this, std::placeholders::_1,
-      std::placeholders::_2));
-
-

- A non-static class member function adapted to a signal handler using boost::bind(): -

-
void my_class::signal_handler(
-    const asio::error_code& ec,
-    int signal_number)
-{
-  ...
-}
-...
-my_signal_set.async_wait(
-    boost::bind(&my_class::signal_handler,
-      this, asio::placeholders::error,
-      asio::placeholders::signal_number));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/SyncRandomAccessReadDevice.html b/Sources/Vendor/asio/doc/asio/reference/SyncRandomAccessReadDevice.html deleted file mode 100644 index ec1c830..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/SyncRandomAccessReadDevice.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -Buffer-oriented synchronous random-access read device requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In the table below, a denotes a synchronous random-access read - device object, o denotes an offset of type boost::uint64_t, - mb denotes an object satisfying mutable - buffer sequence requirements, and ec denotes an object - of type error_code. -

-
-

Table 26. Buffer-oriented synchronous random-access read device requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.read_some_at(o, mb); -

-
-

- size_t -

-
-

- Equivalent to: -

-
error_code ec;
-size_t s = a.read_some_at(o, mb, ec);
-if (ec) throw system_error(ec);
-return s;
-
-

-

-
-

- a.read_some_at(o, mb, ec); -

-
-

- size_t -

-
-

- Reads one or more bytes of data from the device a - at offset o.

The mutable buffer sequence - mb specifies memory where the data should be placed. - The read_some_at operation shall always fill a buffer - in the sequence completely before proceeding to the next.
-
If successful, returns the number of bytes read and sets - ec such that !ec is true. If an error - occurred, returns 0 and sets ec such - that !!ec is true.

If the total size - of all buffers in the sequence mb is 0, - the function shall return 0 immediately. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/SyncRandomAccessWriteDevice.html b/Sources/Vendor/asio/doc/asio/reference/SyncRandomAccessWriteDevice.html deleted file mode 100644 index 82c07b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/SyncRandomAccessWriteDevice.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -Buffer-oriented synchronous random-access write device requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In the table below, a denotes a synchronous random-access write - device object, o denotes an offset of type boost::uint64_t, - cb denotes an object satisfying constant - buffer sequence requirements, and ec denotes an object - of type error_code. -

-
-

Table 27. Buffer-oriented synchronous random-access write device requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.write_some_at(o, cb); -

-
-

- size_t -

-
-

- Equivalent to: -

-
error_code ec;
-size_t s = a.write_some(o, cb, ec);
-if (ec) throw system_error(ec);
-return s;
-
-

-

-
-

- a.write_some_at(o, cb, ec); -

-
-

- size_t -

-
-

- Writes one or more bytes of data to the device a at - offset o.

The constant buffer sequence - cb specifies memory where the data to be written is - located. The write_some_at operation shall always - write a buffer in the sequence completely before proceeding to - the next.

If successful, returns the number of bytes - written and sets ec such that !ec is - true. If an error occurred, returns 0 and sets ec - such that !!ec is true.

If the total - size of all buffers in the sequence cb is 0, - the function shall return 0 immediately. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/SyncReadStream.html b/Sources/Vendor/asio/doc/asio/reference/SyncReadStream.html deleted file mode 100644 index b66e45e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/SyncReadStream.html +++ /dev/null @@ -1,102 +0,0 @@ - - - -Buffer-oriented synchronous read stream requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the SyncReadStream requirements - if it satisfies the requirements listed below. -

-

- In the table below, a denotes a value of type X, - mb denotes a (possibly const) value satisfying the MutableBufferSequence - requirements, and ec denotes an object of type error_code. -

-
-

Table 28. SyncReadStream requirements

-
----- - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.read_some(mb)
a.read_some(mb,ec) -

-
-

- size_t -

-
-

- Meets the requirements for a read - operation.

If buffer_size(mb) > 0, - reads one or more bytes of data from the stream a - into the buffer sequence mb. If successful, sets - ec such that !ec is true, - and returns the number of bytes read. If an error occurred, sets - ec such that !!ec is true, - and returns 0. If all data has been read from the stream, and the - stream performed an orderly shutdown, sets ec to - stream_errc::eof and returns 0.

If buffer_size(mb) - == 0, the operation shall not block. Sets ec - such that !ec is true, and returns 0. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/SyncWriteStream.html b/Sources/Vendor/asio/doc/asio/reference/SyncWriteStream.html deleted file mode 100644 index e8140d3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/SyncWriteStream.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -Buffer-oriented synchronous write stream requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the SyncWriteStream requirements - if it satisfies the requirements listed below. -

-

- In the table below, a denotes a value of type X, - cb denotes a (possibly const) value satisfying the ConstBufferSequence - requirements, and ec denotes an object of type error_code. -

-
-

Table 29. SyncWriteStream requirements

-
----- - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.write_some(cb)
a.write_some(cb,ec) -

-
-

- size_t -

-
-

- Meets the requirements for a write - operation.

If buffer_size(cb) > 0, - writes one or more bytes of data to the stream a from - the buffer sequence cb. If successful, sets ec - such that !ec is true, and returns the - number of bytes written. If an error occurred, sets ec - such that !!ec is true, and returns 0.
-
If buffer_size(cb) == 0, the operation shall - not block. Sets ec such that !ec is - true, and returns 0. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/TimeTraits.html b/Sources/Vendor/asio/doc/asio/reference/TimeTraits.html deleted file mode 100644 index 6d808f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/TimeTraits.html +++ /dev/null @@ -1,197 +0,0 @@ - - - -Time traits requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In the table below, X denotes a time traits class for time type - Time, t, t1, and t2 denote - values of type Time, and d denotes a value of type - X::duration_type. -

-
-

Table 30. TimeTraits requirements

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- X::time_type -

-
-

- Time -

-
-

- Represents an absolute time. Must support default construction, - and meet the requirements for CopyConstructible and - Assignable. -

-
-

- X::duration_type -

-
- -

- Represents the difference between two absolute times. Must support - default construction, and meet the requirements for CopyConstructible - and Assignable. A duration can be positive, negative, - or zero. -

-
-

- X::now(); -

-
-

- time_type -

-
-

- Returns the current time. -

-
-

- X::add(t, d); -

-
-

- time_type -

-
-

- Returns a new absolute time resulting from adding the duration - d to the absolute time t. -

-
-

- X::subtract(t1, t2); -

-
-

- duration_type -

-
-

- Returns the duration resulting from subtracting t2 - from t1. -

-
-

- X::less_than(t1, t2); -

-
-

- bool -

-
-

- Returns whether t1 is to be treated as less than - t2. -

-
-

- X::to_posix_duration(d); -

-
-

- date_time::time_duration_type -

-
-

- Returns the date_time::time_duration_type value that - most closely represents the duration d. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/WaitHandler.html b/Sources/Vendor/asio/doc/asio/reference/WaitHandler.html deleted file mode 100644 index 1122186..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/WaitHandler.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -Wait handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A wait handler must meet the requirements for a handler. - A value h of a wait handler class should work correctly in the - expression h(ec), where ec is an lvalue of type - const error_code. -

-
- - Examples -
-

- A free function as a wait handler: -

-
void wait_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-
-

- A wait handler function object: -

-
struct wait_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a wait handler: -

-
socket.async_wait(...,
-    [](const asio::error_code& ec)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a wait handler using std::bind(): -

-
void my_class::wait_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-socket.async_wait(...,
-    std::bind(&my_class::wait_handler,
-      this, std::placeholders::_1));
-
-

- A non-static class member function adapted to a wait handler using boost::bind(): -

-
void my_class::wait_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-socket.async_wait(...,
-    boost::bind(&my_class::wait_handler,
-      this, asio::placeholders::error));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/WaitTraits.html b/Sources/Vendor/asio/doc/asio/reference/WaitTraits.html deleted file mode 100644 index 81a67cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/WaitTraits.html +++ /dev/null @@ -1,129 +0,0 @@ - - - -Wait traits requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The basic_waitable_timer template uses wait traits to allow - programs to customize wait and async_wait behavior. - [Note: Possible uses of wait traits include:
— To - enable timers based on non-realtime clocks.
— Determining how quickly - wallclock-based timers respond to system time changes.
— Correcting for - errors or rounding timeouts to boundaries.
— Preventing duration overflow. - That is, a program may set a timer's expiry e to be Clock::max() - (meaning never reached) or Clock::min() (meaning always in the - past). As a result, computing the duration until timer expiry as e - - Clock::now() may cause overflow. —end note] -

-

- For a type Clock meeting the Clock requirements - (C++Std [time.clock.req]), a type X meets the WaitTraits - requirements if it satisfies the requirements listed below. -

-

- In the table below, t denotes a (possibly const) value of type - Clock::time_point; and d denotes a (possibly const) - value of type Clock::duration. -

-
-

Table 31. WaitTraits requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- X::to_wait_duration(d) -

-
-

- Clock::duration -

-
-

- Returns a Clock::duration value to be used in a wait - or async_wait operation. [Note: - The return value is typically representative of the duration d. - —end note] -

-
-

- X::to_wait_duration(t) -

-
-

- Clock::duration -

-
-

- Returns a Clock::duration value to be used in a wait - or async_wait operation. [Note: - The return value is typically representative of the duration from - Clock::now() until the time point t. - —end note] -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/WriteHandler.html b/Sources/Vendor/asio/doc/asio/reference/WriteHandler.html deleted file mode 100644 index b489bad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/WriteHandler.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -Write handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A write handler must meet the requirements for a handler. - A value h of a write 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. -

-
- - Examples -
-

- A free function as a write handler: -

-
void write_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-
-

- A write handler function object: -

-
struct write_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec,
-      std::size_t bytes_transferred)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a write handler: -

-
socket.async_write(...
-    [](const asio::error_code& ec,
-      std::size_t bytes_transferred)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a write handler using std::bind(): -

-
void my_class::write_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-...
-socket.async_write(...,
-    std::bind(&my_class::write_handler,
-      this, std::placeholders::_1,
-      std::placeholders::_2));
-
-

- A non-static class member function adapted to a write handler using boost::bind(): -

-
void my_class::write_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-...
-socket.async_write(...,
-    boost::bind(&my_class::write_handler,
-      this, asio::placeholders::error,
-      asio::placeholders::bytes_transferred));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/add_service.html b/Sources/Vendor/asio/doc/asio/reference/add_service.html deleted file mode 100644 index eb3104d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/add_service.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -add_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
template<
-    typename Service>
-void add_service(
-    execution_context & e,
-    Service * svc);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
svc
-
-

- The service object. On success, ownership of the service object is - transferred to the execution_context. - When the execution_context - object is destroyed, it will destroy the service object by performing: -

-
delete static_cast<execution_context::service*>(svc)
-
-

-

-
-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the execution_context. -

-
asio::invalid_service_owner
-

- Thrown if the service's owning execution_context - is not the execution_context - object specified by the e parameter. -

-
-
-
- - Requirements -
-

- Header: asio/impl/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asio_handler_allocate.html b/Sources/Vendor/asio/doc/asio/reference/asio_handler_allocate.html deleted file mode 100644 index 739ae0f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asio_handler_allocate.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -asio_handler_allocate - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default allocation - function for handlers. -

-
void * asio_handler_allocate(
-    std::size_t size,
-    ... );
-
-

- Asynchronous operations may need to allocate temporary objects. Since asynchronous - operations have a handler function object, these temporary objects can be - said to be associated with the handler. -

-

- Implement asio_handler_allocate and asio_handler_deallocate for your own - handlers to provide custom allocation for these temporary objects. -

-

- The default implementation of these allocation hooks uses operator - new and operator delete. -

-
- - Remarks -
-

- All temporary objects associated with a handler will be deallocated before - the upcall to the handler is performed. This allows the same memory to be - reused for a subsequent asynchronous operation initiated by the handler. -

-
- - Example -
-
class my_handler;
-
-void* asio_handler_allocate(std::size_t size, my_handler* context)
-{
-  return ::operator new(size);
-}
-
-void asio_handler_deallocate(void* pointer, std::size_t size,
-    my_handler* context)
-{
-  ::operator delete(pointer);
-}
-
-
- - Requirements -
-

- Header: asio/handler_alloc_hook.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asio_handler_deallocate.html b/Sources/Vendor/asio/doc/asio/reference/asio_handler_deallocate.html deleted file mode 100644 index 5bc82ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asio_handler_deallocate.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -asio_handler_deallocate - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default deallocation - function for handlers. -

-
void asio_handler_deallocate(
-    void * pointer,
-    std::size_t size,
-    ... );
-
-

- Implement asio_handler_allocate and asio_handler_deallocate for your own - handlers to provide custom allocation for the associated temporary objects. -

-

- The default implementation of these allocation hooks uses operator - new and operator delete. -

-
- - Requirements -
-

- Header: asio/handler_alloc_hook.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke.html b/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke.html deleted file mode 100644 index 944435d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -asio_handler_invoke - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default invoke function - for handlers. -

-

- Default handler invocation hook used for non-const function objects. -

-
template<
-    typename Function>
-void asio_handler_invoke(
-    Function & function,
-    ... );
-  » more...
-
-

- Default handler invocation hook used for const function objects. -

-
template<
-    typename Function>
-void asio_handler_invoke(
-    const Function & function,
-    ... );
-  » more...
-
-

- Completion handlers for asynchronous operations are invoked by the io_context 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 io_context - object. Handlers may subsequently be invoked through other objects (such - as io_context::strand - objects) that provide additional guarantees. -

-

- When asynchronous operations are composed from other asynchronous operations, - all intermediate handlers should be invoked using the same method as the - final handler. This is required to ensure that user-defined objects are not - accessed in a way that may violate the guarantees. This hooking function - ensures that the invoked method used for the final handler is accessible - at each intermediate step. -

-

- Implement asio_handler_invoke for your own handlers to specify a custom invocation - strategy. -

-

- 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. -

-
- - Example -
-
class my_handler;
-
-template <typename Function>
-void asio_handler_invoke(Function function, my_handler* context)
-{
-  context->strand_.dispatch(function);
-}
-
-
- - Requirements -
-

- Header: asio/handler_invoke_hook.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke/overload1.html b/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke/overload1.html deleted file mode 100644 index e66547c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -asio_handler_invoke (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default handler invocation hook used for non-const function objects. -

-
template<
-    typename Function>
-void asio_handler_invoke(
-    Function & function,
-    ... );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke/overload2.html b/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke/overload2.html deleted file mode 100644 index 98ce402..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke/overload2.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -asio_handler_invoke (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default handler invocation hook used for const function objects. -

-
template<
-    typename Function>
-void asio_handler_invoke(
-    const Function & function,
-    ... );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asio_handler_is_continuation.html b/Sources/Vendor/asio/doc/asio/reference/asio_handler_is_continuation.html deleted file mode 100644 index 247a09d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asio_handler_is_continuation.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -asio_handler_is_continuation - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -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. -

-
- - Example -
-
class my_handler;
-
-bool asio_handler_is_continuation(my_handler* context)
-{
-  return true;
-}
-
-
- - Requirements -
-

- Header: asio/handler_continuation_hook.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/associated_allocator.html b/Sources/Vendor/asio/doc/asio/reference/associated_allocator.html deleted file mode 100644 index 0f400e6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/associated_allocator.html +++ /dev/null @@ -1,148 +0,0 @@ - - - -associated_allocator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Traits type used to obtain the allocator associated with an object. -

-
template<
-    typename T,
-    typename Allocator = std::allocator<void>>
-struct associated_allocator
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- type -

-
-

- If T has a nested type allocator_type, T::allocator_type. Otherwise - Allocator. -

-
-
- - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get -

-
-

- If T has a nested type allocator_type, returns t.get_allocator(). - Otherwise returns a. -

-
-

- A program may specialise this traits type if the T template - parameter in the specialisation is a user-defined type. The template parameter - Allocator shall be a type meeting the Allocator requirements. -

-

- Specialisations shall meet the following requirements, where t - is a const reference to an object of type T, and a - is an object of type Allocator. -

-
    -
  • - Provide a nested typedef type that identifies a type meeting - the Allocator requirements. -
  • -
  • - Provide a noexcept static member function named get, callable - as get(t) and with return type type. -
  • -
  • - Provide a noexcept static member function named get, callable - as get(t,a) and with return type type. -
  • -
-
- - Requirements -
-

- Header: asio/associated_allocator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/associated_allocator/get.html b/Sources/Vendor/asio/doc/asio/reference/associated_allocator/get.html deleted file mode 100644 index bcc1c4e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/associated_allocator/get.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -associated_allocator::get - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -If T - has a nested type allocator_type, returns t.get_allocator(). - Otherwise returns a. -

-
static type get(
-    const T & t,
-    const Allocator & a = Allocator());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/associated_allocator/type.html b/Sources/Vendor/asio/doc/asio/reference/associated_allocator/type.html deleted file mode 100644 index 8e16408..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/associated_allocator/type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -associated_allocator::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -If T - has a nested type allocator_type, T::allocator_type. - Otherwise Allocator. -

-
typedef see_below type;
-
-
- - Requirements -
-

- Header: asio/associated_allocator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/associated_executor.html b/Sources/Vendor/asio/doc/asio/reference/associated_executor.html deleted file mode 100644 index 9101416..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/associated_executor.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -associated_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Traits type used to obtain the executor associated with an object. -

-
template<
-    typename T,
-    typename Executor = system_executor>
-struct associated_executor
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- type -

-
-

- If T has a nested type executor_type, T::executor_type. Otherwise - Executor. -

-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get -

-
-

- If T has a nested type executor_type, returns t.get_executor(). - Otherwise returns ex. -

-
-

- A program may specialise this traits type if the T template - parameter in the specialisation is a user-defined type. The template parameter - Executor shall be a type meeting the Executor requirements. -

-

- Specialisations shall meet the following requirements, where t - is a const reference to an object of type T, and e - is an object of type Executor. -

-
    -
  • - Provide a nested typedef type that identifies a type meeting - the Executor requirements. -
  • -
  • - Provide a noexcept static member function named get, callable - as get(t) and with return type type. -
  • -
  • - Provide a noexcept static member function named get, callable - as get(t,e) and with return type type. -
  • -
-
- - Requirements -
-

- Header: asio/associated_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/associated_executor/get.html b/Sources/Vendor/asio/doc/asio/reference/associated_executor/get.html deleted file mode 100644 index 72cb510..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/associated_executor/get.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -associated_executor::get - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -If T - has a nested type executor_type, returns t.get_executor(). - Otherwise returns ex. -

-
static type get(
-    const T & t,
-    const Executor & ex = Executor());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/associated_executor/type.html b/Sources/Vendor/asio/doc/asio/reference/associated_executor/type.html deleted file mode 100644 index 31c01cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/associated_executor/type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -associated_executor::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -If T - has a nested type executor_type, T::executor_type. - Otherwise Executor. -

-
typedef see_below type;
-
-
- - Requirements -
-

- Header: asio/associated_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_completion.html b/Sources/Vendor/asio/doc/asio/reference/async_completion.html deleted file mode 100644 index e4f8746..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_completion.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -async_completion - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Helper template to deduce the handler type from a CompletionToken, capture - a local copy of the handler, and then create an async_result - for the handler. -

-
template<
-    typename CompletionToken,
-    typename Signature>
-struct async_completion
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- completion_handler_type -

-
-

- The real handler type to be used for the asynchronous operation. -

-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_completion -

-
-

- Constructor. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- completion_handler -

-
-

- A copy of, or reference to, a real handler object. -

-
-

- result -

-
-

- The result of the asynchronous operation's initiating function. -

-
-
- - Requirements -
-

- Header: asio/async_result.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_completion/async_completion.html b/Sources/Vendor/asio/doc/asio/reference/async_completion/async_completion.html deleted file mode 100644 index 7bcea15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_completion/async_completion.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -async_completion::async_completion - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
async_completion(
-    CompletionToken & token);
-
-

- The constructor creates the concrete completion handler and makes the link - between the handler and the asynchronous result. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_completion/completion_handler.html b/Sources/Vendor/asio/doc/asio/reference/async_completion/completion_handler.html deleted file mode 100644 index 6fe32da..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_completion/completion_handler.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -async_completion::completion_handler - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A - copy of, or reference to, a real handler object. -

-
conditional< is_same< CompletionToken, completion_handler_type >::value, completion_handler_type &, completion_handler_type >::type completion_handler;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_completion/completion_handler_type.html b/Sources/Vendor/asio/doc/asio/reference/async_completion/completion_handler_type.html deleted file mode 100644 index d94dcc7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_completion/completion_handler_type.html +++ /dev/null @@ -1,175 +0,0 @@ - - - -async_completion::completion_handler_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - real handler type to be used for the asynchronous operation. -

-
typedef asio::async_result< typename decay< CompletionToken >::type, Signature >::completion_handler_type completion_handler_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- completion_handler_type -

-
-

- The concrete completion handler type for the specific signature. -

-
-

- return_type -

-
-

- The return type of the initiating function. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_result -

-
-

- Construct an async result from a given handler. -

-
-

- get -

-
-

- Obtain the value to be returned from the initiating function. -

-
-

- The async_result - traits class is used for determining: -

-
    -
  • - the concrete completion handler type to be called at the end of the - asynchronous operation; -
  • -
  • - the initiating function return type; and -
  • -
  • - how the return value of the initiating function is obtained. -
  • -
-

- The trait allows the handler and return types to be determined at the point - where the specific completion handler signature is known. -

-

- This template may be specialised for user-defined completion token types. - The primary template assumes that the CompletionToken is the completion - handler. -

-
- - Requirements -
-

- Header: asio/async_result.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_completion/result.html b/Sources/Vendor/asio/doc/asio/reference/async_completion/result.html deleted file mode 100644 index 7449aca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_completion/result.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -async_completion::result - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The result - of the asynchronous operation's initiating function. -

-
async_result< typename decay< CompletionToken >::type, Signature > result;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_connect.html b/Sources/Vendor/asio/doc/asio/reference/async_connect.html deleted file mode 100644 index 288f675..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_connect.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -async_connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The async_connect function - is a composed asynchronous operation that establishes a socket connection - by trying each endpoint in a sequence. -

-

- Asynchronously establishes a socket connection by trying each endpoint in - a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename RangeConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    RangeConnectHandler && handler,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-  » more...
-
-

- (Deprecated: Use range overload.) Asynchronously establishes a socket connection - by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    IteratorConnectHandler && handler,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-  » more...
-
-

- Asynchronously establishes a socket connection by trying each endpoint in - a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    IteratorConnectHandler && handler);
-  » more...
-
-template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename ConnectCondition,
-    typename RangeConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    ConnectCondition connect_condition,
-    RangeConnectHandler && handler,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-  » more...
-
-

- (Deprecated: Use range overload.) Asynchronously establishes a socket connection - by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    ConnectCondition connect_condition,
-    IteratorConnectHandler && handler,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-  » more...
-
-

- Asynchronously establishes a socket connection by trying each endpoint in - a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    ConnectCondition connect_condition,
-    IteratorConnectHandler && handler);
-  » more...
-
-
- - Requirements -
-

- Header: asio/connect.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/async_connect/overload1.html deleted file mode 100644 index 1dfe276..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload1.html +++ /dev/null @@ -1,133 +0,0 @@ - - - -async_connect (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously establishes a socket connection by trying each endpoint - in a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename RangeConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    RangeConnectHandler && handler,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's async_connect - member function, once for each endpoint in the sequence, until a connection - is successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
endpoints
-

- A sequence of endpoints. -

-
handler
-
-

- The handler to be called when the connect operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation. if the sequence is empty, set to
-  // asio::error::not_found. Otherwise, contains the
-  // error from the last connection attempt.
-  const asio::error_code& error,
-
-  // On success, the successfully connected endpoint.
-  // Otherwise, a default-constructed endpoint.
-  const typename Protocol::endpoint& endpoint
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::socket s(io_context);
-
-// ...
-
-r.async_resolve(q, resolve_handler);
-
-// ...
-
-void resolve_handler(
-    const asio::error_code& ec,
-    tcp::resolver::results_type results)
-{
-  if (!ec)
-  {
-    asio::async_connect(s, results, connect_handler);
-  }
-}
-
-// ...
-
-void connect_handler(
-    const asio::error_code& ec,
-    const tcp::endpoint& endpoint)
-{
-  // ...
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/async_connect/overload2.html deleted file mode 100644 index 0321495..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload2.html +++ /dev/null @@ -1,109 +0,0 @@ - - - -async_connect (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use range overload.) Asynchronously establishes a socket connection - by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    IteratorConnectHandler && handler,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's async_connect - member function, once for each endpoint in the sequence, until a connection - is successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
handler
-
-

- The handler to be called when the connect operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation. if the sequence is empty, set to
-  // asio::error::not_found. Otherwise, contains the
-  // error from the last connection attempt.
-  const asio::error_code& error,
-
-  // On success, an iterator denoting the successfully
-  // connected endpoint. Otherwise, the end iterator.
-  Iterator iterator
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- This overload assumes that a default constructed object of type Iterator - represents the end of the sequence. This is a valid assumption for iterator - types such as asio::ip::tcp::resolver::iterator. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload3.html b/Sources/Vendor/asio/doc/asio/reference/async_connect/overload3.html deleted file mode 100644 index 38dcc87..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload3.html +++ /dev/null @@ -1,123 +0,0 @@ - - - -async_connect (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously establishes a socket connection by trying each endpoint - in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    IteratorConnectHandler && handler);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's async_connect - member function, once for each endpoint in the sequence, until a connection - is successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
end
-

- An iterator pointing to the end of a sequence of endpoints. -

-
handler
-
-

- The handler to be called when the connect operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation. if the sequence is empty, set to
-  // asio::error::not_found. Otherwise, contains the
-  // error from the last connection attempt.
-  const asio::error_code& error,
-
-  // On success, an iterator denoting the successfully
-  // connected endpoint. Otherwise, the end iterator.
-  Iterator iterator
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
std::vector<tcp::endpoint> endpoints = ...;
-tcp::socket s(io_context);
-asio::async_connect(s,
-    endpoints.begin(), endpoints.end(),
-    connect_handler);
-
-// ...
-
-void connect_handler(
-    const asio::error_code& ec,
-    std::vector<tcp::endpoint>::iterator i)
-{
-  // ...
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload4.html b/Sources/Vendor/asio/doc/asio/reference/async_connect/overload4.html deleted file mode 100644 index 0f6a4bb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload4.html +++ /dev/null @@ -1,182 +0,0 @@ - - - -async_connect (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously establishes a socket connection by trying each endpoint - in a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename ConnectCondition,
-    typename RangeConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    ConnectCondition connect_condition,
-    RangeConnectHandler && handler,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's async_connect - member function, once for each endpoint in the sequence, until a connection - is successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
endpoints
-

- A sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
handler
-
-

- The handler to be called when the connect operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation. if the sequence is empty, set to
-  // asio::error::not_found. Otherwise, contains the
-  // error from the last connection attempt.
-  const asio::error_code& error,
-
-  // On success, an iterator denoting the successfully
-  // connected endpoint. Otherwise, the end iterator.
-  Iterator iterator
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- The following connect condition function object can be used to output information - about the individual connection attempts: -

-
struct my_connect_condition
-{
-  bool operator()(
-      const asio::error_code& ec,
-      const::tcp::endpoint& next)
-  {
-    if (ec) std::cout << "Error: " << ec.message() << std::endl;
-    std::cout << "Trying: " << next << std::endl;
-    return true;
-  }
-};
-
-

- It would be used with the asio::connect function as follows: -

-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::socket s(io_context);
-
-// ...
-
-r.async_resolve(q, resolve_handler);
-
-// ...
-
-void resolve_handler(
-    const asio::error_code& ec,
-    tcp::resolver::results_type results)
-{
-  if (!ec)
-  {
-    asio::async_connect(s, results,
-        my_connect_condition(),
-        connect_handler);
-  }
-}
-
-// ...
-
-void connect_handler(
-    const asio::error_code& ec,
-    const tcp::endpoint& endpoint)
-{
-  if (ec)
-  {
-    // An error occurred.
-  }
-  else
-  {
-    std::cout << "Connected to: " << endpoint << std::endl;
-  }
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload5.html b/Sources/Vendor/asio/doc/asio/reference/async_connect/overload5.html deleted file mode 100644 index 3b120c7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload5.html +++ /dev/null @@ -1,130 +0,0 @@ - - - -async_connect (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use range overload.) Asynchronously establishes a socket connection - by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    ConnectCondition connect_condition,
-    IteratorConnectHandler && handler,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's async_connect - member function, once for each endpoint in the sequence, until a connection - is successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
handler
-
-

- The handler to be called when the connect operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation. if the sequence is empty, set to
-  // asio::error::not_found. Otherwise, contains the
-  // error from the last connection attempt.
-  const asio::error_code& error,
-
-  // On success, an iterator denoting the successfully
-  // connected endpoint. Otherwise, the end iterator.
-  Iterator iterator
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- This overload assumes that a default constructed object of type Iterator - represents the end of the sequence. This is a valid assumption for iterator - types such as asio::ip::tcp::resolver::iterator. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload6.html b/Sources/Vendor/asio/doc/asio/reference/async_connect/overload6.html deleted file mode 100644 index b0b24cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload6.html +++ /dev/null @@ -1,187 +0,0 @@ - - - -async_connect (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously establishes a socket connection by trying each endpoint - in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    ConnectCondition connect_condition,
-    IteratorConnectHandler && handler);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's async_connect - member function, once for each endpoint in the sequence, until a connection - is successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
end
-

- An iterator pointing to the end of a sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
handler
-
-

- The handler to be called when the connect operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation. if the sequence is empty, set to
-  // asio::error::not_found. Otherwise, contains the
-  // error from the last connection attempt.
-  const asio::error_code& error,
-
-  // On success, an iterator denoting the successfully
-  // connected endpoint. Otherwise, the end iterator.
-  Iterator iterator
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- The following connect condition function object can be used to output information - about the individual connection attempts: -

-
struct my_connect_condition
-{
-  bool operator()(
-      const asio::error_code& ec,
-      const::tcp::endpoint& next)
-  {
-    if (ec) std::cout << "Error: " << ec.message() << std::endl;
-    std::cout << "Trying: " << next << std::endl;
-    return true;
-  }
-};
-
-

- It would be used with the asio::connect function as follows: -

-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::socket s(io_context);
-
-// ...
-
-r.async_resolve(q, resolve_handler);
-
-// ...
-
-void resolve_handler(
-    const asio::error_code& ec,
-    tcp::resolver::iterator i)
-{
-  if (!ec)
-  {
-    tcp::resolver::iterator end;
-    asio::async_connect(s, i, end,
-        my_connect_condition(),
-        connect_handler);
-  }
-}
-
-// ...
-
-void connect_handler(
-    const asio::error_code& ec,
-    tcp::resolver::iterator i)
-{
-  if (ec)
-  {
-    // An error occurred.
-  }
-  else
-  {
-    std::cout << "Connected to: " << i->endpoint() << std::endl;
-  }
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read.html b/Sources/Vendor/asio/doc/asio/reference/async_read.html deleted file mode 100644 index 0d25794..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -async_read - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The async_read function is - a composed asynchronous operation that reads a certain amount of data from - a stream before completion. -

-

- Start an asynchronous operation to read a certain amount of data from a stream. -

-
template<
-    typename AsyncReadStream,
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename AsyncReadStream,
-    typename MutableBufferSequence,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    ReadHandler && handler,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    ReadHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    ReadHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    ReadHandler && handler);
-  » more...
-
-
- - Requirements -
-

- Header: asio/read.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read/overload1.html b/Sources/Vendor/asio/doc/asio/reference/async_read/overload1.html deleted file mode 100644 index 64d00c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read/overload1.html +++ /dev/null @@ -1,147 +0,0 @@ - - - -async_read (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data from a - stream. -

-
template<
-    typename AsyncReadStream,
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the stream. Although the buffers object may be copied as necessary, - ownership of the underlying memory blocks 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 read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes copied into the
-                                          // buffers. If an error occurred,
-                                          // this will be the  number of
-                                          // bytes successfully transferred
-                                          // prior to the error.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::async_read(s, asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::async_read(
-    s, buffers,
-    asio::transfer_all(),
-    handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read/overload2.html b/Sources/Vendor/asio/doc/asio/reference/async_read/overload2.html deleted file mode 100644 index 5517fda..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read/overload2.html +++ /dev/null @@ -1,153 +0,0 @@ - - - -async_read (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data from a - stream. -

-
template<
-    typename AsyncReadStream,
-    typename MutableBufferSequence,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    ReadHandler && handler,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the stream. Although the buffers object may be copied as necessary, - ownership of the underlying memory blocks is retained by the caller, - which must guarantee that they remain valid until the handler is - called. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's async_read_some function. -

-
-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes copied into the
-                                          // buffers. If an error occurred,
-                                          // this will be the  number of
-                                          // bytes successfully transferred
-                                          // prior to the error.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::async_read(s,
-    asio::buffer(data, size),
-    asio::transfer_at_least(32),
-    handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read/overload3.html b/Sources/Vendor/asio/doc/asio/reference/async_read/overload3.html deleted file mode 100644 index bc2afc1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read/overload3.html +++ /dev/null @@ -1,130 +0,0 @@ - - - -async_read (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data from a - stream. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    ReadHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The specified dynamic buffer sequence is full (that is, it has reached - maximum size). -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes copied into the
-                                          // buffers. If an error occurred,
-                                          // this will be the  number of
-                                          // bytes successfully transferred
-                                          // prior to the error.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::async_read(
-    s, buffers,
-    asio::transfer_all(),
-    handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read/overload4.html b/Sources/Vendor/asio/doc/asio/reference/async_read/overload4.html deleted file mode 100644 index c13a209..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read/overload4.html +++ /dev/null @@ -1,140 +0,0 @@ - - - -async_read (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data from a - stream. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    ReadHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The specified dynamic buffer sequence is full (that is, it has reached - maximum size). -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's async_read_some function. -

-
-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes copied into the
-                                          // buffers. If an error occurred,
-                                          // this will be the  number of
-                                          // bytes successfully transferred
-                                          // prior to the error.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read/overload5.html b/Sources/Vendor/asio/doc/asio/reference/async_read/overload5.html deleted file mode 100644 index 97ec804..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read/overload5.html +++ /dev/null @@ -1,128 +0,0 @@ - - - -async_read (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data from a - stream. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The supplied buffer is full (that is, it has reached maximum size). -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
b
-

- A basic_streambuf - object into which the data will be read. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes copied into the
-                                          // buffers. If an error occurred,
-                                          // this will be the  number of
-                                          // bytes successfully transferred
-                                          // prior to the error.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::async_read(
-    s, b,
-    asio::transfer_all(),
-    handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read/overload6.html b/Sources/Vendor/asio/doc/asio/reference/async_read/overload6.html deleted file mode 100644 index 3c947b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read/overload6.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -async_read (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data from a - stream. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The supplied buffer is full (that is, it has reached maximum size). -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
b
-

- A basic_streambuf - object into which the data will be read. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's async_read_some function. -

-
-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes copied into the
-                                          // buffers. If an error occurred,
-                                          // this will be the  number of
-                                          // bytes successfully transferred
-                                          // prior to the error.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_at.html b/Sources/Vendor/asio/doc/asio/reference/async_read_at.html deleted file mode 100644 index 383b7b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_at.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -async_read_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The async_read_at function - is a composed asynchronous operation that reads a certain amount of data - at the specified offset. -

-

- Start an asynchronous operation to read a certain amount of data at the specified - offset. -

-
template<
-    typename AsyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename AsyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename AsyncRandomAccessReadDevice,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename AsyncRandomAccessReadDevice,
-    typename Allocator,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    ReadHandler && handler);
-  » more...
-
-
- - Requirements -
-

- Header: asio/read_at.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload1.html deleted file mode 100644 index 98a8c20..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload1.html +++ /dev/null @@ -1,148 +0,0 @@ - - - -async_read_at (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a random access device at the specified offset. The function - call always returns immediately. The asynchronous operation will continue - until one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - async_read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the AsyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the device. Although the buffers object may be copied as necessary, - ownership of the underlying memory blocks 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 read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes copied into the buffers. If an error
-  // occurred, this will be the number of bytes successfully
-  // transferred prior to the error.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::async_read_at(d, 42, asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::async_read_at(
-    d, 42, buffers,
-    asio::transfer_all(),
-    handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload2.html deleted file mode 100644 index bb13f11..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload2.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -async_read_at (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a random access device at the specified offset. The function - call always returns immediately. The asynchronous operation will continue - until one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the AsyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the device. Although the buffers object may be copied as necessary, - ownership of the underlying memory blocks is retained by the caller, - which must guarantee that they remain valid until the handler is - called. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_read_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the device's async_read_some_at function. -

-
-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes copied into the buffers. If an error
-  // occurred, this will be the number of bytes successfully
-  // transferred prior to the error.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::async_read_at(d, 42,
-    asio::buffer(data, size),
-    asio::transfer_at_least(32),
-    handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload3.html b/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload3.html deleted file mode 100644 index 3a5505f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload3.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -async_read_at (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessReadDevice,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a random access device at the specified offset. The function - call always returns immediately. The asynchronous operation will continue - until one of the following conditions is true: -

-
  • - An error occurred. -
-

- This operation is implemented in terms of zero or more calls to the device's - async_read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the AsyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
b
-

- A basic_streambuf - object into which the data will be read. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes copied into the buffers. If an error
-  // occurred, this will be the number of bytes successfully
-  // transferred prior to the error.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::async_read_at(
-    d, 42, b,
-    asio::transfer_all(),
-    handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload4.html b/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload4.html deleted file mode 100644 index fa9386b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload4.html +++ /dev/null @@ -1,135 +0,0 @@ - - - -async_read_at (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessReadDevice,
-    typename Allocator,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a random access device at the specified offset. The function - call always returns immediately. The asynchronous operation will continue - until one of the following conditions is true: -

-
  • - The completion_condition function object returns 0. -
-

- This operation is implemented in terms of zero or more calls to the device's - async_read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the AsyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
b
-

- A basic_streambuf - object into which the data will be read. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_read_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the device's async_read_some_at function. -

-
-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes copied into the buffers. If an error
-  // occurred, this will be the number of bytes successfully
-  // transferred prior to the error.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until.html deleted file mode 100644 index 9b252f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until.html +++ /dev/null @@ -1,169 +0,0 @@ - - - -async_read_until - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The async_read_until - function is a composed asynchronous operation that reads data into a dynamic - buffer sequence, or into a streambuf, until it contains a delimiter, matches - a regular expression, or a function object indicates a match. -

-

- Start an asynchronous operation to read data into a dynamic buffer sequence - until it contains a specified delimiter. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    char delim,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    string_view delim,
-    ReadHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to read data into a dynamic buffer sequence - until some part of its data matches a regular expression. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    const boost::regex & expr,
-    ReadHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to read data into a dynamic buffer sequence - until a function object indicates a match. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename MatchCondition,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    MatchCondition match_condition,
-    ReadHandler && handler,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-  » more...
-
-

- Start an asynchronous operation to read data into a streambuf until it contains - a specified delimiter. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    char delim,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    string_view delim,
-    ReadHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to read data into a streambuf until some - part of its data matches a regular expression. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    const boost::regex & expr,
-    ReadHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to read data into a streambuf until a function - object indicates a match. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename MatchCondition,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    MatchCondition match_condition,
-    ReadHandler && handler,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/read_until.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload1.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload1.html deleted file mode 100644 index 4310f76..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload1.html +++ /dev/null @@ -1,179 +0,0 @@ - - - -async_read_until (1 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a dynamic buffer sequence - until it contains a specified delimiter. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    char delim,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data into the specified dynamic - buffer sequence until the dynamic buffer sequence's get area contains the - specified delimiter. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The get area of the dynamic buffer sequence contains the specified - delimiter. -
  • -
  • - 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 dynamic buffer sequence'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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
delim
-

- The delimiter character. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the dynamic buffer sequence's
-  // get area up to and including the delimiter.
-  // 0 if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the dynamic buffer sequence - may contain additional data beyond the delimiter. An application will typically - leave that data in the dynamic buffer sequence for a subsequent async_read_until - operation to examine. -

-
- - Example -
-

- To asynchronously read data into a std::string until a newline - is encountered: -

-
std::string data;
-...
-void handler(const asio::error_code& e, std::size_t size)
-{
-  if (!e)
-  {
-    std::string line = data.substr(0, n);
-    data.erase(0, n);
-    ...
-  }
-}
-...
-asio::async_read_until(s, data, '\n', handler);
-
-

- After the async_read_until operation completes successfully, - the buffer data contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\n', 'd', 'e', ... }
-
-

- The call to substr then extracts the data up to and including - the delimiter, so that the string line contains: -

-
{ 'a', 'b', ..., 'c', '\n' }
-
-

- After the call to erase, the remaining data is left in the - buffer data as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - async_read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload2.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload2.html deleted file mode 100644 index 01073c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload2.html +++ /dev/null @@ -1,179 +0,0 @@ - - - -async_read_until (2 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a dynamic buffer sequence - until it contains a specified delimiter. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    string_view delim,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data into the specified dynamic - buffer sequence until the dynamic buffer sequence's get area contains the - specified delimiter. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The get area of the dynamic buffer sequence contains the specified - delimiter. -
  • -
  • - 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 dynamic buffer sequence'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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
delim
-

- The delimiter string. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the dynamic buffer sequence's
-  // get area up to and including the delimiter.
-  // 0 if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the dynamic buffer sequence - may contain additional data beyond the delimiter. An application will typically - leave that data in the dynamic buffer sequence for a subsequent async_read_until - operation to examine. -

-
- - Example -
-

- To asynchronously read data into a std::string until a CR-LF - sequence is encountered: -

-
std::string data;
-...
-void handler(const asio::error_code& e, std::size_t size)
-{
-  if (!e)
-  {
-    std::string line = data.substr(0, n);
-    data.erase(0, n);
-    ...
-  }
-}
-...
-asio::async_read_until(s, data, "\r\n", handler);
-
-

- After the async_read_until operation completes successfully, - the string data contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to substr then extracts the data up to and including - the delimiter, so that the string line contains: -

-
{ 'a', 'b', ..., 'c', '\r', '\n' }
-
-

- After the call to erase, the remaining data is left in the - string data as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - async_read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload3.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload3.html deleted file mode 100644 index 8a24351..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload3.html +++ /dev/null @@ -1,183 +0,0 @@ - - - -async_read_until (3 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a dynamic buffer sequence - until some part of its data matches a regular expression. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    const boost::regex & expr,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data into the specified dynamic - buffer sequence until the dynamic buffer sequence's get area contains some - data that matches a regular expression. The function call always returns - immediately. The asynchronous operation will continue until one of the - following conditions is true: -

-
    -
  • - A substring of the dynamic buffer sequence's get area matches the regular - expression. -
  • -
  • - 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 dynamic buffer sequence'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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
expr
-

- The regular expression. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the dynamic buffer
-  // sequence's get area up to and including the
-  // substring that matches the regular expression.
-  // 0 if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the dynamic buffer sequence - may contain additional data beyond that which matched the regular expression. - An application will typically leave that data in the dynamic buffer sequence - for a subsequent async_read_until operation to examine. -

-
- - Example -
-

- To asynchronously read data into a std::string until a CR-LF - sequence is encountered: -

-
std::string data;
-...
-void handler(const asio::error_code& e, std::size_t size)
-{
-  if (!e)
-  {
-    std::string line = data.substr(0, n);
-    data.erase(0, n);
-    ...
-  }
-}
-...
-asio::async_read_until(s, data,
-    boost::regex("\r\n"), handler);
-
-

- After the async_read_until operation completes successfully, - the string data contains the data which matched the regular - expression: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to substr then extracts the data up to and including - the match, so that the string line contains: -

-
{ 'a', 'b', ..., 'c', '\r', '\n' }
-
-

- After the call to erase, the remaining data is left in the - string data as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - async_read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload4.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload4.html deleted file mode 100644 index 5d633ad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload4.html +++ /dev/null @@ -1,223 +0,0 @@ - - - -async_read_until (4 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a dynamic buffer sequence - until a function object indicates a match. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename MatchCondition,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    MatchCondition match_condition,
-    ReadHandler && handler,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-
-

- This function is used to asynchronously read data into the specified dynamic - buffer sequence until a user-defined match condition function object, when - applied to the data contained in the dynamic buffer sequence, indicates - a successful match. The function call always returns immediately. The asynchronous - operation will continue until one of the following conditions is true: -

-
    -
  • - The match condition function object returns a std::pair where the second - element evaluates to true. -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
match_condition
-
-

- The function object to be called to determine whether a match exists. - The signature of the function object must be: -

-
pair<iterator, bool> match_condition(iterator begin, iterator end);
-
-

- where iterator represents the type: -

-
buffers_iterator<typename DynamicBuffer::const_buffers_type>
-
-

- The iterator parameters begin and end define - the range of bytes to be scanned to determine whether there is a - match. The first member of the return value is an iterator - marking one-past-the-end of the bytes that have been consumed by - the match function. This iterator is used to calculate the begin - parameter for any subsequent invocation of the match condition. The - second member of the return value is true if a match - has been found, false otherwise. -

-
-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the dynamic buffer sequence's
-  // get area that have been fully consumed by the match
-  // function. O if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the dynamic buffer sequence - may contain additional data beyond that which matched the function object. - An application will typically leave that data in the dynamic buffer sequence - for a subsequent async_read_until operation to examine. -

-

- The default implementation of the is_match_condition type - trait evaluates to true for function pointers and function objects with - a result_type typedef. It must be specialised for other user-defined - function objects. -

-
- - Examples -
-

- To asynchronously read data into a std::string until whitespace - is encountered: -

-
typedef asio::buffers_iterator<
-    asio::const_buffers_1> iterator;
-
-std::pair<iterator, bool>
-match_whitespace(iterator begin, iterator end)
-{
-  iterator i = begin;
-  while (i != end)
-    if (std::isspace(*i++))
-      return std::make_pair(i, true);
-  return std::make_pair(i, false);
-}
-...
-void handler(const asio::error_code& e, std::size_t size);
-...
-std::string data;
-asio::async_read_until(s, data, match_whitespace, handler);
-
-

- To asynchronously read data into a std::string until a matching - character is found: -

-
class match_char
-{
-public:
-  explicit match_char(char c) : c_(c) {}
-
-  template <typename Iterator>
-  std::pair<Iterator, bool> operator()(
-      Iterator begin, Iterator end) const
-  {
-    Iterator i = begin;
-    while (i != end)
-      if (c_ == *i++)
-        return std::make_pair(i, true);
-    return std::make_pair(i, false);
-  }
-
-private:
-  char c_;
-};
-
-namespace asio {
-  template <> struct is_match_condition<match_char>
-    : public boost::true_type {};
-} // namespace asio
-...
-void handler(const asio::error_code& e, std::size_t size);
-...
-std::string data;
-asio::async_read_until(s, data, match_char('a'), handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload5.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload5.html deleted file mode 100644 index 1952aa3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload5.html +++ /dev/null @@ -1,176 +0,0 @@ - - - -async_read_until (5 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a streambuf until it - contains a specified delimiter. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    char delim,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data into the specified streambuf - until the streambuf's get area contains the specified delimiter. The function - call always returns immediately. The asynchronous operation will continue - until one of the following conditions is true: -

-
    -
  • - The get area of the streambuf contains the specified delimiter. -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. Ownership of - the streambuf is retained by the caller, which must guarantee that - it remains valid until the handler is called. -

-
delim
-

- The delimiter character. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the streambuf's get
-  // area up to and including the delimiter.
-  // 0 if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the streambuf may contain - additional data beyond the delimiter. An application will typically leave - that data in the streambuf for a subsequent async_read_until operation - to examine. -

-
- - Example -
-

- To asynchronously read data into a streambuf until a newline is encountered: -

-
asio::streambuf b;
-...
-void handler(const asio::error_code& e, std::size_t size)
-{
-  if (!e)
-  {
-    std::istream is(&b);
-    std::string line;
-    std::getline(is, line);
-    ...
-  }
-}
-...
-asio::async_read_until(s, b, '\n', handler);
-
-

- After the async_read_until operation completes successfully, - the buffer b contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\n', 'd', 'e', ... }
-
-

- The call to std::getline then extracts the data up to and - including the newline (which is discarded), so that the string line - contains: -

-
{ 'a', 'b', ..., 'c' }
-
-

- The remaining data is left in the buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - async_read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload6.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload6.html deleted file mode 100644 index caf9880..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload6.html +++ /dev/null @@ -1,176 +0,0 @@ - - - -async_read_until (6 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a streambuf until it - contains a specified delimiter. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    string_view delim,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data into the specified streambuf - until the streambuf's get area contains the specified delimiter. The function - call always returns immediately. The asynchronous operation will continue - until one of the following conditions is true: -

-
    -
  • - The get area of the streambuf contains the specified delimiter. -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. Ownership of - the streambuf is retained by the caller, which must guarantee that - it remains valid until the handler is called. -

-
delim
-

- The delimiter string. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the streambuf's get
-  // area up to and including the delimiter.
-  // 0 if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the streambuf may contain - additional data beyond the delimiter. An application will typically leave - that data in the streambuf for a subsequent async_read_until operation - to examine. -

-
- - Example -
-

- To asynchronously read data into a streambuf until a newline is encountered: -

-
asio::streambuf b;
-...
-void handler(const asio::error_code& e, std::size_t size)
-{
-  if (!e)
-  {
-    std::istream is(&b);
-    std::string line;
-    std::getline(is, line);
-    ...
-  }
-}
-...
-asio::async_read_until(s, b, "\r\n", handler);
-
-

- After the async_read_until operation completes successfully, - the buffer b contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to std::getline then extracts the data up to and - including the newline (which is discarded), so that the string line - contains: -

-
{ 'a', 'b', ..., 'c', '\r' }
-
-

- The remaining data is left in the buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - async_read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload7.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload7.html deleted file mode 100644 index 6322d8c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload7.html +++ /dev/null @@ -1,179 +0,0 @@ - - - -async_read_until (7 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a streambuf until some - part of its data matches a regular expression. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    const boost::regex & expr,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data into the specified streambuf - until the streambuf's get area contains some data that matches a regular - expression. The function call always returns immediately. The asynchronous - operation will continue until one of the following conditions is true: -

-
    -
  • - A substring of the streambuf's get area matches the regular expression. -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. Ownership of - the streambuf is retained by the caller, which must guarantee that - it remains valid until the handler is called. -

-
expr
-

- The regular expression. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the streambuf's get
-  // area up to and including the substring
-  // that matches the regular. expression.
-  // 0 if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the streambuf may contain - additional data beyond that which matched the regular expression. An application - will typically leave that data in the streambuf for a subsequent async_read_until - operation to examine. -

-
- - Example -
-

- To asynchronously read data into a streambuf until a CR-LF sequence is - encountered: -

-
asio::streambuf b;
-...
-void handler(const asio::error_code& e, std::size_t size)
-{
-  if (!e)
-  {
-    std::istream is(&b);
-    std::string line;
-    std::getline(is, line);
-    ...
-  }
-}
-...
-asio::async_read_until(s, b, boost::regex("\r\n"), handler);
-
-

- After the async_read_until operation completes successfully, - the buffer b contains the data which matched the regular expression: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to std::getline then extracts the data up to and - including the newline (which is discarded), so that the string line - contains: -

-
{ 'a', 'b', ..., 'c', '\r' }
-
-

- The remaining data is left in the buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - async_read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload8.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload8.html deleted file mode 100644 index 777cebd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload8.html +++ /dev/null @@ -1,219 +0,0 @@ - - - -async_read_until (8 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a streambuf until a function - object indicates a match. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename MatchCondition,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    MatchCondition match_condition,
-    ReadHandler && handler,
-    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: -

-
    -
  • - The match condition function object returns a std::pair where the second - element evaluates to true. -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
match_condition
-
-

- The function object to be called to determine whether a match exists. - The signature of the function object must be: -

-
pair<iterator, bool> match_condition(iterator begin, iterator end);
-
-

- where iterator represents the type: -

-
buffers_iterator<basic_streambuf<Allocator>::const_buffers_type>
-
-

- The iterator parameters begin and end define - the range of bytes to be scanned to determine whether there is a - match. The first member of the return value is an iterator - marking one-past-the-end of the bytes that have been consumed by - the match function. This iterator is used to calculate the begin - parameter for any subsequent invocation of the match condition. The - second member of the return value is true if a match - has been found, false otherwise. -

-
-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the streambuf's get
-  // area that have been fully consumed by the
-  // match function. O if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the streambuf may contain - additional data beyond that which matched the function object. An application - will typically leave that data in the streambuf for a subsequent async_read_until - operation to examine. -

-

- The default implementation of the is_match_condition type - trait evaluates to true for function pointers and function objects with - a result_type typedef. It must be specialised for other user-defined - function objects. -

-
- - Examples -
-

- To asynchronously read data into a streambuf until whitespace is encountered: -

-
typedef asio::buffers_iterator<
-    asio::streambuf::const_buffers_type> iterator;
-
-std::pair<iterator, bool>
-match_whitespace(iterator begin, iterator end)
-{
-  iterator i = begin;
-  while (i != end)
-    if (std::isspace(*i++))
-      return std::make_pair(i, true);
-  return std::make_pair(i, false);
-}
-...
-void handler(const asio::error_code& e, std::size_t size);
-...
-asio::streambuf b;
-asio::async_read_until(s, b, match_whitespace, handler);
-
-

- To asynchronously read data into a streambuf until a matching character - is found: -

-
class match_char
-{
-public:
-  explicit match_char(char c) : c_(c) {}
-
-  template <typename Iterator>
-  std::pair<Iterator, bool> operator()(
-      Iterator begin, Iterator end) const
-  {
-    Iterator i = begin;
-    while (i != end)
-      if (c_ == *i++)
-        return std::make_pair(i, true);
-    return std::make_pair(i, false);
-  }
-
-private:
-  char c_;
-};
-
-namespace asio {
-  template <> struct is_match_condition<match_char>
-    : public boost::true_type {};
-} // namespace asio
-...
-void handler(const asio::error_code& e, std::size_t size);
-...
-asio::streambuf b;
-asio::async_read_until(s, b, match_char('a'), handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result.html b/Sources/Vendor/asio/doc/asio/reference/async_result.html deleted file mode 100644 index 7cd928b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result.html +++ /dev/null @@ -1,175 +0,0 @@ - - - -async_result - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An interface for customising the behaviour of an initiating function. -

-
template<
-    typename CompletionToken,
-    typename Signature>
-class async_result
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- completion_handler_type -

-
-

- The concrete completion handler type for the specific signature. -

-
-

- return_type -

-
-

- The return type of the initiating function. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_result -

-
-

- Construct an async result from a given handler. -

-
-

- get -

-
-

- Obtain the value to be returned from the initiating function. -

-
-

- The async_result - traits class is used for determining: -

-
    -
  • - the concrete completion handler type to be called at the end of the asynchronous - operation; -
  • -
  • - the initiating function return type; and -
  • -
  • - how the return value of the initiating function is obtained. -
  • -
-

- The trait allows the handler and return types to be determined at the point - where the specific completion handler signature is known. -

-

- This template may be specialised for user-defined completion token types. - The primary template assumes that the CompletionToken is the completion handler. -

-
- - Requirements -
-

- Header: asio/async_result.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result/async_result.html b/Sources/Vendor/asio/doc/asio/reference/async_result/async_result.html deleted file mode 100644 index 34a2c7b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result/async_result.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -async_result::async_result - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an async result from a given handler. -

-
async_result(
-    completion_handler_type & h);
-
-

- When using a specalised async_result, - the constructor has an opportunity to initialise some state associated - with the completion handler, which is then returned from the initiating - function. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result/completion_handler_type.html b/Sources/Vendor/asio/doc/asio/reference/async_result/completion_handler_type.html deleted file mode 100644 index b52681f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result/completion_handler_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -async_result::completion_handler_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - concrete completion handler type for the specific signature. -

-
typedef CompletionToken completion_handler_type;
-
-
- - Requirements -
-

- Header: asio/async_result.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result/get.html b/Sources/Vendor/asio/doc/asio/reference/async_result/get.html deleted file mode 100644 index c4d23c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result/get.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -async_result::get - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the value to be returned - from the initiating function. -

-
return_type get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result/return_type.html b/Sources/Vendor/asio/doc/asio/reference/async_result/return_type.html deleted file mode 100644 index eed1312..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result/return_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -async_result::return_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The return - type of the initiating function. -

-
typedef void return_type;
-
-
- - Requirements -
-

- Header: asio/async_result.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_.html deleted file mode 100644 index 2f34b80..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_.html +++ /dev/null @@ -1,141 +0,0 @@ - - - -async_result< Handler > - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use two-parameter version of async_result.) - An interface for customising the behaviour of an initiating function. -

-
template<
-    typename Handler>
-class async_result< Handler >
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- type -

-
-

- The return type of the initiating function. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_result -

-
-

- Construct an async result from a given handler. -

-
-

- get -

-
-

- Obtain the value to be returned from the initiating function. -

-
-

- This template may be specialised for user-defined handler types. -

-
- - Requirements -
-

- Header: asio/async_result.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/async_result.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/async_result.html deleted file mode 100644 index 3444bee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/async_result.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -async_result< Handler >::async_result - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an async result from a given handler. -

-
async_result(
-    Handler & );
-
-

- When using a specalised async_result, - the constructor has an opportunity to initialise some state associated - with the handler, which is then returned from the initiating function. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/get.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/get.html deleted file mode 100644 index 47045dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/get.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -async_result< Handler >::get - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the value to be returned from the initiating function. -

-
type get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/type.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/type.html deleted file mode 100644 index dd7f095..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -async_result< Handler >::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The return type of the initiating function. -

-
typedef void type;
-
-
- - Requirements -
-

- Header: asio/async_result.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_.html deleted file mode 100644 index 911cc18..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -async_result< std::packaged_task< Result(Args...)>, Signature > - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Partial specialisation of async_result for std::packaged_task. -

-
template<
-    typename Result,
-    typename... Args,
-    typename Signature>
-class async_result< std::packaged_task< Result(Args...)>, Signature >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- completion_handler_type -

-
-

- The packaged task is the concrete completion handler type. -

-
-

- return_type -

-
-

- The return type of the initiating function is the future obtained - from the packaged task. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_result -

-
-

- The constructor extracts the future from the packaged task. -

-
-

- get -

-
-

- Returns the packaged task's future. -

-
-
- - Requirements -
-

- Header: asio/packaged_task.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html deleted file mode 100644 index 105ab74..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -async_result< std::packaged_task< Result(Args...)>, Signature >::async_result - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The constructor - extracts the future from the packaged task. -

-
async_result(
-    completion_handler_type & h);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/completion_handler_type.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/completion_handler_type.html deleted file mode 100644 index 3575f2a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/completion_handler_type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -async_result< std::packaged_task< Result(Args...)>, Signature >::completion_handler_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The packaged - task is the concrete completion handler type. -

-
typedef std::packaged_task< Result(Args...)> completion_handler_type;
-
-
- - Requirements -
-

- Header: asio/packaged_task.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/get.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/get.html deleted file mode 100644 index 13204b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/get.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -async_result< std::packaged_task< Result(Args...)>, Signature >::get - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Returns the packaged - task's future. -

-
return_type get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/return_type.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/return_type.html deleted file mode 100644 index d2dd907..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/return_type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -async_result< std::packaged_task< Result(Args...)>, Signature >::return_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The return type - of the initiating function is the future obtained from the packaged task. -

-
typedef std::future< Result > return_type;
-
-
- - Requirements -
-

- Header: asio/packaged_task.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write.html b/Sources/Vendor/asio/doc/asio/reference/async_write.html deleted file mode 100644 index 6ede9c8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write.html +++ /dev/null @@ -1,140 +0,0 @@ - - - -async_write - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The async_write function - is a composed asynchronous operation that writes a certain amount of data - to a stream before completion. -

-

- Start an asynchronous operation to write all of the supplied data to a stream. -

-
template<
-    typename AsyncWriteStream,
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-  » more...
-
-

- Start an asynchronous operation to write a certain amount of data to a stream. -

-
template<
-    typename AsyncWriteStream,
-    typename ConstBufferSequence,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    WriteHandler && handler,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-  » more...
-
-

- Start an asynchronous operation to write all of the supplied data to a stream. -

-
template<
-    typename AsyncWriteStream,
-    typename DynamicBuffer,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    DynamicBuffer && buffers,
-    WriteHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-

- Start an asynchronous operation to write a certain amount of data to a stream. -

-
template<
-    typename AsyncWriteStream,
-    typename DynamicBuffer,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    WriteHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-

- Start an asynchronous operation to write all of the supplied data to a stream. -

-
template<
-    typename AsyncWriteStream,
-    typename Allocator,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    WriteHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to write a certain amount of data to a stream. -

-
template<
-    typename AsyncWriteStream,
-    typename Allocator,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    WriteHandler && handler);
-  » more...
-
-
- - Requirements -
-

- Header: asio/write.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write/overload1.html b/Sources/Vendor/asio/doc/asio/reference/async_write/overload1.html deleted file mode 100644 index 75521c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write/overload1.html +++ /dev/null @@ -1,132 +0,0 @@ - - - -async_write (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write all of the supplied data to a - stream. -

-
template<
-    typename AsyncWriteStream,
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the AsyncWriteStream concept. -

-
buffers
-

- One or more buffers containing the data to be written. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes written from the
-                                          // buffers. If an error occurred,
-                                          // this will be less than the sum
-                                          // of the buffer sizes.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::async_write(s, asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write/overload2.html b/Sources/Vendor/asio/doc/asio/reference/async_write/overload2.html deleted file mode 100644 index e8dccfb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write/overload2.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -async_write (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write a certain amount of data to a - stream. -

-
template<
-    typename AsyncWriteStream,
-    typename ConstBufferSequence,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    WriteHandler && handler,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the AsyncWriteStream concept. -

-
buffers
-

- One or more buffers containing the data to be written. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's async_write_some function. -

-
-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes written from the
-                                          // buffers. If an error occurred,
-                                          // this will be less than the sum
-                                          // of the buffer sizes.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::async_write(s,
-    asio::buffer(data, size),
-    asio::transfer_at_least(32),
-    handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write/overload3.html b/Sources/Vendor/asio/doc/asio/reference/async_write/overload3.html deleted file mode 100644 index 2aa1aeb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write/overload3.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -async_write (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write all of the supplied data to a - stream. -

-
template<
-    typename AsyncWriteStream,
-    typename DynamicBuffer,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    DynamicBuffer && buffers,
-    WriteHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - All of the data in the supplied dynamic buffer sequence has been written. -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the AsyncWriteStream concept. -

-
buffers
-

- The dynamic buffer sequence from which data will be written. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. Successfully written - data is automatically consumed from the buffers. -

-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes written from the
-                                          // buffers. If an error occurred,
-                                          // this will be less than the sum
-                                          // of the buffer sizes.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write/overload4.html b/Sources/Vendor/asio/doc/asio/reference/async_write/overload4.html deleted file mode 100644 index b12a51a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write/overload4.html +++ /dev/null @@ -1,139 +0,0 @@ - - - -async_write (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write a certain amount of data to a - stream. -

-
template<
-    typename AsyncWriteStream,
-    typename DynamicBuffer,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    WriteHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - All of the data in the supplied dynamic buffer sequence has been written. -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the AsyncWriteStream concept. -

-
buffers
-

- The dynamic buffer sequence from which data will be written. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. Successfully written - data is automatically consumed from the buffers. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's async_write_some function. -

-
-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes written from the
-                                          // buffers. If an error occurred,
-                                          // this will be less than the sum
-                                          // of the buffer sizes.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write/overload5.html b/Sources/Vendor/asio/doc/asio/reference/async_write/overload5.html deleted file mode 100644 index b1af712..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write/overload5.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -async_write (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write all of the supplied data to a - stream. -

-
template<
-    typename AsyncWriteStream,
-    typename Allocator,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the AsyncWriteStream concept. -

-
b
-

- A basic_streambuf - object from which data will be written. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes written from the
-                                          // buffers. If an error occurred,
-                                          // this will be less than the sum
-                                          // of the buffer sizes.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write/overload6.html b/Sources/Vendor/asio/doc/asio/reference/async_write/overload6.html deleted file mode 100644 index dee577e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write/overload6.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -async_write (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write a certain amount of data to a - stream. -

-
template<
-    typename AsyncWriteStream,
-    typename Allocator,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - 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. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the AsyncWriteStream concept. -

-
b
-

- A basic_streambuf - object from which data will be written. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's async_write_some function. -

-
-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes written from the
-                                          // buffers. If an error occurred,
-                                          // this will be less than the sum
-                                          // of the buffer sizes.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write_at.html b/Sources/Vendor/asio/doc/asio/reference/async_write_at.html deleted file mode 100644 index 1c851a2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write_at.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -async_write_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The async_write_at - function is a composed asynchronous operation that writes a certain amount - of data at the specified offset before completion. -

-

- Start an asynchronous operation to write all of the supplied data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to write a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    WriteHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to write all of the supplied data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    WriteHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to write a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    WriteHandler && handler);
-  » more...
-
-
- - Requirements -
-

- Header: asio/write_at.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload1.html deleted file mode 100644 index 5a7e2b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload1.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -async_write_at (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write all of the supplied data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a random access device at a specified offset. The function call - always returns immediately. The asynchronous operation will continue until - one of the following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- 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. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the AsyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more buffers containing the data to be written. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes written from the buffers. If an error
-  // occurred, this will be less than the sum of the buffer sizes.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::async_write_at(d, 42, asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload2.html deleted file mode 100644 index 7849727..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload2.html +++ /dev/null @@ -1,163 +0,0 @@ - - - -async_write_at (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a random access device at a specified offset. The function call - always returns immediately. The asynchronous operation will continue until - one of the following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - 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, 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. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the AsyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more buffers containing the data to be written. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_write_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the device's async_write_some_at function. -

-
-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes written from the buffers. If an error
-  // occurred, this will be less than the sum of the buffer sizes.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::async_write_at(d, 42,
-    asio::buffer(data, size),
-    asio::transfer_at_least(32),
-    handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload3.html b/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload3.html deleted file mode 100644 index 066707e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload3.html +++ /dev/null @@ -1,123 +0,0 @@ - - - -async_write_at (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write all of the supplied data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a random access device at a specified offset. The function call - always returns immediately. The asynchronous operation will continue until - one of the following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - An error occurred. -
  • -
-

- 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. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the AsyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
b
-

- A basic_streambuf - object from which data will be written. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes written from the buffers. If an error
-  // occurred, this will be less than the sum of the buffer sizes.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload4.html b/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload4.html deleted file mode 100644 index 0e39c5f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload4.html +++ /dev/null @@ -1,145 +0,0 @@ - - - -async_write_at (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a random access device at a specified offset. The function call - always returns immediately. The asynchronous operation will continue until - one of the following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - 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, 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. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the AsyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
b
-

- A basic_streambuf - object from which data will be written. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_write_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the device's async_write_some_at function. -

-
-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes written from the buffers. If an error
-  // occurred, this will be less than the sum of the buffer sizes.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asynchronous_operations.html b/Sources/Vendor/asio/doc/asio/reference/asynchronous_operations.html deleted file mode 100644 index a09c6dc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asynchronous_operations.html +++ /dev/null @@ -1,384 +0,0 @@ - - - -Requirements on asynchronous operations - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This section uses the names Alloc1, Alloc2, alloc1, - alloc2, Args, CompletionHandler, - completion_handler, Executor1, Executor2, - ex1, ex2, f, i, - N, Signature, token, - T[sub i], t[sub i], - work1, and work2 as placeholders for specifying - the requirements below. -

-
- - General - asynchronous operation concepts -
-

- An initiating function is a function which may be called - to start an asynchronous operation. A completion handler - is a function object that will be invoked, at most once, with the result - of the asynchronous operation. -

-

- The lifecycle of an asynchronous operation is comprised of the following - events and phases: -

-

- — Event 1: The asynchronous operation is started by a call to the initiating - function. -

-

- — Phase 1: The asynchronous operation is now outstanding. -

-

- — Event 2: The externally observable side effects of the asynchronous operation, - if any, are fully established. The completion handler is submitted to an - executor. -

-

- — Phase 2: The asynchronous operation is now completed. -

-

- — Event 3: The completion handler is called with the result of the asynchronous - operation. -

-

- In this library, all functions with the prefix async_ are initiating - functions. -

-
- - Completion - tokens and handlers -
-

- Initiating functions: -

-

- — are function templates with template parameter CompletionToken; -

-

- — accept, as the final parameter, a completion token object - token of type CompletionToken; -

-

- — specify a completion signature, which is a call signature - (C++Std [func.def]) Signature that determines the arguments - to the completion handler. -

-

- An initiating function determines the type CompletionHandler - of its completion handler function object by performing typename async_result<decay_t<CompletionToken>, - Signature>::completion_handler_type. The completion handler object - completion_handler is initialized with forward<CompletionToken>(token). - [Note: No other requirements are placed on the type - CompletionToken. —end note] -

-

- The type CompletionHandler must satisfy the requirements of - Destructible (C++Std [destructible]) and MoveConstructible - (C++Std [moveconstructible]), and be callable with the specified call signature. -

-

- In this library, all initiating functions specify a Completion - signature element that defines the call signature Signature. - The Completion signature elements in this Technical - Specification have named parameters, and the results of an asynchronous operation - are specified in terms of these names. -

-
- - Automatic - deduction of initiating function return type -
-

- The return type of an initiating function is typename async_result<decay_t<CompletionToken>, - Signature>::return_type. -

-

- For the sake of exposition, this library sometimes annotates functions with - a return type DEDUCED. For every - function declaration that returns DEDUCED, - the meaning is equivalent to specifying the return type as typename - async_result<decay_t<CompletionToken>, Signature>::return_type. -

-
- - Production - of initiating function return value -
-

- An initiating function produces its return type as follows: -

-

- — constructing an object result of type async_result<decay_t<CompletionToken>, - Signature>, initialized as result(completion_handler); - and -

-

- — using result.get() as the operand of the return statement. -

-

- [Example: Given an asynchronous operation with Completion - signature void(R1 r1, R2 r2), an initiating function - meeting these requirements may be implemented as follows: -

-
template<class CompletionToken>
-auto async_xyz(T1 t1, T2 t2, CompletionToken&& token)
-{
-  typename async_result<decay_t<CompletionToken>, void(R1, R2)>::completion_handler_type
-    completion_handler(forward<CompletionToken>(token));
-
-  async_result<decay_t<CompletionToken>, void(R1, R2)> result(completion_handler);
-
-  // initiate the operation and cause completion_handler to be invoked with
-  // the result
-
-  return result.get();
-}
-
-

- For convenience, initiating functions may be implemented using the async_completion - template: -

-
template<class CompletionToken>
-auto async_xyz(T1 t1, T2 t2, CompletionToken&& token)
-{
-  async_completion<CompletionToken, void(R1, R2)> init(token);
-
-  // initiate the operation and cause init.completion_handler to be invoked
-  // with the result
-
-  return init.result.get();
-}
-
-

- —end example] -

-
- - Lifetime - of initiating function arguments -
-

- Unless otherwise specified, the lifetime of arguments to initiating functions - shall be treated as follows: -

-

- — If the parameter has a pointer type or has a type of lvalue reference to - non-const, the implementation may assume the validity of the pointee or referent, - respectively, until the completion handler is invoked. [Note: - In other words, the program must guarantee the validity of the argument until - the completion handler is invoked. —end note] -

-

- — Otherwise, the implementation must not assume the validity of the argument - after the initiating function completes. [Note: In other - words, the program is not required to guarantee the validity of the argument - after the initiating function completes. —end note] The - implementation may make copies of the argument, and all copies shall be destroyed - no later than immediately after invocation of the completion handler. -

-
- - Non-blocking - requirements on initiating functions -
-

- An initiating function shall not block (C++Std [defns.block]) the calling - thread pending completion of the outstanding operation. -

-

- [std_note Initiating functions may still block the calling thread for other - reasons. For example, an initiating function may lock a mutex in order to - synchronize access to shared data.] -

-
- - Associated - executor -
-

- Certain objects that participate in asynchronous operations have an associated - executor. These are obtained as specified in the sections below. -

-
- - Associated - I/O executor -
-

- An asynchronous operation has an associated executor satisfying the Executor requirements. - If not otherwise specified by the asynchronous operation, this associated - executor is an object of type system_executor. -

-

- All asynchronous operations in this library have an associated executor object - that is determined as follows: -

-

- — If the initiating function is a member function, the associated executor - is that returned by the get_executor member function on the - same object. -

-

- — If the initiating function is not a member function, the associated executor - is that returned by the get_executor member function of the - first argument to the initiating function. -

-

- Let Executor1 be the type of the associated executor. Let ex1 - be a value of type Executor1, representing the associated executor - object obtained as described above. -

-
- - Associated - completion handler executor -
-

- A completion handler object of type CompletionHandler has an - associated executor of type Executor2 satisfying the Executor - requirements. The type Executor2 is associated_executor_t<CompletionHandler, - Executor1>. Let ex2 be a value of type Executor2 - obtained by performing get_associated_executor(completion_handler, - ex1). -

-
- - Outstanding - work -
-

- Until the asynchronous operation has completed, the asynchronous operation - shall maintain: -

-

- — an object work1 of type executor_work_guard<Executor1>, - initialized as work1(ex1), and where work1.owns_work() - == true; and -

-

- — an object work2 of type executor_work_guard<Executor2>, - initialized as work2(ex2), and where work2.owns_work() - == true. -

-
- - Allocation - of intermediate storage -
-

- Asynchronous operations may allocate memory. [Note: - Such as a data structure to store copies of the completion_handler - object and the initiating function's arguments. —end note] -

-

- Let Alloc1 be a type, satisfying the ProtoAllocator - requirements, that represents the asynchronous operation's default allocation - strategy. [Note: Typically std::allocator<void>. - —end note] Let alloc1 be a value of type - Alloc1. -

-

- A completion handler object of type CompletionHandler has an - associated allocator object alloc2 of type Alloc2 - satisfying the ProtoAllocator - requirements. The type Alloc2 is associated_allocator_t<CompletionHandler, - Alloc1>. Let alloc2 be a value of type Alloc2 - obtained by performing get_associated_allocator(completion_handler, - alloc1). -

-

- The asynchronous operations defined in this library: -

-

- — If required, allocate memory using only the completion handler's associated - allocator. -

-

- — Prior to completion handler execution, deallocate any memory allocated using - the completion handler's associated allocator. -

-

- [std_note The implementation may perform operating system or underlying API - calls that perform memory allocations not using the associated allocator. - Invocations of the allocator functions may not introduce data races (See - C++Std [res.on.data.races]).] -

-
- - Execution - of completion handler on completion of asynchronous operation -
-

- Let Args... be the argument types of the completion signature - Signature and let N - be sizeof...(Args). Let i - be in the range [0,N). - Let T[sub i] be the ith - type in Args... and let t[sub i] - be the ith completion handler argument - associated with T[sub i]. -

-

- Let f be a function object, callable as f(), that - invokes completion_handler as if by completion_handler(forward<T[sub - 0>(t[sub 0]), ..., - forward<T[sub N-1]>(t[sub N-1]))]. -

-

- If an asynchonous operation completes immediately (that is, within the thread - of execution calling the initiating function, and before the initiating function - returns), the completion handler shall be submitted for execution as if by - performing ex2.post(std::move(f), alloc2). Otherwise, the completion - handler shall be submitted for execution as if by performing ex2.dispatch(std::move(f), - alloc2). -

-
- - Completion - handlers and exceptions -
-

- Completion handlers are permitted to throw exceptions. The effect of any - exception propagated from the execution of a completion handler is determined - by the executor which is executing the completion handler. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asynchronous_socket_operations.html b/Sources/Vendor/asio/doc/asio/reference/asynchronous_socket_operations.html deleted file mode 100644 index 3fc2e43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asynchronous_socket_operations.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Requirements on asynchronous socket operations - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In this library, asynchronous socket operations are - those member functions having prefix async_. -

-

- For an object s, a program may initiate asynchronous socket - operations such that there are multiple simultaneously outstanding asynchronous - operations. -

-

- When there are multiple outstanding asynchronous read - operations on s: -

-

- — having no argument flags of type socket_base::message_flags, - or -

-

- — having an argument flags of type socket_base::message_flags - but where (flags & socket_base::message_out_of_band) == 0 -

-

- then the buffers are filled in the order in which these operations - were issued. The order of invocation of the completion handlers for these - operations is unspecified. -

-

- When there are multiple outstanding asynchronous read - operations on s having an argument flags - of type socket_base::message_flags where (flags & - socket_base::message_out_of_band) != 0 then the buffers - are filled in the order in which these operations were issued. -

-

- When there are multiple outstanding asynchronous write - operations on s, the buffers are transmitted - in the order in which these operations were issued. The order of invocation - of the completion handlers for these operations is unspecified. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/bad_executor.html b/Sources/Vendor/asio/doc/asio/reference/bad_executor.html deleted file mode 100644 index f4c8e9a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/bad_executor.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -bad_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Exception thrown when trying to access an empty polymorphic executor. -

-
class bad_executor :
-  public std::exception
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bad_executor -

-
-

- Constructor. -

-
-

- what -

-
-

- Obtain message associated with exception. -

-
-
- - Requirements -
-

- Header: asio/executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/bad_executor/bad_executor.html b/Sources/Vendor/asio/doc/asio/reference/bad_executor/bad_executor.html deleted file mode 100644 index 4fbd107..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/bad_executor/bad_executor.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -bad_executor::bad_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
bad_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/bad_executor/what.html b/Sources/Vendor/asio/doc/asio/reference/bad_executor/what.html deleted file mode 100644 index aeae548..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/bad_executor/what.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -bad_executor::what - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain message associated - with exception. -

-
virtual const char * what() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket.html deleted file mode 100644 index 0bb0977..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket.html +++ /dev/null @@ -1,930 +0,0 @@ - - - -basic_datagram_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides datagram-oriented socket functionality. -

-
template<
-    typename Protocol>
-class basic_datagram_socket :
-  public basic_socket< Protocol >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close if - unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive on a connected socket. -

-
-

- async_receive_from -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send on a connected socket. -

-
-

- async_send_to -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- 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. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets the - non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_datagram_socket from another.

- Move-assign a basic_datagram_socket from a socket of another protocol - type. -

-
-

- receive -

-
-

- Receive some data on a connected socket. -

-
-

- receive_from -

-
-

- Receive a datagram with the endpoint of the sender. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on a connected socket. -

-
-

- send_to -

-
-

- Send a datagram to the specified endpoint. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, or - to have pending error conditions. -

-
-

- ~basic_datagram_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length of - the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_datagram_socket - class template provides asynchronous and blocking datagram-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/_basic_datagram_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/_basic_datagram_socket.html deleted file mode 100644 index 5c619a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/_basic_datagram_socket.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_datagram_socket::~basic_datagram_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the socket. -

-
~basic_datagram_socket();
-
-

- This function destroys the socket, cancelling any outstanding asynchronous - operations associated with the socket as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign.html deleted file mode 100644 index 1dd5346..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_datagram_socket::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign/overload1.html deleted file mode 100644 index 59fa8bd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_datagram_socket::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign/overload2.html deleted file mode 100644 index 4eb7a29..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign/overload2.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_connect.html deleted file mode 100644 index bf11144..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_connect.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_datagram_socket::async_connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Start - an asynchronous connect. -

-
template<
-    typename ConnectHandler>
-DEDUCED async_connect(
-    const endpoint_type & peer_endpoint,
-    ConnectHandler && handler);
-
-

- This function is used to asynchronously connect a socket to the specified - remote endpoint. The function call always returns immediately. -

-

- The socket is automatically opened if it is not already open. If the connect - fails, and the socket was automatically opened, the socket is not returned - to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. Copies - will be made of the endpoint object as required. -

-
handler
-
-

- The handler to be called when the connection operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void connect_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Connect succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.async_connect(endpoint, connect_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive.html deleted file mode 100644 index ca3e33c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_datagram_socket::async_receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous receive on a connected socket. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload1.html deleted file mode 100644 index a481539..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_datagram_socket::async_receive (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive on a connected socket. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the datagram - socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks 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 receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_receive operation can only be used with a connected socket. - Use the async_receive_from function to receive data on an unconnected - datagram socket. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload2.html deleted file mode 100644 index 0c4f3e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload2.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -basic_datagram_socket::async_receive (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive on a connected socket. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the datagram - socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_receive operation can only be used with a connected socket. - Use the async_receive_from function to receive data on an unconnected - datagram socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from.html deleted file mode 100644 index fded058..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_datagram_socket::async_receive_from - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload1.html deleted file mode 100644 index 14068ce..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_datagram_socket::async_receive_from (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive a datagram. The function - call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the datagram. Ownership of the sender_endpoint object is retained - by the caller, which must guarantee that it is valid until the - handler is called. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive_from(
-    asio::buffer(data, size), sender_endpoint, handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload2.html deleted file mode 100644 index 7fe9d02..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload2.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -basic_datagram_socket::async_receive_from (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive a datagram. The function - call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the datagram. Ownership of the sender_endpoint object is retained - by the caller, which must guarantee that it is valid until the - handler is called. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send.html deleted file mode 100644 index c074d90..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_datagram_socket::async_send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous send on a connected socket. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-  » more...
-
-template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send/overload1.html deleted file mode 100644 index 94ba74c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send/overload1.html +++ /dev/null @@ -1,109 +0,0 @@ - - - -basic_datagram_socket::async_send (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send on a connected socket. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send data on the datagram socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_send operation can only be used with a connected socket. Use - the async_send_to function to send data on an unconnected datagram socket. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.async_send(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send/overload2.html deleted file mode 100644 index 721a904..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send/overload2.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -basic_datagram_socket::async_send (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send on a connected socket. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send data on the datagram socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_send operation can only be used with a connected socket. Use - the async_send_to function to send data on an unconnected datagram socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to.html deleted file mode 100644 index ece5f5e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_datagram_socket::async_send_to - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    WriteHandler && handler);
-  » more...
-
-template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload1.html deleted file mode 100644 index 6ac7979..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_datagram_socket::async_send_to (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send a datagram to the specified - remote endpoint. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
destination
-

- The remote endpoint to which the data will be sent. Copies will - be made of the endpoint as required. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
asio::ip::udp::endpoint destination(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.async_send_to(
-    asio::buffer(data, size), destination, handler);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload2.html deleted file mode 100644 index 8b50b0f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload2.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -basic_datagram_socket::async_send_to (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send a datagram to the specified - remote endpoint. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
destination
-

- The remote endpoint to which the data will be sent. Copies will - be made of the endpoint as required. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_wait.html deleted file mode 100644 index 5be9737..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_wait.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_datagram_socket::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Asynchronously - wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-...
-socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark.html deleted file mode 100644 index 1193c3f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::at_mark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-  » more...
-
-bool at_mark(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload1.html deleted file mode 100644 index 2b1820e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload1.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -basic_datagram_socket::at_mark (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload2.html deleted file mode 100644 index 4173308..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_datagram_socket::at_mark (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark(
-    asio::error_code & ec) const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available.html deleted file mode 100644 index bdfd1fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::available - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the number of bytes available for reading. -

-
std::size_t available() const;
-  » more...
-
-std::size_t available(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available/overload1.html deleted file mode 100644 index 5f758ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available/overload1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_datagram_socket::available (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available() const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available/overload2.html deleted file mode 100644 index 13fee74..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available/overload2.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_datagram_socket::available (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available(
-    asio::error_code & ec) const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket.html deleted file mode 100644 index 66f026e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_datagram_socket::basic_datagram_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_datagram_socket - without opening it. -

-
explicit basic_datagram_socket(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct and open a basic_datagram_socket. -

-
basic_datagram_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-  » more...
-
-

- Construct a basic_datagram_socket, - opening it and binding it to the given local endpoint. -

-
basic_datagram_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-  » more...
-
-

- Construct a basic_datagram_socket - on an existing native socket. -

-
basic_datagram_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-

- Move-construct a basic_datagram_socket - from another. -

-
basic_datagram_socket(
-    basic_datagram_socket && other);
-  » more...
-
-

- Move-construct a basic_datagram_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_datagram_socket(
-    basic_datagram_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload1.html deleted file mode 100644 index 2c7edbc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_datagram_socket::basic_datagram_socket (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_datagram_socket - without opening it. -

-
basic_datagram_socket(
-    asio::io_context & io_context);
-
-

- This constructor creates a datagram socket without opening it. The open() - function must be called before data can be sent or received on the socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the datagram socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload2.html deleted file mode 100644 index c660ac0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_datagram_socket::basic_datagram_socket (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct and open a basic_datagram_socket. -

-
basic_datagram_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-
-

- This constructor creates and opens a datagram socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the datagram socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload3.html deleted file mode 100644 index 68df424..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload3.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_datagram_socket::basic_datagram_socket (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_datagram_socket, - opening it and binding it to the given local endpoint. -

-
basic_datagram_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-
-

- This constructor creates a datagram socket and automatically opens it - bound to the specified endpoint on the local machine. The protocol used - is the protocol associated with the given endpoint. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the datagram socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
endpoint
-

- An endpoint on the local machine to which the datagram socket will - be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload4.html deleted file mode 100644 index 1b21c62..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload4.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_datagram_socket::basic_datagram_socket (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_datagram_socket - on an existing native socket. -

-
basic_datagram_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-

- This constructor creates a datagram socket object to hold an existing - native socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the datagram socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
native_socket
-

- The new underlying socket implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload5.html deleted file mode 100644 index e1aeaa8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload5.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_datagram_socket::basic_datagram_socket (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_datagram_socket - from another. -

-
basic_datagram_socket(
-    basic_datagram_socket && other);
-
-

- This constructor moves a datagram socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_datagram_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_datagram_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload6.html deleted file mode 100644 index 93e51b4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload6.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_datagram_socket::basic_datagram_socket (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_datagram_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_datagram_socket(
-    basic_datagram_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-
-

- This constructor moves a datagram socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_datagram_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_datagram_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind.html deleted file mode 100644 index 258228d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_datagram_socket::bind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bind - the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-  » more...
-
-void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind/overload1.html deleted file mode 100644 index 2d82c9e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind/overload1.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -basic_datagram_socket::bind (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind/overload2.html deleted file mode 100644 index 823c622..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind/overload2.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_datagram_socket::bind (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-asio::error_code ec;
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/broadcast.html deleted file mode 100644 index abec4f8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/broadcast.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to permit sending of broadcast messages. -

-
typedef implementation_defined broadcast;
-
-

- Implements the SOL_SOCKET/SO_BROADCAST socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bytes_readable.html deleted file mode 100644 index c0cad8c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bytes_readable.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_datagram_socket::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::bytes_readable command(true);
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel.html deleted file mode 100644 index ea3c160..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the socket. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel/overload1.html deleted file mode 100644 index 6c81f9d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel/overload1.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_datagram_socket::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel/overload2.html deleted file mode 100644 index 66c7d43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel/overload2.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_datagram_socket::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close.html deleted file mode 100644 index ae0d089..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the socket. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close/overload1.html deleted file mode 100644 index 27dff31..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_datagram_socket::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close();
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. Note that, even if the function indicates an - error, the underlying descriptor is closed. -

-
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close/overload2.html deleted file mode 100644 index 300533c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_datagram_socket::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. Note that, even if - the function indicates an error, the underlying descriptor is closed. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.close(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect.html deleted file mode 100644 index e6dcda1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_datagram_socket::connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Connect - the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-  » more...
-
-void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect/overload1.html deleted file mode 100644 index b7b63dc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect/overload1.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_datagram_socket::connect (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.connect(endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect/overload2.html deleted file mode 100644 index 9aba845..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect/overload2.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -basic_datagram_socket::connect (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-asio::error_code ec;
-socket.connect(endpoint, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/debug.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/debug.html deleted file mode 100644 index 0e75b24..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/debug.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::debug - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to enable socket-level debugging. -

-
typedef implementation_defined debug;
-
-

- Implements the SOL_SOCKET/SO_DEBUG socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/do_not_route.html deleted file mode 100644 index d9b9f33..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/do_not_route.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to prevent routing, use local interfaces only. -

-
typedef implementation_defined do_not_route;
-
-

- Implements the SOL_SOCKET/SO_DONTROUTE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/enable_connection_aborted.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/enable_connection_aborted.html deleted file mode 100644 index 5db069a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/enable_connection_aborted.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_datagram_socket::enable_connection_aborted - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to report aborted connections on accept. -

-
typedef implementation_defined enable_connection_aborted;
-
-

- Implements a custom socket option that determines whether or not an accept - operation is permitted to fail with asio::error::connection_aborted. - By default the option is false. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/endpoint_type.html deleted file mode 100644 index 9ad9166..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_datagram_socket::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/executor_type.html deleted file mode 100644 index 7b54989..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/executor_type.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -basic_datagram_socket::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_executor.html deleted file mode 100644 index c81160e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_executor.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_datagram_socket::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_io_context.html deleted file mode 100644 index 935065e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_io_context.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_datagram_socket::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_io_service.html deleted file mode 100644 index 23c8034..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_io_service.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_datagram_socket::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option.html deleted file mode 100644 index 01615ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_datagram_socket::get_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-  » more...
-
-template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option/overload1.html deleted file mode 100644 index 890d0ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_datagram_socket::get_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option/overload2.html deleted file mode 100644 index 9fcc0cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_datagram_socket::get_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-asio::error_code ec;
-socket.get_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control.html deleted file mode 100644 index d9817f0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_datagram_socket::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control/overload1.html deleted file mode 100644 index 787f390..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_datagram_socket::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control/overload2.html deleted file mode 100644 index 45c91dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_datagram_socket::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-asio::error_code ec;
-socket.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/is_open.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/is_open.html deleted file mode 100644 index 7d1dc17..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/is_open.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_datagram_socket::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Determine - whether the socket is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/keep_alive.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/keep_alive.html deleted file mode 100644 index 3bf4a59..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/keep_alive.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::keep_alive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to send keep-alives. -

-
typedef implementation_defined keep_alive;
-
-

- Implements the SOL_SOCKET/SO_KEEPALIVE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/linger.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/linger.html deleted file mode 100644 index 173c513..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/linger.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_datagram_socket::linger - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to specify whether the socket lingers on close if unsent data is - present. -

-
typedef implementation_defined linger;
-
-

- Implements the SOL_SOCKET/SO_LINGER socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option(true, 30);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option;
-socket.get_option(option);
-bool is_set = option.enabled();
-unsigned short timeout = option.timeout();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint.html deleted file mode 100644 index f44084c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::local_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-  » more...
-
-endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload1.html deleted file mode 100644 index 9da7f9d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_datagram_socket::local_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload2.html deleted file mode 100644 index 29d4306..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_datagram_socket::local_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. Returns a - default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer.html deleted file mode 100644 index 607ae10..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_datagram_socket::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload1.html deleted file mode 100644 index 6cc5791..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_datagram_socket::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload2.html deleted file mode 100644 index 2d06054..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_datagram_socket::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer_type.html deleted file mode 100644 index 9bcfd92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer_type.html +++ /dev/null @@ -1,862 +0,0 @@ - - - -basic_datagram_socket::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -A - basic_socket - is always the lowest layer. -

-
typedef basic_socket< Protocol > lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_socket -

-
-

- Construct a basic_socket without opening it.

Construct - and open a basic_socket.

Construct a basic_socket, - opening it and binding it to the given local endpoint.
-
Construct a basic_socket on an existing native socket. -

Move-construct a basic_socket from another.
-
Move-construct a basic_socket from a socket of another - protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket from another.

Move-assign - a basic_socket from a socket of another protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~basic_socket -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket - class template provides functionality that is common to both stream-oriented - and datagram-oriented sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/max_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/max_connections.html deleted file mode 100644 index 63c07e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/max_connections.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_datagram_socket::max_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -(Deprecated: - Use max_listen_connections.) The maximum length of the queue of pending - incoming connections. -

-
static const int max_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/max_listen_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/max_listen_connections.html deleted file mode 100644 index 2da60bf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/max_listen_connections.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_datagram_socket::max_listen_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -The - maximum length of the queue of pending incoming connections. -

-
static const int max_listen_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_do_not_route.html deleted file mode 100644 index 816551c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_do_not_route.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_datagram_socket::message_do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specify - that the data should not be subject to routing. -

-
static const int message_do_not_route = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_end_of_record.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_end_of_record.html deleted file mode 100644 index af02ab5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_end_of_record.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_datagram_socket::message_end_of_record - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specifies - that the data marks the end of a record. -

-
static const int message_end_of_record = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_flags.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_flags.html deleted file mode 100644 index 905a149..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_datagram_socket::message_flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Bitmask - type for flags that can be passed to send and receive operations. -

-
typedef int message_flags;
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_out_of_band.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_out_of_band.html deleted file mode 100644 index e1b5c4c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_out_of_band.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_datagram_socket::message_out_of_band - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Process - out-of-band data. -

-
static const int message_out_of_band = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_peek.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_peek.html deleted file mode 100644 index 2382471..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_peek.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_datagram_socket::message_peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Peek - at incoming data without removing it from the input queue. -

-
static const int message_peek = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_handle.html deleted file mode 100644 index 35cee88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_handle.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_datagram_socket::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the native socket representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - socket. This is intended to allow access to native socket functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_handle_type.html deleted file mode 100644 index 80548ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_datagram_socket::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a socket. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking.html deleted file mode 100644 index 4503903..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_datagram_socket::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload1.html deleted file mode 100644 index 2963b22..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload1.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -basic_datagram_socket::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native socket. This mode has no effect on the behaviour of the socket - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying socket is in non-blocking mode and - direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the socket object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native socket. -

-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload2.html deleted file mode 100644 index cd287c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload2.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -basic_datagram_socket::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload3.html deleted file mode 100644 index cc5719a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload3.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -basic_datagram_socket::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking.html deleted file mode 100644 index dd05b51..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_datagram_socket::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the socket. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload1.html deleted file mode 100644 index 8a57e60..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_datagram_socket::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the socket. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the socket's synchronous operations will fail with - asio::error::would_block if they are unable to perform the - requested operation immediately. If false, synchronous operations - will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload2.html deleted file mode 100644 index 48ed019..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_datagram_socket::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload3.html deleted file mode 100644 index c318902..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload3.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_datagram_socket::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open.html deleted file mode 100644 index 34834f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_datagram_socket::open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Open - the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-  » more...
-
-void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open/overload1.html deleted file mode 100644 index 9dcfa38..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_datagram_socket::open (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open/overload2.html deleted file mode 100644 index 6e5b2cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_datagram_socket::open (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying which protocol is to be used. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::error_code ec;
-socket.open(asio::ip::tcp::v4(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_.html deleted file mode 100644 index 4b88ca5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_datagram_socket::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_datagram_socket - from another. -

-
basic_datagram_socket & operator=(
-    basic_datagram_socket && other);
-  » more...
-
-

- Move-assign a basic_datagram_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_datagram_socket >::type & operator=(
-    basic_datagram_socket< Protocol1 > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload1.html deleted file mode 100644 index 344cc75..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_datagram_socket::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_datagram_socket - from another. -

-
basic_datagram_socket & operator=(
-    basic_datagram_socket && other);
-
-

- This assignment operator moves a datagram socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_datagram_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_datagram_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload2.html deleted file mode 100644 index 6e8c07d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_datagram_socket::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_datagram_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_datagram_socket >::type & operator=(
-    basic_datagram_socket< Protocol1 > && other);
-
-

- This assignment operator moves a datagram socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_datagram_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_datagram_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/out_of_band_inline.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/out_of_band_inline.html deleted file mode 100644 index af5f10a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/out_of_band_inline.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::out_of_band_inline - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for putting received out-of-band data inline. -

-
typedef implementation_defined out_of_band_inline;
-
-

- Implements the SOL_SOCKET/SO_OOBINLINE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option;
-socket.get_option(option);
-bool value = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/protocol_type.html deleted file mode 100644 index 3365992..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_datagram_socket::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive.html deleted file mode 100644 index 535ce23..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_datagram_socket::receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Receive - some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload1.html deleted file mode 100644 index 7404b21..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload1.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -basic_datagram_socket::receive (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to receive data on the datagram socket. The function - call will block until data has been received successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The receive operation can only be used with a connected socket. Use the - receive_from function to receive data on an unconnected datagram socket. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.receive(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload2.html deleted file mode 100644 index c6bbc7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload2.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -basic_datagram_socket::receive (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags);
-
-

- This function is used to receive data on the datagram socket. The function - call will block until data has been received successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The receive operation can only be used with a connected socket. Use the - receive_from function to receive data on an unconnected datagram socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload3.html deleted file mode 100644 index c49ad0d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload3.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -basic_datagram_socket::receive (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to receive data on the datagram socket. The function - call will block until data has been received successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Remarks -
-

- The receive operation can only be used with a connected socket. Use the - receive_from function to receive data on an unconnected datagram socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_buffer_size.html deleted file mode 100644 index 01d590c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::receive_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive buffer size of a socket. -

-
typedef implementation_defined receive_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_RCVBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from.html deleted file mode 100644 index 8ec7420..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -basic_datagram_socket::receive_from - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Receive - a datagram with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload1.html deleted file mode 100644 index e4688ff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload1.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -basic_datagram_socket::receive_from (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive a datagram with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint);
-
-

- This function is used to receive a datagram. The function call will block - until data has been received successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the datagram. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
asio::ip::udp::endpoint sender_endpoint;
-socket.receive_from(
-    asio::buffer(data, size), sender_endpoint);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload2.html deleted file mode 100644 index 8a57ece..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload2.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_datagram_socket::receive_from (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive a datagram with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags);
-
-

- This function is used to receive a datagram. The function call will block - until data has been received successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the datagram. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload3.html deleted file mode 100644 index fc525ad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload3.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_datagram_socket::receive_from (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive a datagram with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to receive a datagram. The function call will block - until data has been received successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the datagram. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_low_watermark.html deleted file mode 100644 index a57fc1e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::receive_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive low watermark. -

-
typedef implementation_defined receive_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_RCVLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release.html deleted file mode 100644 index 5c89900..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release - ownership of the underlying native socket. -

-
native_handle_type release();
-  » more...
-
-native_handle_type release(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release/overload1.html deleted file mode 100644 index 0325b54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release/overload1.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -basic_datagram_socket::release (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release/overload2.html deleted file mode 100644 index f057e64..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_datagram_socket::release (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint.html deleted file mode 100644 index d0d1342..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::remote_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-  » more...
-
-endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload1.html deleted file mode 100644 index 282f69f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_datagram_socket::remote_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload2.html deleted file mode 100644 index d0cf9b6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_datagram_socket::remote_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. Returns - a default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/reuse_address.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/reuse_address.html deleted file mode 100644 index b516bd9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/reuse_address.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_datagram_socket::reuse_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to allow the socket to be bound to an address that is already in - use. -

-
typedef implementation_defined reuse_address;
-
-

- Implements the SOL_SOCKET/SO_REUSEADDR socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send.html deleted file mode 100644 index 2b9b60a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_datagram_socket::send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Send - some data on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload1.html deleted file mode 100644 index b3a834c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload1.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -basic_datagram_socket::send (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers);
-
-

- 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. -

-
- - Parameters -
-
-

-
-
buffers
-

- One ore more data buffers to be sent on the socket. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The send operation can only be used with a connected socket. Use the - send_to function to send data on an unconnected datagram socket. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.send(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload2.html deleted file mode 100644 index bf70b4c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload2.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -basic_datagram_socket::send (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-
-

- 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. -

-
- - Parameters -
-
-

-
-
buffers
-

- One ore more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The send operation can only be used with a connected socket. Use the - send_to function to send data on an unconnected datagram socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload3.html deleted file mode 100644 index 7a31a90..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload3.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -basic_datagram_socket::send (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- 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. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Remarks -
-

- The send operation can only be used with a connected socket. Use the - send_to function to send data on an unconnected datagram socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_buffer_size.html deleted file mode 100644 index 1ae4959..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::send_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send buffer size of a socket. -

-
typedef implementation_defined send_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_SNDBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_low_watermark.html deleted file mode 100644 index ff8b354..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::send_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send low watermark. -

-
typedef implementation_defined send_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_SNDLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to.html deleted file mode 100644 index bf7c7d2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -basic_datagram_socket::send_to - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Send - a datagram to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload1.html deleted file mode 100644 index 25cf43e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload1.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -basic_datagram_socket::send_to (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send a datagram to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination);
-
-

- This function is used to send a datagram to the specified remote endpoint. - The function call will block until the data has been sent successfully - or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. -

-
destination
-

- The remote endpoint to which the data will be sent. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
asio::ip::udp::endpoint destination(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.send_to(asio::buffer(data, size), destination);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload2.html deleted file mode 100644 index f9df134..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload2.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_datagram_socket::send_to (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send a datagram to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags);
-
-

- This function is used to send a datagram to the specified remote endpoint. - The function call will block until the data has been sent successfully - or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. -

-
destination
-

- The remote endpoint to which the data will be sent. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload3.html deleted file mode 100644 index a1f3295..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload3.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_datagram_socket::send_to (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send a datagram to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to send a datagram to the specified remote endpoint. - The function call will block until the data has been sent successfully - or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. -

-
destination
-

- The remote endpoint to which the data will be sent. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option.html deleted file mode 100644 index 5617693..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_datagram_socket::set_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-  » more...
-
-template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option/overload1.html deleted file mode 100644 index 06525f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option/overload1.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -basic_datagram_socket::set_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-socket.set_option(option);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option/overload2.html deleted file mode 100644 index 8550db3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_datagram_socket::set_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-asio::error_code ec;
-socket.set_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown.html deleted file mode 100644 index c092e7a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_datagram_socket::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-  » more...
-
-void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload1.html deleted file mode 100644 index 1dfb57d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_datagram_socket::shutdown (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.shutdown(asio::ip::tcp::socket::shutdown_send);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload2.html deleted file mode 100644 index 3038b89..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_datagram_socket::shutdown (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown_type.html deleted file mode 100644 index 32ad800..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_datagram_socket::shutdown_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Different - ways a socket may be shutdown. -

-
enum shutdown_type
-
-

- - - -

-
- - Values -
-
-

-
-
shutdown_receive
-

- Shutdown the receive side of the socket. -

-
shutdown_send
-

- Shutdown the send side of the socket. -

-
shutdown_both
-

- Shutdown both send and receive on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait.html deleted file mode 100644 index f6e9118..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_datagram_socket::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait - for the socket to become ready to read, ready to write, or to have pending - error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait/overload1.html deleted file mode 100644 index 3367778..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_datagram_socket::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.wait(asio::ip::tcp::socket::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait/overload2.html deleted file mode 100644 index 599abf0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_datagram_socket::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.wait(asio::ip::tcp::socket::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait_type.html deleted file mode 100644 index 0a4cf73..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait_type.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_datagram_socket::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a socket to become ready to read. -

-
wait_write
-

- Wait for a socket to become ready to write. -

-
wait_error
-

- Wait for a socket to have error conditions pending. -

-
-
-

- For use with basic_socket::wait() and basic_socket::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer.html deleted file mode 100644 index caa793c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer.html +++ /dev/null @@ -1,407 +0,0 @@ - - - -basic_deadline_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides waitable timer functionality. -

-
template<
-    typename Time,
-    typename TimeTraits = asio::time_traits<Time>>
-class basic_deadline_timer
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- duration_type -

-
-

- The duration type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- time_type -

-
-

- The time type. -

-
-

- traits_type -

-
-

- The time traits type. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the timer. -

-
-

- basic_deadline_timer -

-
-

- Constructor.

Constructor to set a particular expiry - time as an absolute time.

Constructor to set a particular - expiry time relative to now.

Move-construct a basic_deadline_timer - from another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the timer. -

-
-

- cancel_one -

-
-

- Cancels one asynchronous operation that is waiting on the timer. -

-
-

- expires_at -

-
-

- Get the timer's expiry time as an absolute time.

- Set the timer's expiry time as an absolute time. -

-
-

- expires_from_now -

-
-

- Get the timer's expiry time relative to now.

Set - the timer's expiry time relative to now. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_deadline_timer from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the timer. -

-
-

- ~basic_deadline_timer -

-
-

- Destroys the timer. -

-
-

- The basic_deadline_timer - class template provides the ability to perform a blocking or asynchronous - wait for a timer to expire. -

-

- A deadline 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 deadline_timer - typedef. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Examples -
-

- Performing a blocking wait: -

-
// Construct a timer without setting an expiry time.
-asio::deadline_timer timer(io_context);
-
-// Set an expiry time relative to now.
-timer.expires_from_now(boost::posix_time::seconds(5));
-
-// Wait for the timer to expire.
-timer.wait();
-
-

- Performing an asynchronous wait: -

-
void handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Timer expired.
-  }
-}
-
-...
-
-// Construct a timer with an absolute expiry time.
-asio::deadline_timer timer(io_context,
-    boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
-
-// Start an asynchronous wait.
-timer.async_wait(handler);
-
-
- - Changing - an active deadline_timer's expiry time -
-

- Changing the expiry time of a timer while there are pending asynchronous - waits causes those wait operations to be cancelled. To ensure that the action - associated with the timer is performed only once, use something like this: - used: -

-
void on_some_event()
-{
-  if (my_timer.expires_from_now(seconds(5)) > 0)
-  {
-    // We managed to cancel the timer. Start new asynchronous wait.
-    my_timer.async_wait(on_timeout);
-  }
-  else
-  {
-    // Too late, timer has already expired!
-  }
-}
-
-void on_timeout(const asio::error_code& e)
-{
-  if (e != asio::error::operation_aborted)
-  {
-    // Timer was not cancelled, take necessary action.
-  }
-}
-
-
    -
  • - The asio::basic_deadline_timer::expires_from_now() function - cancels any pending asynchronous waits, and returns the number of asynchronous - waits that were cancelled. If it returns 0 then you were too late and - the wait handler has already been executed, or will soon be executed. - If it returns 1 then the wait handler was successfully cancelled. -
  • -
  • - If a wait handler is cancelled, the error_code - passed to it contains the value asio::error::operation_aborted. -
  • -
-
- - Requirements -
-

- Header: asio/basic_deadline_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/_basic_deadline_timer.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/_basic_deadline_timer.html deleted file mode 100644 index aa7ed5c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/_basic_deadline_timer.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_deadline_timer::~basic_deadline_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the timer. -

-
~basic_deadline_timer();
-
-

- This function destroys the timer, cancelling any outstanding asynchronous - wait operations associated with the timer as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/async_wait.html deleted file mode 100644 index d13856a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/async_wait.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_deadline_timer::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous wait on the timer. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    WaitHandler && handler);
-
-

- This function may be used to initiate an asynchronous wait against the - timer. It always returns immediately. -

-

- For each call to async_wait(), the supplied handler will be - called exactly once. The handler will be called when: -

-
    -
  • - The timer has expired. -
  • -
  • - The timer was cancelled, in which case the handler is passed the error - code asio::error::operation_aborted. -
  • -
-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called when the timer expires. Copies will be made - of the handler as required. The function signature of the handler - must be: -

-
void handler(
-  const asio::error_code& error // Result of operation.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer.html deleted file mode 100644 index 5d1a0d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -basic_deadline_timer::basic_deadline_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
explicit basic_deadline_timer(
-    asio::io_context & io_context);
-  » more...
-
-

- Constructor to set a particular expiry time as an absolute time. -

-
basic_deadline_timer(
-    asio::io_context & io_context,
-    const time_type & expiry_time);
-  » more...
-
-

- Constructor to set a particular expiry time relative to now. -

-
basic_deadline_timer(
-    asio::io_context & io_context,
-    const duration_type & expiry_time);
-  » more...
-
-

- Move-construct a basic_deadline_timer - from another. -

-
basic_deadline_timer(
-    basic_deadline_timer && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload1.html deleted file mode 100644 index aba2c89..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_deadline_timer::basic_deadline_timer (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor. -

-
basic_deadline_timer(
-    asio::io_context & io_context);
-
-

- This constructor creates a timer without setting an expiry time. The - expires_at() or expires_from_now() functions - must be called to set an expiry time before the timer can be waited on. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the timer will use to dispatch handlers for any asynchronous - operations performed on the timer. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload2.html deleted file mode 100644 index 7256fe9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload2.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -basic_deadline_timer::basic_deadline_timer (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor to set a particular expiry time as an absolute time. -

-
basic_deadline_timer(
-    asio::io_context & io_context,
-    const time_type & expiry_time);
-
-

- This constructor creates a timer and sets the expiry time. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the timer will use to dispatch handlers for any asynchronous - operations performed on the timer. -

-
expiry_time
-

- The expiry time to be used for the timer, expressed as an absolute - time. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload3.html deleted file mode 100644 index d0ad95c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload3.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -basic_deadline_timer::basic_deadline_timer (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor to set a particular expiry time relative to now. -

-
basic_deadline_timer(
-    asio::io_context & io_context,
-    const duration_type & expiry_time);
-
-

- This constructor creates a timer and sets the expiry time. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the timer will use to dispatch handlers for any asynchronous - operations performed on the timer. -

-
expiry_time
-

- The expiry time to be used for the timer, relative to now. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload4.html deleted file mode 100644 index b91e581..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload4.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_deadline_timer::basic_deadline_timer (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_deadline_timer - from another. -

-
basic_deadline_timer(
-    basic_deadline_timer && other);
-
-

- This constructor moves a timer from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_deadline_timer - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_deadline_timer(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel.html deleted file mode 100644 index 2eefaed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_deadline_timer::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - any asynchronous operations that are waiting on the timer. -

-
std::size_t cancel();
-  » more...
-
-std::size_t cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel/overload1.html deleted file mode 100644 index 416ca46..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel/overload1.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_deadline_timer::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel any asynchronous operations that are waiting on the timer. -

-
std::size_t cancel();
-
-

- This function forces the completion of any pending asynchronous wait - operations against the timer. The handler for each cancelled operation - will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when cancel() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel/overload2.html deleted file mode 100644 index 7d921b5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel/overload2.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -basic_deadline_timer::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel any asynchronous operations that are waiting on the timer. -

-
std::size_t cancel(
-    asio::error_code & ec);
-
-

- This function forces the completion of any pending asynchronous wait - operations against the timer. The handler for each cancelled operation - will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Remarks -
-

- If the timer has already expired when cancel() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one.html deleted file mode 100644 index 795f6d6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_deadline_timer::cancel_one - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancels - one asynchronous operation that is waiting on the timer. -

-
std::size_t cancel_one();
-  » more...
-
-std::size_t cancel_one(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload1.html deleted file mode 100644 index 2dffb9d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload1.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -basic_deadline_timer::cancel_one (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancels one asynchronous operation that is waiting on the timer. -

-
std::size_t cancel_one();
-
-

- This function forces the completion of one pending asynchronous wait - operation against the timer. Handlers are cancelled in FIFO order. The - handler for the cancelled operation will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. That is, either - 0 or 1. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when cancel_one() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload2.html deleted file mode 100644 index 5ae9aec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload2.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_deadline_timer::cancel_one (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancels one asynchronous operation that is waiting on the timer. -

-
std::size_t cancel_one(
-    asio::error_code & ec);
-
-

- This function forces the completion of one pending asynchronous wait - operation against the timer. Handlers are cancelled in FIFO order. The - handler for the cancelled operation will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. That is, either - 0 or 1. -

-
- - Remarks -
-

- If the timer has already expired when cancel_one() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/duration_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/duration_type.html deleted file mode 100644 index 27c0e87..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/duration_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_deadline_timer::duration_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - duration type. -

-
typedef traits_type::duration_type duration_type;
-
-
- - Requirements -
-

- Header: asio/basic_deadline_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/executor_type.html deleted file mode 100644 index 50e2b42..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -basic_deadline_timer::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_deadline_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at.html deleted file mode 100644 index 1c338ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_deadline_timer::expires_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the timer's expiry time as an absolute time. -

-
time_type expires_at() const;
-  » more...
-
-

- Set the timer's expiry time as an absolute time. -

-
std::size_t expires_at(
-    const time_type & expiry_time);
-  » more...
-
-std::size_t expires_at(
-    const time_type & expiry_time,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload1.html deleted file mode 100644 index 3bc8ae1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_deadline_timer::expires_at (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the timer's expiry time as an absolute time. -

-
time_type expires_at() const;
-
-

- This function may be used to obtain the timer's current expiry time. - Whether the timer has expired or not does not affect this value. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload2.html deleted file mode 100644 index 7e2b5f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload2.html +++ /dev/null @@ -1,102 +0,0 @@ - - - -basic_deadline_timer::expires_at (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the timer's expiry time as an absolute time. -

-
std::size_t expires_at(
-    const time_type & expiry_time);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when expires_at() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload3.html deleted file mode 100644 index 7cbbc3d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload3.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_deadline_timer::expires_at (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the timer's expiry time as an absolute time. -

-
std::size_t expires_at(
-    const time_type & expiry_time,
-    asio::error_code & ec);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Remarks -
-

- If the timer has already expired when expires_at() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now.html deleted file mode 100644 index 6ab1828..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_deadline_timer::expires_from_now - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the timer's expiry time relative to now. -

-
duration_type expires_from_now() const;
-  » more...
-
-

- Set the timer's expiry time relative to now. -

-
std::size_t expires_from_now(
-    const duration_type & expiry_time);
-  » more...
-
-std::size_t expires_from_now(
-    const duration_type & expiry_time,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload1.html deleted file mode 100644 index 8ad97c7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_deadline_timer::expires_from_now (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the timer's expiry time relative to now. -

-
duration_type expires_from_now() const;
-
-

- This function may be used to obtain the timer's current expiry time. - Whether the timer has expired or not does not affect this value. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload2.html deleted file mode 100644 index e8c613c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload2.html +++ /dev/null @@ -1,102 +0,0 @@ - - - -basic_deadline_timer::expires_from_now (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the timer's expiry time relative to now. -

-
std::size_t expires_from_now(
-    const duration_type & expiry_time);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when expires_from_now() - is called, then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload3.html deleted file mode 100644 index df00ba2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload3.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_deadline_timer::expires_from_now (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the timer's expiry time relative to now. -

-
std::size_t expires_from_now(
-    const duration_type & expiry_time,
-    asio::error_code & ec);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Remarks -
-

- If the timer has already expired when expires_from_now() - is called, then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_executor.html deleted file mode 100644 index a1e22c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_deadline_timer::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_io_context.html deleted file mode 100644 index 2634962..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_deadline_timer::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_io_service.html deleted file mode 100644 index dc6d8e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_deadline_timer::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/operator_eq_.html deleted file mode 100644 index 16e6d58..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/operator_eq_.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_deadline_timer::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_deadline_timer - from another. -

-
basic_deadline_timer & operator=(
-    basic_deadline_timer && other);
-
-

- This assignment operator moves a timer from one object to another. Cancels - any outstanding asynchronous operations associated with the target object. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_deadline_timer - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the basic_deadline_timer(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/time_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/time_type.html deleted file mode 100644 index 7f3e187..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/time_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_deadline_timer::time_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - time type. -

-
typedef traits_type::time_type time_type;
-
-
- - Requirements -
-

- Header: asio/basic_deadline_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/traits_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/traits_type.html deleted file mode 100644 index fc44f86..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/traits_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_deadline_timer::traits_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - time traits type. -

-
typedef TimeTraits traits_type;
-
-
- - Requirements -
-

- Header: asio/basic_deadline_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait.html deleted file mode 100644 index 82a80e4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_deadline_timer::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - a blocking wait on the timer. -

-
void wait();
-  » more...
-
-void wait(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait/overload1.html deleted file mode 100644 index 418edda..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_deadline_timer::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform a blocking wait on the timer. -

-
void wait();
-
-

- This function is used to wait for the timer to expire. This function - blocks and does not return until the timer has expired. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait/overload2.html deleted file mode 100644 index 5dde736..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait/overload2.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_deadline_timer::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform a blocking wait on the timer. -

-
void wait(
-    asio::error_code & ec);
-
-

- This function is used to wait for the timer to expire. This function - blocks and does not return until the timer has expired. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object.html deleted file mode 100644 index 672c029..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object.html +++ /dev/null @@ -1,270 +0,0 @@ - - - -basic_io_object - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Base class for all I/O objects. -

-
template<
-    typename IoObjectService>
-class basic_io_object
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- implementation_type -

-
-

- The underlying implementation type of I/O object. -

-
-

- service_type -

-
-

- The type of the service that will be used to provide I/O operations. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_io_object -

-
-

- Construct a basic_io_object.

Move-construct a basic_io_object. -

Perform a converting move-construction of a basic_io_object. -

-
-

- get_implementation -

-
-

- Get the underlying implementation of the I/O object. -

-
-

- get_service -

-
-

- Get the service associated with the I/O object. -

-
-

- operator= -

-
-

- Move-assign a basic_io_object. -

-
-

- ~basic_io_object -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Remarks -
-

- All I/O objects are non-copyable. However, when using C++0x, certain I/O - objects do support move construction and move assignment. -

-
- - Requirements -
-

- Header: asio/basic_io_object.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/_basic_io_object.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/_basic_io_object.html deleted file mode 100644 index a9c19ff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/_basic_io_object.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_io_object::~basic_io_object - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~basic_io_object();
-
-

- Performs: -

-
get_service().destroy(get_implementation());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object.html deleted file mode 100644 index d6a30b7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_io_object::basic_io_object - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_io_object. -

-
explicit basic_io_object(
-    asio::io_context & io_context);
-  » more...
-
-

- Move-construct a basic_io_object. -

-
basic_io_object(
-    basic_io_object && other);
-  » more...
-
-

- Perform a converting move-construction of a basic_io_object. -

-
template<
-    typename IoObjectService1>
-basic_io_object(
-    IoObjectService1 & other_service,
-    typename IoObjectService1::implementation_type & other_implementation);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload1.html deleted file mode 100644 index 3ba6ec4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload1.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_io_object::basic_io_object (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_io_object. -

-
basic_io_object(
-    asio::io_context & io_context);
-
-

- Performs: -

-
get_service().construct(get_implementation());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload2.html deleted file mode 100644 index 1058452..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_io_object::basic_io_object (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_io_object. -

-
basic_io_object(
-    basic_io_object && other);
-
-

- Performs: -

-
get_service().move_construct(
-    get_implementation(), other.get_implementation());
-
-
- - Remarks -
-

- Available only for services that support movability, -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload3.html deleted file mode 100644 index ba8441b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload3.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_io_object::basic_io_object (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform a converting move-construction of a basic_io_object. -

-
template<
-    typename IoObjectService1>
-basic_io_object(
-    IoObjectService1 & other_service,
-    typename IoObjectService1::implementation_type & other_implementation);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/executor_type.html deleted file mode 100644 index 8eefac4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -basic_io_object::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef asio::io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_io_object.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_executor.html deleted file mode 100644 index 5c64506..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_io_object::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation.html deleted file mode 100644 index e19ea9d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_io_object::get_implementation - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the underlying implementation of the I/O object. -

-
implementation_type & get_implementation();
-  » more...
-
-const implementation_type & get_implementation() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation/overload1.html deleted file mode 100644 index db688eb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -basic_io_object::get_implementation (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying implementation of the I/O object. -

-
implementation_type & get_implementation();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation/overload2.html deleted file mode 100644 index b7858eb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -basic_io_object::get_implementation (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying implementation of the I/O object. -

-
const implementation_type & get_implementation() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_io_context.html deleted file mode 100644 index 5c5ce43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_io_object::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_io_service.html deleted file mode 100644 index 351d5dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_io_object::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service.html deleted file mode 100644 index 2260ca4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_io_object::get_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the service associated with the I/O object. -

-
service_type & get_service();
-  » more...
-
-const service_type & get_service() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service/overload1.html deleted file mode 100644 index bb2f3bd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -basic_io_object::get_service (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the service associated with the I/O object. -

-
service_type & get_service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service/overload2.html deleted file mode 100644 index 5c50edb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -basic_io_object::get_service (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the service associated with the I/O object. -

-
const service_type & get_service() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/implementation_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/implementation_type.html deleted file mode 100644 index be13f99..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/implementation_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_io_object::implementation_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - underlying implementation type of I/O object. -

-
typedef service_type::implementation_type implementation_type;
-
-
- - Requirements -
-

- Header: asio/basic_io_object.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/operator_eq_.html deleted file mode 100644 index e8e1c97..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/operator_eq_.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -basic_io_object::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_io_object. -

-
basic_io_object & operator=(
-    basic_io_object && other);
-
-

- Performs: -

-
get_service().move_assign(get_implementation(),
-    other.get_service(), other.get_implementation());
-
-
- - Remarks -
-

- Available only for services that support movability, -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/service_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/service_type.html deleted file mode 100644 index 1383a47..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/service_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_io_object::service_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the service that will be used to provide I/O operations. -

-
typedef IoObjectService service_type;
-
-
- - Requirements -
-

- Header: asio/basic_io_object.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket.html deleted file mode 100644 index 298876f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket.html +++ /dev/null @@ -1,929 +0,0 @@ - - - -basic_raw_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides raw-oriented socket functionality. -

-
template<
-    typename Protocol>
-class basic_raw_socket :
-  public basic_socket< Protocol >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close if - unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive on a connected socket. -

-
-

- async_receive_from -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send on a connected socket. -

-
-

- async_send_to -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- 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. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets the - non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_raw_socket from another.

Move-assign - a basic_raw_socket from a socket of another protocol type. -

-
-

- receive -

-
-

- Receive some data on a connected socket. -

-
-

- receive_from -

-
-

- Receive raw data with the endpoint of the sender. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on a connected socket. -

-
-

- send_to -

-
-

- Send raw data to the specified endpoint. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, or - to have pending error conditions. -

-
-

- ~basic_raw_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length of - the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_raw_socket - class template provides asynchronous and blocking raw-oriented socket functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/_basic_raw_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/_basic_raw_socket.html deleted file mode 100644 index 1ee6ce2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/_basic_raw_socket.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_raw_socket::~basic_raw_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the socket. -

-
~basic_raw_socket();
-
-

- This function destroys the socket, cancelling any outstanding asynchronous - operations associated with the socket as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign.html deleted file mode 100644 index 1826c86..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_raw_socket::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign an existing - native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign/overload1.html deleted file mode 100644 index 2860038..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_raw_socket::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign/overload2.html deleted file mode 100644 index 54a225d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign/overload2.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_raw_socket::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_connect.html deleted file mode 100644 index 0a99047..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_connect.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_raw_socket::async_connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Start - an asynchronous connect. -

-
template<
-    typename ConnectHandler>
-DEDUCED async_connect(
-    const endpoint_type & peer_endpoint,
-    ConnectHandler && handler);
-
-

- This function is used to asynchronously connect a socket to the specified - remote endpoint. The function call always returns immediately. -

-

- The socket is automatically opened if it is not already open. If the connect - fails, and the socket was automatically opened, the socket is not returned - to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. Copies - will be made of the endpoint object as required. -

-
handler
-
-

- The handler to be called when the connection operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void connect_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Connect succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.async_connect(endpoint, connect_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive.html deleted file mode 100644 index eb54eb6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_raw_socket::async_receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous receive on a connected socket. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive/overload1.html deleted file mode 100644 index c06017a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_raw_socket::async_receive (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive on a connected socket. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the raw socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks 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 receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_receive operation can only be used with a connected socket. - Use the async_receive_from function to receive data on an unconnected - raw socket. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive/overload2.html deleted file mode 100644 index 79caa67..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive/overload2.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -basic_raw_socket::async_receive (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive on a connected socket. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the raw socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_receive operation can only be used with a connected socket. - Use the async_receive_from function to receive data on an unconnected - raw socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from.html deleted file mode 100644 index f0f5fc1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_raw_socket::async_receive_from - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload1.html deleted file mode 100644 index 4308e3f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_raw_socket::async_receive_from (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive raw data. The function - call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the data. Ownership of the sender_endpoint object is retained - by the caller, which must guarantee that it is valid until the - handler is called. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive_from(
-    asio::buffer(data, size), 0, sender_endpoint, handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload2.html deleted file mode 100644 index 180063e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload2.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -basic_raw_socket::async_receive_from (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive raw data. The function - call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the data. Ownership of the sender_endpoint object is retained - by the caller, which must guarantee that it is valid until the - handler is called. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send.html deleted file mode 100644 index 716f83b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_raw_socket::async_send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous send on a connected socket. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-  » more...
-
-template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send/overload1.html deleted file mode 100644 index 28d91af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send/overload1.html +++ /dev/null @@ -1,109 +0,0 @@ - - - -basic_raw_socket::async_send (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send on a connected socket. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to send data on the raw socket. The function call - will block until the data has been sent successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_send operation can only be used with a connected socket. Use - the async_send_to function to send data on an unconnected raw socket. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.async_send(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send/overload2.html deleted file mode 100644 index 1d74a43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send/overload2.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -basic_raw_socket::async_send (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send on a connected socket. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-
-

- This function is used to send data on the raw socket. The function call - will block until the data has been sent successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_send operation can only be used with a connected socket. Use - the async_send_to function to send data on an unconnected raw socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to.html deleted file mode 100644 index 9fa9e83..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_raw_socket::async_send_to - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    WriteHandler && handler);
-  » more...
-
-template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload1.html deleted file mode 100644 index 26bde63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_raw_socket::async_send_to (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send raw data to the specified - remote endpoint. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
destination
-

- The remote endpoint to which the data will be sent. Copies will - be made of the endpoint as required. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
asio::ip::udp::endpoint destination(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.async_send_to(
-    asio::buffer(data, size), destination, handler);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload2.html deleted file mode 100644 index bd1d4fe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload2.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -basic_raw_socket::async_send_to (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send raw data to the specified - remote endpoint. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
destination
-

- The remote endpoint to which the data will be sent. Copies will - be made of the endpoint as required. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_wait.html deleted file mode 100644 index 593e52c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_wait.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_raw_socket::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Asynchronously - wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-...
-socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark.html deleted file mode 100644 index 7c2f69c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_raw_socket::at_mark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-  » more...
-
-bool at_mark(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark/overload1.html deleted file mode 100644 index fd3edf6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark/overload1.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -basic_raw_socket::at_mark (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark/overload2.html deleted file mode 100644 index 20d31cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_raw_socket::at_mark (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark(
-    asio::error_code & ec) const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available.html deleted file mode 100644 index c15cc88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_raw_socket::available - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the number of bytes available for reading. -

-
std::size_t available() const;
-  » more...
-
-std::size_t available(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available/overload1.html deleted file mode 100644 index 327c872..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available/overload1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_raw_socket::available (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available() const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available/overload2.html deleted file mode 100644 index fc49984..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available/overload2.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_raw_socket::available (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available(
-    asio::error_code & ec) const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket.html deleted file mode 100644 index 7a7341f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_raw_socket::basic_raw_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_raw_socket - without opening it. -

-
explicit basic_raw_socket(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct and open a basic_raw_socket. -

-
basic_raw_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-  » more...
-
-

- Construct a basic_raw_socket, - opening it and binding it to the given local endpoint. -

-
basic_raw_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-  » more...
-
-

- Construct a basic_raw_socket - on an existing native socket. -

-
basic_raw_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-

- Move-construct a basic_raw_socket - from another. -

-
basic_raw_socket(
-    basic_raw_socket && other);
-  » more...
-
-

- Move-construct a basic_raw_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_raw_socket(
-    basic_raw_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload1.html deleted file mode 100644 index 9895149..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_raw_socket::basic_raw_socket (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_raw_socket - without opening it. -

-
basic_raw_socket(
-    asio::io_context & io_context);
-
-

- This constructor creates a raw socket without opening it. The open() - function must be called before data can be sent or received on the socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the raw socket will use to dispatch handlers for any - asynchronous operations performed on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload2.html deleted file mode 100644 index d4827c7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_raw_socket::basic_raw_socket (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct and open a basic_raw_socket. -

-
basic_raw_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-
-

- This constructor creates and opens a raw socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the raw socket will use to dispatch handlers for any - asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload3.html deleted file mode 100644 index 8ab2502..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload3.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_raw_socket::basic_raw_socket (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_raw_socket, - opening it and binding it to the given local endpoint. -

-
basic_raw_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-
-

- This constructor creates a raw socket and automatically opens it bound - to the specified endpoint on the local machine. The protocol used is - the protocol associated with the given endpoint. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the raw socket will use to dispatch handlers for any - asynchronous operations performed on the socket. -

-
endpoint
-

- An endpoint on the local machine to which the raw socket will be - bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload4.html deleted file mode 100644 index 6345e61..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload4.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_raw_socket::basic_raw_socket (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_raw_socket - on an existing native socket. -

-
basic_raw_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-

- This constructor creates a raw socket object to hold an existing native - socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the raw socket will use to dispatch handlers for any - asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
native_socket
-

- The new underlying socket implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload5.html deleted file mode 100644 index b8c37b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload5.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_raw_socket::basic_raw_socket (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_raw_socket - from another. -

-
basic_raw_socket(
-    basic_raw_socket && other);
-
-

- This constructor moves a raw socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_raw_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_raw_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload6.html deleted file mode 100644 index 09bce41..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload6.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_raw_socket::basic_raw_socket (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_raw_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_raw_socket(
-    basic_raw_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-
-

- This constructor moves a raw socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_raw_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_raw_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind.html deleted file mode 100644 index d1f8516..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_raw_socket::bind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bind the socket - to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-  » more...
-
-void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind/overload1.html deleted file mode 100644 index a5a6286..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind/overload1.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -basic_raw_socket::bind (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind/overload2.html deleted file mode 100644 index ff639bd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind/overload2.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_raw_socket::bind (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-asio::error_code ec;
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/broadcast.html deleted file mode 100644 index 77c00f7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/broadcast.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to permit sending of broadcast messages. -

-
typedef implementation_defined broadcast;
-
-

- Implements the SOL_SOCKET/SO_BROADCAST socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bytes_readable.html deleted file mode 100644 index 625e4ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bytes_readable.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_raw_socket::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::bytes_readable command(true);
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel.html deleted file mode 100644 index 0f8c254..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_raw_socket::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel all - asynchronous operations associated with the socket. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel/overload1.html deleted file mode 100644 index 98a70fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel/overload1.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_raw_socket::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel/overload2.html deleted file mode 100644 index 95c86cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel/overload2.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_raw_socket::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close.html deleted file mode 100644 index edf609e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_raw_socket::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close the socket. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close/overload1.html deleted file mode 100644 index d3ddc84..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_raw_socket::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close();
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. Note that, even if the function indicates an - error, the underlying descriptor is closed. -

-
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close/overload2.html deleted file mode 100644 index d871aea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_raw_socket::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. Note that, even if - the function indicates an error, the underlying descriptor is closed. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.close(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect.html deleted file mode 100644 index 582733f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_raw_socket::connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Connect the - socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-  » more...
-
-void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect/overload1.html deleted file mode 100644 index d5d7d52..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect/overload1.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_raw_socket::connect (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.connect(endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect/overload2.html deleted file mode 100644 index c653c15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect/overload2.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -basic_raw_socket::connect (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-asio::error_code ec;
-socket.connect(endpoint, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/debug.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/debug.html deleted file mode 100644 index ef09ff4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/debug.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::debug - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket option - to enable socket-level debugging. -

-
typedef implementation_defined debug;
-
-

- Implements the SOL_SOCKET/SO_DEBUG socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/do_not_route.html deleted file mode 100644 index 503170c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/do_not_route.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to prevent routing, use local interfaces only. -

-
typedef implementation_defined do_not_route;
-
-

- Implements the SOL_SOCKET/SO_DONTROUTE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/enable_connection_aborted.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/enable_connection_aborted.html deleted file mode 100644 index aaf03a0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/enable_connection_aborted.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_raw_socket::enable_connection_aborted - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to report aborted connections on accept. -

-
typedef implementation_defined enable_connection_aborted;
-
-

- Implements a custom socket option that determines whether or not an accept - operation is permitted to fail with asio::error::connection_aborted. - By default the option is false. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/endpoint_type.html deleted file mode 100644 index d8136dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_raw_socket::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/executor_type.html deleted file mode 100644 index deede15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/executor_type.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -basic_raw_socket::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_executor.html deleted file mode 100644 index be2579d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_executor.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_raw_socket::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_io_context.html deleted file mode 100644 index bcc5f29..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_io_context.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_raw_socket::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_io_service.html deleted file mode 100644 index 296f9d8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_io_service.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_raw_socket::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option.html deleted file mode 100644 index f6b54a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_raw_socket::get_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-  » more...
-
-template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option/overload1.html deleted file mode 100644 index fc9ac20..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_raw_socket::get_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option/overload2.html deleted file mode 100644 index ab5c165..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_raw_socket::get_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-asio::error_code ec;
-socket.get_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control.html deleted file mode 100644 index 7ef520c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_raw_socket::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control/overload1.html deleted file mode 100644 index 078c5ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_raw_socket::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control/overload2.html deleted file mode 100644 index 332027a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_raw_socket::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-asio::error_code ec;
-socket.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/is_open.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/is_open.html deleted file mode 100644 index a00e7d6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/is_open.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_raw_socket::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Determine - whether the socket is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/keep_alive.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/keep_alive.html deleted file mode 100644 index e9a6f63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/keep_alive.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::keep_alive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to send keep-alives. -

-
typedef implementation_defined keep_alive;
-
-

- Implements the SOL_SOCKET/SO_KEEPALIVE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/linger.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/linger.html deleted file mode 100644 index 380e960..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/linger.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_raw_socket::linger - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket option - to specify whether the socket lingers on close if unsent data is present. -

-
typedef implementation_defined linger;
-
-

- Implements the SOL_SOCKET/SO_LINGER socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option(true, 30);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option;
-socket.get_option(option);
-bool is_set = option.enabled();
-unsigned short timeout = option.timeout();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint.html deleted file mode 100644 index 7fb4a00..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_raw_socket::local_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-  » more...
-
-endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload1.html deleted file mode 100644 index 1e3cd22..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_raw_socket::local_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload2.html deleted file mode 100644 index 45b1de6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_raw_socket::local_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. Returns a - default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer.html deleted file mode 100644 index 7840d88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_raw_socket::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload1.html deleted file mode 100644 index eccfead..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_raw_socket::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload2.html deleted file mode 100644 index 1d17c5c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_raw_socket::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer_type.html deleted file mode 100644 index 525123b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer_type.html +++ /dev/null @@ -1,862 +0,0 @@ - - - -basic_raw_socket::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -A - basic_socket - is always the lowest layer. -

-
typedef basic_socket< Protocol > lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_socket -

-
-

- Construct a basic_socket without opening it.

Construct - and open a basic_socket.

Construct a basic_socket, - opening it and binding it to the given local endpoint.
-
Construct a basic_socket on an existing native socket. -

Move-construct a basic_socket from another.
-
Move-construct a basic_socket from a socket of another - protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket from another.

Move-assign - a basic_socket from a socket of another protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~basic_socket -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket - class template provides functionality that is common to both stream-oriented - and datagram-oriented sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/max_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/max_connections.html deleted file mode 100644 index e9ebbac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/max_connections.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_raw_socket::max_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -(Deprecated: - Use max_listen_connections.) The maximum length of the queue of pending - incoming connections. -

-
static const int max_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/max_listen_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/max_listen_connections.html deleted file mode 100644 index a32fc7b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/max_listen_connections.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_raw_socket::max_listen_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -The - maximum length of the queue of pending incoming connections. -

-
static const int max_listen_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_do_not_route.html deleted file mode 100644 index 48fd9cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_do_not_route.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_raw_socket::message_do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specify - that the data should not be subject to routing. -

-
static const int message_do_not_route = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_end_of_record.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_end_of_record.html deleted file mode 100644 index c5d0a92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_end_of_record.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_raw_socket::message_end_of_record - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specifies - that the data marks the end of a record. -

-
static const int message_end_of_record = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_flags.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_flags.html deleted file mode 100644 index ea5571b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_raw_socket::message_flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Bitmask - type for flags that can be passed to send and receive operations. -

-
typedef int message_flags;
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_out_of_band.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_out_of_band.html deleted file mode 100644 index 478afcd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_out_of_band.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_raw_socket::message_out_of_band - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Process - out-of-band data. -

-
static const int message_out_of_band = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_peek.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_peek.html deleted file mode 100644 index ae8fb5f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_peek.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_raw_socket::message_peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Peek - at incoming data without removing it from the input queue. -

-
static const int message_peek = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_handle.html deleted file mode 100644 index a3a64ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_handle.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_raw_socket::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the native socket representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - socket. This is intended to allow access to native socket functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_handle_type.html deleted file mode 100644 index 10a2eab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_raw_socket::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a socket. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking.html deleted file mode 100644 index b928434..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_raw_socket::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload1.html deleted file mode 100644 index fce894a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload1.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -basic_raw_socket::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native socket. This mode has no effect on the behaviour of the socket - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying socket is in non-blocking mode and - direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the socket object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native socket. -

-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload2.html deleted file mode 100644 index 0db7664..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload2.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -basic_raw_socket::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload3.html deleted file mode 100644 index dd9a061..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload3.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -basic_raw_socket::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking.html deleted file mode 100644 index 64180cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_raw_socket::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the socket. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload1.html deleted file mode 100644 index 7d619a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_raw_socket::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the socket. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the socket's synchronous operations will fail with - asio::error::would_block if they are unable to perform the - requested operation immediately. If false, synchronous operations - will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload2.html deleted file mode 100644 index e795615..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_raw_socket::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload3.html deleted file mode 100644 index 52ac1f5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload3.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_raw_socket::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open.html deleted file mode 100644 index d177572..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_raw_socket::open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Open the socket - using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-  » more...
-
-void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open/overload1.html deleted file mode 100644 index 446183b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_raw_socket::open (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open/overload2.html deleted file mode 100644 index 3827ce0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_raw_socket::open (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying which protocol is to be used. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::error_code ec;
-socket.open(asio::ip::tcp::v4(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_.html deleted file mode 100644 index 944fbce..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_raw_socket::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_raw_socket - from another. -

-
basic_raw_socket & operator=(
-    basic_raw_socket && other);
-  » more...
-
-

- Move-assign a basic_raw_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_raw_socket >::type & operator=(
-    basic_raw_socket< Protocol1 > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload1.html deleted file mode 100644 index fcaec57..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_raw_socket::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_raw_socket - from another. -

-
basic_raw_socket & operator=(
-    basic_raw_socket && other);
-
-

- This assignment operator moves a raw socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_raw_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_raw_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload2.html deleted file mode 100644 index f86ec6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_raw_socket::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_raw_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_raw_socket >::type & operator=(
-    basic_raw_socket< Protocol1 > && other);
-
-

- This assignment operator moves a raw socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_raw_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_raw_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/out_of_band_inline.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/out_of_band_inline.html deleted file mode 100644 index 7bfe3c8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/out_of_band_inline.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::out_of_band_inline - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for putting received out-of-band data inline. -

-
typedef implementation_defined out_of_band_inline;
-
-

- Implements the SOL_SOCKET/SO_OOBINLINE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option;
-socket.get_option(option);
-bool value = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/protocol_type.html deleted file mode 100644 index 7075fe1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_raw_socket::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive.html deleted file mode 100644 index 6be6def..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_raw_socket::receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Receive some - data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload1.html deleted file mode 100644 index d1b3816..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload1.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -basic_raw_socket::receive (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to receive data on the raw socket. The function - call will block until data has been received successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The receive operation can only be used with a connected socket. Use the - receive_from function to receive data on an unconnected raw socket. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.receive(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload2.html deleted file mode 100644 index 486baa5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload2.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -basic_raw_socket::receive (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags);
-
-

- This function is used to receive data on the raw socket. The function - call will block until data has been received successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The receive operation can only be used with a connected socket. Use the - receive_from function to receive data on an unconnected raw socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload3.html deleted file mode 100644 index 4e775f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload3.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -basic_raw_socket::receive (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to receive data on the raw socket. The function - call will block until data has been received successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Remarks -
-

- The receive operation can only be used with a connected socket. Use the - receive_from function to receive data on an unconnected raw socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_buffer_size.html deleted file mode 100644 index 184ce43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::receive_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive buffer size of a socket. -

-
typedef implementation_defined receive_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_RCVBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from.html deleted file mode 100644 index 4cd7574..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -basic_raw_socket::receive_from - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Receive - raw data with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload1.html deleted file mode 100644 index f354b4a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload1.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -basic_raw_socket::receive_from (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive raw data with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint);
-
-

- This function is used to receive raw data. The function call will block - until data has been received successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the data. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
asio::ip::udp::endpoint sender_endpoint;
-socket.receive_from(
-    asio::buffer(data, size), sender_endpoint);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload2.html deleted file mode 100644 index a8b490c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload2.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_raw_socket::receive_from (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive raw data with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags);
-
-

- This function is used to receive raw data. The function call will block - until data has been received successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the data. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload3.html deleted file mode 100644 index 8a0c6b5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload3.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_raw_socket::receive_from (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive raw data with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to receive raw data. The function call will block - until data has been received successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the data. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_low_watermark.html deleted file mode 100644 index 9c93b46..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::receive_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive low watermark. -

-
typedef implementation_defined receive_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_RCVLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release.html deleted file mode 100644 index 71b47e2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_raw_socket::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release ownership - of the underlying native socket. -

-
native_handle_type release();
-  » more...
-
-native_handle_type release(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release/overload1.html deleted file mode 100644 index 837f068..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release/overload1.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -basic_raw_socket::release (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release/overload2.html deleted file mode 100644 index 54d9c09..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_raw_socket::release (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint.html deleted file mode 100644 index 55a3794..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_raw_socket::remote_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-  » more...
-
-endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload1.html deleted file mode 100644 index c92adc1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_raw_socket::remote_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload2.html deleted file mode 100644 index 8ba4ab8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_raw_socket::remote_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. Returns - a default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/reuse_address.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/reuse_address.html deleted file mode 100644 index 5e961a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/reuse_address.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_raw_socket::reuse_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to allow the socket to be bound to an address that is already in - use. -

-
typedef implementation_defined reuse_address;
-
-

- Implements the SOL_SOCKET/SO_REUSEADDR socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send.html deleted file mode 100644 index 2b068ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_raw_socket::send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Send some data - on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload1.html deleted file mode 100644 index c6fd27e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload1.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -basic_raw_socket::send (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to send data on the raw socket. The function call - will block until the data has been sent successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One ore more data buffers to be sent on the socket. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The send operation can only be used with a connected socket. Use the - send_to function to send data on an unconnected raw socket. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.send(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload2.html deleted file mode 100644 index c5ad5bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload2.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -basic_raw_socket::send (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-
-

- This function is used to send data on the raw socket. The function call - will block until the data has been sent successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One ore more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The send operation can only be used with a connected socket. Use the - send_to function to send data on an unconnected raw socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload3.html deleted file mode 100644 index 192eeae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload3.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -basic_raw_socket::send (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to send data on the raw socket. The function call - will block until the data has been sent successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Remarks -
-

- The send operation can only be used with a connected socket. Use the - send_to function to send data on an unconnected raw socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_buffer_size.html deleted file mode 100644 index fee24b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::send_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send buffer size of a socket. -

-
typedef implementation_defined send_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_SNDBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_low_watermark.html deleted file mode 100644 index 9d8340a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::send_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send low watermark. -

-
typedef implementation_defined send_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_SNDLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to.html deleted file mode 100644 index d422baf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -basic_raw_socket::send_to - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Send raw - data to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload1.html deleted file mode 100644 index d6b3b10..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload1.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -basic_raw_socket::send_to (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send raw data to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination);
-
-

- This function is used to send raw data to the specified remote endpoint. - The function call will block until the data has been sent successfully - or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. -

-
destination
-

- The remote endpoint to which the data will be sent. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
asio::ip::udp::endpoint destination(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.send_to(asio::buffer(data, size), destination);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload2.html deleted file mode 100644 index 551b3f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload2.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_raw_socket::send_to (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send raw data to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags);
-
-

- This function is used to send raw data to the specified remote endpoint. - The function call will block until the data has been sent successfully - or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. -

-
destination
-

- The remote endpoint to which the data will be sent. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload3.html deleted file mode 100644 index b92df8c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload3.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_raw_socket::send_to (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send raw data to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to send raw data to the specified remote endpoint. - The function call will block until the data has been sent successfully - or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. -

-
destination
-

- The remote endpoint to which the data will be sent. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option.html deleted file mode 100644 index d922b3b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_raw_socket::set_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-  » more...
-
-template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option/overload1.html deleted file mode 100644 index b799503..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option/overload1.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -basic_raw_socket::set_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-socket.set_option(option);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option/overload2.html deleted file mode 100644 index f78dec2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_raw_socket::set_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-asio::error_code ec;
-socket.set_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown.html deleted file mode 100644 index 45ed1ee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_raw_socket::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-  » more...
-
-void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown/overload1.html deleted file mode 100644 index 356d8a1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_raw_socket::shutdown (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.shutdown(asio::ip::tcp::socket::shutdown_send);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown/overload2.html deleted file mode 100644 index fd43f12..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_raw_socket::shutdown (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown_type.html deleted file mode 100644 index 15d13d6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_raw_socket::shutdown_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Different - ways a socket may be shutdown. -

-
enum shutdown_type
-
-

- - - -

-
- - Values -
-
-

-
-
shutdown_receive
-

- Shutdown the receive side of the socket. -

-
shutdown_send
-

- Shutdown the send side of the socket. -

-
shutdown_both
-

- Shutdown both send and receive on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait.html deleted file mode 100644 index fb8dbd7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_raw_socket::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait for the socket - to become ready to read, ready to write, or to have pending error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait/overload1.html deleted file mode 100644 index 5970ed8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_raw_socket::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.wait(asio::ip::tcp::socket::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait/overload2.html deleted file mode 100644 index f542a0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_raw_socket::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.wait(asio::ip::tcp::socket::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait_type.html deleted file mode 100644 index 8caf6d5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait_type.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_raw_socket::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a socket to become ready to read. -

-
wait_write
-

- Wait for a socket to become ready to write. -

-
wait_error
-

- Wait for a socket to have error conditions pending. -

-
-
-

- For use with basic_socket::wait() and basic_socket::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket.html deleted file mode 100644 index 073f5b4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket.html +++ /dev/null @@ -1,883 +0,0 @@ - - - -basic_seq_packet_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides sequenced packet socket functionality. -

-
template<
-    typename Protocol>
-class basic_seq_packet_socket :
-  public basic_socket< Protocol >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close if - unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- 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. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets the - non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_seq_packet_socket from another.

- Move-assign a basic_seq_packet_socket from a socket of another - protocol type. -

-
-

- receive -

-
-

- Receive some data on the socket.

Receive some data - on a connected socket. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, or - to have pending error conditions. -

-
-

- ~basic_seq_packet_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length of - the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_seq_packet_socket - class template provides asynchronous and blocking sequenced packet socket - functionality. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/_basic_seq_packet_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/_basic_seq_packet_socket.html deleted file mode 100644 index e61d52d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/_basic_seq_packet_socket.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_seq_packet_socket::~basic_seq_packet_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the socket. -

-
~basic_seq_packet_socket();
-
-

- This function destroys the socket, cancelling any outstanding asynchronous - operations associated with the socket as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign.html deleted file mode 100644 index 6ef9289..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_seq_packet_socket::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload1.html deleted file mode 100644 index 3b7768b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_seq_packet_socket::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload2.html deleted file mode 100644 index dfcccec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload2.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_connect.html deleted file mode 100644 index 30f905a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_connect.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_seq_packet_socket::async_connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Start - an asynchronous connect. -

-
template<
-    typename ConnectHandler>
-DEDUCED async_connect(
-    const endpoint_type & peer_endpoint,
-    ConnectHandler && handler);
-
-

- This function is used to asynchronously connect a socket to the specified - remote endpoint. The function call always returns immediately. -

-

- The socket is automatically opened if it is not already open. If the connect - fails, and the socket was automatically opened, the socket is not returned - to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. Copies - will be made of the endpoint object as required. -

-
handler
-
-

- The handler to be called when the connection operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void connect_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Connect succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.async_connect(endpoint, connect_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive.html deleted file mode 100644 index e853596..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_seq_packet_socket::async_receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags & out_flags,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags in_flags,
-    socket_base::message_flags & out_flags,
-    ReadHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload1.html deleted file mode 100644 index 2d21b3d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_seq_packet_socket::async_receive (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags & out_flags,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the sequenced - packet socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
out_flags
-

- Once the asynchronous operation completes, contains flags associated - with the received data. For example, if the socket_base::message_end_of_record - bit is set then the received data marks the end of a record. The - caller must guarantee that the referenced variable remains valid - until the handler is called. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive(asio::buffer(data, size), out_flags, handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload2.html deleted file mode 100644 index 6874913..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload2.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -basic_seq_packet_socket::async_receive (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags in_flags,
-    socket_base::message_flags & out_flags,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the sequenced - data socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
in_flags
-

- Flags specifying how the receive call is to be made. -

-
out_flags
-

- Once the asynchronous operation completes, contains flags associated - with the received data. For example, if the socket_base::message_end_of_record - bit is set then the received data marks the end of a record. The - caller must guarantee that the referenced variable remains valid - until the handler is called. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive(
-    asio::buffer(data, size),
-    0, out_flags, handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_send.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_send.html deleted file mode 100644 index 52add32..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_send.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -basic_seq_packet_socket::async_send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send data on the sequenced packet - socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. Although the buffers - object may be copied as necessary, ownership of the underlying memory - blocks is retained by the caller, which must guarantee that they - remain valid until the handler is called. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.async_send(asio::buffer(data, size), 0, handler);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_wait.html deleted file mode 100644 index fb25913..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_wait.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_seq_packet_socket::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Asynchronously - wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-...
-socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark.html deleted file mode 100644 index 15bfeb6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::at_mark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-  » more...
-
-bool at_mark(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload1.html deleted file mode 100644 index bbbef36..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload1.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -basic_seq_packet_socket::at_mark (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload2.html deleted file mode 100644 index 4ee1f64..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_seq_packet_socket::at_mark (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark(
-    asio::error_code & ec) const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available.html deleted file mode 100644 index 0f59ea5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::available - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the number of bytes available for reading. -

-
std::size_t available() const;
-  » more...
-
-std::size_t available(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available/overload1.html deleted file mode 100644 index ddeb8ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available/overload1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_seq_packet_socket::available (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available() const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available/overload2.html deleted file mode 100644 index 4f40d1b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available/overload2.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_seq_packet_socket::available (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available(
-    asio::error_code & ec) const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket.html deleted file mode 100644 index bf16f6f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_seq_packet_socket::basic_seq_packet_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_seq_packet_socket - without opening it. -

-
explicit basic_seq_packet_socket(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct and open a basic_seq_packet_socket. -

-
basic_seq_packet_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-  » more...
-
-

- Construct a basic_seq_packet_socket, - opening it and binding it to the given local endpoint. -

-
basic_seq_packet_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-  » more...
-
-

- Construct a basic_seq_packet_socket - on an existing native socket. -

-
basic_seq_packet_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-

- Move-construct a basic_seq_packet_socket - from another. -

-
basic_seq_packet_socket(
-    basic_seq_packet_socket && other);
-  » more...
-
-

- Move-construct a basic_seq_packet_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_seq_packet_socket(
-    basic_seq_packet_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload1.html deleted file mode 100644 index 9071b22..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_seq_packet_socket::basic_seq_packet_socket (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_seq_packet_socket - without opening it. -

-
basic_seq_packet_socket(
-    asio::io_context & io_context);
-
-

- This constructor creates a sequenced packet socket without opening it. - The socket needs to be opened and then connected or accepted before data - can be sent or received on it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the sequenced packet socket will use to dispatch handlers - for any asynchronous operations performed on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload2.html deleted file mode 100644 index 0d0c026..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_seq_packet_socket::basic_seq_packet_socket (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct and open a basic_seq_packet_socket. -

-
basic_seq_packet_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-
-

- This constructor creates and opens a sequenced_packet socket. The socket - needs to be connected or accepted before data can be sent or received - on it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the sequenced packet socket will use to dispatch handlers - for any asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload3.html deleted file mode 100644 index 0c9d950..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload3.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_seq_packet_socket::basic_seq_packet_socket (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_seq_packet_socket, - opening it and binding it to the given local endpoint. -

-
basic_seq_packet_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-
-

- This constructor creates a sequenced packet socket and automatically - opens it bound to the specified endpoint on the local machine. The protocol - used is the protocol associated with the given endpoint. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the sequenced packet socket will use to dispatch handlers - for any asynchronous operations performed on the socket. -

-
endpoint
-

- An endpoint on the local machine to which the sequenced packet - socket will be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload4.html deleted file mode 100644 index 49f90d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload4.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_seq_packet_socket::basic_seq_packet_socket (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_seq_packet_socket - on an existing native socket. -

-
basic_seq_packet_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-

- This constructor creates a sequenced packet socket object to hold an - existing native socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the sequenced packet socket will use to dispatch handlers - for any asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
native_socket
-

- The new underlying socket implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload5.html deleted file mode 100644 index e6defe3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload5.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -basic_seq_packet_socket::basic_seq_packet_socket (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_seq_packet_socket - from another. -

-
basic_seq_packet_socket(
-    basic_seq_packet_socket && other);
-
-

- This constructor moves a sequenced packet socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_seq_packet_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_seq_packet_socket(io_context&) - constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload6.html deleted file mode 100644 index e9cbce0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload6.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -basic_seq_packet_socket::basic_seq_packet_socket (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_seq_packet_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_seq_packet_socket(
-    basic_seq_packet_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-
-

- This constructor moves a sequenced packet socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_seq_packet_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_seq_packet_socket(io_context&) - constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind.html deleted file mode 100644 index 5b278a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_seq_packet_socket::bind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bind - the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-  » more...
-
-void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload1.html deleted file mode 100644 index d8124f0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload1.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -basic_seq_packet_socket::bind (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload2.html deleted file mode 100644 index 27389c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload2.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_seq_packet_socket::bind (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-asio::error_code ec;
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/broadcast.html deleted file mode 100644 index 0fe2642..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/broadcast.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to permit sending of broadcast messages. -

-
typedef implementation_defined broadcast;
-
-

- Implements the SOL_SOCKET/SO_BROADCAST socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bytes_readable.html deleted file mode 100644 index 551188b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bytes_readable.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_seq_packet_socket::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::bytes_readable command(true);
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel.html deleted file mode 100644 index e314e66..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the socket. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload1.html deleted file mode 100644 index d186150..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload1.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_seq_packet_socket::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload2.html deleted file mode 100644 index 7190d38..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload2.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_seq_packet_socket::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close.html deleted file mode 100644 index b1f5cd7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the socket. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close/overload1.html deleted file mode 100644 index 57e5a7f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_seq_packet_socket::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close();
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. Note that, even if the function indicates an - error, the underlying descriptor is closed. -

-
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close/overload2.html deleted file mode 100644 index 77c128c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_seq_packet_socket::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. Note that, even if - the function indicates an error, the underlying descriptor is closed. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.close(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect.html deleted file mode 100644 index 0246f20..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_seq_packet_socket::connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Connect - the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-  » more...
-
-void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload1.html deleted file mode 100644 index a4dfbaf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload1.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_seq_packet_socket::connect (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.connect(endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload2.html deleted file mode 100644 index 88eb180..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload2.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -basic_seq_packet_socket::connect (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-asio::error_code ec;
-socket.connect(endpoint, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/debug.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/debug.html deleted file mode 100644 index b20a1b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/debug.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::debug - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to enable socket-level debugging. -

-
typedef implementation_defined debug;
-
-

- Implements the SOL_SOCKET/SO_DEBUG socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/do_not_route.html deleted file mode 100644 index 2137c11..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/do_not_route.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to prevent routing, use local interfaces only. -

-
typedef implementation_defined do_not_route;
-
-

- Implements the SOL_SOCKET/SO_DONTROUTE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/enable_connection_aborted.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/enable_connection_aborted.html deleted file mode 100644 index 8496d33..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/enable_connection_aborted.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_seq_packet_socket::enable_connection_aborted - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to report aborted connections on accept. -

-
typedef implementation_defined enable_connection_aborted;
-
-

- Implements a custom socket option that determines whether or not an accept - operation is permitted to fail with asio::error::connection_aborted. - By default the option is false. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/endpoint_type.html deleted file mode 100644 index 35309ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_seq_packet_socket::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/executor_type.html deleted file mode 100644 index cc6a6fc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/executor_type.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -basic_seq_packet_socket::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_executor.html deleted file mode 100644 index 7963b0a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_executor.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_seq_packet_socket::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_io_context.html deleted file mode 100644 index 81663ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_io_context.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_seq_packet_socket::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_io_service.html deleted file mode 100644 index b8f7bf4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_io_service.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_seq_packet_socket::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option.html deleted file mode 100644 index 7cc7f8c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_seq_packet_socket::get_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-  » more...
-
-template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload1.html deleted file mode 100644 index 79a96c4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_seq_packet_socket::get_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload2.html deleted file mode 100644 index 70f6a4f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_seq_packet_socket::get_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-asio::error_code ec;
-socket.get_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control.html deleted file mode 100644 index f578d95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_seq_packet_socket::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload1.html deleted file mode 100644 index 596c4dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_seq_packet_socket::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload2.html deleted file mode 100644 index 48cea2f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_seq_packet_socket::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-asio::error_code ec;
-socket.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/is_open.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/is_open.html deleted file mode 100644 index 9a96e8b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/is_open.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_seq_packet_socket::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Determine - whether the socket is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/keep_alive.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/keep_alive.html deleted file mode 100644 index 7a7937f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/keep_alive.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::keep_alive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to send keep-alives. -

-
typedef implementation_defined keep_alive;
-
-

- Implements the SOL_SOCKET/SO_KEEPALIVE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/linger.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/linger.html deleted file mode 100644 index 98fa5c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/linger.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_seq_packet_socket::linger - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to specify whether the socket lingers on close if unsent data is - present. -

-
typedef implementation_defined linger;
-
-

- Implements the SOL_SOCKET/SO_LINGER socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option(true, 30);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option;
-socket.get_option(option);
-bool is_set = option.enabled();
-unsigned short timeout = option.timeout();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint.html deleted file mode 100644 index e2753ee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::local_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-  » more...
-
-endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload1.html deleted file mode 100644 index 5efce6c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_seq_packet_socket::local_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload2.html deleted file mode 100644 index b26aed1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_seq_packet_socket::local_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. Returns a - default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer.html deleted file mode 100644 index 05b79cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_seq_packet_socket::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload1.html deleted file mode 100644 index 68566a9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_seq_packet_socket::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload2.html deleted file mode 100644 index 41b8e72..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_seq_packet_socket::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer_type.html deleted file mode 100644 index c614ceb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer_type.html +++ /dev/null @@ -1,862 +0,0 @@ - - - -basic_seq_packet_socket::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -A - basic_socket - is always the lowest layer. -

-
typedef basic_socket< Protocol > lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_socket -

-
-

- Construct a basic_socket without opening it.

Construct - and open a basic_socket.

Construct a basic_socket, - opening it and binding it to the given local endpoint.
-
Construct a basic_socket on an existing native socket. -

Move-construct a basic_socket from another.
-
Move-construct a basic_socket from a socket of another - protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket from another.

Move-assign - a basic_socket from a socket of another protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~basic_socket -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket - class template provides functionality that is common to both stream-oriented - and datagram-oriented sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/max_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/max_connections.html deleted file mode 100644 index e5e8d9c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/max_connections.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_seq_packet_socket::max_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -(Deprecated: - Use max_listen_connections.) The maximum length of the queue of pending - incoming connections. -

-
static const int max_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/max_listen_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/max_listen_connections.html deleted file mode 100644 index c90e32b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/max_listen_connections.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_seq_packet_socket::max_listen_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -The - maximum length of the queue of pending incoming connections. -

-
static const int max_listen_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_do_not_route.html deleted file mode 100644 index 41504bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_do_not_route.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_seq_packet_socket::message_do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specify - that the data should not be subject to routing. -

-
static const int message_do_not_route = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_end_of_record.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_end_of_record.html deleted file mode 100644 index 0d6b411..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_end_of_record.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_seq_packet_socket::message_end_of_record - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specifies - that the data marks the end of a record. -

-
static const int message_end_of_record = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_flags.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_flags.html deleted file mode 100644 index 757bdc8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_seq_packet_socket::message_flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Bitmask - type for flags that can be passed to send and receive operations. -

-
typedef int message_flags;
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_out_of_band.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_out_of_band.html deleted file mode 100644 index 147eb2f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_out_of_band.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_seq_packet_socket::message_out_of_band - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Process - out-of-band data. -

-
static const int message_out_of_band = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_peek.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_peek.html deleted file mode 100644 index 11bb72e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_peek.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_seq_packet_socket::message_peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Peek - at incoming data without removing it from the input queue. -

-
static const int message_peek = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_handle.html deleted file mode 100644 index 1e45893..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_handle.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_seq_packet_socket::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the native socket representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - socket. This is intended to allow access to native socket functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_handle_type.html deleted file mode 100644 index ca013de..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_seq_packet_socket::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a socket. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking.html deleted file mode 100644 index e5ff70d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_seq_packet_socket::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload1.html deleted file mode 100644 index 3da085d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload1.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -basic_seq_packet_socket::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native socket. This mode has no effect on the behaviour of the socket - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying socket is in non-blocking mode and - direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the socket object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native socket. -

-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload2.html deleted file mode 100644 index 80f94ce..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload2.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -basic_seq_packet_socket::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload3.html deleted file mode 100644 index c786083..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload3.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -basic_seq_packet_socket::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking.html deleted file mode 100644 index 1d29cc9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_seq_packet_socket::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the socket. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload1.html deleted file mode 100644 index c3622fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_seq_packet_socket::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the socket. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the socket's synchronous operations will fail with - asio::error::would_block if they are unable to perform the - requested operation immediately. If false, synchronous operations - will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload2.html deleted file mode 100644 index 385dee9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_seq_packet_socket::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload3.html deleted file mode 100644 index 4ebab91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload3.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_seq_packet_socket::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open.html deleted file mode 100644 index 6e3d725..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_seq_packet_socket::open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Open - the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-  » more...
-
-void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open/overload1.html deleted file mode 100644 index e930ee5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_seq_packet_socket::open (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open/overload2.html deleted file mode 100644 index d55928d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_seq_packet_socket::open (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying which protocol is to be used. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::error_code ec;
-socket.open(asio::ip::tcp::v4(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_.html deleted file mode 100644 index c7f3477..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_seq_packet_socket::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_seq_packet_socket - from another. -

-
basic_seq_packet_socket & operator=(
-    basic_seq_packet_socket && other);
-  » more...
-
-

- Move-assign a basic_seq_packet_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_seq_packet_socket >::type & operator=(
-    basic_seq_packet_socket< Protocol1 > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload1.html deleted file mode 100644 index 65ba4f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_seq_packet_socket::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_seq_packet_socket - from another. -

-
basic_seq_packet_socket & operator=(
-    basic_seq_packet_socket && other);
-
-

- This assignment operator moves a sequenced packet socket from one object - to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_seq_packet_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_seq_packet_socket(io_context&) - constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload2.html deleted file mode 100644 index 6c3af66..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -basic_seq_packet_socket::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_seq_packet_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_seq_packet_socket >::type & operator=(
-    basic_seq_packet_socket< Protocol1 > && other);
-
-

- This assignment operator moves a sequenced packet socket from one object - to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_seq_packet_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_seq_packet_socket(io_context&) - constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/out_of_band_inline.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/out_of_band_inline.html deleted file mode 100644 index f7975d6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/out_of_band_inline.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::out_of_band_inline - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for putting received out-of-band data inline. -

-
typedef implementation_defined out_of_band_inline;
-
-

- Implements the SOL_SOCKET/SO_OOBINLINE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option;
-socket.get_option(option);
-bool value = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/protocol_type.html deleted file mode 100644 index 70499fa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_seq_packet_socket::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive.html deleted file mode 100644 index c141c43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -basic_seq_packet_socket::receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Receive - some data on the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags & out_flags);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags in_flags,
-    socket_base::message_flags & out_flags);
-  » more...
-
-

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags in_flags,
-    socket_base::message_flags & out_flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload1.html deleted file mode 100644 index 4baff92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload1.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -basic_seq_packet_socket::receive (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags & out_flags);
-
-

- This function is used to receive data on the sequenced packet socket. - The function call will block until data has been received successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
out_flags
-

- After the receive call completes, contains flags associated with - the received data. For example, if the socket_base::message_end_of_record - bit is set then the received data marks the end of a record. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.receive(asio::buffer(data, size), out_flags);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload2.html deleted file mode 100644 index 77ae9c3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload2.html +++ /dev/null @@ -1,122 +0,0 @@ - - - -basic_seq_packet_socket::receive (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags in_flags,
-    socket_base::message_flags & out_flags);
-
-

- This function is used to receive data on the sequenced packet socket. - The function call will block until data has been received successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
in_flags
-

- Flags specifying how the receive call is to be made. -

-
out_flags
-

- After the receive call completes, contains flags associated with - the received data. For example, if the socket_base::message_end_of_record - bit is set then the received data marks the end of a record. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The receive operation may not receive all of the requested number of - bytes. Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.receive(asio::buffer(data, size), 0, out_flags);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload3.html deleted file mode 100644 index 8bbd7f3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload3.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -basic_seq_packet_socket::receive (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags in_flags,
-    socket_base::message_flags & out_flags,
-    asio::error_code & ec);
-
-

- This function is used to receive data on the sequenced packet socket. - The function call will block until data has been received successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
in_flags
-

- Flags specifying how the receive call is to be made. -

-
out_flags
-

- After the receive call completes, contains flags associated with - the received data. For example, if the socket_base::message_end_of_record - bit is set then the received data marks the end of a record. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes received. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The receive operation may not receive all of the requested number of - bytes. Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive_buffer_size.html deleted file mode 100644 index ebeb4ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::receive_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive buffer size of a socket. -

-
typedef implementation_defined receive_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_RCVBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive_low_watermark.html deleted file mode 100644 index 22f5940..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::receive_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive low watermark. -

-
typedef implementation_defined receive_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_RCVLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release.html deleted file mode 100644 index f8119fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release - ownership of the underlying native socket. -

-
native_handle_type release();
-  » more...
-
-native_handle_type release(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release/overload1.html deleted file mode 100644 index 8237202..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release/overload1.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -basic_seq_packet_socket::release (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release/overload2.html deleted file mode 100644 index 19b6c05..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_seq_packet_socket::release (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint.html deleted file mode 100644 index 2989dcb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::remote_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-  » more...
-
-endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload1.html deleted file mode 100644 index 9e31c09..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_seq_packet_socket::remote_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload2.html deleted file mode 100644 index fcc8296..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_seq_packet_socket::remote_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. Returns - a default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/reuse_address.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/reuse_address.html deleted file mode 100644 index 86af577..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/reuse_address.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_seq_packet_socket::reuse_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to allow the socket to be bound to an address that is already in - use. -

-
typedef implementation_defined reuse_address;
-
-

- Implements the SOL_SOCKET/SO_REUSEADDR socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send.html deleted file mode 100644 index f7fe068..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_seq_packet_socket::send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Send - some data on the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send/overload1.html deleted file mode 100644 index bbe0c7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send/overload1.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_seq_packet_socket::send (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-
-

- This function is used to send data on the sequenced packet socket. The - function call will block until the data has been sent successfully, or - an until error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.send(asio::buffer(data, size), 0);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send/overload2.html deleted file mode 100644 index e20beff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send/overload2.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_seq_packet_socket::send (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to send data on the sequenced packet socket. The - function call will block the data has been sent successfully, or an until - error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The send operation may not transmit all of the data to the peer. Consider - using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send_buffer_size.html deleted file mode 100644 index 5d1e077..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::send_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send buffer size of a socket. -

-
typedef implementation_defined send_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_SNDBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send_low_watermark.html deleted file mode 100644 index 4515702..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::send_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send low watermark. -

-
typedef implementation_defined send_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_SNDLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option.html deleted file mode 100644 index 717b73c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_seq_packet_socket::set_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-  » more...
-
-template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload1.html deleted file mode 100644 index 8a35d86..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload1.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -basic_seq_packet_socket::set_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-socket.set_option(option);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload2.html deleted file mode 100644 index 0d25fa1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_seq_packet_socket::set_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-asio::error_code ec;
-socket.set_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown.html deleted file mode 100644 index dd71b1a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_seq_packet_socket::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-  » more...
-
-void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload1.html deleted file mode 100644 index 02c382a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_seq_packet_socket::shutdown (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.shutdown(asio::ip::tcp::socket::shutdown_send);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload2.html deleted file mode 100644 index 162eba9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_seq_packet_socket::shutdown (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown_type.html deleted file mode 100644 index c660ff5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_seq_packet_socket::shutdown_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Different - ways a socket may be shutdown. -

-
enum shutdown_type
-
-

- - - -

-
- - Values -
-
-

-
-
shutdown_receive
-

- Shutdown the receive side of the socket. -

-
shutdown_send
-

- Shutdown the send side of the socket. -

-
shutdown_both
-

- Shutdown both send and receive on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait.html deleted file mode 100644 index ef20032..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_seq_packet_socket::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait - for the socket to become ready to read, ready to write, or to have pending - error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload1.html deleted file mode 100644 index 9bb3e1a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_seq_packet_socket::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.wait(asio::ip::tcp::socket::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload2.html deleted file mode 100644 index 7ba4425..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_seq_packet_socket::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.wait(asio::ip::tcp::socket::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait_type.html deleted file mode 100644 index d6bf601..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait_type.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_seq_packet_socket::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a socket to become ready to read. -

-
wait_write
-

- Wait for a socket to become ready to write. -

-
wait_error
-

- Wait for a socket to have error conditions pending. -

-
-
-

- For use with basic_socket::wait() and basic_socket::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket.html deleted file mode 100644 index 5212797..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket.html +++ /dev/null @@ -1,857 +0,0 @@ - - - -basic_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides socket functionality. -

-
template<
-    typename Protocol>
-class basic_socket :
-  public socket_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close if - unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_socket -

-
-

- Construct a basic_socket without opening it.

Construct - and open a basic_socket.

Construct a basic_socket, - opening it and binding it to the given local endpoint.
-
Construct a basic_socket on an existing native socket. -

Move-construct a basic_socket from another.
-
Move-construct a basic_socket from a socket of another protocol - type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets the - non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket from another.

Move-assign - a basic_socket from a socket of another protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, or - to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~basic_socket -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length of - the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket - class template provides functionality that is common to both stream-oriented - and datagram-oriented sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/_basic_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/_basic_socket.html deleted file mode 100644 index 2b091fb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/_basic_socket.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_socket::~basic_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~basic_socket();
-
-

- This function destroys the socket, cancelling any outstanding asynchronous - operations associated with the socket as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign.html deleted file mode 100644 index 719165e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_socket::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign an existing - native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign/overload1.html deleted file mode 100644 index 605d5b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_socket::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign/overload2.html deleted file mode 100644 index 152620f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -basic_socket::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/async_connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/async_connect.html deleted file mode 100644 index 9f596a9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/async_connect.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -basic_socket::async_connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous connect. -

-
template<
-    typename ConnectHandler>
-DEDUCED async_connect(
-    const endpoint_type & peer_endpoint,
-    ConnectHandler && handler);
-
-

- This function is used to asynchronously connect a socket to the specified - remote endpoint. The function call always returns immediately. -

-

- The socket is automatically opened if it is not already open. If the connect - fails, and the socket was automatically opened, the socket is not returned - to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. Copies - will be made of the endpoint object as required. -

-
handler
-
-

- The handler to be called when the connection operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void connect_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Connect succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.async_connect(endpoint, connect_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/async_wait.html deleted file mode 100644 index 258600f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/async_wait.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -basic_socket::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Asynchronously - wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-...
-socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark.html deleted file mode 100644 index 440a5c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket::at_mark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether - the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-  » more...
-
-bool at_mark(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark/overload1.html deleted file mode 100644 index 4189d0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark/overload1.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -basic_socket::at_mark (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark/overload2.html deleted file mode 100644 index 7deafab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark/overload2.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -basic_socket::at_mark (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark(
-    asio::error_code & ec) const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/available.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/available.html deleted file mode 100644 index e249798..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/available.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket::available - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine the - number of bytes available for reading. -

-
std::size_t available() const;
-  » more...
-
-std::size_t available(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/available/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/available/overload1.html deleted file mode 100644 index 630d8b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/available/overload1.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -basic_socket::available (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the number of bytes available for reading. -

-
std::size_t available() const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/available/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/available/overload2.html deleted file mode 100644 index 50229d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/available/overload2.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket::available (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the number of bytes available for reading. -

-
std::size_t available(
-    asio::error_code & ec) const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket.html deleted file mode 100644 index edb2f69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_socket::basic_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_socket - without opening it. -

-
explicit basic_socket(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct and open a basic_socket. -

-
basic_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-  » more...
-
-

- Construct a basic_socket, - opening it and binding it to the given local endpoint. -

-
basic_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-  » more...
-
-

- Construct a basic_socket - on an existing native socket. -

-
basic_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-

- Move-construct a basic_socket - from another. -

-
basic_socket(
-    basic_socket && other);
-  » more...
-
-

- Move-construct a basic_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_socket(
-    basic_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload1.html deleted file mode 100644 index 0f4a240..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload1.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_socket::basic_socket (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket - without opening it. -

-
basic_socket(
-    asio::io_context & io_context);
-
-

- This constructor creates a socket without opening it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the socket will use to dispatch handlers for any asynchronous - operations performed on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload2.html deleted file mode 100644 index 380ac57..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_socket::basic_socket (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct and open a basic_socket. -

-
basic_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-
-

- This constructor creates and opens a socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the socket will use to dispatch handlers for any asynchronous - operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload3.html deleted file mode 100644 index 6c77bf3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload3.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_socket::basic_socket (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket, - opening it and binding it to the given local endpoint. -

-
basic_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-
-

- This constructor creates a socket and automatically opens it bound to - the specified endpoint on the local machine. The protocol used is the - protocol associated with the given endpoint. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the socket will use to dispatch handlers for any asynchronous - operations performed on the socket. -

-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload4.html deleted file mode 100644 index 6ee20f5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload4.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -basic_socket::basic_socket (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket - on an existing native socket. -

-
basic_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-

- This constructor creates a socket object to hold an existing native socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the socket will use to dispatch handlers for any asynchronous - operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
native_socket
-

- A native socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload5.html deleted file mode 100644 index 3f46396..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload5.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket::basic_socket (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_socket - from another. -

-
basic_socket(
-    basic_socket && other);
-
-

- This constructor moves a socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload6.html deleted file mode 100644 index d175ddf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload6.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket::basic_socket (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_socket(
-    basic_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-
-

- This constructor moves a socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind.html deleted file mode 100644 index 4c6d920..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket::bind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bind the socket to the - given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-  » more...
-
-void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind/overload1.html deleted file mode 100644 index 9a94deb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_socket::bind (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind/overload2.html deleted file mode 100644 index 614afa1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_socket::bind (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-asio::error_code ec;
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/broadcast.html deleted file mode 100644 index 818053e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/broadcast.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket option - to permit sending of broadcast messages. -

-
typedef implementation_defined broadcast;
-
-

- Implements the SOL_SOCKET/SO_BROADCAST socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/bytes_readable.html deleted file mode 100644 index ceb08f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bytes_readable.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::bytes_readable command(true);
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel.html deleted file mode 100644 index aaf7f40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel all asynchronous - operations associated with the socket. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel/overload1.html deleted file mode 100644 index 22936bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel/overload1.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -basic_socket::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the socket. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel/overload2.html deleted file mode 100644 index 1d382c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel/overload2.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -basic_socket::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the socket. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/close.html deleted file mode 100644 index 8d05562..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/close.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_socket::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close the socket. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/close/overload1.html deleted file mode 100644 index 5d0b5b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/close/overload1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the socket. -

-
void close();
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. Note that, even if the function indicates an - error, the underlying descriptor is closed. -

-
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/close/overload2.html deleted file mode 100644 index 3cdee11..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/close/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_socket::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the socket. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. Note that, even if - the function indicates an error, the underlying descriptor is closed. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.close(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect.html deleted file mode 100644 index 2e76f81..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket::connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Connect the socket - to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-  » more...
-
-void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect/overload1.html deleted file mode 100644 index 3e65a0c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect/overload1.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -basic_socket::connect (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.connect(endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect/overload2.html deleted file mode 100644 index 5160e90..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect/overload2.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -basic_socket::connect (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-asio::error_code ec;
-socket.connect(endpoint, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/debug.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/debug.html deleted file mode 100644 index d87f270..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/debug.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::debug - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket option to enable - socket-level debugging. -

-
typedef implementation_defined debug;
-
-

- Implements the SOL_SOCKET/SO_DEBUG socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/do_not_route.html deleted file mode 100644 index 6bb2d6b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/do_not_route.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to prevent routing, use local interfaces only. -

-
typedef implementation_defined do_not_route;
-
-

- Implements the SOL_SOCKET/SO_DONTROUTE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/enable_connection_aborted.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/enable_connection_aborted.html deleted file mode 100644 index f67c358..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/enable_connection_aborted.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_socket::enable_connection_aborted - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to report aborted connections on accept. -

-
typedef implementation_defined enable_connection_aborted;
-
-

- Implements a custom socket option that determines whether or not an accept - operation is permitted to fail with asio::error::connection_aborted. - By default the option is false. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/endpoint_type.html deleted file mode 100644 index f093512..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The endpoint - type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/executor_type.html deleted file mode 100644 index 1259f18..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -basic_socket::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_executor.html deleted file mode 100644 index e8f0be1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_io_context.html deleted file mode 100644 index 4b775e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_socket::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_io_service.html deleted file mode 100644 index 1f8af5d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_socket::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option.html deleted file mode 100644 index ea03ea5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_socket::get_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get an option - from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-  » more...
-
-template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option/overload1.html deleted file mode 100644 index 219873d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_socket::get_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option/overload2.html deleted file mode 100644 index 5470cba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_socket::get_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-asio::error_code ec;
-socket.get_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control.html deleted file mode 100644 index ff5ea5c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_socket::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform an - IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control/overload1.html deleted file mode 100644 index 9c70cee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_socket::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control/overload2.html deleted file mode 100644 index 1ead717..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_socket::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-asio::error_code ec;
-socket.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/is_open.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/is_open.html deleted file mode 100644 index 026ef15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/is_open.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether - the socket is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/keep_alive.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/keep_alive.html deleted file mode 100644 index aa1ea85..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/keep_alive.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::keep_alive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket option - to send keep-alives. -

-
typedef implementation_defined keep_alive;
-
-

- Implements the SOL_SOCKET/SO_KEEPALIVE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/linger.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/linger.html deleted file mode 100644 index 83f8246..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/linger.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_socket::linger - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket option to specify - whether the socket lingers on close if unsent data is present. -

-
typedef implementation_defined linger;
-
-

- Implements the SOL_SOCKET/SO_LINGER socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option(true, 30);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option;
-socket.get_option(option);
-bool is_set = option.enabled();
-unsigned short timeout = option.timeout();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint.html deleted file mode 100644 index 29a2ae7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket::local_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-  » more...
-
-endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint/overload1.html deleted file mode 100644 index a8b3519..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint/overload1.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_socket::local_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint/overload2.html deleted file mode 100644 index 422b53b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_socket::local_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. Returns a - default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer.html deleted file mode 100644 index 599c609..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a reference - to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer/overload1.html deleted file mode 100644 index 1943c19..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer/overload1.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer/overload2.html deleted file mode 100644 index 55ed6ad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer_type.html deleted file mode 100644 index 46fc247..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer_type.html +++ /dev/null @@ -1,859 +0,0 @@ - - - -basic_socket::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A - basic_socket - is always the lowest layer. -

-
typedef basic_socket< Protocol > lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_socket -

-
-

- Construct a basic_socket without opening it.

Construct - and open a basic_socket.

Construct a basic_socket, - opening it and binding it to the given local endpoint.
-
Construct a basic_socket on an existing native socket. -

Move-construct a basic_socket from another.
-
Move-construct a basic_socket from a socket of another - protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket from another.

Move-assign - a basic_socket from a socket of another protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~basic_socket -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket - class template provides functionality that is common to both stream-oriented - and datagram-oriented sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/max_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/max_connections.html deleted file mode 100644 index 2a686dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/max_connections.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_socket::max_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -(Deprecated: - Use max_listen_connections.) The maximum length of the queue of pending - incoming connections. -

-
static const int max_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/max_listen_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/max_listen_connections.html deleted file mode 100644 index 92e21fc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/max_listen_connections.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket::max_listen_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -The - maximum length of the queue of pending incoming connections. -

-
static const int max_listen_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_do_not_route.html deleted file mode 100644 index fd52f92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_do_not_route.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket::message_do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specify - that the data should not be subject to routing. -

-
static const int message_do_not_route = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_end_of_record.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_end_of_record.html deleted file mode 100644 index 2677b47..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_end_of_record.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket::message_end_of_record - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specifies - that the data marks the end of a record. -

-
static const int message_end_of_record = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_flags.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_flags.html deleted file mode 100644 index fb85fd1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket::message_flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Bitmask - type for flags that can be passed to send and receive operations. -

-
typedef int message_flags;
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_out_of_band.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_out_of_band.html deleted file mode 100644 index 923e470..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_out_of_band.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket::message_out_of_band - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Process - out-of-band data. -

-
static const int message_out_of_band = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_peek.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_peek.html deleted file mode 100644 index 7cddf8c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_peek.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket::message_peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Peek at - incoming data without removing it from the input queue. -

-
static const int message_peek = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_handle.html deleted file mode 100644 index ef4ea91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - native socket representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - socket. This is intended to allow access to native socket functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_handle_type.html deleted file mode 100644 index e249224..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a socket. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking.html deleted file mode 100644 index cdf113d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload1.html deleted file mode 100644 index 31b602c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload1.html +++ /dev/null @@ -1,141 +0,0 @@ - - - -basic_socket::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Gets the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native socket. This mode has no effect on the behaviour of the socket - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying socket is in non-blocking mode and - direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the socket object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native socket. -

-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload2.html deleted file mode 100644 index 9092a89..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload2.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -basic_socket::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload3.html deleted file mode 100644 index f37ea45..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload3.html +++ /dev/null @@ -1,146 +0,0 @@ - - - -basic_socket::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking.html deleted file mode 100644 index 4f63ce7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets the - non-blocking mode of the socket. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload1.html deleted file mode 100644 index 34e349b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload1.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_socket::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Gets the non-blocking mode of the socket. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the socket's synchronous operations will fail with - asio::error::would_block if they are unable to perform the - requested operation immediately. If false, synchronous operations - will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload2.html deleted file mode 100644 index 438dda7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload3.html deleted file mode 100644 index bf22e6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload3.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/open.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/open.html deleted file mode 100644 index 70e613d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/open.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket::open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Open the socket using the - specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-  » more...
-
-void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/open/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/open/overload1.html deleted file mode 100644 index c95d64f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/open/overload1.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_socket::open (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/open/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/open/overload2.html deleted file mode 100644 index 3c541f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/open/overload2.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -basic_socket::open (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying which protocol is to be used. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::error_code ec;
-socket.open(asio::ip::tcp::v4(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_.html deleted file mode 100644 index 57361a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_socket - from another. -

-
basic_socket & operator=(
-    basic_socket && other);
-  » more...
-
-

- Move-assign a basic_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_socket >::type & operator=(
-    basic_socket< Protocol1 > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_/overload1.html deleted file mode 100644 index 40788e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_/overload1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_socket - from another. -

-
basic_socket & operator=(
-    basic_socket && other);
-
-

- This assignment operator moves a socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_/overload2.html deleted file mode 100644 index 983051b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_socket::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_socket >::type & operator=(
-    basic_socket< Protocol1 > && other);
-
-

- This assignment operator moves a socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/out_of_band_inline.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/out_of_band_inline.html deleted file mode 100644 index c7b0196..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/out_of_band_inline.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::out_of_band_inline - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for putting received out-of-band data inline. -

-
typedef implementation_defined out_of_band_inline;
-
-

- Implements the SOL_SOCKET/SO_OOBINLINE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option;
-socket.get_option(option);
-bool value = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/protocol_type.html deleted file mode 100644 index 0194149..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The protocol - type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/receive_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/receive_buffer_size.html deleted file mode 100644 index 3d4b129..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/receive_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::receive_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive buffer size of a socket. -

-
typedef implementation_defined receive_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_RCVBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/receive_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/receive_low_watermark.html deleted file mode 100644 index 1259611..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/receive_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::receive_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive low watermark. -

-
typedef implementation_defined receive_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_RCVLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/release.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/release.html deleted file mode 100644 index 669e5a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/release.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release ownership - of the underlying native socket. -

-
native_handle_type release();
-  » more...
-
-native_handle_type release(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/release/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/release/overload1.html deleted file mode 100644 index d773a06..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/release/overload1.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -basic_socket::release (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Release ownership of the underlying native socket. -

-
native_handle_type release();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/release/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/release/overload2.html deleted file mode 100644 index 3d90b05..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/release/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_socket::release (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Release ownership of the underlying native socket. -

-
native_handle_type release(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint.html deleted file mode 100644 index 78ffa9a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket::remote_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-  » more...
-
-endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint/overload1.html deleted file mode 100644 index 8a366ee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint/overload1.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_socket::remote_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint/overload2.html deleted file mode 100644 index 64ec59e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_socket::remote_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. Returns - a default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/reuse_address.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/reuse_address.html deleted file mode 100644 index 02134d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/reuse_address.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_socket::reuse_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to allow the socket to be bound to an address that is already in - use. -

-
typedef implementation_defined reuse_address;
-
-

- Implements the SOL_SOCKET/SO_REUSEADDR socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/send_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/send_buffer_size.html deleted file mode 100644 index c05c7db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/send_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::send_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send buffer size of a socket. -

-
typedef implementation_defined send_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_SNDBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/send_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/send_low_watermark.html deleted file mode 100644 index 6382997..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/send_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::send_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send low watermark. -

-
typedef implementation_defined send_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_SNDLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option.html deleted file mode 100644 index 7badd95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_socket::set_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set an option - on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-  » more...
-
-template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option/overload1.html deleted file mode 100644 index 84a4d91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option/overload1.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_socket::set_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-socket.set_option(option);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option/overload2.html deleted file mode 100644 index 01620a6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_socket::set_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-asio::error_code ec;
-socket.set_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown.html deleted file mode 100644 index 1b2ee93..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable sends or - receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-  » more...
-
-void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown/overload1.html deleted file mode 100644 index dc242fb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown/overload1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_socket::shutdown (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.shutdown(asio::ip::tcp::socket::shutdown_send);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown/overload2.html deleted file mode 100644 index c51d23b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_socket::shutdown (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown_type.html deleted file mode 100644 index db25b0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket::shutdown_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Different - ways a socket may be shutdown. -

-
enum shutdown_type
-
-

- - - -

-
- - Values -
-
-

-
-
shutdown_receive
-

- Shutdown the receive side of the socket. -

-
shutdown_send
-

- Shutdown the send side of the socket. -

-
shutdown_both
-

- Shutdown both send and receive on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait.html deleted file mode 100644 index 9b9b84d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait for the socket to - become ready to read, ready to write, or to have pending error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait/overload1.html deleted file mode 100644 index 302e0b6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.wait(asio::ip::tcp::socket::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait/overload2.html deleted file mode 100644 index 934ce65..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait/overload2.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -basic_socket::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.wait(asio::ip::tcp::socket::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait_type.html deleted file mode 100644 index f573405..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait_type.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_socket::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Wait types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a socket to become ready to read. -

-
wait_write
-

- Wait for a socket to become ready to write. -

-
wait_error
-

- Wait for a socket to have error conditions pending. -

-
-
-

- For use with basic_socket::wait() and basic_socket::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor.html deleted file mode 100644 index 7d46804..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor.html +++ /dev/null @@ -1,788 +0,0 @@ - - - -basic_socket_acceptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides the ability to accept new connections. -

-
template<
-    typename Protocol>
-class basic_socket_acceptor :
-  public socket_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close if - unsent data is present. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive operations. -

-
-

- native_handle_type -

-
-

- The native representation of an acceptor. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- accept -

-
-

- Accept a new connection.

Accept a new connection - and obtain the endpoint of the peer. -

-
-

- assign -

-
-

- Assigns an existing native acceptor to the acceptor. -

-
-

- async_accept -

-
-

- Start an asynchronous accept. -

-
-

- async_wait -

-
-

- Asynchronously wait for the acceptor to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- basic_socket_acceptor -

-
-

- Construct an acceptor without opening it.

Construct - an open acceptor.

Construct an acceptor opened on - the given endpoint.

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 an acceptor of another protocol type. -

-
-

- bind -

-
-

- Bind the acceptor to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the acceptor. -

-
-

- close -

-
-

- Close the acceptor. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the acceptor. -

-
-

- io_control -

-
-

- Perform an IO control command on the acceptor. -

-
-

- is_open -

-
-

- Determine whether the acceptor is open. -

-
-

- listen -

-
-

- Place the acceptor into the state where it will listen for new - connections. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the acceptor. -

-
-

- native_handle -

-
-

- Get the native acceptor representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native acceptor implementation. -

Sets the non-blocking mode of the native acceptor - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the acceptor.

Sets - the non-blocking mode of the acceptor. -

-
-

- open -

-
-

- Open the acceptor using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_acceptor from another.

- Move-assign a basic_socket_acceptor from an acceptor of another - protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native acceptor. -

-
-

- set_option -

-
-

- Set an option on the acceptor. -

-
-

- wait -

-
-

- Wait for the acceptor to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_socket_acceptor -

-
-

- Destroys the acceptor. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length of - the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket_acceptor - class template is used for accepting new socket connections. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Example -
-

- Opening a socket acceptor with the SO_REUSEADDR option enabled: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), port);
-acceptor.open(endpoint.protocol());
-acceptor.set_option(asio::ip::tcp::acceptor::reuse_address(true));
-acceptor.bind(endpoint);
-acceptor.listen();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/_basic_socket_acceptor.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/_basic_socket_acceptor.html deleted file mode 100644 index 38bcf4f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/_basic_socket_acceptor.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_socket_acceptor::~basic_socket_acceptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the acceptor. -

-
~basic_socket_acceptor();
-
-

- This function destroys the acceptor, cancelling any outstanding asynchronous - operations associated with the acceptor as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept.html deleted file mode 100644 index 6bacab6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -basic_socket_acceptor::accept - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Accept - a new connection. -

-
template<
-    typename Protocol1>
-void accept(
-    basic_socket< Protocol1 > & peer,
-    typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type *  = 0);
-  » more...
-
-template<
-    typename Protocol1>
-void accept(
-    basic_socket< Protocol1 > & peer,
-    asio::error_code & ec,
-    typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type *  = 0);
-  » more...
-
-

- Accept a new connection and obtain the endpoint of the peer. -

-
void accept(
-    basic_socket< protocol_type > & peer,
-    endpoint_type & peer_endpoint);
-  » more...
-
-void accept(
-    basic_socket< protocol_type > & peer,
-    endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-Protocol::socket accept();
-  » more...
-
-Protocol::socket accept(
-    asio::error_code & ec);
-  » more...
-
-Protocol::socket accept(
-    asio::io_context & io_context);
-  » more...
-
-Protocol::socket accept(
-    asio::io_context & io_context,
-    asio::error_code & ec);
-  » more...
-
-Protocol::socket accept(
-    endpoint_type & peer_endpoint);
-  » more...
-
-Protocol::socket accept(
-    endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-Protocol::socket accept(
-    asio::io_context & io_context,
-    endpoint_type & peer_endpoint);
-  » more...
-
-Protocol::socket accept(
-    asio::io_context & io_context,
-    endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload1.html deleted file mode 100644 index ceae02e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload1.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_socket_acceptor::accept (1 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
template<
-    typename Protocol1>
-void accept(
-    basic_socket< Protocol1 > & 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. -

-
- - Parameters -
-
-

-
-
peer
-

- The socket into which the new connection will be accepted. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(io_context);
-acceptor.accept(socket);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload10.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload10.html deleted file mode 100644 index 346e5c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload10.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -basic_socket_acceptor::accept (10 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept(
-    endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- An endpoint object into which the endpoint of the remote peer will - be written. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- On success, a socket object representing the newly accepted connection. - On error, a socket object where is_open() is false. -

-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::endpoint endpoint;
-asio::ip::tcp::socket socket(acceptor.accept(endpoint, ec));
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload11.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload11.html deleted file mode 100644 index 6a800a6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload11.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_socket_acceptor::accept (11 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept(
-    asio::io_context & io_context,
-    endpoint_type & peer_endpoint);
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object to be used for the newly accepted socket. -

-
peer_endpoint
-

- An endpoint object into which the endpoint of the remote peer will - be written. -

-
-
-
- - Return - Value -
-

- A socket object representing the newly accepted connection. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::endpoint endpoint;
-asio::ip::tcp::socket socket(
-    acceptor.accept(io_context2, endpoint));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload12.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload12.html deleted file mode 100644 index c64afbe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload12.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -basic_socket_acceptor::accept (12 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept(
-    asio::io_context & io_context,
-    endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object to be used for the newly accepted socket. -

-
peer_endpoint
-

- An endpoint object into which the endpoint of the remote peer will - be written. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- On success, a socket object representing the newly accepted connection. - On error, a socket object where is_open() is false. -

-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::endpoint endpoint;
-asio::ip::tcp::socket socket(
-    acceptor.accept(io_context2, endpoint, ec));
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload2.html deleted file mode 100644 index 87e7545..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_socket_acceptor::accept (2 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
template<
-    typename Protocol1>
-void accept(
-    basic_socket< Protocol1 > & peer,
-    asio::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. -

-
- - Parameters -
-
-

-
-
peer
-

- The socket into which the new connection will be accepted. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(io_context);
-asio::error_code ec;
-acceptor.accept(socket, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload3.html deleted file mode 100644 index 8de6006..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload3.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_socket_acceptor::accept (3 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection and obtain the endpoint of the peer. -

-
void accept(
-    basic_socket< protocol_type > & peer,
-    endpoint_type & peer_endpoint);
-
-

- This function is used to accept a new connection from a peer into the - given socket, and additionally provide the endpoint of the remote peer. - The function call will block until a new connection has been accepted - successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
peer
-

- The socket into which the new connection will be accepted. -

-
peer_endpoint
-

- An endpoint object which will receive the endpoint of the remote - peer. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint;
-acceptor.accept(socket, endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload4.html deleted file mode 100644 index c6fa1c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload4.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -basic_socket_acceptor::accept (4 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection and obtain the endpoint of the peer. -

-
void accept(
-    basic_socket< protocol_type > & peer,
-    endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to accept a new connection from a peer into the - given socket, and additionally provide the endpoint of the remote peer. - The function call will block until a new connection has been accepted - successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
peer
-

- The socket into which the new connection will be accepted. -

-
peer_endpoint
-

- An endpoint object which will receive the endpoint of the remote - peer. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint;
-asio::error_code ec;
-acceptor.accept(socket, endpoint, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload5.html deleted file mode 100644 index e69e9da..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload5.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::accept (5 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept();
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Return - Value -
-

- A socket object representing the newly accepted connection. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(acceptor.accept());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload6.html deleted file mode 100644 index 5e51c5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload6.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_socket_acceptor::accept (6 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept(
-    asio::error_code & ec);
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- On success, a socket object representing the newly accepted connection. - On error, a socket object where is_open() is false. -

-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(acceptor.accept(ec));
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload7.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload7.html deleted file mode 100644 index 063abac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload7.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -basic_socket_acceptor::accept (7 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept(
-    asio::io_context & io_context);
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object to be used for the newly accepted socket. -

-
-
-
- - Return - Value -
-

- A socket object representing the newly accepted connection. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(acceptor.accept());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload8.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload8.html deleted file mode 100644 index 681f063..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload8.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_socket_acceptor::accept (8 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept(
-    asio::io_context & io_context,
-    asio::error_code & ec);
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object to be used for the newly accepted socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- On success, a socket object representing the newly accepted connection. - On error, a socket object where is_open() is false. -

-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(acceptor.accept(io_context2, ec));
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload9.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload9.html deleted file mode 100644 index 9ac872f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload9.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -basic_socket_acceptor::accept (9 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept(
-    endpoint_type & peer_endpoint);
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- An endpoint object into which the endpoint of the remote peer will - be written. -

-
-
-
- - Return - Value -
-

- A socket object representing the newly accepted connection. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::endpoint endpoint;
-asio::ip::tcp::socket socket(acceptor.accept(endpoint));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign.html deleted file mode 100644 index f55f78b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_socket_acceptor::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assigns - an existing native acceptor to the acceptor. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_acceptor);
-  » more...
-
-void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_acceptor,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign/overload1.html deleted file mode 100644 index 2567d05..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_socket_acceptor::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assigns an existing native acceptor to the acceptor. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_acceptor);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign/overload2.html deleted file mode 100644 index 8cf24f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -basic_socket_acceptor::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assigns an existing native acceptor to the acceptor. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_acceptor,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept.html deleted file mode 100644 index 5dfc58d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_socket_acceptor::async_accept - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous accept. -

-
template<
-    typename Protocol1,
-    typename AcceptHandler>
-DEDUCED async_accept(
-    basic_socket< Protocol1 > & peer,
-    AcceptHandler && handler,
-    typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type *  = 0);
-  » more...
-
-template<
-    typename AcceptHandler>
-DEDUCED async_accept(
-    basic_socket< protocol_type > & peer,
-    endpoint_type & peer_endpoint,
-    AcceptHandler && handler);
-  » more...
-
-template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    MoveAcceptHandler && handler);
-  » more...
-
-template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    asio::io_context & io_context,
-    MoveAcceptHandler && handler);
-  » more...
-
-template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    endpoint_type & peer_endpoint,
-    MoveAcceptHandler && handler);
-  » more...
-
-template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    asio::io_context & io_context,
-    endpoint_type & peer_endpoint,
-    MoveAcceptHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload1.html deleted file mode 100644 index 1791c2d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload1.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_socket_acceptor::async_accept (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous accept. -

-
template<
-    typename Protocol1,
-    typename AcceptHandler>
-DEDUCED async_accept(
-    basic_socket< Protocol1 > & 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. -

-
- - Parameters -
-
-

-
-
peer
-

- The socket into which the new connection will be accepted. Ownership - of the peer object is retained by the caller, which must guarantee - that it is valid until the handler is called. -

-
handler
-
-

- The handler to be called when the accept operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void accept_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Accept succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(io_context);
-acceptor.async_accept(socket, accept_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload2.html deleted file mode 100644 index 948d689..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload2.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_socket_acceptor::async_accept (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous accept. -

-
template<
-    typename AcceptHandler>
-DEDUCED async_accept(
-    basic_socket< protocol_type > & peer,
-    endpoint_type & peer_endpoint,
-    AcceptHandler && handler);
-
-

- This function is used to asynchronously accept a new connection into - a socket, and additionally obtain the endpoint of the remote peer. The - function call always returns immediately. -

-
- - Parameters -
-
-

-
-
peer
-

- The socket into which the new connection will be accepted. Ownership - of the peer object is retained by the caller, which must guarantee - that it is valid until the handler is called. -

-
peer_endpoint
-

- An endpoint object into which the endpoint of the remote peer will - be written. Ownership of the peer_endpoint object is retained by - the caller, which must guarantee that it is valid until the handler - is called. -

-
handler
-
-

- The handler to be called when the accept operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload3.html deleted file mode 100644 index c783b07..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload3.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -basic_socket_acceptor::async_accept (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous accept. -

-
template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    MoveAcceptHandler && handler);
-
-

- This function is used to asynchronously accept a new connection. The - function call always returns immediately. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called when the accept operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  typename Protocol::socket peer // On success, the newly accepted socket.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void accept_handler(const asio::error_code& error,
-    asio::ip::tcp::socket peer)
-{
-  if (!error)
-  {
-    // Accept succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::acceptor acceptor(io_context);
-...
-acceptor.async_accept(accept_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload4.html deleted file mode 100644 index 70d113b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload4.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -basic_socket_acceptor::async_accept (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous accept. -

-
template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    asio::io_context & io_context,
-    MoveAcceptHandler && handler);
-
-

- This function is used to asynchronously accept a new connection. The - function call always returns immediately. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object to be used for the newly accepted socket. -

-
handler
-
-

- The handler to be called when the accept operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  typename Protocol::socket peer // On success, the newly accepted socket.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void accept_handler(const asio::error_code& error,
-    asio::ip::tcp::socket peer)
-{
-  if (!error)
-  {
-    // Accept succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::acceptor acceptor(io_context);
-...
-acceptor.async_accept(io_context2, accept_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload5.html deleted file mode 100644 index a146859..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload5.html +++ /dev/null @@ -1,109 +0,0 @@ - - - -basic_socket_acceptor::async_accept (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous accept. -

-
template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    endpoint_type & peer_endpoint,
-    MoveAcceptHandler && handler);
-
-

- This function is used to asynchronously accept a new connection. The - function call always returns immediately. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- An endpoint object into which the endpoint of the remote peer will - be written. Ownership of the peer_endpoint object is retained by - the caller, which must guarantee that it is valid until the handler - is called. -

-
handler
-
-

- The handler to be called when the accept operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  typename Protocol::socket peer // On success, the newly accepted socket.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void accept_handler(const asio::error_code& error,
-    asio::ip::tcp::socket peer)
-{
-  if (!error)
-  {
-    // Accept succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::endpoint endpoint;
-acceptor.async_accept(endpoint, accept_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload6.html deleted file mode 100644 index 1b082a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload6.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -basic_socket_acceptor::async_accept (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous accept. -

-
template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    asio::io_context & io_context,
-    endpoint_type & peer_endpoint,
-    MoveAcceptHandler && handler);
-
-

- This function is used to asynchronously accept a new connection. The - function call always returns immediately. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object to be used for the newly accepted socket. -

-
peer_endpoint
-

- An endpoint object into which the endpoint of the remote peer will - be written. Ownership of the peer_endpoint object is retained by - the caller, which must guarantee that it is valid until the handler - is called. -

-
handler
-
-

- The handler to be called when the accept operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  typename Protocol::socket peer // On success, the newly accepted socket.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void accept_handler(const asio::error_code& error,
-    asio::ip::tcp::socket peer)
-{
-  if (!error)
-  {
-    // Accept succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::endpoint endpoint;
-acceptor.async_accept(io_context2, endpoint, accept_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_wait.html deleted file mode 100644 index 714676c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_wait.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_socket_acceptor::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Asynchronously - wait for the acceptor to become ready to read, ready to write, or to have - pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for an acceptor to - enter a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired acceptor state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::acceptor acceptor(io_context);
-...
-acceptor.async_wait(
-    asio::ip::tcp::acceptor::wait_read,
-    wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor.html deleted file mode 100644 index 432b420..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_socket_acceptor::basic_socket_acceptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an acceptor without opening it. -

-
explicit basic_socket_acceptor(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct an open acceptor. -

-
basic_socket_acceptor(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-  » more...
-
-

- Construct an acceptor opened on the given endpoint. -

-
basic_socket_acceptor(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint,
-    bool reuse_addr = true);
-  » more...
-
-

- Construct a basic_socket_acceptor - on an existing native acceptor. -

-
basic_socket_acceptor(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_acceptor);
-  » more...
-
-

- Move-construct a basic_socket_acceptor - from another. -

-
basic_socket_acceptor(
-    basic_socket_acceptor && other);
-  » more...
-
-

- Move-construct a basic_socket_acceptor - from an acceptor of another protocol type. -

-
template<
-    typename Protocol1>
-basic_socket_acceptor(
-    basic_socket_acceptor< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload1.html deleted file mode 100644 index ef995b5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_socket_acceptor::basic_socket_acceptor (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an acceptor without opening it. -

-
basic_socket_acceptor(
-    asio::io_context & io_context);
-
-

- This constructor creates an acceptor without opening it to listen for - new connections. The open() function must be called before - the acceptor can accept new socket connections. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the acceptor will use to dispatch handlers for any - asynchronous operations performed on the acceptor. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload2.html deleted file mode 100644 index 53e242e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_socket_acceptor::basic_socket_acceptor (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an open acceptor. -

-
basic_socket_acceptor(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-
-

- This constructor creates an acceptor and automatically opens it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the acceptor will use to dispatch handlers for any - asynchronous operations performed on the acceptor. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload3.html deleted file mode 100644 index 2b84c2f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload3.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -basic_socket_acceptor::basic_socket_acceptor (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an acceptor opened on the given endpoint. -

-
basic_socket_acceptor(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint,
-    bool reuse_addr = true);
-
-

- This constructor creates an acceptor and automatically opens it to listen - for new connections on the specified endpoint. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the acceptor will use to dispatch handlers for any - asynchronous operations performed on the acceptor. -

-
endpoint
-

- An endpoint on the local machine on which the acceptor will listen - for new connections. -

-
reuse_addr
-

- Whether the constructor should set the socket option socket_base::reuse_address. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This constructor is equivalent to the following code: -

-
basic_socket_acceptor<Protocol> acceptor(io_context);
-acceptor.open(endpoint.protocol());
-if (reuse_addr)
-  acceptor.set_option(socket_base::reuse_address(true));
-acceptor.bind(endpoint);
-acceptor.listen(listen_backlog);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload4.html deleted file mode 100644 index 5787f19..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload4.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_socket_acceptor::basic_socket_acceptor (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket_acceptor - on an existing native acceptor. -

-
basic_socket_acceptor(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_acceptor);
-
-

- This constructor creates an acceptor object to hold an existing native - acceptor. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the acceptor will use to dispatch handlers for any - asynchronous operations performed on the acceptor. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
native_acceptor
-

- A native acceptor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload5.html deleted file mode 100644 index 774bc4c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload5.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket_acceptor::basic_socket_acceptor (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_socket_acceptor - from another. -

-
basic_socket_acceptor(
-    basic_socket_acceptor && other);
-
-

- This constructor moves an acceptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket_acceptor - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket_acceptor(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload6.html deleted file mode 100644 index 95f89b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload6.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket_acceptor::basic_socket_acceptor (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_socket_acceptor - from an acceptor of another protocol type. -

-
template<
-    typename Protocol1>
-basic_socket_acceptor(
-    basic_socket_acceptor< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-
-

- This constructor moves an acceptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket_acceptor - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind.html deleted file mode 100644 index 0ecb88e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket_acceptor::bind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bind - the acceptor to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-  » more...
-
-void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind/overload1.html deleted file mode 100644 index bdaf150..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind/overload1.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_socket_acceptor::bind (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Bind the acceptor to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-
-

- This function binds the socket acceptor to the specified endpoint on - the local machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket acceptor will - be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), 12345);
-acceptor.open(endpoint.protocol());
-acceptor.bind(endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind/overload2.html deleted file mode 100644 index 41107eb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::bind (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Bind the acceptor to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-
-

- This function binds the socket acceptor to the specified endpoint on - the local machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket acceptor will - be bound. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), 12345);
-acceptor.open(endpoint.protocol());
-asio::error_code ec;
-acceptor.bind(endpoint, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/broadcast.html deleted file mode 100644 index aa2cd18..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/broadcast.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to permit sending of broadcast messages. -

-
typedef implementation_defined broadcast;
-
-

- Implements the SOL_SOCKET/SO_BROADCAST socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bytes_readable.html deleted file mode 100644 index 38b19d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bytes_readable.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket_acceptor::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::bytes_readable command(true);
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel.html deleted file mode 100644 index f4699e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket_acceptor::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the acceptor. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload1.html deleted file mode 100644 index db6b094..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_socket_acceptor::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the acceptor. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload2.html deleted file mode 100644 index 8f040e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_socket_acceptor::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the acceptor. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close.html deleted file mode 100644 index b57d2c7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket_acceptor::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the acceptor. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close/overload1.html deleted file mode 100644 index bf0b693..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_socket_acceptor::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the acceptor. -

-
void close();
-
-

- This function is used to close the acceptor. Any asynchronous accept - operations will be cancelled immediately. -

-

- A subsequent call to open() is required before the acceptor - can again be used to again perform socket accept operations. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close/overload2.html deleted file mode 100644 index b803e78..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close/overload2.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_socket_acceptor::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the acceptor. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the acceptor. Any asynchronous accept - operations will be cancelled immediately. -

-

- A subsequent call to open() is required before the acceptor - can again be used to again perform socket accept operations. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::error_code ec;
-acceptor.close(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/debug.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/debug.html deleted file mode 100644 index cd173db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/debug.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::debug - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to enable socket-level debugging. -

-
typedef implementation_defined debug;
-
-

- Implements the SOL_SOCKET/SO_DEBUG socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/do_not_route.html deleted file mode 100644 index 4ea1d94..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/do_not_route.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to prevent routing, use local interfaces only. -

-
typedef implementation_defined do_not_route;
-
-

- Implements the SOL_SOCKET/SO_DONTROUTE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/enable_connection_aborted.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/enable_connection_aborted.html deleted file mode 100644 index e603a6e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/enable_connection_aborted.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_socket_acceptor::enable_connection_aborted - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to report aborted connections on accept. -

-
typedef implementation_defined enable_connection_aborted;
-
-

- Implements a custom socket option that determines whether or not an accept - operation is permitted to fail with asio::error::connection_aborted. - By default the option is false. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/endpoint_type.html deleted file mode 100644 index a286ea0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_acceptor::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/executor_type.html deleted file mode 100644 index 7d09363..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -basic_socket_acceptor::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_executor.html deleted file mode 100644 index e09639c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_acceptor::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_io_context.html deleted file mode 100644 index a0cb3a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_socket_acceptor::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_io_service.html deleted file mode 100644 index 0a107a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_socket_acceptor::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option.html deleted file mode 100644 index c74047f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_socket_acceptor::get_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - an option from the acceptor. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-  » more...
-
-template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload1.html deleted file mode 100644 index dfd49ca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_socket_acceptor::get_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an option from the acceptor. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-
-

- This function is used to get the current value of an option on the acceptor. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the acceptor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_REUSEADDR option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::acceptor::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload2.html deleted file mode 100644 index a7eea68..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_socket_acceptor::get_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an option from the acceptor. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-
-

- This function is used to get the current value of an option on the acceptor. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the acceptor. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_REUSEADDR option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::acceptor::reuse_address option;
-asio::error_code ec;
-acceptor.get_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-bool is_set = option.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control.html deleted file mode 100644 index 21ff6b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_socket_acceptor::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - an IO control command on the acceptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload1.html deleted file mode 100644 index 585a89d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload1.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_socket_acceptor::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform an IO control command on the acceptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the acceptor. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the acceptor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::acceptor::non_blocking_io command(true);
-socket.io_control(command);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload2.html deleted file mode 100644 index 5542059..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_socket_acceptor::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform an IO control command on the acceptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the acceptor. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the acceptor. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::acceptor::non_blocking_io command(true);
-asio::error_code ec;
-socket.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/is_open.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/is_open.html deleted file mode 100644 index 8d1fbb3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/is_open.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_acceptor::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the acceptor is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/keep_alive.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/keep_alive.html deleted file mode 100644 index 497be15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/keep_alive.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::keep_alive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to send keep-alives. -

-
typedef implementation_defined keep_alive;
-
-

- Implements the SOL_SOCKET/SO_KEEPALIVE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/linger.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/linger.html deleted file mode 100644 index 64c3c77..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/linger.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_socket_acceptor::linger - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to specify whether the socket lingers on close if unsent data is - present. -

-
typedef implementation_defined linger;
-
-

- Implements the SOL_SOCKET/SO_LINGER socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option(true, 30);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option;
-socket.get_option(option);
-bool is_set = option.enabled();
-unsigned short timeout = option.timeout();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen.html deleted file mode 100644 index a68cf55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket_acceptor::listen - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Place - the acceptor into the state where it will listen for new connections. -

-
void listen(
-    int backlog = socket_base::max_listen_connections);
-  » more...
-
-void listen(
-    int backlog,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen/overload1.html deleted file mode 100644 index 223033c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen/overload1.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -basic_socket_acceptor::listen (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Place the acceptor into the state where it will listen for new connections. -

-
void listen(
-    int backlog = socket_base::max_listen_connections);
-
-

- This function puts the socket acceptor into the state where it may accept - new connections. -

-
- - Parameters -
-
-

-
-
backlog
-

- The maximum length of the queue of pending connections. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen/overload2.html deleted file mode 100644 index cfc8161..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen/overload2.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -basic_socket_acceptor::listen (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Place the acceptor into the state where it will listen for new connections. -

-
void listen(
-    int backlog,
-    asio::error_code & ec);
-
-

- This function puts the socket acceptor into the state where it may accept - new connections. -

-
- - Parameters -
-
-

-
-
backlog
-

- The maximum length of the queue of pending connections. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::error_code ec;
-acceptor.listen(asio::socket_base::max_listen_connections, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint.html deleted file mode 100644 index ad7787e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket_acceptor::local_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the local endpoint of the acceptor. -

-
endpoint_type local_endpoint() const;
-  » more...
-
-endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload1.html deleted file mode 100644 index 9dd2cbf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload1.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_socket_acceptor::local_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the local endpoint of the acceptor. -

-
endpoint_type local_endpoint() const;
-
-

- This function is used to obtain the locally bound endpoint of the acceptor. -

-
- - Return - Value -
-

- An object that represents the local endpoint of the acceptor. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload2.html deleted file mode 100644 index 3a0d62d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload2.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_socket_acceptor::local_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the local endpoint of the acceptor. -

-
endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the locally bound endpoint of the acceptor. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the local endpoint of the acceptor. Returns - a default-constructed endpoint object if an error occurred and the error - handler did not throw an exception. -

-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/max_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/max_connections.html deleted file mode 100644 index e365ff0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/max_connections.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_socket_acceptor::max_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -(Deprecated: - Use max_listen_connections.) The maximum length of the queue of pending - incoming connections. -

-
static const int max_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/max_listen_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/max_listen_connections.html deleted file mode 100644 index 7288296..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/max_listen_connections.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket_acceptor::max_listen_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -The - maximum length of the queue of pending incoming connections. -

-
static const int max_listen_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_do_not_route.html deleted file mode 100644 index 46bf946..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_do_not_route.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket_acceptor::message_do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specify - that the data should not be subject to routing. -

-
static const int message_do_not_route = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_end_of_record.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_end_of_record.html deleted file mode 100644 index 5dad9a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_end_of_record.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket_acceptor::message_end_of_record - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specifies - that the data marks the end of a record. -

-
static const int message_end_of_record = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_flags.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_flags.html deleted file mode 100644 index f50b5c3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket_acceptor::message_flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Bitmask - type for flags that can be passed to send and receive operations. -

-
typedef int message_flags;
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_out_of_band.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_out_of_band.html deleted file mode 100644 index b8de7c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_out_of_band.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket_acceptor::message_out_of_band - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Process - out-of-band data. -

-
static const int message_out_of_band = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_peek.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_peek.html deleted file mode 100644 index 0f1e36d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_peek.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket_acceptor::message_peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Peek - at incoming data without removing it from the input queue. -

-
static const int message_peek = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_handle.html deleted file mode 100644 index 7be011b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket_acceptor::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the native acceptor representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - acceptor. This is intended to allow access to native acceptor functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_handle_type.html deleted file mode 100644 index c336e5e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_acceptor::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of an acceptor. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking.html deleted file mode 100644 index cb2212e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket_acceptor::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native acceptor implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native acceptor implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload1.html deleted file mode 100644 index 2850fb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload1.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -basic_socket_acceptor::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Gets the non-blocking mode of the native acceptor implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native acceptor. This mode has no effect on the behaviour of the acceptor - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying acceptor is in non-blocking mode - and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the acceptor object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native acceptor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload2.html deleted file mode 100644 index e8578ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_socket_acceptor::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the native acceptor implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native acceptor. It has no effect on the behaviour of the acceptor object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying acceptor is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload3.html deleted file mode 100644 index cab7bbe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload3.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_socket_acceptor::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the native acceptor implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native acceptor. It has no effect on the behaviour of the acceptor object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying acceptor is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking.html deleted file mode 100644 index 98fbca4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket_acceptor::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the acceptor. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the acceptor. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload1.html deleted file mode 100644 index f9c3477..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload1.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_socket_acceptor::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Gets the non-blocking mode of the acceptor. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the acceptor's synchronous operations will fail - with asio::error::would_block if they are unable to perform - the requested operation immediately. If false, synchronous - operations will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload2.html deleted file mode 100644 index bae8735..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the acceptor. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the acceptor's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload3.html deleted file mode 100644 index 8b0f53a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload3.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket_acceptor::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the acceptor. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the acceptor's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open.html deleted file mode 100644 index c99064c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket_acceptor::open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Open - the acceptor using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-  » more...
-
-void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open/overload1.html deleted file mode 100644 index 323bc66..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open/overload1.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::open (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Open the acceptor using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-
-

- This function opens the socket acceptor so that it will use the specified - protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying which protocol is to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-acceptor.open(asio::ip::tcp::v4());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open/overload2.html deleted file mode 100644 index f7f5efc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open/overload2.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_socket_acceptor::open (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Open the acceptor using the specified protocol. -

-
void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-
-

- This function opens the socket acceptor so that it will use the specified - protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying which protocol is to be used. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-asio::error_code ec;
-acceptor.open(asio::ip::tcp::v4(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_.html deleted file mode 100644 index 635e7d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket_acceptor::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_socket_acceptor - from another. -

-
basic_socket_acceptor & operator=(
-    basic_socket_acceptor && other);
-  » more...
-
-

- Move-assign a basic_socket_acceptor - from an acceptor of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_socket_acceptor >::type & operator=(
-    basic_socket_acceptor< Protocol1 > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload1.html deleted file mode 100644 index 1ed215f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket_acceptor::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_socket_acceptor - from another. -

-
basic_socket_acceptor & operator=(
-    basic_socket_acceptor && other);
-
-

- This assignment operator moves an acceptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket_acceptor - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket_acceptor(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload2.html deleted file mode 100644 index 2d6c747..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_socket_acceptor::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_socket_acceptor - from an acceptor of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_socket_acceptor >::type & operator=(
-    basic_socket_acceptor< Protocol1 > && other);
-
-

- This assignment operator moves an acceptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket_acceptor - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/out_of_band_inline.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/out_of_band_inline.html deleted file mode 100644 index e5c9b50..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/out_of_band_inline.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::out_of_band_inline - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for putting received out-of-band data inline. -

-
typedef implementation_defined out_of_band_inline;
-
-

- Implements the SOL_SOCKET/SO_OOBINLINE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option;
-socket.get_option(option);
-bool value = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/protocol_type.html deleted file mode 100644 index 1dff837..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_acceptor::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/receive_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/receive_buffer_size.html deleted file mode 100644 index fa8dfa5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/receive_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::receive_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive buffer size of a socket. -

-
typedef implementation_defined receive_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_RCVBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/receive_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/receive_low_watermark.html deleted file mode 100644 index 77fbdf0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/receive_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::receive_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive low watermark. -

-
typedef implementation_defined receive_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_RCVLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release.html deleted file mode 100644 index 2d054d8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket_acceptor::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release - ownership of the underlying native acceptor. -

-
native_handle_type release();
-  » more...
-
-native_handle_type release(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release/overload1.html deleted file mode 100644 index fa78082..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release/overload1.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -basic_socket_acceptor::release (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Release ownership of the underlying native acceptor. -

-
native_handle_type release();
-
-

- This function causes all outstanding asynchronous accept operations to - finish immediately, and the handlers for cancelled operations will be - passed the asio::error::operation_aborted error. Ownership - of the native acceptor is then transferred to the caller. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release/overload2.html deleted file mode 100644 index ca9ed60..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_socket_acceptor::release (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Release ownership of the underlying native acceptor. -

-
native_handle_type release(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous accept operations to - finish immediately, and the handlers for cancelled operations will be - passed the asio::error::operation_aborted error. Ownership - of the native acceptor is then transferred to the caller. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/reuse_address.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/reuse_address.html deleted file mode 100644 index 5d89363..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/reuse_address.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_socket_acceptor::reuse_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to allow the socket to be bound to an address that is already in - use. -

-
typedef implementation_defined reuse_address;
-
-

- Implements the SOL_SOCKET/SO_REUSEADDR socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/send_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/send_buffer_size.html deleted file mode 100644 index fe1d436..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/send_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::send_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send buffer size of a socket. -

-
typedef implementation_defined send_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_SNDBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/send_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/send_low_watermark.html deleted file mode 100644 index f888a82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/send_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::send_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send low watermark. -

-
typedef implementation_defined send_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_SNDLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option.html deleted file mode 100644 index e2144cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_socket_acceptor::set_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - an option on the acceptor. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-  » more...
-
-template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload1.html deleted file mode 100644 index b208d66..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload1.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_socket_acceptor::set_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set an option on the acceptor. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-
-

- This function is used to set an option on the acceptor. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the acceptor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Setting the SOL_SOCKET/SO_REUSEADDR option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::acceptor::reuse_address option(true);
-acceptor.set_option(option);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload2.html deleted file mode 100644 index 5c31a2a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_socket_acceptor::set_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set an option on the acceptor. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-
-

- This function is used to set an option on the acceptor. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the acceptor. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Setting the SOL_SOCKET/SO_REUSEADDR option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::acceptor::reuse_address option(true);
-asio::error_code ec;
-acceptor.set_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/shutdown_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/shutdown_type.html deleted file mode 100644 index a9e5b13..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/shutdown_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket_acceptor::shutdown_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Different - ways a socket may be shutdown. -

-
enum shutdown_type
-
-

- - - -

-
- - Values -
-
-

-
-
shutdown_receive
-

- Shutdown the receive side of the socket. -

-
shutdown_send
-

- Shutdown the send side of the socket. -

-
shutdown_both
-

- Shutdown both send and receive on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait.html deleted file mode 100644 index 1b50e5e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_socket_acceptor::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait - for the acceptor to become ready to read, ready to write, or to have pending - error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait/overload1.html deleted file mode 100644 index 30eabc1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket_acceptor::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wait for the acceptor to become ready to read, ready to write, or to - have pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for an acceptor to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired acceptor state. -

-
-
-
- - Example -
-

- Waiting for an acceptor to become readable. -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-acceptor.wait(asio::ip::tcp::acceptor::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait/overload2.html deleted file mode 100644 index db4cf6e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait/overload2.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -basic_socket_acceptor::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wait for the acceptor to become ready to read, ready to write, or to - have pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for an acceptor to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired acceptor state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for an acceptor to become readable. -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::error_code ec;
-acceptor.wait(asio::ip::tcp::acceptor::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait_type.html deleted file mode 100644 index 381ef67..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait_type.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_socket_acceptor::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a socket to become ready to read. -

-
wait_write
-

- Wait for a socket to become ready to write. -

-
wait_error
-

- Wait for a socket to have error conditions pending. -

-
-
-

- For use with basic_socket::wait() and basic_socket::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream.html deleted file mode 100644 index 7e87adc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream.html +++ /dev/null @@ -1,328 +0,0 @@ - - - -basic_socket_iostream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Iostream interface for a socket. -

-
template<
-    typename Protocol,
-    typename Clock = chrono::steady_clock,
-    typename WaitTraits = wait_traits<Clock>>
-class basic_socket_iostream
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type. -

-
-

- duration_type -

-
-

- (Deprecated: Use duration.) The duration type. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- time_point -

-
-

- The time type. -

-
-

- time_type -

-
-

- (Deprecated: Use time_point.) The time type. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_socket_iostream -

-
-

- Construct a basic_socket_iostream without establishing a connection. -

Construct a basic_socket_iostream from the supplied - socket.

Move-construct a basic_socket_iostream from - another.

Establish a connection to an endpoint corresponding - to a resolver query. -

-
-

- close -

-
-

- Close the connection. -

-
-

- connect -

-
-

- Establish a connection to an endpoint corresponding to a resolver - query. -

-
-

- error -

-
-

- Get the last error associated with the stream. -

-
-

- expires_after -

-
-

- Set the stream's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time as an - absolute time.

Set the stream's expiry time as an - absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time relative - to now.

(Deprecated: Use expires_after().) Set the - stream's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the stream's expiry time as an absolute time. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_iostream from another. -

-
-

- rdbuf -

-
-

- Return a pointer to the underlying streambuf. -

-
-

- socket -

-
-

- Get a reference to the underlying socket. -

-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream.html deleted file mode 100644 index 84a9ad0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_socket_iostream::basic_socket_iostream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_socket_iostream - without establishing a connection. -

-
basic_socket_iostream();
-  » more...
-
-

- Construct a basic_socket_iostream - from the supplied socket. -

-
explicit basic_socket_iostream(
-    basic_stream_socket< protocol_type > s);
-  » more...
-
-

- Move-construct a basic_socket_iostream - from another. -

-
basic_socket_iostream(
-    basic_socket_iostream && other);
-  » more...
-
-

- Establish a connection to an endpoint corresponding to a resolver query. -

-
template<
-    typename T1,
-    ... ,
-    typename TN>
-explicit basic_socket_iostream(
-    T1 t1,
-    ... ,
-    TN tn);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload1.html deleted file mode 100644 index b483d83..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_iostream::basic_socket_iostream (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket_iostream - without establishing a connection. -

-
basic_socket_iostream();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload2.html deleted file mode 100644 index d5fe71a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_socket_iostream::basic_socket_iostream (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket_iostream - from the supplied socket. -

-
basic_socket_iostream(
-    basic_stream_socket< protocol_type > s);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload3.html deleted file mode 100644 index c5cd98c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_socket_iostream::basic_socket_iostream (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_socket_iostream - from another. -

-
basic_socket_iostream(
-    basic_socket_iostream && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload4.html deleted file mode 100644 index 99f19c3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload4.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_socket_iostream::basic_socket_iostream (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establish a connection to an endpoint corresponding to a resolver query. -

-
template<
-    typename T1,
-    ... ,
-    typename TN>
-basic_socket_iostream(
-    T1 t1,
-    ... ,
-    TN tn);
-
-

- This constructor automatically establishes a connection based on the - supplied resolver query parameters. The arguments are used to construct - a resolver query object. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/clock_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/clock_type.html deleted file mode 100644 index 130b912..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/clock_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_iostream::clock_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - clock type. -

-
typedef Clock clock_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/close.html deleted file mode 100644 index 5973565..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/close.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_iostream::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the connection. -

-
void close();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/connect.html deleted file mode 100644 index 6a35dfb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/connect.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -basic_socket_iostream::connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Establish - a connection to an endpoint corresponding to a resolver query. -

-
template<
-    typename T1,
-    ... ,
-    typename TN>
-void connect(
-    T1 t1,
-    ... ,
-    TN tn);
-
-

- This function automatically establishes a connection based on the supplied - resolver query parameters. The arguments are used to construct a resolver - query object. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/duration.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/duration.html deleted file mode 100644 index be2b114..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/duration.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_iostream::duration - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - duration type. -

-
typedef WaitTraits::duration duration;
-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/duration_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/duration_type.html deleted file mode 100644 index 8559a26..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/duration_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_iostream::duration_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use duration.) The duration type. -

-
typedef WaitTraits::duration_type duration_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/endpoint_type.html deleted file mode 100644 index 4fe0a68..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_iostream::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/error.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/error.html deleted file mode 100644 index 8839616..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/error.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_socket_iostream::error - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the last error associated with the stream. -

-
const asio::error_code & error() const;
-
-
- - Return - Value -
-

- An error_code corresponding to the last error from the stream. -

-
- - Example -
-

- To print the error associated with a failure to establish a connection: -

-
tcp::iostream s("www.boost.org", "http");
-if (!s)
-{
-  std::cout << "Error: " << s.error().message() << std::endl;
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_after.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_after.html deleted file mode 100644 index ec50019..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_after.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_socket_iostream::expires_after - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the stream's expiry time relative to now. -

-
void expires_after(
-    const duration & expiry_time);
-
-

- This function sets the expiry time associated with the stream. Stream operations - performed after this time (where the operations cannot be completed using - the internal buffers) will fail with the error asio::error::operation_aborted. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at.html deleted file mode 100644 index 0927167..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_socket_iostream::expires_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use expiry().) Get the stream's expiry time as an absolute - time. -

-
time_point expires_at() const;
-  » more...
-
-

- Set the stream's expiry time as an absolute time. -

-
void expires_at(
-    const time_point & expiry_time);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload1.html deleted file mode 100644 index d6dee13..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload1.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_socket_iostream::expires_at (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expiry().) Get the stream's expiry time - as an absolute time. -

-
time_point expires_at() const;
-
-
- - Return - Value -
-

- An absolute time value representing the stream's expiry time. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload2.html deleted file mode 100644 index 3e59d60..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_socket_iostream::expires_at (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the stream's expiry time as an absolute time. -

-
void expires_at(
-    const time_point & expiry_time);
-
-

- This function sets the expiry time associated with the stream. Stream - operations performed after this time (where the operations cannot be - completed using the internal buffers) will fail with the error asio::error::operation_aborted. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the stream. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now.html deleted file mode 100644 index 0765aca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_socket_iostream::expires_from_now - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use expiry().) Get the stream's expiry time relative to now. -

-
duration expires_from_now() const;
-  » more...
-
-

- (Deprecated: Use expires_after().) Set the stream's expiry - time relative to now. -

-
void expires_from_now(
-    const duration & expiry_time);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload1.html deleted file mode 100644 index f541d13..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload1.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_socket_iostream::expires_from_now (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expiry().) Get the stream's expiry time - relative to now. -

-
duration expires_from_now() const;
-
-
- - Return - Value -
-

- A relative time value representing the stream's expiry time. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload2.html deleted file mode 100644 index 5bfe66e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload2.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_socket_iostream::expires_from_now (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expires_after().) Set the stream's expiry - time relative to now. -

-
void expires_from_now(
-    const duration & expiry_time);
-
-

- This function sets the expiry time associated with the stream. Stream - operations performed after this time (where the operations cannot be - completed using the internal buffers) will fail with the error asio::error::operation_aborted. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expiry.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expiry.html deleted file mode 100644 index 4978ede..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expiry.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_socket_iostream::expiry - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the stream's expiry time as an absolute time. -

-
time_point expiry() const;
-
-
- - Return - Value -
-

- An absolute time value representing the stream's expiry time. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/operator_eq_.html deleted file mode 100644 index d8a8d77..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/operator_eq_.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -basic_socket_iostream::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_socket_iostream - from another. -

-
basic_socket_iostream & operator=(
-    basic_socket_iostream && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/protocol_type.html deleted file mode 100644 index 4e9ac07..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_iostream::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/rdbuf.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/rdbuf.html deleted file mode 100644 index b9c5456..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/rdbuf.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_iostream::rdbuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Return - a pointer to the underlying streambuf. -

-
basic_socket_streambuf< Protocol, Clock, WaitTraits > * rdbuf() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/socket.html deleted file mode 100644 index 3ae39a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/socket.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_iostream::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the underlying socket. -

-
basic_socket< Protocol > & socket();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/time_point.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/time_point.html deleted file mode 100644 index 3a9b587..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/time_point.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_iostream::time_point - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - time type. -

-
typedef WaitTraits::time_point time_point;
-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/time_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/time_type.html deleted file mode 100644 index baf1ef0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/time_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_iostream::time_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use time_point.) The time type. -

-
typedef WaitTraits::time_type time_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf.html deleted file mode 100644 index 913e04c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf.html +++ /dev/null @@ -1,401 +0,0 @@ - - - -basic_socket_streambuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Iostream streambuf for a socket. -

-
template<
-    typename Protocol,
-    typename Clock = chrono::steady_clock,
-    typename WaitTraits = wait_traits<Clock>>
-class basic_socket_streambuf :
-  basic_socket< Protocol >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type. -

-
-

- duration_type -

-
-

- (Deprecated: Use duration.) The duration type. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- time_point -

-
-

- The time type. -

-
-

- time_type -

-
-

- (Deprecated: Use time_point.) The time type. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_socket_streambuf -

-
-

- Construct a basic_socket_streambuf without establishing a connection. -

Construct a basic_socket_streambuf from the supplied - socket.

Move-construct a basic_socket_streambuf from - another. -

-
-

- close -

-
-

- Close the connection. -

-
-

- connect -

-
-

- Establish a connection. -

-
-

- error -

-
-

- Get the last error associated with the stream buffer. -

-
-

- expires_after -

-
-

- Set the stream buffer's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the stream buffer's expiry time - as an absolute time.

Set the stream buffer's expiry - time as an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the stream buffer's expiry time - relative to now.

(Deprecated: Use expires_after().) - Set the stream buffer's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the stream buffer's expiry time as an absolute time. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_streambuf from another. -

-
-

- puberror -

-
-

- (Deprecated: Use error().) Get the last error associated with the - stream buffer. -

-
-

- socket -

-
-

- Get a reference to the underlying socket. -

-
-

- ~basic_socket_streambuf -

-
-

- Destructor flushes buffered data. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- overflow -

-
-
-

- setbuf -

-
-
-

- sync -

-
-
-

- underflow -

-
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/_basic_socket_streambuf.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/_basic_socket_streambuf.html deleted file mode 100644 index 48e1070..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/_basic_socket_streambuf.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_streambuf::~basic_socket_streambuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor - flushes buffered data. -

-
virtual ~basic_socket_streambuf();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf.html deleted file mode 100644 index da8bffd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_socket_streambuf::basic_socket_streambuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_socket_streambuf - without establishing a connection. -

-
basic_socket_streambuf();
-  » more...
-
-

- Construct a basic_socket_streambuf - from the supplied socket. -

-
explicit basic_socket_streambuf(
-    basic_stream_socket< protocol_type > s);
-  » more...
-
-

- Move-construct a basic_socket_streambuf - from another. -

-
basic_socket_streambuf(
-    basic_socket_streambuf && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload1.html deleted file mode 100644 index b904163..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_streambuf::basic_socket_streambuf (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket_streambuf - without establishing a connection. -

-
basic_socket_streambuf();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload2.html deleted file mode 100644 index 1f92b07..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_socket_streambuf::basic_socket_streambuf (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket_streambuf - from the supplied socket. -

-
basic_socket_streambuf(
-    basic_stream_socket< protocol_type > s);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload3.html deleted file mode 100644 index 35dddf1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_socket_streambuf::basic_socket_streambuf (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_socket_streambuf - from another. -

-
basic_socket_streambuf(
-    basic_socket_streambuf && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/clock_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/clock_type.html deleted file mode 100644 index 7232f95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/clock_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::clock_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - clock type. -

-
typedef Clock clock_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/close.html deleted file mode 100644 index e8c918a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/close.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_socket_streambuf::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the connection. -

-
basic_socket_streambuf * close();
-
-
- - Return - Value -
-

- this if a connection was successfully established, a null - pointer otherwise. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect.html deleted file mode 100644 index ff05fbc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -basic_socket_streambuf::connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Establish - a connection. -

-
basic_socket_streambuf * connect(
-    const endpoint_type & endpoint);
-  » more...
-
-template<
-    typename T1,
-    ... ,
-    typename TN>
-basic_socket_streambuf * connect(
-    T1 t1,
-    ... ,
-    TN tn);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect/overload1.html deleted file mode 100644 index b37358c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect/overload1.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -basic_socket_streambuf::connect (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establish a connection. -

-
basic_socket_streambuf * connect(
-    const endpoint_type & endpoint);
-
-

- This function establishes a connection to the specified endpoint. -

-
- - Return - Value -
-

- this if a connection was successfully established, a null - pointer otherwise. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect/overload2.html deleted file mode 100644 index a2b1cab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect/overload2.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_socket_streambuf::connect (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establish a connection. -

-
template<
-    typename T1,
-    ... ,
-    typename TN>
-basic_socket_streambuf * connect(
-    T1 t1,
-    ... ,
-    TN tn);
-
-

- This function automatically establishes a connection based on the supplied - resolver query parameters. The arguments are used to construct a resolver - query object. -

-
- - Return - Value -
-

- this if a connection was successfully established, a null - pointer otherwise. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/duration.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/duration.html deleted file mode 100644 index e459000..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/duration.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::duration - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - duration type. -

-
typedef WaitTraits::duration duration;
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/duration_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/duration_type.html deleted file mode 100644 index ac587d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/duration_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::duration_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use duration.) The duration type. -

-
typedef WaitTraits::duration_type duration_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/endpoint_type.html deleted file mode 100644 index fdcebd7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/error.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/error.html deleted file mode 100644 index 7c469aa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/error.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_socket_streambuf::error - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the last error associated with the stream buffer. -

-
const asio::error_code & error() const;
-
-
- - Return - Value -
-

- An error_code corresponding to the last error from the stream - buffer. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_after.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_after.html deleted file mode 100644 index 41b4551..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_after.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_socket_streambuf::expires_after - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the stream buffer's expiry time relative to now. -

-
void expires_after(
-    const duration & expiry_time);
-
-

- This function sets the expiry time associated with the stream. Stream operations - performed after this time (where the operations cannot be completed using - the internal buffers) will fail with the error asio::error::operation_aborted. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at.html deleted file mode 100644 index 3182895..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_socket_streambuf::expires_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use expiry().) Get the stream buffer's expiry time as an absolute - time. -

-
time_point expires_at() const;
-  » more...
-
-

- Set the stream buffer's expiry time as an absolute time. -

-
void expires_at(
-    const time_point & expiry_time);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload1.html deleted file mode 100644 index a962f68..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload1.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_socket_streambuf::expires_at (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expiry().) Get the stream buffer's expiry - time as an absolute time. -

-
time_point expires_at() const;
-
-
- - Return - Value -
-

- An absolute time value representing the stream buffer's expiry time. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload2.html deleted file mode 100644 index ceb8eb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_socket_streambuf::expires_at (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the stream buffer's expiry time as an absolute time. -

-
void expires_at(
-    const time_point & expiry_time);
-
-

- This function sets the expiry time associated with the stream. Stream - operations performed after this time (where the operations cannot be - completed using the internal buffers) will fail with the error asio::error::operation_aborted. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the stream. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now.html deleted file mode 100644 index 5dd75e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::expires_from_now - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use expiry().) Get the stream buffer's expiry time relative - to now. -

-
duration expires_from_now() const;
-  » more...
-
-

- (Deprecated: Use expires_after().) Set the stream buffer's - expiry time relative to now. -

-
void expires_from_now(
-    const duration & expiry_time);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload1.html deleted file mode 100644 index f781d72..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload1.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_socket_streambuf::expires_from_now (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expiry().) Get the stream buffer's expiry - time relative to now. -

-
duration expires_from_now() const;
-
-
- - Return - Value -
-

- A relative time value representing the stream buffer's expiry time. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload2.html deleted file mode 100644 index 0f91ccf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload2.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_socket_streambuf::expires_from_now (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expires_after().) Set the stream buffer's - expiry time relative to now. -

-
void expires_from_now(
-    const duration & expiry_time);
-
-

- This function sets the expiry time associated with the stream. Stream - operations performed after this time (where the operations cannot be - completed using the internal buffers) will fail with the error asio::error::operation_aborted. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expiry.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expiry.html deleted file mode 100644 index 48f7897..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expiry.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_socket_streambuf::expiry - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the stream buffer's expiry time as an absolute time. -

-
time_point expiry() const;
-
-
- - Return - Value -
-

- An absolute time value representing the stream buffer's expiry time. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/operator_eq_.html deleted file mode 100644 index 739d188..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/operator_eq_.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -basic_socket_streambuf::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_socket_streambuf - from another. -

-
basic_socket_streambuf & operator=(
-    basic_socket_streambuf && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/overflow.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/overflow.html deleted file mode 100644 index 96ee386..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/overflow.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -basic_socket_streambuf::overflow - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
int_type overflow(
-    int_type c);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/protocol_type.html deleted file mode 100644 index 5310b53..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/puberror.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/puberror.html deleted file mode 100644 index 4b20d3d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/puberror.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::puberror - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use error().) Get the last error associated with the stream - buffer. -

-
const asio::error_code & puberror() const;
-
-
- - Return - Value -
-

- An error_code corresponding to the last error from the stream - buffer. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/setbuf.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/setbuf.html deleted file mode 100644 index 2cf6c28..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/setbuf.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_streambuf::setbuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
std::streambuf * setbuf(
-    char_type * s,
-    std::streamsize n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/socket.html deleted file mode 100644 index e989729..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/socket.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_streambuf::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the underlying socket. -

-
basic_socket< Protocol > & socket();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/sync.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/sync.html deleted file mode 100644 index 82f71c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/sync.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -basic_socket_streambuf::sync - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
int sync();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/time_point.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/time_point.html deleted file mode 100644 index fe9a193..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/time_point.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::time_point - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - time type. -

-
typedef WaitTraits::time_point time_point;
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/time_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/time_type.html deleted file mode 100644 index 6afac3e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/time_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::time_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use time_point.) The time type. -

-
typedef WaitTraits::time_type time_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/underflow.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/underflow.html deleted file mode 100644 index eb26bee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/underflow.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -basic_socket_streambuf::underflow - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
int_type underflow();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket.html deleted file mode 100644 index 0b286df..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket.html +++ /dev/null @@ -1,931 +0,0 @@ - - - -basic_stream_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides stream-oriented socket functionality. -

-
template<
-    typename Protocol>
-class basic_stream_socket :
-  public basic_socket< Protocol >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close if - unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_receive -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- 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. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets the - non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_stream_socket from another.

Move-assign - a basic_stream_socket from a socket of another protocol type. -

-
-

- read_some -

-
-

- Read some data from the socket. -

-
-

- receive -

-
-

- Receive some data on the socket.

Receive some data - on a connected socket. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, or - to have pending error conditions. -

-
-

- write_some -

-
-

- Write some data to the socket. -

-
-

- ~basic_stream_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length of - the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_stream_socket - class template provides asynchronous and blocking stream-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/_basic_stream_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/_basic_stream_socket.html deleted file mode 100644 index 5d56346..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/_basic_stream_socket.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_stream_socket::~basic_stream_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the socket. -

-
~basic_stream_socket();
-
-

- This function destroys the socket, cancelling any outstanding asynchronous - operations associated with the socket as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign.html deleted file mode 100644 index f835c67..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_stream_socket::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign/overload1.html deleted file mode 100644 index 46abc69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_stream_socket::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign/overload2.html deleted file mode 100644 index 9fed4f8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign/overload2.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_connect.html deleted file mode 100644 index 7011263..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_connect.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_stream_socket::async_connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Start - an asynchronous connect. -

-
template<
-    typename ConnectHandler>
-DEDUCED async_connect(
-    const endpoint_type & peer_endpoint,
-    ConnectHandler && handler);
-
-

- This function is used to asynchronously connect a socket to the specified - remote endpoint. The function call always returns immediately. -

-

- The socket is automatically opened if it is not already open. If the connect - fails, and the socket was automatically opened, the socket is not returned - to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. Copies - will be made of the endpoint object as required. -

-
handler
-
-

- The handler to be called when the connection operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void connect_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Connect succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.async_connect(endpoint, connect_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_read_some.html deleted file mode 100644 index ee06e0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_read_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -basic_stream_socket::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data from the stream socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes read.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The read operation may not read all of the requested number of bytes. Consider - using the async_read - function if you need to ensure that the requested amount of data is read - before the asynchronous operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
socket.async_read_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive.html deleted file mode 100644 index fb167a9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_stream_socket::async_receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive/overload1.html deleted file mode 100644 index f6aedb4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive/overload1.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -basic_stream_socket::async_receive (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the stream - socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks 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 receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The receive operation may not receive all of the requested number of - bytes. Consider using the async_read - function if you need to ensure that the requested amount of data is received - before the asynchronous operation completes. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive/overload2.html deleted file mode 100644 index 288d281..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive/overload2.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -basic_stream_socket::async_receive (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the stream - socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The receive operation may not receive all of the requested number of - bytes. Consider using the async_read - function if you need to ensure that the requested amount of data is received - before the asynchronous operation completes. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive(asio::buffer(data, size), 0, handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send.html deleted file mode 100644 index e1fdd41..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_stream_socket::async_send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-  » more...
-
-template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send/overload1.html deleted file mode 100644 index 4d22a8e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send/overload1.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -basic_stream_socket::async_send (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send data on the stream socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The send operation may not transmit all of the data to the peer. Consider - using the async_write - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.async_send(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send/overload2.html deleted file mode 100644 index 3e2b084..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send/overload2.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -basic_stream_socket::async_send (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send data on the stream socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The send operation may not transmit all of the data to the peer. Consider - using the async_write - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.async_send(asio::buffer(data, size), 0, handler);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_wait.html deleted file mode 100644 index c33d440..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_wait.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_stream_socket::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Asynchronously - wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-...
-socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_write_some.html deleted file mode 100644 index 197f40c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_write_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -basic_stream_socket::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write data to the stream socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the socket. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes written.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The write operation may not transmit all of the data to the peer. Consider - using the async_write - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
socket.async_write_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark.html deleted file mode 100644 index 4e8b409..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::at_mark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-  » more...
-
-bool at_mark(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark/overload1.html deleted file mode 100644 index 072c7b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark/overload1.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -basic_stream_socket::at_mark (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark/overload2.html deleted file mode 100644 index 9667e9b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_stream_socket::at_mark (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark(
-    asio::error_code & ec) const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available.html deleted file mode 100644 index c699470..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::available - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the number of bytes available for reading. -

-
std::size_t available() const;
-  » more...
-
-std::size_t available(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available/overload1.html deleted file mode 100644 index a882325..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available/overload1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_stream_socket::available (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available() const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available/overload2.html deleted file mode 100644 index e7cda79..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available/overload2.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_stream_socket::available (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available(
-    asio::error_code & ec) const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket.html deleted file mode 100644 index 3877601..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_stream_socket::basic_stream_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_stream_socket - without opening it. -

-
explicit basic_stream_socket(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct and open a basic_stream_socket. -

-
basic_stream_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-  » more...
-
-

- Construct a basic_stream_socket, - opening it and binding it to the given local endpoint. -

-
basic_stream_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-  » more...
-
-

- Construct a basic_stream_socket - on an existing native socket. -

-
basic_stream_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-

- Move-construct a basic_stream_socket - from another. -

-
basic_stream_socket(
-    basic_stream_socket && other);
-  » more...
-
-

- Move-construct a basic_stream_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_stream_socket(
-    basic_stream_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload1.html deleted file mode 100644 index 6237654..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_stream_socket::basic_stream_socket (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_stream_socket - without opening it. -

-
basic_stream_socket(
-    asio::io_context & io_context);
-
-

- This constructor creates a stream socket without opening it. The socket - needs to be opened and then connected or accepted before data can be - sent or received on it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload2.html deleted file mode 100644 index 74211f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::basic_stream_socket (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct and open a basic_stream_socket. -

-
basic_stream_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-
-

- This constructor creates and opens a stream socket. The socket needs - to be connected or accepted before data can be sent or received on it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload3.html deleted file mode 100644 index 786dc08..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload3.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_stream_socket::basic_stream_socket (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_stream_socket, - opening it and binding it to the given local endpoint. -

-
basic_stream_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-
-

- This constructor creates a stream socket and automatically opens it bound - to the specified endpoint on the local machine. The protocol used is - the protocol associated with the given endpoint. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
endpoint
-

- An endpoint on the local machine to which the stream socket will - be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload4.html deleted file mode 100644 index 8278042..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload4.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_stream_socket::basic_stream_socket (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_stream_socket - on an existing native socket. -

-
basic_stream_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-

- This constructor creates a stream socket object to hold an existing native - socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
native_socket
-

- The new underlying socket implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload5.html deleted file mode 100644 index f81243b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload5.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_stream_socket::basic_stream_socket (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_stream_socket - from another. -

-
basic_stream_socket(
-    basic_stream_socket && other);
-
-

- This constructor moves a stream socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_stream_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_stream_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload6.html deleted file mode 100644 index 0042c47..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload6.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_stream_socket::basic_stream_socket (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_stream_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_stream_socket(
-    basic_stream_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-
-

- This constructor moves a stream socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_stream_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_stream_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind.html deleted file mode 100644 index 386d96d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_stream_socket::bind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bind the - socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-  » more...
-
-void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind/overload1.html deleted file mode 100644 index 4e6bb4d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind/overload1.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -basic_stream_socket::bind (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind/overload2.html deleted file mode 100644 index d298a39..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind/overload2.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_stream_socket::bind (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-asio::error_code ec;
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/broadcast.html deleted file mode 100644 index d3bb348..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/broadcast.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to permit sending of broadcast messages. -

-
typedef implementation_defined broadcast;
-
-

- Implements the SOL_SOCKET/SO_BROADCAST socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bytes_readable.html deleted file mode 100644 index 9b38716..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bytes_readable.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_stream_socket::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::bytes_readable command(true);
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel.html deleted file mode 100644 index 0631aec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the socket. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel/overload1.html deleted file mode 100644 index 628f25f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel/overload1.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_stream_socket::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel/overload2.html deleted file mode 100644 index c89cfdf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel/overload2.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_stream_socket::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close.html deleted file mode 100644 index 249bb2c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close the - socket. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close/overload1.html deleted file mode 100644 index 1d35f38..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_stream_socket::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close();
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. Note that, even if the function indicates an - error, the underlying descriptor is closed. -

-
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close/overload2.html deleted file mode 100644 index ee69f60..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_stream_socket::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. Note that, even if - the function indicates an error, the underlying descriptor is closed. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.close(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect.html deleted file mode 100644 index 339025f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_stream_socket::connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Connect - the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-  » more...
-
-void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect/overload1.html deleted file mode 100644 index 27d8565..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect/overload1.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_stream_socket::connect (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.connect(endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect/overload2.html deleted file mode 100644 index 389d1cc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect/overload2.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -basic_stream_socket::connect (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-asio::error_code ec;
-socket.connect(endpoint, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/debug.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/debug.html deleted file mode 100644 index 87ea477..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/debug.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::debug - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to enable socket-level debugging. -

-
typedef implementation_defined debug;
-
-

- Implements the SOL_SOCKET/SO_DEBUG socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/do_not_route.html deleted file mode 100644 index cb61292..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/do_not_route.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to prevent routing, use local interfaces only. -

-
typedef implementation_defined do_not_route;
-
-

- Implements the SOL_SOCKET/SO_DONTROUTE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/enable_connection_aborted.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/enable_connection_aborted.html deleted file mode 100644 index 17c9423..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/enable_connection_aborted.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_stream_socket::enable_connection_aborted - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to report aborted connections on accept. -

-
typedef implementation_defined enable_connection_aborted;
-
-

- Implements a custom socket option that determines whether or not an accept - operation is permitted to fail with asio::error::connection_aborted. - By default the option is false. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/endpoint_type.html deleted file mode 100644 index e06eea5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_stream_socket::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/executor_type.html deleted file mode 100644 index f068713..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/executor_type.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -basic_stream_socket::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_executor.html deleted file mode 100644 index 2b25c91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_executor.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_stream_socket::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_io_context.html deleted file mode 100644 index fbde798..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_io_context.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_stream_socket::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_io_service.html deleted file mode 100644 index ffbe4c4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_io_service.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_stream_socket::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option.html deleted file mode 100644 index 91c74b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_stream_socket::get_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-  » more...
-
-template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option/overload1.html deleted file mode 100644 index c79348a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_stream_socket::get_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option/overload2.html deleted file mode 100644 index c5945a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_stream_socket::get_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-asio::error_code ec;
-socket.get_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control.html deleted file mode 100644 index e911956..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_stream_socket::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control/overload1.html deleted file mode 100644 index a78fd1d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_stream_socket::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control/overload2.html deleted file mode 100644 index 2b9992a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_stream_socket::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-asio::error_code ec;
-socket.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/is_open.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/is_open.html deleted file mode 100644 index 76f309f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/is_open.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_stream_socket::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Determine - whether the socket is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/keep_alive.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/keep_alive.html deleted file mode 100644 index b76bc4d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/keep_alive.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::keep_alive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to send keep-alives. -

-
typedef implementation_defined keep_alive;
-
-

- Implements the SOL_SOCKET/SO_KEEPALIVE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/linger.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/linger.html deleted file mode 100644 index 6279842..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/linger.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_stream_socket::linger - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to specify whether the socket lingers on close if unsent data is - present. -

-
typedef implementation_defined linger;
-
-

- Implements the SOL_SOCKET/SO_LINGER socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option(true, 30);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option;
-socket.get_option(option);
-bool is_set = option.enabled();
-unsigned short timeout = option.timeout();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint.html deleted file mode 100644 index dfd50b7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::local_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-  » more...
-
-endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload1.html deleted file mode 100644 index 3da38a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_stream_socket::local_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload2.html deleted file mode 100644 index 42849cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_stream_socket::local_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. Returns a - default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer.html deleted file mode 100644 index 8a619b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_stream_socket::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload1.html deleted file mode 100644 index 5216ae8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_stream_socket::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload2.html deleted file mode 100644 index 9c660f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_stream_socket::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer_type.html deleted file mode 100644 index 944533b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer_type.html +++ /dev/null @@ -1,862 +0,0 @@ - - - -basic_stream_socket::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -A - basic_socket - is always the lowest layer. -

-
typedef basic_socket< Protocol > lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_socket -

-
-

- Construct a basic_socket without opening it.

Construct - and open a basic_socket.

Construct a basic_socket, - opening it and binding it to the given local endpoint.
-
Construct a basic_socket on an existing native socket. -

Move-construct a basic_socket from another.
-
Move-construct a basic_socket from a socket of another - protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket from another.

Move-assign - a basic_socket from a socket of another protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~basic_socket -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket - class template provides functionality that is common to both stream-oriented - and datagram-oriented sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/max_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/max_connections.html deleted file mode 100644 index 6b862b5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/max_connections.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_stream_socket::max_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -(Deprecated: - Use max_listen_connections.) The maximum length of the queue of pending - incoming connections. -

-
static const int max_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/max_listen_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/max_listen_connections.html deleted file mode 100644 index b31c022..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/max_listen_connections.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_stream_socket::max_listen_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -The - maximum length of the queue of pending incoming connections. -

-
static const int max_listen_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_do_not_route.html deleted file mode 100644 index e63fda5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_do_not_route.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_stream_socket::message_do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specify - that the data should not be subject to routing. -

-
static const int message_do_not_route = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_end_of_record.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_end_of_record.html deleted file mode 100644 index 040f7f7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_end_of_record.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_stream_socket::message_end_of_record - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specifies - that the data marks the end of a record. -

-
static const int message_end_of_record = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_flags.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_flags.html deleted file mode 100644 index ffd79b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_stream_socket::message_flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Bitmask - type for flags that can be passed to send and receive operations. -

-
typedef int message_flags;
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_out_of_band.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_out_of_band.html deleted file mode 100644 index 95c2723..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_out_of_band.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_stream_socket::message_out_of_band - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Process - out-of-band data. -

-
static const int message_out_of_band = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_peek.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_peek.html deleted file mode 100644 index 9dea8a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_peek.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_stream_socket::message_peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Peek - at incoming data without removing it from the input queue. -

-
static const int message_peek = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_handle.html deleted file mode 100644 index 65dca3a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_handle.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_stream_socket::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the native socket representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - socket. This is intended to allow access to native socket functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_handle_type.html deleted file mode 100644 index 8048e0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_stream_socket::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a socket. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking.html deleted file mode 100644 index 75dabac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_stream_socket::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload1.html deleted file mode 100644 index 3237a46..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload1.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -basic_stream_socket::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native socket. This mode has no effect on the behaviour of the socket - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying socket is in non-blocking mode and - direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the socket object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native socket. -

-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload2.html deleted file mode 100644 index 9fca3e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload2.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -basic_stream_socket::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload3.html deleted file mode 100644 index 6ce185c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload3.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -basic_stream_socket::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking.html deleted file mode 100644 index 804900a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_stream_socket::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the socket. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload1.html deleted file mode 100644 index b389ef5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_stream_socket::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the socket. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the socket's synchronous operations will fail with - asio::error::would_block if they are unable to perform the - requested operation immediately. If false, synchronous operations - will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload2.html deleted file mode 100644 index 6abda40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_stream_socket::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload3.html deleted file mode 100644 index 1cdfb69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload3.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_stream_socket::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open.html deleted file mode 100644 index 4ae7994..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_stream_socket::open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Open the - socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-  » more...
-
-void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open/overload1.html deleted file mode 100644 index eed9ff7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_stream_socket::open (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open/overload2.html deleted file mode 100644 index 30a00a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_stream_socket::open (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying which protocol is to be used. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::error_code ec;
-socket.open(asio::ip::tcp::v4(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_.html deleted file mode 100644 index 4d297a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_stream_socket::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_stream_socket - from another. -

-
basic_stream_socket & operator=(
-    basic_stream_socket && other);
-  » more...
-
-

- Move-assign a basic_stream_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_stream_socket >::type & operator=(
-    basic_stream_socket< Protocol1 > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload1.html deleted file mode 100644 index 0dd3f52..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_stream_socket::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_stream_socket - from another. -

-
basic_stream_socket & operator=(
-    basic_stream_socket && other);
-
-

- This assignment operator moves a stream socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_stream_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_stream_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload2.html deleted file mode 100644 index 2bcbbe9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_stream_socket::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_stream_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_stream_socket >::type & operator=(
-    basic_stream_socket< Protocol1 > && other);
-
-

- This assignment operator moves a stream socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_stream_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_stream_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/out_of_band_inline.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/out_of_band_inline.html deleted file mode 100644 index 6ba3763..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/out_of_band_inline.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::out_of_band_inline - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for putting received out-of-band data inline. -

-
typedef implementation_defined out_of_band_inline;
-
-

- Implements the SOL_SOCKET/SO_OOBINLINE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option;
-socket.get_option(option);
-bool value = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/protocol_type.html deleted file mode 100644 index 3666bdc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_stream_socket::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some.html deleted file mode 100644 index 0bdb075..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_stream_socket::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read - some data from the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some/overload1.html deleted file mode 100644 index 9a59d50..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_stream_socket::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to read data from the stream socket. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes read. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
socket.read_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some/overload2.html deleted file mode 100644 index 8695ad0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_stream_socket::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to read data from the stream socket. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive.html deleted file mode 100644 index 68024a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -basic_stream_socket::receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Receive - some data on the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags);
-  » more...
-
-

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload1.html deleted file mode 100644 index 9ed5744..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_stream_socket::receive (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to receive data on the stream socket. The function - call will block until one or more bytes of data has been received successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The receive operation may not receive all of the requested number of - bytes. Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.receive(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload2.html deleted file mode 100644 index ffd8a24..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -basic_stream_socket::receive (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags);
-
-

- This function is used to receive data on the stream socket. The function - call will block until one or more bytes of data has been received successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The receive operation may not receive all of the requested number of - bytes. Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.receive(asio::buffer(data, size), 0);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload3.html deleted file mode 100644 index e04d8a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload3.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_stream_socket::receive (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to receive data on the stream socket. The function - call will block until one or more bytes of data has been received successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes received. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The receive operation may not receive all of the requested number of - bytes. Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive_buffer_size.html deleted file mode 100644 index 70955f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::receive_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive buffer size of a socket. -

-
typedef implementation_defined receive_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_RCVBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive_low_watermark.html deleted file mode 100644 index abc2c96..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::receive_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive low watermark. -

-
typedef implementation_defined receive_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_RCVLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release.html deleted file mode 100644 index e788e00..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release - ownership of the underlying native socket. -

-
native_handle_type release();
-  » more...
-
-native_handle_type release(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release/overload1.html deleted file mode 100644 index e5859c3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release/overload1.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -basic_stream_socket::release (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release/overload2.html deleted file mode 100644 index 17c1a56..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_stream_socket::release (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint.html deleted file mode 100644 index be89073..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::remote_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-  » more...
-
-endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload1.html deleted file mode 100644 index 3a206e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_stream_socket::remote_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload2.html deleted file mode 100644 index 8fd405a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_stream_socket::remote_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. Returns - a default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/reuse_address.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/reuse_address.html deleted file mode 100644 index 5b22018..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/reuse_address.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_stream_socket::reuse_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to allow the socket to be bound to an address that is already in - use. -

-
typedef implementation_defined reuse_address;
-
-

- Implements the SOL_SOCKET/SO_REUSEADDR socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send.html deleted file mode 100644 index fe50ded..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_stream_socket::send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Send some - data on the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload1.html deleted file mode 100644 index d9ab912..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload1.html +++ /dev/null @@ -1,109 +0,0 @@ - - - -basic_stream_socket::send (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to send data on the stream socket. The function - call will block until one or more bytes of the data has been sent successfully, - or an until error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The send operation may not transmit all of the data to the peer. Consider - using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.send(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload2.html deleted file mode 100644 index 99da1f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload2.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -basic_stream_socket::send (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-
-

- This function is used to send data on the stream socket. The function - call will block until one or more bytes of the data has been sent successfully, - or an until error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The send operation may not transmit all of the data to the peer. Consider - using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.send(asio::buffer(data, size), 0);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload3.html deleted file mode 100644 index 7f12963..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload3.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_stream_socket::send (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to send data on the stream socket. The function - call will block until one or more bytes of the data has been sent successfully, - or an until error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The send operation may not transmit all of the data to the peer. Consider - using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send_buffer_size.html deleted file mode 100644 index 0b51abc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::send_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send buffer size of a socket. -

-
typedef implementation_defined send_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_SNDBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send_low_watermark.html deleted file mode 100644 index 7e15527..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::send_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send low watermark. -

-
typedef implementation_defined send_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_SNDLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option.html deleted file mode 100644 index 39c7280..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_stream_socket::set_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-  » more...
-
-template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option/overload1.html deleted file mode 100644 index 96f122b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option/overload1.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -basic_stream_socket::set_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-socket.set_option(option);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option/overload2.html deleted file mode 100644 index 89f6ec4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_stream_socket::set_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-asio::error_code ec;
-socket.set_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown.html deleted file mode 100644 index 8b9650b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_stream_socket::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-  » more...
-
-void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown/overload1.html deleted file mode 100644 index a24d3cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_stream_socket::shutdown (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.shutdown(asio::ip::tcp::socket::shutdown_send);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown/overload2.html deleted file mode 100644 index 1092089..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_stream_socket::shutdown (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown_type.html deleted file mode 100644 index 9eb41e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_stream_socket::shutdown_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Different - ways a socket may be shutdown. -

-
enum shutdown_type
-
-

- - - -

-
- - Values -
-
-

-
-
shutdown_receive
-

- Shutdown the receive side of the socket. -

-
shutdown_send
-

- Shutdown the send side of the socket. -

-
shutdown_both
-

- Shutdown both send and receive on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait.html deleted file mode 100644 index 30ef64d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_stream_socket::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait for - the socket to become ready to read, ready to write, or to have pending - error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait/overload1.html deleted file mode 100644 index 08c440a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_stream_socket::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.wait(asio::ip::tcp::socket::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait/overload2.html deleted file mode 100644 index e88e196..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_stream_socket::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.wait(asio::ip::tcp::socket::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait_type.html deleted file mode 100644 index 78572ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait_type.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_stream_socket::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a socket to become ready to read. -

-
wait_write
-

- Wait for a socket to become ready to write. -

-
wait_error
-

- Wait for a socket to have error conditions pending. -

-
-
-

- For use with basic_socket::wait() and basic_socket::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some.html deleted file mode 100644 index 8e60135..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_stream_socket::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write - some data to the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some/overload1.html deleted file mode 100644 index 1401403..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_stream_socket::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to write data to the stream socket. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the socket. -

-
-
-
- - Return - Value -
-

- The number of bytes written. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
socket.write_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some/overload2.html deleted file mode 100644 index 2f76ed0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_stream_socket::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to write data to the stream socket. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf.html deleted file mode 100644 index d79c52e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf.html +++ /dev/null @@ -1,363 +0,0 @@ - - - -basic_streambuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Automatically resizable buffer class based on std::streambuf. -

-
template<
-    typename Allocator = std::allocator<char>>
-class basic_streambuf :
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffers_type -

-
-

- The type used to represent the input sequence as a list of buffers. -

-
-

- mutable_buffers_type -

-
-

- The type used to represent the output sequence as a list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_streambuf -

-
-

- Construct a basic_streambuf object. -

-
-

- capacity -

-
-

- Get the current capacity of the basic_streambuf. -

-
-

- commit -

-
-

- Move characters from the output sequence to the input sequence. -

-
-

- consume -

-
-

- Remove characters from the input sequence. -

-
-

- data -

-
-

- Get a list of buffers that represents the input sequence. -

-
-

- max_size -

-
-

- Get the maximum size of the basic_streambuf. -

-
-

- prepare -

-
-

- Get a list of buffers that represents the output sequence, with - the given size. -

-
-

- size -

-
-

- Get the size of the input sequence. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- overflow -

-
-

- Override std::streambuf behaviour. -

-
-

- reserve -

-
-
-

- underflow -

-
-

- Override std::streambuf behaviour. -

-
-

- The basic_streambuf class is derived from std::streambuf - to associate the streambuf's input and output sequences with one or more - character arrays. These character arrays are internal to the basic_streambuf - object, but direct access to the array elements is provided to permit them - to be used efficiently with I/O operations. Characters written to the output - sequence of a basic_streambuf object are appended to the input - sequence of the same object. -

-

- The basic_streambuf class's public interface is intended to - permit the following implementation strategies: -

-
    -
  • - A single contiguous character array, which is reallocated as necessary - to accommodate changes in the size of the character sequence. This is - the implementation approach currently used in Asio. -
  • -
  • - A sequence of one or more character arrays, where each array is of the - same size. Additional character array objects are appended to the sequence - to accommodate changes in the size of the character sequence. -
  • -
  • - A sequence of one or more character arrays of varying sizes. Additional - character array objects are appended to the sequence to accommodate changes - in the size of the character sequence. -
  • -
-

- The constructor for basic_streambuf - accepts a size_t argument specifying the maximum of the sum - of the sizes of the input sequence and output sequence. During the lifetime - of the basic_streambuf object, the following invariant holds: -

-
size() <= max_size()
-
-

- Any member function that would, if successful, cause the invariant to be - violated shall throw an exception of class std::length_error. -

-

- The constructor for basic_streambuf takes an Allocator argument. - A copy of this argument is used for any memory allocation performed, by the - constructor and by all member functions, during the lifetime of each basic_streambuf - object. -

-
- - Examples -
-

- Writing directly from an streambuf to a socket: -

-
asio::streambuf b;
-std::ostream os(&b);
-os << "Hello, World!\n";
-
-// try sending some data in input sequence
-size_t n = sock.send(b.data());
-
-b.consume(n); // sent data is removed from input sequence
-
-

- Reading from a socket directly into a streambuf: -

-
asio::streambuf b;
-
-// reserve 512 bytes in output sequence
-asio::streambuf::mutable_buffers_type bufs = b.prepare(512);
-
-size_t n = sock.receive(bufs);
-
-// received data is "committed" from output sequence to input sequence
-b.commit(n);
-
-std::istream is(&b);
-std::string s;
-is >> s;
-
-
- - Requirements -
-

- Header: asio/basic_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/basic_streambuf.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/basic_streambuf.html deleted file mode 100644 index 1d0f9eb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/basic_streambuf.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_streambuf::basic_streambuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_streambuf - object. -

-
basic_streambuf(
-    std::size_t maximum_size = (std::numeric_limits< std::size_t >::max)(),
-    const Allocator & allocator = Allocator());
-
-

- Constructs a streambuf with the specified maximum size. The initial size - of the streambuf's input sequence is 0. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/capacity.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/capacity.html deleted file mode 100644 index 2342bc7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/capacity.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_streambuf::capacity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the current - capacity of the basic_streambuf. -

-
std::size_t capacity() const;
-
-
- - Return Value -
-

- The current total capacity of the streambuf, i.e. for both the input sequence - and output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/commit.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/commit.html deleted file mode 100644 index 0c411de..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/commit.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_streambuf::commit - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move characters - from the output sequence to the input sequence. -

-
void commit(
-    std::size_t n);
-
-

- Appends n characters from the start of the output sequence - to the input sequence. The beginning of the output sequence is advanced - by n characters. -

-

- Requires a preceding call prepare(x) where x >= n, - and no intervening operations that modify the input or output sequence. -

-
- - 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. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/const_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/const_buffers_type.html deleted file mode 100644 index 3fdb1d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/const_buffers_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_streambuf::const_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the input sequence as a list of buffers. -

-
typedef implementation_defined const_buffers_type;
-
-
- - Requirements -
-

- Header: asio/basic_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/consume.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/consume.html deleted file mode 100644 index 02caaa9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/consume.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -basic_streambuf::consume - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Remove characters - from the input sequence. -

-
void consume(
-    std::size_t n);
-
-

- Removes n characters from the beginning of the input sequence. -

-
- - Remarks -
-

- If n is greater than the size of the input sequence, the entire - input sequence is consumed and no error is issued. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/data.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/data.html deleted file mode 100644 index 47c4506..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/data.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_streambuf::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a list of buffers - that represents the input sequence. -

-
const_buffers_type data() const;
-
-
- - Return - Value -
-

- An object of type const_buffers_type that satisfies ConstBufferSequence - requirements, representing all character arrays in the input sequence. -

-
- - Remarks -
-

- The returned object is invalidated by any basic_streambuf - member function that modifies the input sequence or output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/max_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/max_size.html deleted file mode 100644 index fcb95c8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/max_size.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_streambuf::max_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the maximum - size of the basic_streambuf. -

-
std::size_t max_size() const;
-
-
- - Return Value -
-

- The allowed maximum of the sum of the sizes of the input sequence and output - sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/mutable_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/mutable_buffers_type.html deleted file mode 100644 index d8cd14f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/mutable_buffers_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_streambuf::mutable_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the output sequence as a list of buffers. -

-
typedef implementation_defined mutable_buffers_type;
-
-
- - Requirements -
-

- Header: asio/basic_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/overflow.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/overflow.html deleted file mode 100644 index a80f562..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/overflow.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_streambuf::overflow - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Override - std::streambuf behaviour. -

-
int_type overflow(
-    int_type c);
-
-

- Behaves according to the specification of std::streambuf::overflow(), - with the specialisation that std::length_error is thrown if - appending the character to the input sequence would require the condition - size() > max_size() to be true. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/prepare.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/prepare.html deleted file mode 100644 index 352104f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/prepare.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -basic_streambuf::prepare - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a list - of buffers that represents the output sequence, with the given size. -

-
mutable_buffers_type prepare(
-    std::size_t n);
-
-

- Ensures that the output sequence can accommodate n characters, - reallocating character array objects as necessary. -

-
- - Return Value -
-

- An object of type mutable_buffers_type that satisfies MutableBufferSequence - requirements, representing character array objects at the start of the - output sequence such that the sum of the buffer sizes is n. -

-
- - Exceptions -
-
-

-
-
std::length_error
-

- If size() + n > max_size(). -

-
-
-
- - Remarks -
-

- The returned object is invalidated by any basic_streambuf - member function that modifies the input sequence or output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/reserve.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/reserve.html deleted file mode 100644 index d6dc190..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/reserve.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -basic_streambuf::reserve - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void reserve(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/size.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/size.html deleted file mode 100644 index 1f72137..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/size.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_streambuf::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the size of the - input sequence. -

-
std::size_t size() const;
-
-
- - Return - Value -
-

- The size of the input sequence. The value is equal to that calculated for - s in the following code: -

-
size_t s = 0;
-const_buffers_type bufs = data();
-const_buffers_type::const_iterator i = bufs.begin();
-while (i != bufs.end())
-{
-  const_buffer buf(*i++);
-  s += buf.size();
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/underflow.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/underflow.html deleted file mode 100644 index 3f61090..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/underflow.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_streambuf::underflow - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Override - std::streambuf behaviour. -

-
int_type underflow();
-
-

- Behaves according to the specification of std::streambuf::underflow(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref.html deleted file mode 100644 index 35c08cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref.html +++ /dev/null @@ -1,226 +0,0 @@ - - - -basic_streambuf_ref - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Adapts basic_streambuf - to the dynamic buffer sequence type requirements. -

-
template<
-    typename Allocator = std::allocator<char>>
-class basic_streambuf_ref
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffers_type -

-
-

- The type used to represent the input sequence as a list of buffers. -

-
-

- mutable_buffers_type -

-
-

- The type used to represent the output sequence as a list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_streambuf_ref -

-
-

- Construct a basic_streambuf_ref for the given basic_streambuf object. -

Copy construct a basic_streambuf_ref.

- Move construct a basic_streambuf_ref. -

-
-

- capacity -

-
-

- Get the current capacity of the dynamic buffer. -

-
-

- commit -

-
-

- Move bytes from the output sequence to the input sequence. -

-
-

- consume -

-
-

- Remove characters from the input sequence. -

-
-

- data -

-
-

- Get a list of buffers that represents the input sequence. -

-
-

- max_size -

-
-

- Get the maximum size of the dynamic buffer. -

-
-

- prepare -

-
-

- Get a list of buffers that represents the output sequence, with - the given size. -

-
-

- size -

-
-

- Get the size of the input sequence. -

-
-
- - Requirements -
-

- Header: asio/basic_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref.html deleted file mode 100644 index cdd2c4c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_streambuf_ref::basic_streambuf_ref - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_streambuf_ref - for the given basic_streambuf - object. -

-
explicit basic_streambuf_ref(
-    basic_streambuf< Allocator > & sb);
-  » more...
-
-

- Copy construct a basic_streambuf_ref. -

-
basic_streambuf_ref(
-    const basic_streambuf_ref & other);
-  » more...
-
-

- Move construct a basic_streambuf_ref. -

-
basic_streambuf_ref(
-    basic_streambuf_ref && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload1.html deleted file mode 100644 index 194aca1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -basic_streambuf_ref::basic_streambuf_ref (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_streambuf_ref - for the given basic_streambuf - object. -

-
basic_streambuf_ref(
-    basic_streambuf< Allocator > & sb);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload2.html deleted file mode 100644 index 0c1982a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_streambuf_ref::basic_streambuf_ref (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy construct a basic_streambuf_ref. -

-
basic_streambuf_ref(
-    const basic_streambuf_ref & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload3.html deleted file mode 100644 index 3a2a537..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_streambuf_ref::basic_streambuf_ref (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move construct a basic_streambuf_ref. -

-
basic_streambuf_ref(
-    basic_streambuf_ref && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/capacity.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/capacity.html deleted file mode 100644 index 55dd532..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/capacity.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_streambuf_ref::capacity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the current capacity of the dynamic buffer. -

-
std::size_t capacity() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/commit.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/commit.html deleted file mode 100644 index fa3eca3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/commit.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_streambuf_ref::commit - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move - bytes from the output sequence to the input sequence. -

-
void commit(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/const_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/const_buffers_type.html deleted file mode 100644 index d9691db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/const_buffers_type.html +++ /dev/null @@ -1,362 +0,0 @@ - - - -basic_streambuf_ref::const_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the input sequence as a list of buffers. -

-
typedef basic_streambuf< Allocator >::const_buffers_type const_buffers_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffers_type -

-
-

- The type used to represent the input sequence as a list of buffers. -

-
-

- mutable_buffers_type -

-
-

- The type used to represent the output sequence as a list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_streambuf -

-
-

- Construct a basic_streambuf object. -

-
-

- capacity -

-
-

- Get the current capacity of the basic_streambuf. -

-
-

- commit -

-
-

- Move characters from the output sequence to the input sequence. -

-
-

- consume -

-
-

- Remove characters from the input sequence. -

-
-

- data -

-
-

- Get a list of buffers that represents the input sequence. -

-
-

- max_size -

-
-

- Get the maximum size of the basic_streambuf. -

-
-

- prepare -

-
-

- Get a list of buffers that represents the output sequence, with - the given size. -

-
-

- size -

-
-

- Get the size of the input sequence. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- overflow -

-
-

- Override std::streambuf behaviour. -

-
-

- reserve -

-
-
-

- underflow -

-
-

- Override std::streambuf behaviour. -

-
-

- The basic_streambuf class is derived from std::streambuf - to associate the streambuf's input and output sequences with one or more - character arrays. These character arrays are internal to the basic_streambuf - object, but direct access to the array elements is provided to permit them - to be used efficiently with I/O operations. Characters written to the output - sequence of a basic_streambuf object are appended to the input - sequence of the same object. -

-

- The basic_streambuf class's public interface is intended to - permit the following implementation strategies: -

-
    -
  • - A single contiguous character array, which is reallocated as necessary - to accommodate changes in the size of the character sequence. This - is the implementation approach currently used in Asio. -
  • -
  • - A sequence of one or more character arrays, where each array is of - the same size. Additional character array objects are appended to the - sequence to accommodate changes in the size of the character sequence. -
  • -
  • - A sequence of one or more character arrays of varying sizes. Additional - character array objects are appended to the sequence to accommodate - changes in the size of the character sequence. -
  • -
-

- The constructor for basic_streambuf - accepts a size_t argument specifying the maximum of the sum - of the sizes of the input sequence and output sequence. During the lifetime - of the basic_streambuf object, the following invariant holds: -

-
size() <= max_size()
-
-

- Any member function that would, if successful, cause the invariant to be - violated shall throw an exception of class std::length_error. -

-

- The constructor for basic_streambuf takes an Allocator argument. - A copy of this argument is used for any memory allocation performed, by - the constructor and by all member functions, during the lifetime of each - basic_streambuf object. -

-
- - Examples -
-

- Writing directly from an streambuf to a socket: -

-
asio::streambuf b;
-std::ostream os(&b);
-os << "Hello, World!\n";
-
-// try sending some data in input sequence
-size_t n = sock.send(b.data());
-
-b.consume(n); // sent data is removed from input sequence
-
-

- Reading from a socket directly into a streambuf: -

-
asio::streambuf b;
-
-// reserve 512 bytes in output sequence
-asio::streambuf::mutable_buffers_type bufs = b.prepare(512);
-
-size_t n = sock.receive(bufs);
-
-// received data is "committed" from output sequence to input sequence
-b.commit(n);
-
-std::istream is(&b);
-std::string s;
-is >> s;
-
-
- - Requirements -
-

- Header: asio/basic_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/consume.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/consume.html deleted file mode 100644 index cd4f8d9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/consume.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_streambuf_ref::consume - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Remove - characters from the input sequence. -

-
void consume(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/data.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/data.html deleted file mode 100644 index 0f66b85..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/data.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_streambuf_ref::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a list - of buffers that represents the input sequence. -

-
const_buffers_type data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/max_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/max_size.html deleted file mode 100644 index c3ded0c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/max_size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_streambuf_ref::max_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the maximum size of the dynamic buffer. -

-
std::size_t max_size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/mutable_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/mutable_buffers_type.html deleted file mode 100644 index 59fa46c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/mutable_buffers_type.html +++ /dev/null @@ -1,362 +0,0 @@ - - - -basic_streambuf_ref::mutable_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the output sequence as a list of buffers. -

-
typedef basic_streambuf< Allocator >::mutable_buffers_type mutable_buffers_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffers_type -

-
-

- The type used to represent the input sequence as a list of buffers. -

-
-

- mutable_buffers_type -

-
-

- The type used to represent the output sequence as a list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_streambuf -

-
-

- Construct a basic_streambuf object. -

-
-

- capacity -

-
-

- Get the current capacity of the basic_streambuf. -

-
-

- commit -

-
-

- Move characters from the output sequence to the input sequence. -

-
-

- consume -

-
-

- Remove characters from the input sequence. -

-
-

- data -

-
-

- Get a list of buffers that represents the input sequence. -

-
-

- max_size -

-
-

- Get the maximum size of the basic_streambuf. -

-
-

- prepare -

-
-

- Get a list of buffers that represents the output sequence, with - the given size. -

-
-

- size -

-
-

- Get the size of the input sequence. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- overflow -

-
-

- Override std::streambuf behaviour. -

-
-

- reserve -

-
-
-

- underflow -

-
-

- Override std::streambuf behaviour. -

-
-

- The basic_streambuf class is derived from std::streambuf - to associate the streambuf's input and output sequences with one or more - character arrays. These character arrays are internal to the basic_streambuf - object, but direct access to the array elements is provided to permit them - to be used efficiently with I/O operations. Characters written to the output - sequence of a basic_streambuf object are appended to the input - sequence of the same object. -

-

- The basic_streambuf class's public interface is intended to - permit the following implementation strategies: -

-
    -
  • - A single contiguous character array, which is reallocated as necessary - to accommodate changes in the size of the character sequence. This - is the implementation approach currently used in Asio. -
  • -
  • - A sequence of one or more character arrays, where each array is of - the same size. Additional character array objects are appended to the - sequence to accommodate changes in the size of the character sequence. -
  • -
  • - A sequence of one or more character arrays of varying sizes. Additional - character array objects are appended to the sequence to accommodate - changes in the size of the character sequence. -
  • -
-

- The constructor for basic_streambuf - accepts a size_t argument specifying the maximum of the sum - of the sizes of the input sequence and output sequence. During the lifetime - of the basic_streambuf object, the following invariant holds: -

-
size() <= max_size()
-
-

- Any member function that would, if successful, cause the invariant to be - violated shall throw an exception of class std::length_error. -

-

- The constructor for basic_streambuf takes an Allocator argument. - A copy of this argument is used for any memory allocation performed, by - the constructor and by all member functions, during the lifetime of each - basic_streambuf object. -

-
- - Examples -
-

- Writing directly from an streambuf to a socket: -

-
asio::streambuf b;
-std::ostream os(&b);
-os << "Hello, World!\n";
-
-// try sending some data in input sequence
-size_t n = sock.send(b.data());
-
-b.consume(n); // sent data is removed from input sequence
-
-

- Reading from a socket directly into a streambuf: -

-
asio::streambuf b;
-
-// reserve 512 bytes in output sequence
-asio::streambuf::mutable_buffers_type bufs = b.prepare(512);
-
-size_t n = sock.receive(bufs);
-
-// received data is "committed" from output sequence to input sequence
-b.commit(n);
-
-std::istream is(&b);
-std::string s;
-is >> s;
-
-
- - Requirements -
-

- Header: asio/basic_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/prepare.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/prepare.html deleted file mode 100644 index c85eabc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/prepare.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_streambuf_ref::prepare - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a list of buffers that represents the output sequence, with the given size. -

-
mutable_buffers_type prepare(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/size.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/size.html deleted file mode 100644 index 12dfcee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_streambuf_ref::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the size - of the input sequence. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer.html deleted file mode 100644 index b464e42..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer.html +++ /dev/null @@ -1,460 +0,0 @@ - - - -basic_waitable_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides waitable timer functionality. -

-
template<
-    typename Clock,
-    typename WaitTraits>
-class basic_waitable_timer
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type of the clock. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- time_point -

-
-

- The time point type of the clock. -

-
-

- traits_type -

-
-

- The wait traits type. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the timer. -

-
-

- basic_waitable_timer -

-
-

- Constructor.

Constructor to set a particular expiry - time as an absolute time.

Constructor to set a particular - expiry time relative to now.

Move-construct a basic_waitable_timer - from another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancel - any asynchronous operations that are waiting on the timer. -

-
-

- cancel_one -

-
-

- Cancels one asynchronous operation that is waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancels - one asynchronous operation that is waiting on the timer. -

-
-

- expires_after -

-
-

- Set the timer's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time as an absolute - time.

Set the timer's expiry time as an absolute - time.

(Deprecated: Use non-error_code overload.) - Set the timer's expiry time as an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time relative - to now.

(Deprecated: Use expires_after().) Set the - timer's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the timer's expiry time as an absolute time. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_waitable_timer from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the timer. -

-
-

- ~basic_waitable_timer -

-
-

- Destroys the timer. -

-
-

- The basic_waitable_timer - class template provides the ability to perform a blocking or asynchronous - wait for a timer to expire. -

-

- 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 one of the steady_timer, - system_timer - or high_resolution_timer - typedefs. -

-
- - Remarks -
-

- This waitable timer functionality is for use with the C++11 standard library's - <chrono> facility, or with the Boost.Chrono library. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Examples -
-

- Performing a blocking wait (C++11): -

-
// Construct a timer without setting an expiry time.
-asio::steady_timer timer(io_context);
-
-// Set an expiry time relative to now.
-timer.expires_after(std::chrono::seconds(5));
-
-// Wait for the timer to expire.
-timer.wait();
-
-

- Performing an asynchronous wait (C++11): -

-
void handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Timer expired.
-  }
-}
-
-...
-
-// Construct a timer with an absolute expiry time.
-asio::steady_timer timer(io_context,
-    std::chrono::steady_clock::now() + std::chrono::seconds(60));
-
-// Start an asynchronous wait.
-timer.async_wait(handler);
-
-
- - Changing - an active waitable timer's expiry time -
-

- Changing the expiry time of a timer while there are pending asynchronous - waits causes those wait operations to be cancelled. To ensure that the action - associated with the timer is performed only once, use something like this: - used: -

-
void on_some_event()
-{
-  if (my_timer.expires_after(seconds(5)) > 0)
-  {
-    // We managed to cancel the timer. Start new asynchronous wait.
-    my_timer.async_wait(on_timeout);
-  }
-  else
-  {
-    // Too late, timer has already expired!
-  }
-}
-
-void on_timeout(const asio::error_code& e)
-{
-  if (e != asio::error::operation_aborted)
-  {
-    // Timer was not cancelled, take necessary action.
-  }
-}
-
-
    -
  • - The asio::basic_waitable_timer::expires_after() function - cancels any pending asynchronous waits, and returns the number of asynchronous - waits that were cancelled. If it returns 0 then you were too late and - the wait handler has already been executed, or will soon be executed. - If it returns 1 then the wait handler was successfully cancelled. -
  • -
  • - If a wait handler is cancelled, the error_code - passed to it contains the value asio::error::operation_aborted. -
  • -
-
- - Requirements -
-

- Header: asio/basic_waitable_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/_basic_waitable_timer.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/_basic_waitable_timer.html deleted file mode 100644 index 04e576a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/_basic_waitable_timer.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_waitable_timer::~basic_waitable_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the timer. -

-
~basic_waitable_timer();
-
-

- This function destroys the timer, cancelling any outstanding asynchronous - wait operations associated with the timer as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/async_wait.html deleted file mode 100644 index 6b8cc1d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/async_wait.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_waitable_timer::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous wait on the timer. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    WaitHandler && handler);
-
-

- This function may be used to initiate an asynchronous wait against the - timer. It always returns immediately. -

-

- For each call to async_wait(), the supplied handler will be - called exactly once. The handler will be called when: -

-
    -
  • - The timer has expired. -
  • -
  • - The timer was cancelled, in which case the handler is passed the error - code asio::error::operation_aborted. -
  • -
-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called when the timer expires. Copies will be made - of the handler as required. The function signature of the handler - must be: -

-
void handler(
-  const asio::error_code& error // Result of operation.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer.html deleted file mode 100644 index 9148233..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -basic_waitable_timer::basic_waitable_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
explicit basic_waitable_timer(
-    asio::io_context & io_context);
-  » more...
-
-

- Constructor to set a particular expiry time as an absolute time. -

-
basic_waitable_timer(
-    asio::io_context & io_context,
-    const time_point & expiry_time);
-  » more...
-
-

- Constructor to set a particular expiry time relative to now. -

-
basic_waitable_timer(
-    asio::io_context & io_context,
-    const duration & expiry_time);
-  » more...
-
-

- Move-construct a basic_waitable_timer - from another. -

-
basic_waitable_timer(
-    basic_waitable_timer && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload1.html deleted file mode 100644 index 7526829..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_waitable_timer::basic_waitable_timer (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor. -

-
basic_waitable_timer(
-    asio::io_context & io_context);
-
-

- This constructor creates a timer without setting an expiry time. The - expires_at() or expires_after() functions must - be called to set an expiry time before the timer can be waited on. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the timer will use to dispatch handlers for any asynchronous - operations performed on the timer. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload2.html deleted file mode 100644 index a0badd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload2.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -basic_waitable_timer::basic_waitable_timer (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor to set a particular expiry time as an absolute time. -

-
basic_waitable_timer(
-    asio::io_context & io_context,
-    const time_point & expiry_time);
-
-

- This constructor creates a timer and sets the expiry time. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the timer will use to dispatch handlers for any asynchronous - operations performed on the timer. -

-
expiry_time
-

- The expiry time to be used for the timer, expressed as an absolute - time. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload3.html deleted file mode 100644 index 3d42dbd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload3.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -basic_waitable_timer::basic_waitable_timer (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor to set a particular expiry time relative to now. -

-
basic_waitable_timer(
-    asio::io_context & io_context,
-    const duration & expiry_time);
-
-

- This constructor creates a timer and sets the expiry time. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the timer will use to dispatch handlers for any asynchronous - operations performed on the timer. -

-
expiry_time
-

- The expiry time to be used for the timer, relative to now. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload4.html deleted file mode 100644 index 29006c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload4.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_waitable_timer::basic_waitable_timer (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_waitable_timer - from another. -

-
basic_waitable_timer(
-    basic_waitable_timer && other);
-
-

- This constructor moves a timer from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_waitable_timer - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_waitable_timer(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel.html deleted file mode 100644 index cffabdf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_waitable_timer::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - any asynchronous operations that are waiting on the timer. -

-
std::size_t cancel();
-  » more...
-
-

- (Deprecated: Use non-error_code overload.) Cancel any asynchronous operations - that are waiting on the timer. -

-
std::size_t cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel/overload1.html deleted file mode 100644 index 053e93c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel/overload1.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_waitable_timer::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel any asynchronous operations that are waiting on the timer. -

-
std::size_t cancel();
-
-

- This function forces the completion of any pending asynchronous wait - operations against the timer. The handler for each cancelled operation - will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when cancel() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel/overload2.html deleted file mode 100644 index 2764d88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel/overload2.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_waitable_timer::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use non-error_code overload.) Cancel any asynchronous operations - that are waiting on the timer. -

-
std::size_t cancel(
-    asio::error_code & ec);
-
-

- This function forces the completion of any pending asynchronous wait - operations against the timer. The handler for each cancelled operation - will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Remarks -
-

- If the timer has already expired when cancel() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one.html deleted file mode 100644 index 0ccb06a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_waitable_timer::cancel_one - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancels - one asynchronous operation that is waiting on the timer. -

-
std::size_t cancel_one();
-  » more...
-
-

- (Deprecated: Use non-error_code overload.) Cancels one asynchronous operation - that is waiting on the timer. -

-
std::size_t cancel_one(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload1.html deleted file mode 100644 index 8374845..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload1.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -basic_waitable_timer::cancel_one (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancels one asynchronous operation that is waiting on the timer. -

-
std::size_t cancel_one();
-
-

- This function forces the completion of one pending asynchronous wait - operation against the timer. Handlers are cancelled in FIFO order. The - handler for the cancelled operation will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. That is, either - 0 or 1. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when cancel_one() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload2.html deleted file mode 100644 index 9e0da0a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload2.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -basic_waitable_timer::cancel_one (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use non-error_code overload.) Cancels one asynchronous operation - that is waiting on the timer. -

-
std::size_t cancel_one(
-    asio::error_code & ec);
-
-

- This function forces the completion of one pending asynchronous wait - operation against the timer. Handlers are cancelled in FIFO order. The - handler for the cancelled operation will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. That is, either - 0 or 1. -

-
- - Remarks -
-

- If the timer has already expired when cancel_one() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/clock_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/clock_type.html deleted file mode 100644 index a8f2fe0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/clock_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_waitable_timer::clock_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - clock type. -

-
typedef Clock clock_type;
-
-
- - Requirements -
-

- Header: asio/basic_waitable_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/duration.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/duration.html deleted file mode 100644 index 376dc5c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/duration.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_waitable_timer::duration - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - duration type of the clock. -

-
typedef clock_type::duration duration;
-
-
- - Requirements -
-

- Header: asio/basic_waitable_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/executor_type.html deleted file mode 100644 index e828a97..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -basic_waitable_timer::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_waitable_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_after.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_after.html deleted file mode 100644 index 68cad69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_after.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_waitable_timer::expires_after - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the timer's expiry time relative to now. -

-
std::size_t expires_after(
-    const duration & expiry_time);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when expires_after() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at.html deleted file mode 100644 index 88847ce..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_waitable_timer::expires_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use expiry().) Get the timer's expiry time as an absolute - time. -

-
time_point expires_at() const;
-  » more...
-
-

- Set the timer's expiry time as an absolute time. -

-
std::size_t expires_at(
-    const time_point & expiry_time);
-  » more...
-
-

- (Deprecated: Use non-error_code overload.) Set the timer's expiry time - as an absolute time. -

-
std::size_t expires_at(
-    const time_point & expiry_time,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload1.html deleted file mode 100644 index 469bb32..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_waitable_timer::expires_at (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expiry().) Get the timer's expiry time - as an absolute time. -

-
time_point expires_at() const;
-
-

- This function may be used to obtain the timer's current expiry time. - Whether the timer has expired or not does not affect this value. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload2.html deleted file mode 100644 index 4ec752a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload2.html +++ /dev/null @@ -1,102 +0,0 @@ - - - -basic_waitable_timer::expires_at (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the timer's expiry time as an absolute time. -

-
std::size_t expires_at(
-    const time_point & expiry_time);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when expires_at() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload3.html deleted file mode 100644 index 2ae3447..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload3.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -basic_waitable_timer::expires_at (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use non-error_code overload.) Set the timer's expiry time - as an absolute time. -

-
std::size_t expires_at(
-    const time_point & expiry_time,
-    asio::error_code & ec);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Remarks -
-

- If the timer has already expired when expires_at() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now.html deleted file mode 100644 index bc9db71..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -basic_waitable_timer::expires_from_now - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use expiry().) Get the timer's expiry time relative to now. -

-
duration expires_from_now() const;
-  » more...
-
-

- (Deprecated: Use expires_after().) Set the timer's expiry - time relative to now. -

-
std::size_t expires_from_now(
-    const duration & expiry_time);
-  » more...
-
-std::size_t expires_from_now(
-    const duration & expiry_time,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload1.html deleted file mode 100644 index e4d77e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_waitable_timer::expires_from_now (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expiry().) Get the timer's expiry time - relative to now. -

-
duration expires_from_now() const;
-
-

- This function may be used to obtain the timer's current expiry time. - Whether the timer has expired or not does not affect this value. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload2.html deleted file mode 100644 index 3edb3dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload2.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_waitable_timer::expires_from_now (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expires_after().) Set the timer's expiry - time relative to now. -

-
std::size_t expires_from_now(
-    const duration & expiry_time);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when expires_from_now() - is called, then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload3.html deleted file mode 100644 index ba9fb13..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload3.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -basic_waitable_timer::expires_from_now (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expires_after().) Set the timer's expiry - time relative to now. -

-
std::size_t expires_from_now(
-    const duration & expiry_time,
-    asio::error_code & ec);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Remarks -
-

- If the timer has already expired when expires_from_now() - is called, then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expiry.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expiry.html deleted file mode 100644 index b579d3d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expiry.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_waitable_timer::expiry - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the timer's expiry time as an absolute time. -

-
time_point expiry() const;
-
-

- This function may be used to obtain the timer's current expiry time. Whether - the timer has expired or not does not affect this value. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_executor.html deleted file mode 100644 index e989a84..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_waitable_timer::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_io_context.html deleted file mode 100644 index 9ca27af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_waitable_timer::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_io_service.html deleted file mode 100644 index 172f98c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_waitable_timer::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/operator_eq_.html deleted file mode 100644 index 60ce19c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/operator_eq_.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_waitable_timer::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_waitable_timer - from another. -

-
basic_waitable_timer & operator=(
-    basic_waitable_timer && other);
-
-

- This assignment operator moves a timer from one object to another. Cancels - any outstanding asynchronous operations associated with the target object. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_waitable_timer - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the basic_waitable_timer(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/time_point.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/time_point.html deleted file mode 100644 index ee878e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/time_point.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_waitable_timer::time_point - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - time point type of the clock. -

-
typedef clock_type::time_point time_point;
-
-
- - Requirements -
-

- Header: asio/basic_waitable_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/traits_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/traits_type.html deleted file mode 100644 index 6175304..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/traits_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_waitable_timer::traits_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - wait traits type. -

-
typedef WaitTraits traits_type;
-
-
- - Requirements -
-

- Header: asio/basic_waitable_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait.html deleted file mode 100644 index 02a5981..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_waitable_timer::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - a blocking wait on the timer. -

-
void wait();
-  » more...
-
-void wait(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait/overload1.html deleted file mode 100644 index 18fc878..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_waitable_timer::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform a blocking wait on the timer. -

-
void wait();
-
-

- This function is used to wait for the timer to expire. This function - blocks and does not return until the timer has expired. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait/overload2.html deleted file mode 100644 index 6261af2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait/overload2.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_waitable_timer::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform a blocking wait on the timer. -

-
void wait(
-    asio::error_code & ec);
-
-

- This function is used to wait for the timer to expire. This function - blocks and does not return until the timer has expired. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_yield_context.html deleted file mode 100644 index 69cece0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context.html +++ /dev/null @@ -1,171 +0,0 @@ - - - -basic_yield_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Context object the represents the currently executing coroutine. -

-
template<
-    typename Handler>
-class basic_yield_context
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- callee_type -

-
-

- The coroutine callee type, used by the implementation. -

-
-

- caller_type -

-
-

- The coroutine caller type, used by the implementation. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_yield_context -

-
-

- Construct a yield context to represent the specified coroutine. -

Construct a yield context from another yield context - type. -

-
-

- operator[] -

-
-

- Return a yield context that sets the specified error_code. -

-
-

- The basic_yield_context - class is used to represent the currently executing stackful coroutine. A - 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. -

-
- - Requirements -
-

- Header: asio/spawn.hpp -

-

- Convenience header: None -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context.html deleted file mode 100644 index f7db66d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_yield_context::basic_yield_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a yield context to represent the specified coroutine. -

-
basic_yield_context(
-    const detail::weak_ptr< callee_type > & coro,
-    caller_type & ca,
-    Handler & handler);
-  » more...
-
-

- Construct a yield context from another yield context type. -

-
template<
-    typename OtherHandler>
-basic_yield_context(
-    const basic_yield_context< OtherHandler > & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context/overload1.html deleted file mode 100644 index a518f70..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context/overload1.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_yield_context::basic_yield_context (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- 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. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context/overload2.html deleted file mode 100644 index 961566f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context/overload2.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_yield_context::basic_yield_context (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a yield context from another yield context type. -

-
template<
-    typename OtherHandler>
-basic_yield_context(
-    const basic_yield_context< OtherHandler > & other);
-
-

- Requires that OtherHandler be convertible to Handler. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/callee_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/callee_type.html deleted file mode 100644 index 55f2499..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/callee_type.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_yield_context::callee_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -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>
-
-
- - Requirements -
-

- Header: asio/spawn.hpp -

-

- Convenience header: None -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/caller_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/caller_type.html deleted file mode 100644 index 7446abb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/caller_type.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_yield_context::caller_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -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>
-
-
- - Requirements -
-

- Header: asio/spawn.hpp -

-

- Convenience header: None -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/operator_lb__rb_.html b/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/operator_lb__rb_.html deleted file mode 100644 index 298f90f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/operator_lb__rb_.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_yield_context::operator[] - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Return - a yield context that sets the specified error_code. -

-
basic_yield_context operator[](
-    asio::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.
-  }
-  ...
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/bind_executor.html b/Sources/Vendor/asio/doc/asio/reference/bind_executor.html deleted file mode 100644 index 4743ce2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/bind_executor.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -bind_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Associate an object of type T - with an executor of type Executor. -

-
template<
-    typename Executor,
-    typename T>
-executor_binder< typename decay< T >::type, Executor > bind_executor(
-    const Executor & ex,
-    T && t,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-

- Associate an object of type T with an execution context's executor. -

-
template<
-    typename ExecutionContext,
-    typename T>
-executor_binder< typename decay< T >::type, typename ExecutionContext::executor_type > bind_executor(
-    ExecutionContext & ctx,
-    T && t,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/bind_executor/overload1.html b/Sources/Vendor/asio/doc/asio/reference/bind_executor/overload1.html deleted file mode 100644 index 505ec51..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/bind_executor/overload1.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -bind_executor (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Associate an object of type T with an executor of type Executor. -

-
template<
-    typename Executor,
-    typename T>
-executor_binder< typename decay< T >::type, Executor > bind_executor(
-    const Executor & ex,
-    T && t,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/bind_executor/overload2.html b/Sources/Vendor/asio/doc/asio/reference/bind_executor/overload2.html deleted file mode 100644 index e1dfd37..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/bind_executor/overload2.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -bind_executor (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Associate an object of type T with an execution context's - executor. -

-
template<
-    typename ExecutionContext,
-    typename T>
-executor_binder< typename decay< T >::type, typename ExecutionContext::executor_type > bind_executor(
-    ExecutionContext & ctx,
-    T && t,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer.html b/Sources/Vendor/asio/doc/asio/reference/buffer.html deleted file mode 100644 index 2776bfd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer.html +++ /dev/null @@ -1,521 +0,0 @@ - - - -buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-buffer -

-

- -The asio::buffer function is used - to create a buffer object to represent raw memory, an array of POD elements, - a vector of POD elements, or a std::string. -

-

- Create a new modifiable buffer from an existing buffer. -

-
mutable_buffer buffer(
-    const mutable_buffer & b);
-  » more...
-
-mutable_buffer buffer(
-    const mutable_buffer & b,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new non-modifiable buffer from an existing buffer. -

-
const_buffer buffer(
-    const const_buffer & b);
-  » more...
-
-const_buffer buffer(
-    const const_buffer & b,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new modifiable buffer that represents the given memory range. -

-
mutable_buffer buffer(
-    void * data,
-    std::size_t size_in_bytes);
-  » more...
-
-

- Create a new non-modifiable buffer that represents the given memory range. -

-
const_buffer buffer(
-    const void * data,
-    std::size_t size_in_bytes);
-  » more...
-
-

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    PodType (&data)[N]);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    PodType (&data)[N],
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const PodType (&data)[N]);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const PodType (&data)[N],
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    boost::array< PodType, N > & data);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    boost::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    boost::array< const PodType, N > & data);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    boost::array< const PodType, N > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const boost::array< PodType, N > & data);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const boost::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    std::array< PodType, N > & data);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    std::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    std::array< const PodType, N > & data);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    std::array< const PodType, N > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const std::array< PodType, N > & data);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const std::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new modifiable buffer that represents the given POD vector. -

-
template<
-    typename PodType,
-    typename Allocator>
-mutable_buffer buffer(
-    std::vector< PodType, Allocator > & data);
-  » more...
-
-template<
-    typename PodType,
-    typename Allocator>
-mutable_buffer buffer(
-    std::vector< PodType, Allocator > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new non-modifiable buffer that represents the given POD vector. -

-
template<
-    typename PodType,
-    typename Allocator>
-const_buffer buffer(
-    const std::vector< PodType, Allocator > & data);
-  » more...
-
-template<
-    typename PodType,
-    typename Allocator>
-const_buffer buffer(
-    const std::vector< PodType, Allocator > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-mutable_buffer buffer(
-    std::basic_string< Elem, Traits, Allocator > & data);
-  » more...
-
-template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-mutable_buffer buffer(
-    std::basic_string< Elem, Traits, Allocator > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new non-modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-const_buffer buffer(
-    const std::basic_string< Elem, Traits, Allocator > & data);
-  » more...
-
-template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-const_buffer buffer(
-    const std::basic_string< Elem, Traits, Allocator > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new modifiable buffer that represents the given string_view. -

-
template<
-    typename Elem,
-    typename Traits>
-const_buffer buffer(
-    basic_string_view< Elem, Traits > data);
-  » more...
-
-

- Create a new non-modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits>
-const_buffer buffer(
-    basic_string_view< Elem, Traits > data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- A buffer object represents a contiguous region of memory as a 2-tuple consisting - of a pointer and size in bytes. A tuple of the form {void*, size_t} - specifies a mutable (modifiable) region of memory. Similarly, a tuple of - the form {const void*, size_t} specifies a const (non-modifiable) - region of memory. These two forms correspond to the classes mutable_buffer - and const_buffer, - respectively. To mirror C++'s conversion rules, a mutable_buffer - is implicitly convertible to a const_buffer, - and the opposite conversion is not permitted. -

-

- The simplest use case involves reading or writing a single buffer of a specified - size: -

-
sock.send(asio::buffer(data, size));
-
-

- In the above example, the return value of asio::buffer meets - the requirements of the ConstBufferSequence concept so that it may be directly - passed to the socket's write function. A buffer created for modifiable memory - also meets the requirements of the MutableBufferSequence concept. -

-

- An individual buffer may be created from a builtin array, std::vector, std::array - or boost::array of POD elements. This helps prevent buffer overruns by automatically - determining the size of the buffer: -

-
char d1[128];
-size_t bytes_transferred = sock.receive(asio::buffer(d1));
-
-std::vector<char> d2(128);
-bytes_transferred = sock.receive(asio::buffer(d2));
-
-std::array<char, 128> d3;
-bytes_transferred = sock.receive(asio::buffer(d3));
-
-boost::array<char, 128> d4;
-bytes_transferred = sock.receive(asio::buffer(d4));
-
-

- 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. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() and - size() member functions: -

-
asio::mutable_buffer b1 = ...;
-std::size_t s1 = b1.size();
-unsigned char* p1 = static_cast<unsigned char*>(b1.data());
-
-asio::const_buffer b2 = ...;
-std::size_t s2 = b2.size();
-const void* p2 = b2.data();
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-

- For convenience, a buffer_size - function is provided that works with both buffers and buffer sequences (that - is, types meeting the ConstBufferSequence or MutableBufferSequence type requirements). - In this case, the function returns the total size of all buffers in the sequence. -

-
- - Buffer - Copying -
-

- The buffer_copy - function may be used to copy raw bytes between individual buffers and buffer - sequences. -

-

- In particular, when used with the buffer_size - function, the buffer_copy - function can be used to linearise a sequence of buffers. For example: -

-
vector<const_buffer> buffers = ...;
-
-vector<unsigned char> data(asio::buffer_size(buffers));
-asio::buffer_copy(asio::buffer(data), buffers);
-
-

- Note that buffer_copy - is implemented in terms of memcpy, and consequently it cannot - be used to copy between overlapping memory regions. -

-
- - Buffer - Invalidation -
-

- A buffer object does not have any ownership of the memory it refers to. It - is the responsibility of the application to ensure the memory region remains - valid until it is no longer required for an I/O operation. When the memory - is no longer available, the buffer is said to have been invalidated. -

-

- For the asio::buffer overloads that accept an argument of type - std::vector, the buffer objects returned are invalidated by any vector operation - that also invalidates all references, pointers and iterators referring to - the elements in the sequence (C++ Std, 23.2.4) -

-

- For the asio::buffer overloads that accept an argument of type - std::basic_string, the buffer objects returned are invalidated according - to the rules defined for invalidation of references, pointers and iterators - referring to elements of the sequence (C++ Std, 21.3). -

-
- - Buffer - Arithmetic -
-

- Buffer objects may be manipulated using simple arithmetic in a safe way which - helps prevent buffer overruns. Consider an array initialised as follows: -

-
boost::array<char, 6> a = { 'a', 'b', 'c', 'd', 'e' };
-
-

- A buffer object b1 created using: -

-
b1 = asio::buffer(a);
-
-

- represents the entire array, { 'a', 'b', 'c', 'd', 'e' }. An - optional second argument to the asio::buffer function may be - used to limit the size, in bytes, of the buffer: -

-
b2 = asio::buffer(a, 3);
-
-

- such that b2 represents the data { 'a', 'b', 'c' }. - Even if the size argument exceeds the actual size of the array, the size - of the buffer object created will be limited to the array size. -

-

- An offset may be applied to an existing buffer to create a new one: -

-
b3 = b1 + 2;
-
-

- where b3 will set to represent { 'c', 'd', 'e' }. - If the offset exceeds the size of the existing buffer, the newly created - buffer will be empty. -

-

- Both an offset and size may be specified to create a buffer that corresponds - to a specific range of bytes within an existing buffer: -

-
b4 = asio::buffer(b1 + 1, 3);
-
-

- so that b4 will refer to the bytes { 'b', 'c', 'd' }. -

-
- - Buffers and - Scatter-Gather I/O -
-

- To read or write using multiple buffers (i.e. scatter-gather I/O), multiple - buffer objects may be assigned into a container that supports the MutableBufferSequence - (for read) or ConstBufferSequence (for write) concepts: -

-
char d1[128];
-std::vector<char> d2(128);
-boost::array<char, 128> d3;
-
-boost::array<mutable_buffer, 3> bufs1 = {
-  asio::buffer(d1),
-  asio::buffer(d2),
-  asio::buffer(d3) };
-bytes_transferred = sock.receive(bufs1);
-
-std::vector<const_buffer> bufs2;
-bufs2.push_back(asio::buffer(d1));
-bufs2.push_back(asio::buffer(d2));
-bufs2.push_back(asio::buffer(d3));
-bytes_transferred = sock.send(bufs2);
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload1.html deleted file mode 100644 index 8a66c67..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload1.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -buffer (1 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer from an existing buffer. -

-
mutable_buffer buffer(
-    const mutable_buffer & b);
-
-
- - Return - Value -
-

- mutable_buffer(b). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload10.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload10.html deleted file mode 100644 index 48feb11..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload10.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (10 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const PodType (&data)[N],
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    static_cast<const void*>(data),
-    min(N * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload11.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload11.html deleted file mode 100644 index 7f13b8d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload11.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffer (11 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    boost::array< PodType, N > & data);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.data(),
-    data.size() * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload12.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload12.html deleted file mode 100644 index a1d9444..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload12.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (12 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    boost::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.data(),
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload13.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload13.html deleted file mode 100644 index 9d23e8b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload13.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffer (13 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    boost::array< const PodType, N > & data);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    data.size() * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload14.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload14.html deleted file mode 100644 index a266e22..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload14.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (14 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    boost::array< const PodType, N > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload15.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload15.html deleted file mode 100644 index 3518abf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload15.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffer (15 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const boost::array< PodType, N > & data);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    data.size() * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload16.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload16.html deleted file mode 100644 index b7f435c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload16.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (16 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const boost::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload17.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload17.html deleted file mode 100644 index 74f0943..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload17.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffer (17 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    std::array< PodType, N > & data);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.data(),
-    data.size() * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload18.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload18.html deleted file mode 100644 index a6bcc51..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload18.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (18 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    std::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.data(),
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload19.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload19.html deleted file mode 100644 index 2365326..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload19.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffer (19 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    std::array< const PodType, N > & data);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    data.size() * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload2.html deleted file mode 100644 index 8da27a2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -buffer (2 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer from an existing buffer. -

-
mutable_buffer buffer(
-    const mutable_buffer & b,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    b.data(),
-    min(b.size(), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload20.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload20.html deleted file mode 100644 index 846f2ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload20.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (20 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    std::array< const PodType, N > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload21.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload21.html deleted file mode 100644 index 123c280..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload21.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffer (21 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const std::array< PodType, N > & data);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    data.size() * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload22.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload22.html deleted file mode 100644 index f123515..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload22.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (22 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const std::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload23.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload23.html deleted file mode 100644 index 8a5242a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload23.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -buffer (23 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD vector. -

-
template<
-    typename PodType,
-    typename Allocator>
-mutable_buffer buffer(
-    std::vector< PodType, Allocator > & data);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.size() ? &data[0] : 0,
-    data.size() * sizeof(PodType));
-
-
- - Remarks -
-

- The buffer is invalidated by any vector operation that would also invalidate - iterators. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload24.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload24.html deleted file mode 100644 index 078ec6c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload24.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -buffer (24 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD vector. -

-
template<
-    typename PodType,
-    typename Allocator>
-mutable_buffer buffer(
-    std::vector< PodType, Allocator > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.size() ? &data[0] : 0,
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - Remarks -
-

- The buffer is invalidated by any vector operation that would also invalidate - iterators. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload25.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload25.html deleted file mode 100644 index 4a74d09..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload25.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -buffer (25 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD vector. -

-
template<
-    typename PodType,
-    typename Allocator>
-const_buffer buffer(
-    const std::vector< PodType, Allocator > & data);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.size() ? &data[0] : 0,
-    data.size() * sizeof(PodType));
-
-
- - Remarks -
-

- The buffer is invalidated by any vector operation that would also invalidate - iterators. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload26.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload26.html deleted file mode 100644 index 8063564..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload26.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -buffer (26 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD vector. -

-
template<
-    typename PodType,
-    typename Allocator>
-const_buffer buffer(
-    const std::vector< PodType, Allocator > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.size() ? &data[0] : 0,
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - Remarks -
-

- The buffer is invalidated by any vector operation that would also invalidate - iterators. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload27.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload27.html deleted file mode 100644 index e9c54db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload27.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -buffer (27 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-mutable_buffer buffer(
-    std::basic_string< Elem, Traits, Allocator > & data);
-
-
- - Return - Value -
-

- mutable_buffer(data.size() ? &data[0] : 0, data.size() * sizeof(Elem)). -

-
- - Remarks -
-

- The buffer is invalidated by any non-const operation called on the given - string object. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload28.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload28.html deleted file mode 100644 index 691a2cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload28.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -buffer (28 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-mutable_buffer buffer(
-    std::basic_string< Elem, Traits, Allocator > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.size() ? &data[0] : 0,
-    min(data.size() * sizeof(Elem), max_size_in_bytes));
-
-
- - Remarks -
-

- The buffer is invalidated by any non-const operation called on the given - string object. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload29.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload29.html deleted file mode 100644 index 6f89edc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload29.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -buffer (29 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-const_buffer buffer(
-    const std::basic_string< Elem, Traits, Allocator > & data);
-
-
- - Return - Value -
-

- const_buffer(data.data(), data.size() * sizeof(Elem)). -

-
- - Remarks -
-

- The buffer is invalidated by any non-const operation called on the given - string object. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload3.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload3.html deleted file mode 100644 index 98fce12..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload3.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -buffer (3 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer from an existing buffer. -

-
const_buffer buffer(
-    const const_buffer & b);
-
-
- - Return - Value -
-

- const_buffer(b). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload30.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload30.html deleted file mode 100644 index 9b07c53..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload30.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -buffer (30 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-const_buffer buffer(
-    const std::basic_string< Elem, Traits, Allocator > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    min(data.size() * sizeof(Elem), max_size_in_bytes));
-
-
- - Remarks -
-

- The buffer is invalidated by any non-const operation called on the given - string object. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload31.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload31.html deleted file mode 100644 index 0a8317b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload31.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffer (31 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given string_view. -

-
template<
-    typename Elem,
-    typename Traits>
-const_buffer buffer(
-    basic_string_view< Elem, Traits > data);
-
-
- - Return - Value -
-

- mutable_buffer(data.size() ? &data[0] : 0, data.size() * sizeof(Elem)). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload32.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload32.html deleted file mode 100644 index 16479fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload32.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (32 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits>
-const_buffer buffer(
-    basic_string_view< Elem, Traits > data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.size() ? &data[0] : 0,
-    min(data.size() * sizeof(Elem), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload4.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload4.html deleted file mode 100644 index e3ff343..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload4.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -buffer (4 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer from an existing buffer. -

-
const_buffer buffer(
-    const const_buffer & b,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    b.data(),
-    min(b.size(), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload5.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload5.html deleted file mode 100644 index 619d189..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload5.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -buffer (5 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given memory range. -

-
mutable_buffer buffer(
-    void * data,
-    std::size_t size_in_bytes);
-
-
- - Return - Value -
-

- mutable_buffer(data, size_in_bytes). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload6.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload6.html deleted file mode 100644 index bdbbe55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload6.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -buffer (6 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given memory range. -

-
const_buffer buffer(
-    const void * data,
-    std::size_t size_in_bytes);
-
-
- - Return - Value -
-

- const_buffer(data, size_in_bytes). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload7.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload7.html deleted file mode 100644 index eb0852d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload7.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -buffer (7 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    PodType (&data)[N]);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    static_cast<void*>(data),
-    N * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload8.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload8.html deleted file mode 100644 index 9beeec5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload8.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffer (8 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    PodType (&data)[N],
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    static_cast<void*>(data),
-    min(N * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload9.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload9.html deleted file mode 100644 index c250b98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload9.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -buffer (9 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const PodType (&data)[N]);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    static_cast<const void*>(data),
-    N * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_cast.html b/Sources/Vendor/asio/doc/asio/reference/buffer_cast.html deleted file mode 100644 index b2e92fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_cast.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -buffer_cast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: Use the data() - member function.) The asio::buffer_cast function is used to - obtain a pointer to the underlying memory region associated with a buffer. -

-

- Cast a non-modifiable buffer to a specified pointer to POD type. -

-
template<
-    typename PointerToPodType>
-PointerToPodType buffer_cast(
-    const mutable_buffer & b);
-  » more...
-
-template<
-    typename PointerToPodType>
-PointerToPodType buffer_cast(
-    const const_buffer & b);
-  » more...
-
-
- - Examples: -
-

- To access the memory of a non-modifiable buffer, use: -

-
asio::const_buffer b1 = ...;
-const unsigned char* p1 = asio::buffer_cast<const unsigned char*>(b1);
-
-

- To access the memory of a modifiable buffer, use: -

-
asio::mutable_buffer b2 = ...;
-unsigned char* p2 = asio::buffer_cast<unsigned char*>(b2);
-
-

- The asio::buffer_cast function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_cast/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffer_cast/overload1.html deleted file mode 100644 index 1dfa0ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_cast/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffer_cast (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cast a non-modifiable buffer to a specified pointer to POD type. -

-
template<
-    typename PointerToPodType>
-PointerToPodType buffer_cast(
-    const mutable_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_cast/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffer_cast/overload2.html deleted file mode 100644 index 95562f3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_cast/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffer_cast (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cast a non-modifiable buffer to a specified pointer to POD type. -

-
template<
-    typename PointerToPodType>
-PointerToPodType buffer_cast(
-    const const_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_copy.html b/Sources/Vendor/asio/doc/asio/reference/buffer_copy.html deleted file mode 100644 index 3572001..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_copy.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -buffer_copy - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The asio::buffer_copy function - is used to copy bytes from a source buffer (or buffer sequence) to a target - buffer (or buffer sequence). -

-

- Copies bytes from a source buffer sequence to a target buffer sequence. -

-
template<
-    typename MutableBufferSequence,
-    typename ConstBufferSequence>
-std::size_t buffer_copy(
-    const MutableBufferSequence & target,
-    const ConstBufferSequence & source);
-  » more...
-
-

- Copies a limited number of bytes from a source buffer sequence to a target - buffer sequence. -

-
template<
-    typename MutableBufferSequence,
-    typename ConstBufferSequence>
-std::size_t buffer_copy(
-    const MutableBufferSequence & target,
-    const ConstBufferSequence & source,
-    std::size_t max_bytes_to_copy);
-  » more...
-
-

- The buffer_copy function is available in two forms: -

-
    -
  • - A 2-argument form: buffer_copy(target, source) -
  • -
  • - A 3-argument form: buffer_copy(target, source, max_bytes_to_copy) -
  • -
-

- Both forms return the number of bytes actually copied. The number of bytes - copied is the lesser of: -

-
    -
  • - buffer_size(target) -
  • -
  • - buffer_size(source) -
  • -
  • - If specified, max_bytes_to_copy. -
  • -
-

- This prevents buffer overflow, regardless of the buffer sizes used in the - copy operation. -

-

- Note that buffer_copy - is implemented in terms of memcpy, and consequently it cannot - be used to copy between overlapping memory regions. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_copy/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffer_copy/overload1.html deleted file mode 100644 index a0f565f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_copy/overload1.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -buffer_copy (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copies bytes from a source buffer sequence to a target buffer sequence. -

-
template<
-    typename MutableBufferSequence,
-    typename ConstBufferSequence>
-std::size_t buffer_copy(
-    const MutableBufferSequence & target,
-    const ConstBufferSequence & source);
-
-
- - Parameters -
-
-

-
-
target
-

- A modifiable buffer sequence representing the memory regions to which - the bytes will be copied. -

-
source
-

- A non-modifiable buffer sequence representing the memory regions - from which the bytes will be copied. -

-
-
-
- - Return - Value -
-

- The number of bytes copied. -

-
- - Remarks -
-

- The number of bytes copied is the lesser of: -

-
    -
  • - buffer_size(target) -
  • -
  • - buffer_size(source) -
  • -
-

- This function is implemented in terms of memcpy, and consequently - it cannot be used to copy between overlapping memory regions. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_copy/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffer_copy/overload2.html deleted file mode 100644 index 1ecb748..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_copy/overload2.html +++ /dev/null @@ -1,102 +0,0 @@ - - - -buffer_copy (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copies a limited number of bytes from a source buffer sequence to a target - buffer sequence. -

-
template<
-    typename MutableBufferSequence,
-    typename ConstBufferSequence>
-std::size_t buffer_copy(
-    const MutableBufferSequence & target,
-    const ConstBufferSequence & source,
-    std::size_t max_bytes_to_copy);
-
-
- - Parameters -
-
-

-
-
target
-

- A modifiable buffer sequence representing the memory regions to which - the bytes will be copied. -

-
source
-

- A non-modifiable buffer sequence representing the memory regions - from which the bytes will be copied. -

-
max_bytes_to_copy
-

- The maximum number of bytes to be copied. -

-
-
-
- - Return - Value -
-

- The number of bytes copied. -

-
- - Remarks -
-

- The number of bytes copied is the lesser of: -

-
    -
  • - buffer_size(target) -
  • -
  • - buffer_size(source) -
  • -
  • - max_bytes_to_copy -
  • -
-

- This function is implemented in terms of memcpy, and consequently - it cannot be used to copy between overlapping memory regions. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin.html deleted file mode 100644 index 87833c4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -buffer_sequence_begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The asio::buffer_sequence_begin - function returns an iterator pointing to the first element in a buffer sequence. -

-

- Get an iterator to the first element in a buffer sequence. -

-
const mutable_buffer * buffer_sequence_begin(
-    const mutable_buffer & b);
-  » more...
-
-const const_buffer * buffer_sequence_begin(
-    const const_buffer & b);
-  » more...
-
-template<
-    typename C>
-auto buffer_sequence_begin(
-    C & c);
-  » more...
-
-template<
-    typename C>
-auto buffer_sequence_begin(
-    const C & c);
-  » more...
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload1.html deleted file mode 100644 index 7269d10..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffer_sequence_begin (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to the first element in a buffer sequence. -

-
const mutable_buffer * buffer_sequence_begin(
-    const mutable_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload2.html deleted file mode 100644 index f38f31f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffer_sequence_begin (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to the first element in a buffer sequence. -

-
const const_buffer * buffer_sequence_begin(
-    const const_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload3.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload3.html deleted file mode 100644 index 8ab2fde..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload3.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffer_sequence_begin (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to the first element in a buffer sequence. -

-
template<
-    typename C>
-auto buffer_sequence_begin(
-    C & c);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload4.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload4.html deleted file mode 100644 index b52be00..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload4.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffer_sequence_begin (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to the first element in a buffer sequence. -

-
template<
-    typename C>
-auto buffer_sequence_begin(
-    const C & c);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end.html deleted file mode 100644 index aefe569..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -buffer_sequence_end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The asio::buffer_sequence_end - function returns an iterator pointing to one past the end element in a buffer - sequence. -

-

- Get an iterator to one past the end element in a buffer sequence. -

-
const mutable_buffer * buffer_sequence_end(
-    const mutable_buffer & b);
-  » more...
-
-const const_buffer * buffer_sequence_end(
-    const const_buffer & b);
-  » more...
-
-template<
-    typename C>
-auto buffer_sequence_end(
-    C & c);
-  » more...
-
-template<
-    typename C>
-auto buffer_sequence_end(
-    const C & c);
-  » more...
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload1.html deleted file mode 100644 index 825ae24..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffer_sequence_end (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to one past the end element in a buffer sequence. -

-
const mutable_buffer * buffer_sequence_end(
-    const mutable_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload2.html deleted file mode 100644 index 68b385f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffer_sequence_end (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to one past the end element in a buffer sequence. -

-
const const_buffer * buffer_sequence_end(
-    const const_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload3.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload3.html deleted file mode 100644 index c7129ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload3.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffer_sequence_end (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to one past the end element in a buffer sequence. -

-
template<
-    typename C>
-auto buffer_sequence_end(
-    C & c);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload4.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload4.html deleted file mode 100644 index f63d30c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload4.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffer_sequence_end (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to one past the end element in a buffer sequence. -

-
template<
-    typename C>
-auto buffer_sequence_end(
-    const C & c);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/buffer_size.html deleted file mode 100644 index 003e618..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_size.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the total number of bytes in a buffer - sequence. -

-
template<
-    typename BufferSequence>
-std::size_t buffer_size(
-    const BufferSequence & b);
-
-

- The buffer_size function determines the total size of all buffers - in the buffer sequence, as if computed as follows: -

-
size_t total_size = 0;
-auto i = asio::buffer_sequence_begin(buffers);
-auto end = asio::buffer_sequence_end(buffers);
-for (; i != end; ++i)
-{
-  const_buffer b(*i);
-  total_size += b.size();
-}
-return total_size;
-
-

- The BufferSequence template parameter may meet either of the - ConstBufferSequence or MutableBufferSequence type - requirements. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream.html deleted file mode 100644 index b84cdb9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream.html +++ /dev/null @@ -1,387 +0,0 @@ - - - -buffered_read_stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Adds buffering to the read-related operations of a stream. -

-
template<
-    typename Stream>
-class buffered_read_stream :
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- The type of the lowest layer. -

-
-

- next_layer_type -

-
-

- The type of the next layer. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_fill -

-
-

- Start an asynchronous fill. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. The buffer into which the data will - be read must be valid for the lifetime of the asynchronous operation. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. The data being written must be valid - for the lifetime of the asynchronous operation. -

-
-

- buffered_read_stream -

-
-

- Construct, passing the specified argument to initialise the next - layer. -

-
-

- close -

-
-

- Close the stream. -

-
-

- fill -

-
-

- Fill the buffer with some data. Returns the number of bytes placed - in the buffer as a result of the operation. Throws an exception - on failure.

Fill the buffer with some data. Returns - the number of bytes placed in the buffer as a result of the operation, - or 0 if an error occurred. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- in_avail -

-
-

- Determine the amount of data that may be read without blocking. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- next_layer -

-
-

- Get a reference to the next layer. -

-
-

- peek -

-
-

- Peek at the incoming data on the stream. Returns the number of - bytes read. Throws an exception on failure.

Peek - at the incoming data on the stream. Returns the number of bytes - read, or 0 if an error occurred. -

-
-

- read_some -

-
-

- Read some data from the stream. Returns the number of bytes read. - Throws an exception on failure.

Read some data from - the stream. Returns the number of bytes read or 0 if an error occurred. -

-
-

- write_some -

-
-

- Write the given data to the stream. Returns the number of bytes - written. Throws an exception on failure.

Write the - given data to the stream. Returns the number of bytes written, - or 0 if an error occurred. -

-
-
- - Data - Members -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- default_buffer_size -

-
-

- The default buffer size. -

-
-

- The buffered_read_stream - class template can be used to add buffering to the synchronous and asynchronous - read operations of a stream. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/buffered_read_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_fill.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_fill.html deleted file mode 100644 index 83ef723..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_fill.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_read_stream::async_fill - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous fill. -

-
template<
-    typename ReadHandler>
-DEDUCED async_fill(
-    ReadHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_read_some.html deleted file mode 100644 index 211119c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_read_some.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -buffered_read_stream::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. The buffer into which the data will be read must - be valid for the lifetime of the asynchronous operation. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_write_some.html deleted file mode 100644 index d7ea427..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_write_some.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -buffered_read_stream::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. The data being written must be valid for the lifetime - of the asynchronous operation. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream.html deleted file mode 100644 index 46fdd94..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffered_read_stream::buffered_read_stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct, - passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-explicit buffered_read_stream(
-    Arg & a);
-  » more...
-
-template<
-    typename Arg>
-buffered_read_stream(
-    Arg & a,
-    std::size_t buffer_size);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload1.html deleted file mode 100644 index c1b738d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffered_read_stream::buffered_read_stream (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct, passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-buffered_read_stream(
-    Arg & a);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload2.html deleted file mode 100644 index fef88ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload2.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_read_stream::buffered_read_stream (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct, passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-buffered_read_stream(
-    Arg & a,
-    std::size_t buffer_size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close.html deleted file mode 100644 index 9c692d9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -buffered_read_stream::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the stream. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close/overload1.html deleted file mode 100644 index e50347e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_read_stream::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the stream. -

-
void close();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close/overload2.html deleted file mode 100644 index d7c4c95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_read_stream::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the stream. -

-
void close(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/default_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/default_buffer_size.html deleted file mode 100644 index 456b393..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/default_buffer_size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_read_stream::default_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - default buffer size. -

-
static const std::size_t default_buffer_size = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/executor_type.html deleted file mode 100644 index 4923ead..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_read_stream::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef lowest_layer_type::executor_type executor_type;
-
-
- - Requirements -
-

- Header: asio/buffered_read_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill.html deleted file mode 100644 index 6a8aa25..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_read_stream::fill - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Fill the - buffer with some data. Returns the number of bytes placed in the buffer - as a result of the operation. Throws an exception on failure. -

-
std::size_t fill();
-  » more...
-
-

- Fill the buffer with some data. Returns the number of bytes placed in the - buffer as a result of the operation, or 0 if an error occurred. -

-
std::size_t fill(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill/overload1.html deleted file mode 100644 index a69cc8d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_read_stream::fill (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Fill the buffer with some data. Returns the number of bytes placed in - the buffer as a result of the operation. Throws an exception on failure. -

-
std::size_t fill();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill/overload2.html deleted file mode 100644 index 57525ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_read_stream::fill (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Fill the buffer with some data. Returns the number of bytes placed in - the buffer as a result of the operation, or 0 if an error occurred. -

-
std::size_t fill(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_executor.html deleted file mode 100644 index 309c989..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_read_stream::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_io_context.html deleted file mode 100644 index 5784241..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_io_context.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_read_stream::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_io_service.html deleted file mode 100644 index 347fcd6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_io_service.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_read_stream::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail.html deleted file mode 100644 index 5689d54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -buffered_read_stream::in_avail - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the amount of data that may be read without blocking. -

-
std::size_t in_avail();
-  » more...
-
-std::size_t in_avail(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail/overload1.html deleted file mode 100644 index e651d59..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_read_stream::in_avail (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the amount of data that may be read without blocking. -

-
std::size_t in_avail();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail/overload2.html deleted file mode 100644 index 8d39311..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_read_stream::in_avail (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the amount of data that may be read without blocking. -

-
std::size_t in_avail(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer.html deleted file mode 100644 index 33c42f3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -buffered_read_stream::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload1.html deleted file mode 100644 index b142f09..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_read_stream::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload2.html deleted file mode 100644 index efc4644..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_read_stream::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer_type.html deleted file mode 100644 index 4e17885..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_read_stream::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the lowest layer. -

-
typedef next_layer_type::lowest_layer_type lowest_layer_type;
-
-
- - Requirements -
-

- Header: asio/buffered_read_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/next_layer.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/next_layer.html deleted file mode 100644 index 01e4a0a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/next_layer.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_read_stream::next_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the next layer. -

-
next_layer_type & next_layer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/next_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/next_layer_type.html deleted file mode 100644 index 572fc8b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/next_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_read_stream::next_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the next layer. -

-
typedef remove_reference< Stream >::type next_layer_type;
-
-
- - Requirements -
-

- Header: asio/buffered_read_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek.html deleted file mode 100644 index a9e4a44..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_read_stream::peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Peek at - the incoming data on the stream. Returns the number of bytes read. Throws - an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers);
-  » more...
-
-

- Peek at the incoming data on the stream. Returns the number of bytes read, - or 0 if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek/overload1.html deleted file mode 100644 index 146fb4a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_read_stream::peek (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Peek at the incoming data on the stream. Returns the number of bytes - read. Throws an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek/overload2.html deleted file mode 100644 index 7901ecf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_read_stream::peek (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Peek at the incoming data on the stream. Returns the number of bytes - read, or 0 if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some.html deleted file mode 100644 index 63f39bb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_read_stream::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read - some data from the stream. Returns the number of bytes read. Throws an - exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-

- Read some data from the stream. Returns the number of bytes read or 0 if - an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some/overload1.html deleted file mode 100644 index f5f222f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_read_stream::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. Returns the number of bytes read. Throws - an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some/overload2.html deleted file mode 100644 index 20f1c48..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_read_stream::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. Returns the number of bytes read or 0 - if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some.html deleted file mode 100644 index 0924358..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_read_stream::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write - the given data to the stream. Returns the number of bytes written. Throws - an exception on failure. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-

- Write the given data to the stream. Returns the number of bytes written, - or 0 if an error occurred. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some/overload1.html deleted file mode 100644 index 896dbdd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_read_stream::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write the given data to the stream. Returns the number of bytes written. - Throws an exception on failure. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some/overload2.html deleted file mode 100644 index 370ea9f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_read_stream::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write the given data to the stream. Returns the number of bytes written, - or 0 if an error occurred. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream.html deleted file mode 100644 index cf8b424..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream.html +++ /dev/null @@ -1,382 +0,0 @@ - - - -buffered_stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Adds buffering to the read- and write-related operations of a stream. -

-
template<
-    typename Stream>
-class buffered_stream :
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- The type of the lowest layer. -

-
-

- next_layer_type -

-
-

- The type of the next layer. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_fill -

-
-

- Start an asynchronous fill. -

-
-

- async_flush -

-
-

- Start an asynchronous flush. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. The buffer into which the data will - be read must be valid for the lifetime of the asynchronous operation. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. The data being written must be valid - for the lifetime of the asynchronous operation. -

-
-

- buffered_stream -

-
-

- Construct, passing the specified argument to initialise the next - layer. -

-
-

- close -

-
-

- Close the stream. -

-
-

- fill -

-
-

- Fill the buffer with some data. Returns the number of bytes placed - in the buffer as a result of the operation. Throws an exception - on failure.

Fill the buffer with some data. Returns - the number of bytes placed in the buffer as a result of the operation, - or 0 if an error occurred. -

-
-

- flush -

-
-

- Flush all data from the buffer to the next layer. Returns the number - of bytes written to the next layer on the last write operation. - Throws an exception on failure.

Flush all data from - the buffer to the next layer. Returns the number of bytes written - to the next layer on the last write operation, or 0 if an error - occurred. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- in_avail -

-
-

- Determine the amount of data that may be read without blocking. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- next_layer -

-
-

- Get a reference to the next layer. -

-
-

- peek -

-
-

- Peek at the incoming data on the stream. Returns the number of - bytes read. Throws an exception on failure.

Peek - at the incoming data on the stream. Returns the number of bytes - read, or 0 if an error occurred. -

-
-

- read_some -

-
-

- Read some data from the stream. Returns the number of bytes read. - Throws an exception on failure.

Read some data from - the stream. Returns the number of bytes read or 0 if an error occurred. -

-
-

- write_some -

-
-

- Write the given data to the stream. Returns the number of bytes - written. Throws an exception on failure.

Write the - given data to the stream. Returns the number of bytes written, - or 0 if an error occurred. -

-
-

- The buffered_stream - class template can be used to add buffering to the synchronous and asynchronous - read and write operations of a stream. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/buffered_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_fill.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_fill.html deleted file mode 100644 index c5b9d58..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_fill.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_stream::async_fill - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous fill. -

-
template<
-    typename ReadHandler>
-DEDUCED async_fill(
-    ReadHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_flush.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_flush.html deleted file mode 100644 index 330f4f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_flush.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_stream::async_flush - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous flush. -

-
template<
-    typename WriteHandler>
-DEDUCED async_flush(
-    WriteHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_read_some.html deleted file mode 100644 index be6cdb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_read_some.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -buffered_stream::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. The buffer into which the data will be read must - be valid for the lifetime of the asynchronous operation. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_write_some.html deleted file mode 100644 index 72ef642..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_write_some.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -buffered_stream::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. The data being written must be valid for the lifetime - of the asynchronous operation. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream.html deleted file mode 100644 index e953e54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffered_stream::buffered_stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct, - passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-explicit buffered_stream(
-    Arg & a);
-  » more...
-
-template<
-    typename Arg>
-explicit buffered_stream(
-    Arg & a,
-    std::size_t read_buffer_size,
-    std::size_t write_buffer_size);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream/overload1.html deleted file mode 100644 index 0456f93..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffered_stream::buffered_stream (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct, passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-buffered_stream(
-    Arg & a);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream/overload2.html deleted file mode 100644 index 9049c07..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_stream::buffered_stream (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct, passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-buffered_stream(
-    Arg & a,
-    std::size_t read_buffer_size,
-    std::size_t write_buffer_size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close.html deleted file mode 100644 index 77201c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_stream::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close the stream. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close/overload1.html deleted file mode 100644 index 3a34f43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_stream::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the stream. -

-
void close();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close/overload2.html deleted file mode 100644 index 1d5b0c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_stream::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the stream. -

-
void close(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/executor_type.html deleted file mode 100644 index 3bed091..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_stream::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef lowest_layer_type::executor_type executor_type;
-
-
- - Requirements -
-

- Header: asio/buffered_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill.html deleted file mode 100644 index dff3894..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_stream::fill - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Fill the buffer with - some data. Returns the number of bytes placed in the buffer as a result - of the operation. Throws an exception on failure. -

-
std::size_t fill();
-  » more...
-
-

- Fill the buffer with some data. Returns the number of bytes placed in the - buffer as a result of the operation, or 0 if an error occurred. -

-
std::size_t fill(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill/overload1.html deleted file mode 100644 index e75c06c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_stream::fill (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Fill the buffer with some data. Returns the number of bytes placed in - the buffer as a result of the operation. Throws an exception on failure. -

-
std::size_t fill();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill/overload2.html deleted file mode 100644 index a2504b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_stream::fill (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Fill the buffer with some data. Returns the number of bytes placed in - the buffer as a result of the operation, or 0 if an error occurred. -

-
std::size_t fill(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush.html deleted file mode 100644 index e64d80a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffered_stream::flush - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Flush all data - from the buffer to the next layer. Returns the number of bytes written - to the next layer on the last write operation. Throws an exception on failure. -

-
std::size_t flush();
-  » more...
-
-

- Flush all data from the buffer to the next layer. Returns the number of - bytes written to the next layer on the last write operation, or 0 if an - error occurred. -

-
std::size_t flush(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush/overload1.html deleted file mode 100644 index 7b6fac7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_stream::flush (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Flush all data from the buffer to the next layer. Returns the number - of bytes written to the next layer on the last write operation. Throws - an exception on failure. -

-
std::size_t flush();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush/overload2.html deleted file mode 100644 index 0caa5c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffered_stream::flush (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Flush all data from the buffer to the next layer. Returns the number - of bytes written to the next layer on the last write operation, or 0 - if an error occurred. -

-
std::size_t flush(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_executor.html deleted file mode 100644 index cca63ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_stream::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_io_context.html deleted file mode 100644 index d74814c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_io_context.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_stream::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_io_service.html deleted file mode 100644 index 70088bf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_io_service.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_stream::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail.html deleted file mode 100644 index 1b18761..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -buffered_stream::in_avail - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the amount of data that may be read without blocking. -

-
std::size_t in_avail();
-  » more...
-
-std::size_t in_avail(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail/overload1.html deleted file mode 100644 index 6035f6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_stream::in_avail (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the amount of data that may be read without blocking. -

-
std::size_t in_avail();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail/overload2.html deleted file mode 100644 index 01b5534..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_stream::in_avail (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the amount of data that may be read without blocking. -

-
std::size_t in_avail(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer.html deleted file mode 100644 index 4f5a839..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -buffered_stream::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer/overload1.html deleted file mode 100644 index df6ac61..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_stream::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer/overload2.html deleted file mode 100644 index 1ea1b12..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_stream::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer_type.html deleted file mode 100644 index cae9752..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_stream::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the lowest layer. -

-
typedef next_layer_type::lowest_layer_type lowest_layer_type;
-
-
- - Requirements -
-

- Header: asio/buffered_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/next_layer.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/next_layer.html deleted file mode 100644 index 0413c04..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/next_layer.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_stream::next_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a - reference to the next layer. -

-
next_layer_type & next_layer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/next_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/next_layer_type.html deleted file mode 100644 index 82f93cc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/next_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_stream::next_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the next layer. -

-
typedef remove_reference< Stream >::type next_layer_type;
-
-
- - Requirements -
-

- Header: asio/buffered_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek.html deleted file mode 100644 index bedd10f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_stream::peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Peek at the incoming - data on the stream. Returns the number of bytes read. Throws an exception - on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers);
-  » more...
-
-

- Peek at the incoming data on the stream. Returns the number of bytes read, - or 0 if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek/overload1.html deleted file mode 100644 index bca1117..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_stream::peek (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Peek at the incoming data on the stream. Returns the number of bytes - read. Throws an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek/overload2.html deleted file mode 100644 index bcf52e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_stream::peek (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Peek at the incoming data on the stream. Returns the number of bytes - read, or 0 if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some.html deleted file mode 100644 index d86a2c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_stream::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read some - data from the stream. Returns the number of bytes read. Throws an exception - on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-

- Read some data from the stream. Returns the number of bytes read or 0 if - an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some/overload1.html deleted file mode 100644 index c6d1511..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_stream::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. Returns the number of bytes read. Throws - an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some/overload2.html deleted file mode 100644 index 553e57a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_stream::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. Returns the number of bytes read or 0 - if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some.html deleted file mode 100644 index 02c74b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_stream::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write - the given data to the stream. Returns the number of bytes written. Throws - an exception on failure. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-

- Write the given data to the stream. Returns the number of bytes written, - or 0 if an error occurred. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some/overload1.html deleted file mode 100644 index fbb8104..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_stream::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write the given data to the stream. Returns the number of bytes written. - Throws an exception on failure. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some/overload2.html deleted file mode 100644 index 7f74c53..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_stream::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write the given data to the stream. Returns the number of bytes written, - or 0 if an error occurred. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream.html deleted file mode 100644 index 8139095..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream.html +++ /dev/null @@ -1,388 +0,0 @@ - - - -buffered_write_stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Adds buffering to the write-related operations of a stream. -

-
template<
-    typename Stream>
-class buffered_write_stream :
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- The type of the lowest layer. -

-
-

- next_layer_type -

-
-

- The type of the next layer. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_flush -

-
-

- Start an asynchronous flush. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. The buffer into which the data will - be read must be valid for the lifetime of the asynchronous operation. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. The data being written must be valid - for the lifetime of the asynchronous operation. -

-
-

- buffered_write_stream -

-
-

- Construct, passing the specified argument to initialise the next - layer. -

-
-

- close -

-
-

- Close the stream. -

-
-

- flush -

-
-

- Flush all data from the buffer to the next layer. Returns the number - of bytes written to the next layer on the last write operation. - Throws an exception on failure.

Flush all data from - the buffer to the next layer. Returns the number of bytes written - to the next layer on the last write operation, or 0 if an error - occurred. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- in_avail -

-
-

- Determine the amount of data that may be read without blocking. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- next_layer -

-
-

- Get a reference to the next layer. -

-
-

- peek -

-
-

- Peek at the incoming data on the stream. Returns the number of - bytes read. Throws an exception on failure.

Peek - at the incoming data on the stream. Returns the number of bytes - read, or 0 if an error occurred. -

-
-

- read_some -

-
-

- Read some data from the stream. Returns the number of bytes read. - Throws an exception on failure.

Read some data from - the stream. Returns the number of bytes read or 0 if an error occurred. -

-
-

- write_some -

-
-

- Write the given data to the stream. Returns the number of bytes - written. Throws an exception on failure.

Write the - given data to the stream. Returns the number of bytes written, - or 0 if an error occurred and the error handler did not throw. -

-
-
- - Data - Members -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- default_buffer_size -

-
-

- The default buffer size. -

-
-

- The buffered_write_stream - class template can be used to add buffering to the synchronous and asynchronous - write operations of a stream. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/buffered_write_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_flush.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_flush.html deleted file mode 100644 index 35215ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_flush.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_write_stream::async_flush - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous flush. -

-
template<
-    typename WriteHandler>
-DEDUCED async_flush(
-    WriteHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_read_some.html deleted file mode 100644 index 71a207d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_read_some.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -buffered_write_stream::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. The buffer into which the data will be read must - be valid for the lifetime of the asynchronous operation. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_write_some.html deleted file mode 100644 index 8c8a7cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_write_some.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -buffered_write_stream::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. The data being written must be valid for the lifetime - of the asynchronous operation. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream.html deleted file mode 100644 index 3a60507..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffered_write_stream::buffered_write_stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct, - passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-explicit buffered_write_stream(
-    Arg & a);
-  » more...
-
-template<
-    typename Arg>
-buffered_write_stream(
-    Arg & a,
-    std::size_t buffer_size);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload1.html deleted file mode 100644 index 79bde19..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffered_write_stream::buffered_write_stream (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct, passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-buffered_write_stream(
-    Arg & a);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload2.html deleted file mode 100644 index 130e18f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload2.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_write_stream::buffered_write_stream (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct, passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-buffered_write_stream(
-    Arg & a,
-    std::size_t buffer_size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close.html deleted file mode 100644 index 7966c78..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -buffered_write_stream::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the stream. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close/overload1.html deleted file mode 100644 index e48cf15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_write_stream::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the stream. -

-
void close();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close/overload2.html deleted file mode 100644 index 7dc1d42..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_write_stream::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the stream. -

-
void close(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/default_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/default_buffer_size.html deleted file mode 100644 index bb7e466..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/default_buffer_size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_write_stream::default_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - default buffer size. -

-
static const std::size_t default_buffer_size = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/executor_type.html deleted file mode 100644 index 4f3b65c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_write_stream::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef lowest_layer_type::executor_type executor_type;
-
-
- - Requirements -
-

- Header: asio/buffered_write_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush.html deleted file mode 100644 index 18955af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffered_write_stream::flush - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Flush - all data from the buffer to the next layer. Returns the number of bytes - written to the next layer on the last write operation. Throws an exception - on failure. -

-
std::size_t flush();
-  » more...
-
-

- Flush all data from the buffer to the next layer. Returns the number of - bytes written to the next layer on the last write operation, or 0 if an - error occurred. -

-
std::size_t flush(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush/overload1.html deleted file mode 100644 index 6e77690..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_write_stream::flush (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Flush all data from the buffer to the next layer. Returns the number - of bytes written to the next layer on the last write operation. Throws - an exception on failure. -

-
std::size_t flush();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush/overload2.html deleted file mode 100644 index 4562a9f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffered_write_stream::flush (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Flush all data from the buffer to the next layer. Returns the number - of bytes written to the next layer on the last write operation, or 0 - if an error occurred. -

-
std::size_t flush(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_executor.html deleted file mode 100644 index 7545ce0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_write_stream::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_io_context.html deleted file mode 100644 index 8e03bc2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_io_context.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_write_stream::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_io_service.html deleted file mode 100644 index 879e5ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_io_service.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_write_stream::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail.html deleted file mode 100644 index 2753441..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -buffered_write_stream::in_avail - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the amount of data that may be read without blocking. -

-
std::size_t in_avail();
-  » more...
-
-std::size_t in_avail(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail/overload1.html deleted file mode 100644 index c523fda..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_write_stream::in_avail (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the amount of data that may be read without blocking. -

-
std::size_t in_avail();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail/overload2.html deleted file mode 100644 index dc36cd7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_write_stream::in_avail (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the amount of data that may be read without blocking. -

-
std::size_t in_avail(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer.html deleted file mode 100644 index 980f297..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -buffered_write_stream::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload1.html deleted file mode 100644 index 1f7f6f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_write_stream::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload2.html deleted file mode 100644 index 253230c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_write_stream::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer_type.html deleted file mode 100644 index 53b08b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_write_stream::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the lowest layer. -

-
typedef next_layer_type::lowest_layer_type lowest_layer_type;
-
-
- - Requirements -
-

- Header: asio/buffered_write_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/next_layer.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/next_layer.html deleted file mode 100644 index 33863b7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/next_layer.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_write_stream::next_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the next layer. -

-
next_layer_type & next_layer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/next_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/next_layer_type.html deleted file mode 100644 index b148835..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/next_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_write_stream::next_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the next layer. -

-
typedef remove_reference< Stream >::type next_layer_type;
-
-
- - Requirements -
-

- Header: asio/buffered_write_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek.html deleted file mode 100644 index 0d72a37..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_write_stream::peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Peek - at the incoming data on the stream. Returns the number of bytes read. Throws - an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers);
-  » more...
-
-

- Peek at the incoming data on the stream. Returns the number of bytes read, - or 0 if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek/overload1.html deleted file mode 100644 index 6a03a9e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_write_stream::peek (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Peek at the incoming data on the stream. Returns the number of bytes - read. Throws an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek/overload2.html deleted file mode 100644 index a83ea67..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_write_stream::peek (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Peek at the incoming data on the stream. Returns the number of bytes - read, or 0 if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some.html deleted file mode 100644 index c26d3a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_write_stream::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read - some data from the stream. Returns the number of bytes read. Throws an - exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-

- Read some data from the stream. Returns the number of bytes read or 0 if - an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some/overload1.html deleted file mode 100644 index 0f4ac08..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_write_stream::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. Returns the number of bytes read. Throws - an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some/overload2.html deleted file mode 100644 index 5bd21a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_write_stream::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. Returns the number of bytes read or 0 - if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some.html deleted file mode 100644 index 71a3c25..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_write_stream::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write - the given data to the stream. Returns the number of bytes written. Throws - an exception on failure. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-

- Write the given data to the stream. Returns the number of bytes written, - or 0 if an error occurred and the error handler did not throw. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some/overload1.html deleted file mode 100644 index 8f6a2fe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_write_stream::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write the given data to the stream. Returns the number of bytes written. - Throws an exception on failure. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some/overload2.html deleted file mode 100644 index d5f4c0f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_write_stream::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write the given data to the stream. Returns the number of bytes written, - or 0 if an error occurred and the error handler did not throw. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_begin.html b/Sources/Vendor/asio/doc/asio/reference/buffers_begin.html deleted file mode 100644 index a7eddcc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_begin.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -buffers_begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an iterator representing - the beginning of the buffers' data. -

-
template<
-    typename BufferSequence>
-buffers_iterator< BufferSequence > buffers_begin(
-    const BufferSequence & buffers);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_end.html b/Sources/Vendor/asio/doc/asio/reference/buffers_end.html deleted file mode 100644 index b254600..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_end.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -buffers_end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an iterator representing the - end of the buffers' data. -

-
template<
-    typename BufferSequence>
-buffers_iterator< BufferSequence > buffers_end(
-    const BufferSequence & buffers);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator.html deleted file mode 100644 index dcc5926..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator.html +++ /dev/null @@ -1,404 +0,0 @@ - - - -buffers_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A random access iterator over the bytes in a buffer sequence. -

-
template<
-    typename BufferSequence,
-    typename ByteType = char>
-class buffers_iterator
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- The type used for the distance between two iterators. -

-
-

- iterator_category -

-
-

- The iterator category. -

-
-

- pointer -

-
-

- The type of the result of applying operator->() to the iterator. -

-
-

- reference -

-
-

- The type of the result of applying operator*() to the iterator. -

-
-

- value_type -

-
-

- The type of the value pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- begin -

-
-

- Construct an iterator representing the beginning of the buffers' - data. -

-
-

- buffers_iterator -

-
-

- Default constructor. Creates an iterator in an undefined state. -

-
-

- end -

-
-

- Construct an iterator representing the end of the buffers' data. -

-
-

- operator * -

-
-

- Dereference an iterator. -

-
-

- operator++ -

-
-

- Increment operator (prefix).

Increment operator (postfix). -

-
-

- operator+= -

-
-

- Addition operator. -

-
-

- operator-- -

-
-

- Decrement operator (prefix).

Decrement operator (postfix). -

-
-

- operator-= -

-
-

- Subtraction operator. -

-
-

- operator-> -

-
-

- Dereference an iterator. -

-
-

- operator[] -

-
-

- Access an individual element. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Test two iterators for inequality. -

-
-

- operator+ -

-
-

- Addition operator. -

-
-

- operator- -

-
-

- Subtraction operator. -

-
-

- operator< -

-
-

- Compare two iterators. -

-
-

- operator<= -

-
-

- Compare two iterators. -

-
-

- operator== -

-
-

- Test two iterators for equality. -

-
-

- operator> -

-
-

- Compare two iterators. -

-
-

- operator>= -

-
-

- Compare two iterators. -

-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/begin.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/begin.html deleted file mode 100644 index 746715d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/begin.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffers_iterator::begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an - iterator representing the beginning of the buffers' data. -

-
static buffers_iterator begin(
-    const BufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/buffers_iterator.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/buffers_iterator.html deleted file mode 100644 index 3b4fed4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/buffers_iterator.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffers_iterator::buffers_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. Creates an iterator in an undefined state. -

-
buffers_iterator();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/difference_type.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/difference_type.html deleted file mode 100644 index ff8e13d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/difference_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffers_iterator::difference_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used for the distance between two iterators. -

-
typedef std::ptrdiff_t difference_type;
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/end.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/end.html deleted file mode 100644 index a7e1f5e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/end.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffers_iterator::end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an iterator - representing the end of the buffers' data. -

-
static buffers_iterator end(
-    const BufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/iterator_category.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/iterator_category.html deleted file mode 100644 index 797af77..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/iterator_category.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffers_iterator::iterator_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - iterator category. -

-
typedef std::random_access_iterator_tag iterator_category;
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator__star_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator__star_.html deleted file mode 100644 index e0a9c45..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator__star_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffers_iterator::operator * - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference - an iterator. -

-
reference operator *() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_arrow_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_arrow_.html deleted file mode 100644 index 80133b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_arrow_.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffers_iterator::operator-> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference - an iterator. -

-
pointer operator->() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_eq__eq_.html deleted file mode 100644 index 2c6d4ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffers_iterator::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - two iterators for equality. -

-
friend bool operator==(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_gt_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_gt_.html deleted file mode 100644 index 3406ae5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_gt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffers_iterator::operator> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two iterators. -

-
friend bool operator>(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_gt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_gt__eq_.html deleted file mode 100644 index 377435a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_gt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffers_iterator::operator>= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two iterators. -

-
friend bool operator>=(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lb__rb_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lb__rb_.html deleted file mode 100644 index 8325084..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lb__rb_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffers_iterator::operator[] - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Access - an individual element. -

-
reference operator[](
-    std::ptrdiff_t difference) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lt_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lt_.html deleted file mode 100644 index 303a806..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffers_iterator::operator< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two iterators. -

-
friend bool operator<(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lt__eq_.html deleted file mode 100644 index 4e856bf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffers_iterator::operator<= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two iterators. -

-
friend bool operator<=(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_.html deleted file mode 100644 index 592412f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -buffers_iterator::operator- - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Subtraction - operator. -

-
friend buffers_iterator operator-(
-    const buffers_iterator & iter,
-    std::ptrdiff_t difference);
-  » more...
-
-friend std::ptrdiff_t operator-(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload1.html deleted file mode 100644 index cca8963..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload1.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffers_iterator::operator- (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Subtraction operator. -

-
friend buffers_iterator operator-(
-    const buffers_iterator & iter,
-    std::ptrdiff_t difference);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload2.html deleted file mode 100644 index e1f7473..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload2.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffers_iterator::operator- (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Subtraction operator. -

-
friend std::ptrdiff_t operator-(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__eq_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__eq_.html deleted file mode 100644 index 2342bbb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffers_iterator::operator-= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Subtraction - operator. -

-
buffers_iterator & operator-=(
-    std::ptrdiff_t difference);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_.html deleted file mode 100644 index 44aa849..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -buffers_iterator::operator-- - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Decrement - operator (prefix). -

-
buffers_iterator & operator--();
-  » more...
-
-

- Decrement operator (postfix). -

-
buffers_iterator operator--(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload1.html deleted file mode 100644 index 5ce91ca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffers_iterator::operator-- (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Decrement operator (prefix). -

-
buffers_iterator & operator--();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload2.html deleted file mode 100644 index 32c0624..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffers_iterator::operator-- (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Decrement operator (postfix). -

-
buffers_iterator operator--(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_not__eq_.html deleted file mode 100644 index 7d0c28f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffers_iterator::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - two iterators for inequality. -

-
friend bool operator!=(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_.html deleted file mode 100644 index a7296e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -buffers_iterator::operator+ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Addition - operator. -

-
friend buffers_iterator operator+(
-    const buffers_iterator & iter,
-    std::ptrdiff_t difference);
-  » more...
-
-friend buffers_iterator operator+(
-    std::ptrdiff_t difference,
-    const buffers_iterator & iter);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload1.html deleted file mode 100644 index 465a1f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload1.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffers_iterator::operator+ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Addition operator. -

-
friend buffers_iterator operator+(
-    const buffers_iterator & iter,
-    std::ptrdiff_t difference);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload2.html deleted file mode 100644 index c427326..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload2.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffers_iterator::operator+ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Addition operator. -

-
friend buffers_iterator operator+(
-    std::ptrdiff_t difference,
-    const buffers_iterator & iter);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__eq_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__eq_.html deleted file mode 100644 index bb24992..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffers_iterator::operator+= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Addition - operator. -

-
buffers_iterator & operator+=(
-    std::ptrdiff_t difference);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_.html deleted file mode 100644 index 3e9b225..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -buffers_iterator::operator++ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Increment - operator (prefix). -

-
buffers_iterator & operator++();
-  » more...
-
-

- Increment operator (postfix). -

-
buffers_iterator operator++(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload1.html deleted file mode 100644 index 478c70c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffers_iterator::operator++ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Increment operator (prefix). -

-
buffers_iterator & operator++();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload2.html deleted file mode 100644 index d8355b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffers_iterator::operator++ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Increment operator (postfix). -

-
buffers_iterator operator++(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/pointer.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/pointer.html deleted file mode 100644 index 7e4f7c3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/pointer.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -buffers_iterator::pointer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - of the result of applying operator->() to the iterator. -

-
typedef const_or_non_const_ByteType * pointer;
-
-

- If the buffer sequence stores buffer objects that are convertible to mutable_buffer, - this is a pointer to a non-const ByteType. Otherwise, a pointer to a const - ByteType. -

-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/reference.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/reference.html deleted file mode 100644 index 92ff23a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/reference.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -buffers_iterator::reference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - of the result of applying operator*() to the iterator. -

-
typedef const_or_non_const_ByteType & reference;
-
-

- If the buffer sequence stores buffer objects that are convertible to mutable_buffer, - this is a reference to a non-const ByteType. Otherwise, a reference to - a const ByteType. -

-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/value_type.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/value_type.html deleted file mode 100644 index d500d7b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/value_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffers_iterator::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the value pointed to by the iterator. -

-
typedef ByteType value_type;
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect.html b/Sources/Vendor/asio/doc/asio/reference/connect.html deleted file mode 100644 index e307cca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect.html +++ /dev/null @@ -1,195 +0,0 @@ - - - -connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The connect function is a composed - operation that establishes a socket connection by trying each endpoint in - a sequence. -

-

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename Protocol,
-    typename EndpointSequence>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    asio::error_code & ec,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-  » more...
-
-

- (Deprecated: Use range overload.) Establishes a socket connection by trying - each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-  » more...
-
-template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    asio::error_code & ec,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-  » more...
-
-

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end);
-  » more...
-
-template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename ConnectCondition>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    ConnectCondition connect_condition,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename ConnectCondition>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    ConnectCondition connect_condition,
-    asio::error_code & ec,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-  » more...
-
-

- (Deprecated: Use range overload.) Establishes a socket connection by trying - each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    ConnectCondition connect_condition,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-  » more...
-
-template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    ConnectCondition connect_condition,
-    asio::error_code & ec,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-  » more...
-
-

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    ConnectCondition connect_condition);
-  » more...
-
-template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    ConnectCondition connect_condition,
-    asio::error_code & ec);
-  » more...
-
-
- - Requirements -
-

- Header: asio/connect.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload1.html deleted file mode 100644 index ec4f0f3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload1.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -connect (1 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
endpoints
-

- A sequence of endpoints. -

-
-
-
- - Return - Value -
-

- The successfully connected endpoint. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the sequence is empty, the associated error_code - is asio::error::not_found. Otherwise, contains the error - from the last connection attempt. -

-
-
-
- - Example -
-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::socket s(io_context);
-asio::connect(s, r.resolve(q));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload10.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload10.html deleted file mode 100644 index efa8761..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload10.html +++ /dev/null @@ -1,119 +0,0 @@ - - - -connect (10 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use range overload.) Establishes a socket connection by trying - each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    ConnectCondition connect_condition,
-    asio::error_code & ec,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
ec
-

- Set to indicate what error occurred, if any. If the sequence is empty, - set to asio::error::not_found. Otherwise, contains the - error from the last connection attempt. -

-
-
-
- - Return - Value -
-

- On success, an iterator denoting the successfully connected endpoint. Otherwise, - the end iterator. -

-
- - Remarks -
-

- This overload assumes that a default constructed object of type Iterator - represents the end of the sequence. This is a valid assumption for iterator - types such as asio::ip::tcp::resolver::iterator. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload11.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload11.html deleted file mode 100644 index 94d39ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload11.html +++ /dev/null @@ -1,151 +0,0 @@ - - - -connect (11 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    ConnectCondition connect_condition);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
end
-

- An iterator pointing to the end of a sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
-
-
- - Return - Value -
-

- An iterator denoting the successfully connected endpoint. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the sequence is empty, the associated error_code - is asio::error::not_found. Otherwise, contains the error - from the last connection attempt. -

-
-
-
- - Example -
-

- The following connect condition function object can be used to output information - about the individual connection attempts: -

-
struct my_connect_condition
-{
-  bool operator()(
-      const asio::error_code& ec,
-      const::tcp::endpoint& next)
-  {
-    if (ec) std::cout << "Error: " << ec.message() << std::endl;
-    std::cout << "Trying: " << next << std::endl;
-    return true;
-  }
-};
-
-

- It would be used with the asio::connect function as follows: -

-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::resolver::results_type e = r.resolve(q);
-tcp::socket s(io_context);
-tcp::resolver::results_type::iterator i = asio::connect(
-    s, e.begin(), e.end(), my_connect_condition());
-std::cout << "Connected to: " << i->endpoint() << std::endl;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload12.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload12.html deleted file mode 100644 index f65faae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload12.html +++ /dev/null @@ -1,152 +0,0 @@ - - - -connect (12 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    ConnectCondition connect_condition,
-    asio::error_code & ec);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
end
-

- An iterator pointing to the end of a sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
ec
-

- Set to indicate what error occurred, if any. If the sequence is empty, - set to asio::error::not_found. Otherwise, contains the - error from the last connection attempt. -

-
-
-
- - Return - Value -
-

- On success, an iterator denoting the successfully connected endpoint. Otherwise, - the end iterator. -

-
- - Example -
-

- The following connect condition function object can be used to output information - about the individual connection attempts: -

-
struct my_connect_condition
-{
-  bool operator()(
-      const asio::error_code& ec,
-      const::tcp::endpoint& next)
-  {
-    if (ec) std::cout << "Error: " << ec.message() << std::endl;
-    std::cout << "Trying: " << next << std::endl;
-    return true;
-  }
-};
-
-

- It would be used with the asio::connect function as follows: -

-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::resolver::results_type e = r.resolve(q);
-tcp::socket s(io_context);
-asio::error_code ec;
-tcp::resolver::results_type::iterator i = asio::connect(
-    s, e.begin(), e.end(), my_connect_condition());
-if (ec)
-{
-  // An error occurred.
-}
-else
-{
-  std::cout << "Connected to: " << i->endpoint() << std::endl;
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload2.html deleted file mode 100644 index 5906c0f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload2.html +++ /dev/null @@ -1,102 +0,0 @@ - - - -connect (2 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    asio::error_code & ec,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
endpoints
-

- A sequence of endpoints. -

-
ec
-

- Set to indicate what error occurred, if any. If the sequence is empty, - set to asio::error::not_found. Otherwise, contains the - error from the last connection attempt. -

-
-
-
- - Return - Value -
-

- On success, the successfully connected endpoint. Otherwise, a default-constructed - endpoint. -

-
- - Example -
-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::socket s(io_context);
-asio::error_code ec;
-asio::connect(s, r.resolve(q), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload3.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload3.html deleted file mode 100644 index fc9a2bb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload3.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -connect (3 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use range overload.) Establishes a socket connection by trying - each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
-
-
- - Return - Value -
-

- On success, an iterator denoting the successfully connected endpoint. Otherwise, - the end iterator. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the sequence is empty, the associated error_code - is asio::error::not_found. Otherwise, contains the error - from the last connection attempt. -

-
-
-
- - Remarks -
-

- This overload assumes that a default constructed object of type Iterator - represents the end of the sequence. This is a valid assumption for iterator - types such as asio::ip::tcp::resolver::iterator. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload4.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload4.html deleted file mode 100644 index fb4e9ac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload4.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -connect (4 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use range overload.) Establishes a socket connection by trying - each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    asio::error_code & ec,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
ec
-

- Set to indicate what error occurred, if any. If the sequence is empty, - set to asio::error::not_found. Otherwise, contains the - error from the last connection attempt. -

-
-
-
- - Return - Value -
-

- On success, an iterator denoting the successfully connected endpoint. Otherwise, - the end iterator. -

-
- - Remarks -
-

- This overload assumes that a default constructed object of type Iterator - represents the end of the sequence. This is a valid assumption for iterator - types such as asio::ip::tcp::resolver::iterator. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload5.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload5.html deleted file mode 100644 index 0d51137..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload5.html +++ /dev/null @@ -1,109 +0,0 @@ - - - -connect (5 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
end
-

- An iterator pointing to the end of a sequence of endpoints. -

-
-
-
- - Return - Value -
-

- An iterator denoting the successfully connected endpoint. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the sequence is empty, the associated error_code - is asio::error::not_found. Otherwise, contains the error - from the last connection attempt. -

-
-
-
- - Example -
-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::resolver::results_type e = r.resolve(q);
-tcp::socket s(io_context);
-asio::connect(s, e.begin(), e.end());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload6.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload6.html deleted file mode 100644 index 54bb471..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload6.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -connect (6 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    asio::error_code & ec);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
end
-

- An iterator pointing to the end of a sequence of endpoints. -

-
ec
-

- Set to indicate what error occurred, if any. If the sequence is empty, - set to asio::error::not_found. Otherwise, contains the - error from the last connection attempt. -

-
-
-
- - Return - Value -
-

- On success, an iterator denoting the successfully connected endpoint. Otherwise, - the end iterator. -

-
- - Example -
-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::resolver::results_type e = r.resolve(q);
-tcp::socket s(io_context);
-asio::error_code ec;
-asio::connect(s, e.begin(), e.end(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload7.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload7.html deleted file mode 100644 index af6cd75..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload7.html +++ /dev/null @@ -1,146 +0,0 @@ - - - -connect (7 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename ConnectCondition>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    ConnectCondition connect_condition,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
endpoints
-

- A sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
-
-
- - Return - Value -
-

- The successfully connected endpoint. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the sequence is empty, the associated error_code - is asio::error::not_found. Otherwise, contains the error - from the last connection attempt. -

-
-
-
- - Example -
-

- The following connect condition function object can be used to output information - about the individual connection attempts: -

-
struct my_connect_condition
-{
-  bool operator()(
-      const asio::error_code& ec,
-      const::tcp::endpoint& next)
-  {
-    if (ec) std::cout << "Error: " << ec.message() << std::endl;
-    std::cout << "Trying: " << next << std::endl;
-    return true;
-  }
-};
-
-

- It would be used with the asio::connect function as follows: -

-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::socket s(io_context);
-tcp::endpoint e = asio::connect(s,
-    r.resolve(q), my_connect_condition());
-std::cout << "Connected to: " << e << std::endl;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload8.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload8.html deleted file mode 100644 index 89a442b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload8.html +++ /dev/null @@ -1,147 +0,0 @@ - - - -connect (8 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename ConnectCondition>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    ConnectCondition connect_condition,
-    asio::error_code & ec,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
endpoints
-

- A sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
ec
-

- Set to indicate what error occurred, if any. If the sequence is empty, - set to asio::error::not_found. Otherwise, contains the - error from the last connection attempt. -

-
-
-
- - Return - Value -
-

- On success, the successfully connected endpoint. Otherwise, a default-constructed - endpoint. -

-
- - Example -
-

- The following connect condition function object can be used to output information - about the individual connection attempts: -

-
struct my_connect_condition
-{
-  bool operator()(
-      const asio::error_code& ec,
-      const::tcp::endpoint& next)
-  {
-    if (ec) std::cout << "Error: " << ec.message() << std::endl;
-    std::cout << "Trying: " << next << std::endl;
-    return true;
-  }
-};
-
-

- It would be used with the asio::connect function as follows: -

-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::socket s(io_context);
-asio::error_code ec;
-tcp::endpoint e = asio::connect(s,
-    r.resolve(q), my_connect_condition(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-else
-{
-  std::cout << "Connected to: " << e << std::endl;
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload9.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload9.html deleted file mode 100644 index aa639cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload9.html +++ /dev/null @@ -1,127 +0,0 @@ - - - -connect (9 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use range overload.) Establishes a socket connection by trying - each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    ConnectCondition connect_condition,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
-
-
- - Return - Value -
-

- On success, an iterator denoting the successfully connected endpoint. Otherwise, - the end iterator. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the sequence is empty, the associated error_code - is asio::error::not_found. Otherwise, contains the error - from the last connection attempt. -

-
-
-
- - Remarks -
-

- This overload assumes that a default constructed object of type Iterator - represents the end of the sequence. This is a valid assumption for iterator - types such as asio::ip::tcp::resolver::iterator. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer.html deleted file mode 100644 index 1eeb564..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer.html +++ /dev/null @@ -1,184 +0,0 @@ - - - -const_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Holds a buffer that cannot be modified. -

-
class const_buffer
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range.

Construct a non-modifiable - buffer from a modifiable one. -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new non-modifiable buffer that is offset from the start - of another. -

-
-

- The const_buffer - class provides a safe representation of a buffer that cannot be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() and - size() member functions: -

-
asio::const_buffer b1 = ...;
-std::size_t s1 = b1.size();
-const unsigned char* p1 = static_cast<const unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer.html deleted file mode 100644 index 474032f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -const_buffer::const_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an empty buffer. -

-
const_buffer();
-  » more...
-
-

- Construct a buffer to represent a given memory range. -

-
const_buffer(
-    const void * data,
-    std::size_t size);
-  » more...
-
-

- Construct a non-modifiable buffer from a modifiable one. -

-
const_buffer(
-    const mutable_buffer & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload1.html deleted file mode 100644 index 78cc1df..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -const_buffer::const_buffer (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an empty buffer. -

-
const_buffer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload2.html deleted file mode 100644 index 8fb7a4d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -const_buffer::const_buffer (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a buffer to represent a given memory range. -

-
const_buffer(
-    const void * data,
-    std::size_t size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload3.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload3.html deleted file mode 100644 index 3e4cbfc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -const_buffer::const_buffer (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a non-modifiable buffer from a modifiable one. -

-
const_buffer(
-    const mutable_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/data.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/data.html deleted file mode 100644 index 1ac727f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/data.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -const_buffer::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a pointer to the beginning - of the memory range. -

-
const void * data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_.html deleted file mode 100644 index 7be1b2d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -const_buffer::operator+ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create a - new non-modifiable buffer that is offset from the start of another. -

-
const_buffer operator+(
-    const const_buffer & b,
-    std::size_t n);
-  » more...
-
-const_buffer operator+(
-    std::size_t n,
-    const const_buffer & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_/overload1.html deleted file mode 100644 index 4bc77b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -const_buffer::operator+ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that is offset from the start of another. -

-
const_buffer operator+(
-    const const_buffer & b,
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_/overload2.html deleted file mode 100644 index 9a3d39f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -const_buffer::operator+ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that is offset from the start of another. -

-
const_buffer operator+(
-    std::size_t n,
-    const const_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus__eq_.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus__eq_.html deleted file mode 100644 index 95d3877..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus__eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -const_buffer::operator+= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move - the start of the buffer by the specified number of bytes. -

-
const_buffer & operator+=(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/size.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/size.html deleted file mode 100644 index c6e39d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -const_buffer::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the size of the memory - range. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1.html deleted file mode 100644 index e8c7ddc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1.html +++ /dev/null @@ -1,236 +0,0 @@ - - - -const_buffers_1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use const_buffer.) - Adapts a single non-modifiable buffer so that it meets the requirements of - the ConstBufferSequence concept. -

-
class const_buffers_1 :
-  public const_buffer
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_iterator -

-
-

- A random-access iterator type that may be used to read elements. -

-
-

- value_type -

-
-

- The type for each element in the list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- begin -

-
-

- Get a random-access iterator to the first element. -

-
-

- const_buffers_1 -

-
-

- Construct to represent a given memory range.

Construct - to represent a single non-modifiable buffer. -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- end -

-
-

- Get a random-access iterator for one past the last element. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new non-modifiable buffer that is offset from the start - of another. -

-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/begin.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/begin.html deleted file mode 100644 index 7dbe70a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/begin.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -const_buffers_1::begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a random-access - iterator to the first element. -

-
const_iterator begin() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1.html deleted file mode 100644 index 5a4241c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -const_buffers_1::const_buffers_1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - to represent a given memory range. -

-
const_buffers_1(
-    const void * data,
-    std::size_t size);
-  » more...
-
-

- Construct to represent a single non-modifiable buffer. -

-
explicit const_buffers_1(
-    const const_buffer & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload1.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload1.html deleted file mode 100644 index 08185e4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -const_buffers_1::const_buffers_1 (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct to represent a given memory range. -

-
const_buffers_1(
-    const void * data,
-    std::size_t size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload2.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload2.html deleted file mode 100644 index a44b9c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -const_buffers_1::const_buffers_1 (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct to represent a single non-modifiable buffer. -

-
const_buffers_1(
-    const const_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_iterator.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_iterator.html deleted file mode 100644 index 2bfba09..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_iterator.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -const_buffers_1::const_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A - random-access iterator type that may be used to read elements. -

-
typedef const const_buffer * const_iterator;
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/data.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/data.html deleted file mode 100644 index 6a1e5d2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/data.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -const_buffers_1::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from const_buffer. -

-

- -Get a pointer to - the beginning of the memory range. -

-
const void * data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/end.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/end.html deleted file mode 100644 index c7facee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/end.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -const_buffers_1::end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a random-access - iterator for one past the last element. -

-
const_iterator end() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_.html deleted file mode 100644 index 210cfcf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -const_buffers_1::operator+ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - a new non-modifiable buffer that is offset from the start of another. -

-
const_buffer operator+(
-    const const_buffer & b,
-    std::size_t n);
-  » more...
-
-const_buffer operator+(
-    std::size_t n,
-    const const_buffer & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload1.html deleted file mode 100644 index 70811ac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -const_buffers_1::operator+ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from const_buffer. -

-

- Create a new non-modifiable buffer that is offset from the start of another. -

-
const_buffer operator+(
-    const const_buffer & b,
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload2.html deleted file mode 100644 index 71453a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -const_buffers_1::operator+ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from const_buffer. -

-

- Create a new non-modifiable buffer that is offset from the start of another. -

-
const_buffer operator+(
-    std::size_t n,
-    const const_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus__eq_.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus__eq_.html deleted file mode 100644 index 8618fba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus__eq_.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -const_buffers_1::operator+= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from const_buffer. -

-

- -Move - the start of the buffer by the specified number of bytes. -

-
const_buffer & operator+=(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/size.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/size.html deleted file mode 100644 index 697281b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/size.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -const_buffers_1::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from const_buffer. -

-

- -Get the size of the - memory range. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/value_type.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/value_type.html deleted file mode 100644 index 17e2d0f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/value_type.html +++ /dev/null @@ -1,186 +0,0 @@ - - - -const_buffers_1::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - for each element in the list of buffers. -

-
typedef const_buffer value_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range.

Construct a non-modifiable - buffer from a modifiable one. -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new non-modifiable buffer that is offset from the start - of another. -

-
-

- The const_buffer - class provides a safe representation of a buffer that cannot be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() - and size() member functions: -

-
asio::const_buffer b1 = ...;
-std::size_t s1 = b1.size();
-const unsigned char* p1 = static_cast<const unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/coroutine.html b/Sources/Vendor/asio/doc/asio/reference/coroutine.html deleted file mode 100644 index c669e0f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/coroutine.html +++ /dev/null @@ -1,427 +0,0 @@ - - - -coroutine - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides support for implementing stackless coroutines. -

-
class coroutine
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- coroutine -

-
-

- Constructs a coroutine in its initial state. -

-
-

- is_child -

-
-

- Returns true if the coroutine is the child of a fork. -

-
-

- is_complete -

-
-

- Returns true if the coroutine has reached its terminal state. -

-
-

- 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. -

-
- - 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 <asio/yield.hpp>
-
-

- and may conversely be undefined as follows: -

-
#include <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_context_));
-    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_context::post(). -

-
- - 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: -

-
    -
  • - ASIO_CORO_REENTER instead of reenter -
  • -
  • - ASIO_CORO_YIELD instead of yield -
  • -
  • - ASIO_CORO_FORK instead of fork -
  • -
-
- - Requirements -
-

- Header: asio/coroutine.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/coroutine/coroutine.html b/Sources/Vendor/asio/doc/asio/reference/coroutine/coroutine.html deleted file mode 100644 index 17f8574..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/coroutine/coroutine.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -coroutine::coroutine - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructs a coroutine - in its initial state. -

-
coroutine();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/coroutine/is_child.html b/Sources/Vendor/asio/doc/asio/reference/coroutine/is_child.html deleted file mode 100644 index 460a2e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/coroutine/is_child.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -coroutine::is_child - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Returns true if the coroutine - is the child of a fork. -

-
bool is_child() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/coroutine/is_complete.html b/Sources/Vendor/asio/doc/asio/reference/coroutine/is_complete.html deleted file mode 100644 index 5caf496..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/coroutine/is_complete.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -coroutine::is_complete - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Returns true if - the coroutine has reached its terminal state. -

-
bool is_complete() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/coroutine/is_parent.html b/Sources/Vendor/asio/doc/asio/reference/coroutine/is_parent.html deleted file mode 100644 index 478ab40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/coroutine/is_parent.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -coroutine::is_parent - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Returns true if the - coroutine is the parent of a fork. -

-
bool is_parent() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/deadline_timer.html b/Sources/Vendor/asio/doc/asio/reference/deadline_timer.html deleted file mode 100644 index df1467c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/deadline_timer.html +++ /dev/null @@ -1,407 +0,0 @@ - - - -deadline_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Typedef for the typical usage - of timer. Uses a UTC clock. -

-
typedef basic_deadline_timer< boost::posix_time::ptime > deadline_timer;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- duration_type -

-
-

- The duration type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- time_type -

-
-

- The time type. -

-
-

- traits_type -

-
-

- The time traits type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the timer. -

-
-

- basic_deadline_timer -

-
-

- Constructor.

Constructor to set a particular expiry - time as an absolute time.

Constructor to set a particular - expiry time relative to now.

Move-construct a basic_deadline_timer - from another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the timer. -

-
-

- cancel_one -

-
-

- Cancels one asynchronous operation that is waiting on the timer. -

-
-

- expires_at -

-
-

- Get the timer's expiry time as an absolute time.

- Set the timer's expiry time as an absolute time. -

-
-

- expires_from_now -

-
-

- Get the timer's expiry time relative to now.

Set - the timer's expiry time relative to now. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_deadline_timer from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the timer. -

-
-

- ~basic_deadline_timer -

-
-

- Destroys the timer. -

-
-

- The basic_deadline_timer - class template provides the ability to perform a blocking or asynchronous - wait for a timer to expire. -

-

- A deadline 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 deadline_timer - typedef. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Examples -
-

- Performing a blocking wait: -

-
// Construct a timer without setting an expiry time.
-asio::deadline_timer timer(io_context);
-
-// Set an expiry time relative to now.
-timer.expires_from_now(boost::posix_time::seconds(5));
-
-// Wait for the timer to expire.
-timer.wait();
-
-

- Performing an asynchronous wait: -

-
void handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Timer expired.
-  }
-}
-
-...
-
-// Construct a timer with an absolute expiry time.
-asio::deadline_timer timer(io_context,
-    boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
-
-// Start an asynchronous wait.
-timer.async_wait(handler);
-
-
- - Changing - an active deadline_timer's expiry time -
-

- Changing the expiry time of a timer while there are pending asynchronous - waits causes those wait operations to be cancelled. To ensure that the action - associated with the timer is performed only once, use something like this: - used: -

-
void on_some_event()
-{
-  if (my_timer.expires_from_now(seconds(5)) > 0)
-  {
-    // We managed to cancel the timer. Start new asynchronous wait.
-    my_timer.async_wait(on_timeout);
-  }
-  else
-  {
-    // Too late, timer has already expired!
-  }
-}
-
-void on_timeout(const asio::error_code& e)
-{
-  if (e != asio::error::operation_aborted)
-  {
-    // Timer was not cancelled, take necessary action.
-  }
-}
-
-
    -
  • - The asio::basic_deadline_timer::expires_from_now() function - cancels any pending asynchronous waits, and returns the number of asynchronous - waits that were cancelled. If it returns 0 then you were too late and - the wait handler has already been executed, or will soon be executed. - If it returns 1 then the wait handler was successfully cancelled. -
  • -
  • - If a wait handler is cancelled, the error_code - passed to it contains the value asio::error::operation_aborted. -
  • -
-
- - Requirements -
-

- Header: asio/deadline_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/defer.html b/Sources/Vendor/asio/doc/asio/reference/defer.html deleted file mode 100644 index 8e0da62..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/defer.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -defer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-defer -

-

- -Submits a completion token or function object for - execution. -

-
template<
-    typename CompletionToken>
-DEDUCED defer(
-    CompletionToken && token);
-  » more...
-
-template<
-    typename Executor,
-    typename CompletionToken>
-DEDUCED defer(
-    const Executor & ex,
-    CompletionToken && token,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-template<
-    typename ExecutionContext,
-    typename CompletionToken>
-DEDUCED defer(
-    ExecutionContext & ctx,
-    CompletionToken && token,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/defer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/defer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/defer/overload1.html deleted file mode 100644 index f4e0a4c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/defer/overload1.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -defer (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename CompletionToken>
-DEDUCED defer(
-    CompletionToken && token);
-
-

- This function submits an object for execution using the object's associated - executor. The function object is queued for execution, and is never called - from the current thread prior to returning from defer(). -

-

- This function has the following effects: -

-
    -
  • - Constructs a function object handler of type Handler, - initialized with handler(forward<CompletionToken>(token)). -
  • -
  • - Constructs an object result of type async_result<Handler>, - initializing the object as result(handler). -
  • -
  • - Obtains the handler's associated executor object ex by - performing get_associated_executor(handler). -
  • -
  • - Obtains the handler's associated allocator object alloc - by performing get_associated_allocator(handler). -
  • -
  • - Performs ex.defer(std::move(handler), alloc). -
  • -
  • - Returns result.get(). -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/defer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/defer/overload2.html deleted file mode 100644 index 5f405a6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/defer/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -defer (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename Executor,
-    typename CompletionToken>
-DEDUCED defer(
-    const Executor & ex,
-    CompletionToken && token,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-

- This function submits an object for execution using the specified executor. - The function object is queued for execution, and is never called from the - current thread prior to returning from defer(). -

-

- This function has the following effects: -

-
    -
  • - Constructs a function object handler of type Handler, - initialized with handler(forward<CompletionToken>(token)). -
  • -
  • - Constructs an object result of type async_result<Handler>, - initializing the object as result(handler). -
  • -
  • - Obtains the handler's associated executor object ex1 by - performing get_associated_executor(handler). -
  • -
  • - Creates a work object w by performing make_work(ex1). -
  • -
  • - Obtains the handler's associated allocator object alloc - by performing get_associated_allocator(handler). -
  • -
  • - Constructs a function object f with a function call operator - that performs ex1.dispatch(std::move(handler), alloc) - followed by w.reset(). -
  • -
  • - Performs Executor(ex).defer(std::move(f), alloc). -
  • -
  • - Returns result.get(). -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/defer/overload3.html b/Sources/Vendor/asio/doc/asio/reference/defer/overload3.html deleted file mode 100644 index ec4c357..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/defer/overload3.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -defer (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename ExecutionContext,
-    typename CompletionToken>
-DEDUCED defer(
-    ExecutionContext & ctx,
-    CompletionToken && token,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-
- - Return - Value -
-

- defer(ctx.get_executor(), forward<CompletionToken>(token)). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/dispatch.html deleted file mode 100644 index 4388a05..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dispatch.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Submits a completion token or function object - for execution. -

-
template<
-    typename CompletionToken>
-DEDUCED dispatch(
-    CompletionToken && token);
-  » more...
-
-template<
-    typename Executor,
-    typename CompletionToken>
-DEDUCED dispatch(
-    const Executor & ex,
-    CompletionToken && token,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-template<
-    typename ExecutionContext,
-    typename CompletionToken>
-DEDUCED dispatch(
-    ExecutionContext & ctx,
-    CompletionToken && token,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/dispatch.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dispatch/overload1.html b/Sources/Vendor/asio/doc/asio/reference/dispatch/overload1.html deleted file mode 100644 index 89532d9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dispatch/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -dispatch (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename CompletionToken>
-DEDUCED dispatch(
-    CompletionToken && token);
-
-

- This function submits an object for execution using the object's associated - executor. The function object is queued for execution, and is never called - from the current thread prior to returning from dispatch(). -

-

- This function has the following effects: -

-
    -
  • - Constructs a function object handler of type Handler, - initialized with handler(forward<CompletionToken>(token)). -
  • -
  • - Constructs an object result of type async_result<Handler>, - initializing the object as result(handler). -
  • -
  • - Obtains the handler's associated executor object ex by - performing get_associated_executor(handler). -
  • -
  • - Obtains the handler's associated allocator object alloc - by performing get_associated_allocator(handler). -
  • -
  • - Performs ex.dispatch(std::move(handler), alloc). -
  • -
  • - Returns result.get(). -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dispatch/overload2.html b/Sources/Vendor/asio/doc/asio/reference/dispatch/overload2.html deleted file mode 100644 index d167b4e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dispatch/overload2.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -dispatch (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename Executor,
-    typename CompletionToken>
-DEDUCED dispatch(
-    const Executor & ex,
-    CompletionToken && token,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-

- This function submits an object for execution using the specified executor. - The function object is queued for execution, and is never called from the - current thread prior to returning from dispatch(). -

-

- This function has the following effects: -

-
    -
  • - Constructs a function object handler of type Handler, - initialized with handler(forward<CompletionToken>(token)). -
  • -
  • - Constructs an object result of type async_result<Handler>, - initializing the object as result(handler). -
  • -
  • - Obtains the handler's associated executor object ex1 by - performing get_associated_executor(handler). -
  • -
  • - Creates a work object w by performing make_work(ex1). -
  • -
  • - Obtains the handler's associated allocator object alloc - by performing get_associated_allocator(handler). -
  • -
  • - Constructs a function object f with a function call operator - that performs ex1.dispatch(std::move(handler), alloc) - followed by w.reset(). -
  • -
  • - Performs Executor(ex).dispatch(std::move(f), alloc). -
  • -
  • - Returns result.get(). -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dispatch/overload3.html b/Sources/Vendor/asio/doc/asio/reference/dispatch/overload3.html deleted file mode 100644 index 7aca7f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dispatch/overload3.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -dispatch (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename ExecutionContext,
-    typename CompletionToken>
-DEDUCED dispatch(
-    ExecutionContext & ctx,
-    CompletionToken && token,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-
- - Return - Value -
-

- dispatch(ctx.get_executor(), forward<CompletionToken>(token)). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer.html deleted file mode 100644 index 4b3df42..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -dynamic_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The asio::dynamic_buffer - function is used to create a dynamically resized buffer from a std::basic_string - or std::vector. -

-

- Create a new dynamic buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-dynamic_string_buffer< Elem, Traits, Allocator > dynamic_buffer(
-    std::basic_string< Elem, Traits, Allocator > & data);
-  » more...
-
-template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-dynamic_string_buffer< Elem, Traits, Allocator > dynamic_buffer(
-    std::basic_string< Elem, Traits, Allocator > & data,
-    std::size_t max_size);
-  » more...
-
-

- Create a new dynamic buffer that represents the given vector. -

-
template<
-    typename Elem,
-    typename Allocator>
-dynamic_vector_buffer< Elem, Allocator > dynamic_buffer(
-    std::vector< Elem, Allocator > & data);
-  » more...
-
-template<
-    typename Elem,
-    typename Allocator>
-dynamic_vector_buffer< Elem, Allocator > dynamic_buffer(
-    std::vector< Elem, Allocator > & data,
-    std::size_t max_size);
-  » more...
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload1.html deleted file mode 100644 index 6712b2e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload1.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -dynamic_buffer (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new dynamic buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-dynamic_string_buffer< Elem, Traits, Allocator > dynamic_buffer(
-    std::basic_string< Elem, Traits, Allocator > & data);
-
-
- - Return Value -
-

- dynamic_string_buffer<Elem, Traits, Allocator>(data). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload2.html deleted file mode 100644 index 5f3247f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload2.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -dynamic_buffer (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new dynamic buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-dynamic_string_buffer< Elem, Traits, Allocator > dynamic_buffer(
-    std::basic_string< Elem, Traits, Allocator > & data,
-    std::size_t max_size);
-
-
- - Return Value -
-

- dynamic_string_buffer<Elem, Traits, Allocator>(data, max_size). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload3.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload3.html deleted file mode 100644 index 0faedc0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload3.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -dynamic_buffer (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new dynamic buffer that represents the given vector. -

-
template<
-    typename Elem,
-    typename Allocator>
-dynamic_vector_buffer< Elem, Allocator > dynamic_buffer(
-    std::vector< Elem, Allocator > & data);
-
-
- - Return Value -
-

- dynamic_vector_buffer<Elem, Allocator>(data). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload4.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload4.html deleted file mode 100644 index f8d8dd0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload4.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -dynamic_buffer (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new dynamic buffer that represents the given vector. -

-
template<
-    typename Elem,
-    typename Allocator>
-dynamic_vector_buffer< Elem, Allocator > dynamic_buffer(
-    std::vector< Elem, Allocator > & data,
-    std::size_t max_size);
-
-
- - Return Value -
-

- dynamic_vector_buffer<Elem, Allocator>(data, max_size). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer.html deleted file mode 100644 index 4824020..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer.html +++ /dev/null @@ -1,228 +0,0 @@ - - - -dynamic_string_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Adapt a basic_string to the DynamicBuffer requirements. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-class dynamic_string_buffer
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffers_type -

-
-

- The type used to represent the input sequence as a list of buffers. -

-
-

- mutable_buffers_type -

-
-

- The type used to represent the output sequence as a list of buffers. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- capacity -

-
-

- Get the current capacity of the dynamic buffer. -

-
-

- commit -

-
-

- Move bytes from the output sequence to the input sequence. -

-
-

- consume -

-
-

- Remove characters from the input sequence. -

-
-

- data -

-
-

- Get a list of buffers that represents the input sequence. -

-
-

- dynamic_string_buffer -

-
-

- Construct a dynamic buffer from a string.

Move construct - a dynamic buffer. -

-
-

- max_size -

-
-

- Get the maximum size of the dynamic buffer. -

-
-

- prepare -

-
-

- Get a list of buffers that represents the output sequence, with - the given size. -

-
-

- size -

-
-

- Get the size of the input sequence. -

-
-

- Requires that sizeof(Elem) == 1. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/capacity.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/capacity.html deleted file mode 100644 index dac20e8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/capacity.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -dynamic_string_buffer::capacity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the current capacity of the dynamic buffer. -

-
std::size_t capacity() const;
-
-
- - Return - Value -
-

- The current total capacity of the buffer, i.e. for both the input sequence - and output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/commit.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/commit.html deleted file mode 100644 index 770a5ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/commit.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -dynamic_string_buffer::commit - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move - bytes from the output sequence to the input sequence. -

-
void commit(
-    std::size_t n);
-
-
- - Parameters -
-
-

-
-
n
-

- The number of bytes to append from the start of the output sequence - to the end of the input sequence. The remainder of the output sequence - is discarded. -

-
-
-

- Requires a preceding call prepare(x) where x >= n, - and no intervening operations that modify the input or output sequence. -

-
- - 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. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/const_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/const_buffers_type.html deleted file mode 100644 index 1d0447b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/const_buffers_type.html +++ /dev/null @@ -1,186 +0,0 @@ - - - -dynamic_string_buffer::const_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the input sequence as a list of buffers. -

-
typedef const_buffer const_buffers_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range.

Construct a non-modifiable - buffer from a modifiable one. -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new non-modifiable buffer that is offset from the start - of another. -

-
-

- The const_buffer - class provides a safe representation of a buffer that cannot be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() - and size() member functions: -

-
asio::const_buffer b1 = ...;
-std::size_t s1 = b1.size();
-const unsigned char* p1 = static_cast<const unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/consume.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/consume.html deleted file mode 100644 index 3b02ba6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/consume.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -dynamic_string_buffer::consume - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Remove - characters from the input sequence. -

-
void consume(
-    std::size_t n);
-
-

- Removes n characters from the beginning of the input sequence. -

-
- - Remarks -
-

- If n is greater than the size of the input sequence, the entire - input sequence is consumed and no error is issued. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/data.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/data.html deleted file mode 100644 index 4fbb377..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/data.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -dynamic_string_buffer::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a - list of buffers that represents the input sequence. -

-
const_buffers_type data() const;
-
-
- - Return - Value -
-

- An object of type const_buffers_type that satisfies ConstBufferSequence - requirements, representing the basic_string memory in input sequence. -

-
- - Remarks -
-

- The returned object is invalidated by any dynamic_string_buffer - or basic_string member function that modifies the input sequence - or output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer.html deleted file mode 100644 index d5ad432..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -dynamic_string_buffer::dynamic_string_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a dynamic buffer from a string. -

-
explicit dynamic_string_buffer(
-    std::basic_string< Elem, Traits, Allocator > & s,
-    std::size_t maximum_size = (std::numeric_limits< std::size_t >::max)());
-  » more...
-
-

- Move construct a dynamic buffer. -

-
dynamic_string_buffer(
-    dynamic_string_buffer && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload1.html deleted file mode 100644 index 9ce82cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload1.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -dynamic_string_buffer::dynamic_string_buffer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a dynamic buffer from a string. -

-
dynamic_string_buffer(
-    std::basic_string< Elem, Traits, Allocator > & s,
-    std::size_t maximum_size = (std::numeric_limits< std::size_t >::max)());
-
-
- - Parameters -
-
-

-
-
s
-

- The string to be used as backing storage for the dynamic buffer. - Any existing data in the string is treated as the dynamic buffer's - input sequence. The object stores a reference to the string and - the user is responsible for ensuring that the string object remains - valid until the dynamic_string_buffer - object is destroyed. -

-
maximum_size
-

- Specifies a maximum size for the buffer, in bytes. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload2.html deleted file mode 100644 index 72de3bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -dynamic_string_buffer::dynamic_string_buffer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move construct a dynamic buffer. -

-
dynamic_string_buffer(
-    dynamic_string_buffer && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/max_size.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/max_size.html deleted file mode 100644 index b11ab64..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/max_size.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -dynamic_string_buffer::max_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the maximum size of the dynamic buffer. -

-
std::size_t max_size() const;
-
-
- - Return - Value -
-

- The allowed maximum of the sum of the sizes of the input sequence and output - sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/mutable_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/mutable_buffers_type.html deleted file mode 100644 index 7a37b9c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/mutable_buffers_type.html +++ /dev/null @@ -1,185 +0,0 @@ - - - -dynamic_string_buffer::mutable_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the output sequence as a list of buffers. -

-
typedef mutable_buffer mutable_buffers_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- mutable_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new modifiable buffer that is offset from the start - of another. -

-
-

- The mutable_buffer - class provides a safe representation of a buffer that can be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() - and size() member functions: -

-
asio::mutable_buffer b1 = ...;
-std::size_t s1 = b1.size();
-unsigned char* p1 = static_cast<unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/prepare.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/prepare.html deleted file mode 100644 index 1f66797..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/prepare.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -dynamic_string_buffer::prepare - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a list of buffers that represents the output sequence, with the given size. -

-
mutable_buffers_type prepare(
-    std::size_t n);
-
-

- Ensures that the output sequence can accommodate n bytes, - resizing the basic_string object as necessary. -

-
- - Return - Value -
-

- An object of type mutable_buffers_type that satisfies MutableBufferSequence - requirements, representing basic_string memory at the start of the output - sequence of size n. -

-
- - Exceptions -
-
-

-
-
std::length_error
-

- If size() + n > max_size(). -

-
-
-
- - Remarks -
-

- The returned object is invalidated by any dynamic_string_buffer - or basic_string member function that modifies the input sequence - or output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/size.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/size.html deleted file mode 100644 index 62ae3cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -dynamic_string_buffer::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - size of the input sequence. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer.html deleted file mode 100644 index 4c01761..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer.html +++ /dev/null @@ -1,227 +0,0 @@ - - - -dynamic_vector_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Adapt a vector to the DynamicBuffer requirements. -

-
template<
-    typename Elem,
-    typename Allocator>
-class dynamic_vector_buffer
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffers_type -

-
-

- The type used to represent the input sequence as a list of buffers. -

-
-

- mutable_buffers_type -

-
-

- The type used to represent the output sequence as a list of buffers. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- capacity -

-
-

- Get the current capacity of the dynamic buffer. -

-
-

- commit -

-
-

- Move bytes from the output sequence to the input sequence. -

-
-

- consume -

-
-

- Remove characters from the input sequence. -

-
-

- data -

-
-

- Get a list of buffers that represents the input sequence. -

-
-

- dynamic_vector_buffer -

-
-

- Construct a dynamic buffer from a string.

Move construct - a dynamic buffer. -

-
-

- max_size -

-
-

- Get the maximum size of the dynamic buffer. -

-
-

- prepare -

-
-

- Get a list of buffers that represents the output sequence, with - the given size. -

-
-

- size -

-
-

- Get the size of the input sequence. -

-
-

- Requires that sizeof(Elem) == 1. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/capacity.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/capacity.html deleted file mode 100644 index 71dc100..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/capacity.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -dynamic_vector_buffer::capacity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the current capacity of the dynamic buffer. -

-
std::size_t capacity() const;
-
-
- - Return - Value -
-

- The current total capacity of the buffer, i.e. for both the input sequence - and output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/commit.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/commit.html deleted file mode 100644 index 90e51e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/commit.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -dynamic_vector_buffer::commit - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move - bytes from the output sequence to the input sequence. -

-
void commit(
-    std::size_t n);
-
-
- - Parameters -
-
-

-
-
n
-

- The number of bytes to append from the start of the output sequence - to the end of the input sequence. The remainder of the output sequence - is discarded. -

-
-
-

- Requires a preceding call prepare(x) where x >= n, - and no intervening operations that modify the input or output sequence. -

-
- - 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. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/const_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/const_buffers_type.html deleted file mode 100644 index fae64a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/const_buffers_type.html +++ /dev/null @@ -1,186 +0,0 @@ - - - -dynamic_vector_buffer::const_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the input sequence as a list of buffers. -

-
typedef const_buffer const_buffers_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range.

Construct a non-modifiable - buffer from a modifiable one. -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new non-modifiable buffer that is offset from the start - of another. -

-
-

- The const_buffer - class provides a safe representation of a buffer that cannot be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() - and size() member functions: -

-
asio::const_buffer b1 = ...;
-std::size_t s1 = b1.size();
-const unsigned char* p1 = static_cast<const unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/consume.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/consume.html deleted file mode 100644 index 441c0f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/consume.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -dynamic_vector_buffer::consume - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Remove - characters from the input sequence. -

-
void consume(
-    std::size_t n);
-
-

- Removes n characters from the beginning of the input sequence. -

-
- - Remarks -
-

- If n is greater than the size of the input sequence, the entire - input sequence is consumed and no error is issued. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/data.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/data.html deleted file mode 100644 index 9158e48..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/data.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -dynamic_vector_buffer::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a - list of buffers that represents the input sequence. -

-
const_buffers_type data() const;
-
-
- - Return - Value -
-

- An object of type const_buffers_type that satisfies ConstBufferSequence - requirements, representing the basic_string memory in input sequence. -

-
- - Remarks -
-

- The returned object is invalidated by any dynamic_vector_buffer - or basic_string member function that modifies the input sequence - or output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer.html deleted file mode 100644 index 90f1377..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -dynamic_vector_buffer::dynamic_vector_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a dynamic buffer from a string. -

-
explicit dynamic_vector_buffer(
-    std::vector< Elem, Allocator > & v,
-    std::size_t maximum_size = (std::numeric_limits< std::size_t >::max)());
-  » more...
-
-

- Move construct a dynamic buffer. -

-
dynamic_vector_buffer(
-    dynamic_vector_buffer && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload1.html deleted file mode 100644 index 21f55cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload1.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -dynamic_vector_buffer::dynamic_vector_buffer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a dynamic buffer from a string. -

-
dynamic_vector_buffer(
-    std::vector< Elem, Allocator > & v,
-    std::size_t maximum_size = (std::numeric_limits< std::size_t >::max)());
-
-
- - Parameters -
-
-

-
-
v
-

- The vector to be used as backing storage for the dynamic buffer. - Any existing data in the vector is treated as the dynamic buffer's - input sequence. The object stores a reference to the vector and - the user is responsible for ensuring that the vector object remains - valid until the dynamic_vector_buffer - object is destroyed. -

-
maximum_size
-

- Specifies a maximum size for the buffer, in bytes. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload2.html deleted file mode 100644 index 948042a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -dynamic_vector_buffer::dynamic_vector_buffer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move construct a dynamic buffer. -

-
dynamic_vector_buffer(
-    dynamic_vector_buffer && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/max_size.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/max_size.html deleted file mode 100644 index 93084a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/max_size.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -dynamic_vector_buffer::max_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the maximum size of the dynamic buffer. -

-
std::size_t max_size() const;
-
-
- - Return - Value -
-

- The allowed maximum of the sum of the sizes of the input sequence and output - sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/mutable_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/mutable_buffers_type.html deleted file mode 100644 index 1489e70..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/mutable_buffers_type.html +++ /dev/null @@ -1,185 +0,0 @@ - - - -dynamic_vector_buffer::mutable_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the output sequence as a list of buffers. -

-
typedef mutable_buffer mutable_buffers_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- mutable_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new modifiable buffer that is offset from the start - of another. -

-
-

- The mutable_buffer - class provides a safe representation of a buffer that can be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() - and size() member functions: -

-
asio::mutable_buffer b1 = ...;
-std::size_t s1 = b1.size();
-unsigned char* p1 = static_cast<unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/prepare.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/prepare.html deleted file mode 100644 index b843ccf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/prepare.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -dynamic_vector_buffer::prepare - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a list of buffers that represents the output sequence, with the given size. -

-
mutable_buffers_type prepare(
-    std::size_t n);
-
-

- Ensures that the output sequence can accommodate n bytes, - resizing the basic_string object as necessary. -

-
- - Return - Value -
-

- An object of type mutable_buffers_type that satisfies MutableBufferSequence - requirements, representing basic_string memory at the start of the output - sequence of size n. -

-
- - Exceptions -
-
-

-
-
std::length_error
-

- If size() + n > max_size(). -

-
-
-
- - Remarks -
-

- The returned object is invalidated by any dynamic_vector_buffer - or basic_string member function that modifies the input sequence - or output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/size.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/size.html deleted file mode 100644 index 9f9f50d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -dynamic_vector_buffer::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - size of the input sequence. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__addrinfo_category.html b/Sources/Vendor/asio/doc/asio/reference/error__addrinfo_category.html deleted file mode 100644 index 9d50cf2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__addrinfo_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::addrinfo_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static const asio::error_category & addrinfo_category = asio::error::get_addrinfo_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__addrinfo_errors.html b/Sources/Vendor/asio/doc/asio/reference/error__addrinfo_errors.html deleted file mode 100644 index 129ae14..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__addrinfo_errors.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -error::addrinfo_errors - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum addrinfo_errors
-
-

- - -

-
- - Values -
-
-

-
-
service_not_found
-

- The service is not supported for the given socket type. -

-
socket_type_not_supported
-

- The socket type is not supported. -

-
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__basic_errors.html b/Sources/Vendor/asio/doc/asio/reference/error__basic_errors.html deleted file mode 100644 index 21d42af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__basic_errors.html +++ /dev/null @@ -1,233 +0,0 @@ - - - -error::basic_errors - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum basic_errors
-
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-
- - Values -
-
-

-
-
access_denied
-

- Permission denied. -

-
address_family_not_supported
-

- Address family not supported by protocol. -

-
address_in_use
-

- Address already in use. -

-
already_connected
-

- Transport endpoint is already connected. -

-
already_started
-

- Operation already in progress. -

-
broken_pipe
-

- Broken pipe. -

-
connection_aborted
-

- A connection has been aborted. -

-
connection_refused
-

- Connection refused. -

-
connection_reset
-

- Connection reset by peer. -

-
bad_descriptor
-

- Bad file descriptor. -

-
fault
-

- Bad address. -

-
host_unreachable
-

- No route to host. -

-
in_progress
-

- Operation now in progress. -

-
interrupted
-

- Interrupted system call. -

-
invalid_argument
-

- Invalid argument. -

-
message_size
-

- Message too long. -

-
name_too_long
-

- The name was too long. -

-
network_down
-

- Network is down. -

-
network_reset
-

- Network dropped connection on reset. -

-
network_unreachable
-

- Network is unreachable. -

-
no_descriptors
-

- Too many open files. -

-
no_buffer_space
-

- No buffer space available. -

-
no_memory
-

- Cannot allocate memory. -

-
no_permission
-

- Operation not permitted. -

-
no_protocol_option
-

- Protocol not available. -

-
no_such_device
-

- No such device. -

-
not_connected
-

- Transport endpoint is not connected. -

-
not_socket
-

- Socket operation on non-socket. -

-
operation_aborted
-

- Operation cancelled. -

-
operation_not_supported
-

- Operation not supported. -

-
shut_down
-

- Cannot send after transport endpoint shutdown. -

-
timed_out
-

- Connection timed out. -

-
try_again
-

- Resource temporarily unavailable. -

-
would_block
-

- The socket is marked non-blocking and the requested operation would - block. -

-
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__get_addrinfo_category.html b/Sources/Vendor/asio/doc/asio/reference/error__get_addrinfo_category.html deleted file mode 100644 index 89ec2e2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__get_addrinfo_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::get_addrinfo_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const asio::error_category & get_addrinfo_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__get_misc_category.html b/Sources/Vendor/asio/doc/asio/reference/error__get_misc_category.html deleted file mode 100644 index a07b0d0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__get_misc_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::get_misc_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const asio::error_category & get_misc_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__get_netdb_category.html b/Sources/Vendor/asio/doc/asio/reference/error__get_netdb_category.html deleted file mode 100644 index d56dcd2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__get_netdb_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::get_netdb_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const asio::error_category & get_netdb_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__get_ssl_category.html b/Sources/Vendor/asio/doc/asio/reference/error__get_ssl_category.html deleted file mode 100644 index 27d063a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__get_ssl_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::get_ssl_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const asio::error_category & get_ssl_category();
-
-
- - Requirements -
-

- Header: asio/ssl/error.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__get_system_category.html b/Sources/Vendor/asio/doc/asio/reference/error__get_system_category.html deleted file mode 100644 index 21482f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__get_system_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::get_system_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const asio::error_category & get_system_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code.html b/Sources/Vendor/asio/doc/asio/reference/error__make_error_code.html deleted file mode 100644 index 28d8d68..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -error::make_error_code - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- - asio::error_code -

-
[link asio.reference.error__make_error_code.overload1 make_error_code]
-

- ( basic_errors e); -

-
[''''&raquo;''' [link asio.reference.error__make_error_code.overload1 more...]]
-

-

-
asio::error_code make_error_code(
-    netdb_errors e);
-  » more...
-
-asio::error_code make_error_code(
-    addrinfo_errors e);
-  » more...
-
-asio::error_code make_error_code(
-    misc_errors e);
-  » more...
-
-asio::error_code make_error_code(
-    ssl_errors e);
-  » more...
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload1.html b/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload1.html deleted file mode 100644 index 4391c27..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload1.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -error::make_error_code (1 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
asio::error_code make_error_code(
-    basic_errors e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload2.html b/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload2.html deleted file mode 100644 index 5fc8e18..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload2.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -error::make_error_code (2 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
asio::error_code make_error_code(
-    netdb_errors e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload3.html b/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload3.html deleted file mode 100644 index bca2890..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload3.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -error::make_error_code (3 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
asio::error_code make_error_code(
-    addrinfo_errors e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload4.html b/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload4.html deleted file mode 100644 index c3e4388..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload4.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -error::make_error_code (4 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
asio::error_code make_error_code(
-    misc_errors e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload5.html b/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload5.html deleted file mode 100644 index e7c2331..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload5.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -error::make_error_code (5 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
asio::error_code make_error_code(
-    ssl_errors e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__misc_category.html b/Sources/Vendor/asio/doc/asio/reference/error__misc_category.html deleted file mode 100644 index 6d1c58c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__misc_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::misc_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static const asio::error_category & misc_category = asio::error::get_misc_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__misc_errors.html b/Sources/Vendor/asio/doc/asio/reference/error__misc_errors.html deleted file mode 100644 index d7776e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__misc_errors.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -error::misc_errors - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum misc_errors
-
-

- - - - -

-
- - Values -
-
-

-
-
already_open
-

- Already open. -

-
eof
-

- End of file or stream. -

-
not_found
-

- Element not found. -

-
fd_set_failure
-

- The descriptor cannot fit into the select system call's fd_set. -

-
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__netdb_category.html b/Sources/Vendor/asio/doc/asio/reference/error__netdb_category.html deleted file mode 100644 index 48305e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__netdb_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::netdb_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static const asio::error_category & netdb_category = asio::error::get_netdb_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__netdb_errors.html b/Sources/Vendor/asio/doc/asio/reference/error__netdb_errors.html deleted file mode 100644 index a472f02..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__netdb_errors.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -error::netdb_errors - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum netdb_errors
-
-

- - - - -

-
- - Values -
-
-

-
-
host_not_found
-

- Host not found (authoritative). -

-
host_not_found_try_again
-

- Host not found (non-authoritative). -

-
no_data
-

- The query is valid but does not have associated address data. -

-
no_recovery
-

- A non-recoverable error occurred. -

-
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__ssl_category.html b/Sources/Vendor/asio/doc/asio/reference/error__ssl_category.html deleted file mode 100644 index 13f8a55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__ssl_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::ssl_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static const asio::error_category & ssl_category = asio::error::get_ssl_category();
-
-
- - Requirements -
-

- Header: asio/ssl/error.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__ssl_errors.html b/Sources/Vendor/asio/doc/asio/reference/error__ssl_errors.html deleted file mode 100644 index 3467595..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__ssl_errors.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::ssl_errors - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum ssl_errors
-
-
- - Requirements -
-

- Header: asio/ssl/error.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__system_category.html b/Sources/Vendor/asio/doc/asio/reference/error__system_category.html deleted file mode 100644 index 9de43d5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__system_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::system_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static const asio::error_category & system_category = asio::error::get_system_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_category.html b/Sources/Vendor/asio/doc/asio/reference/error_category.html deleted file mode 100644 index 75ceea0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_category.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -error_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Base class for all error categories. -

-
class error_category :
-  noncopyable
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- message -

-
-

- Returns a string describing the error denoted by value. -

-
-

- name -

-
-

- Returns a string naming the error gategory. -

-
-

- operator!= -

-
-

- Inequality operator to compare two error categories. -

-
-

- operator== -

-
-

- Equality operator to compare two error categories. -

-
-

- ~error_category -

-
-

- Destructor. -

-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_category/_error_category.html b/Sources/Vendor/asio/doc/asio/reference/error_category/_error_category.html deleted file mode 100644 index 9b04254..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_category/_error_category.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -error_category::~error_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
virtual ~error_category();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_category/message.html b/Sources/Vendor/asio/doc/asio/reference/error_category/message.html deleted file mode 100644 index fb55d23..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_category/message.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -error_category::message - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Returns a string - describing the error denoted by value. -

-
std::string message(
-    int value) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_category/name.html b/Sources/Vendor/asio/doc/asio/reference/error_category/name.html deleted file mode 100644 index 8b63198..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_category/name.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -error_category::name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Returns a string naming - the error gategory. -

-
const char * name() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_category/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/error_category/operator_eq__eq_.html deleted file mode 100644 index fea5e2a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_category/operator_eq__eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -error_category::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Equality - operator to compare two error categories. -

-
bool operator==(
-    const error_category & rhs) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_category/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/error_category/operator_not__eq_.html deleted file mode 100644 index 018e864..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_category/operator_not__eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -error_category::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inequality - operator to compare two error categories. -

-
bool operator!=(
-    const error_category & rhs) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code.html b/Sources/Vendor/asio/doc/asio/reference/error_code.html deleted file mode 100644 index dff8cc1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code.html +++ /dev/null @@ -1,272 +0,0 @@ - - - -error_code - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Class to represent an error code value. -

-
class error_code
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- unspecified_bool_type_t -

-
-
-

- unspecified_bool_type -

-
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign a new error value. -

-
-

- category -

-
-

- Get the error category. -

-
-

- clear -

-
-

- Clear the error value to the default. -

-
-

- error_code -

-
-

- Default constructor.

Construct with specific error - code and category.

Construct from an error code enum. -

-
-

- message -

-
-

- Get the message associated with the error. -

-
-

- operator unspecified_bool_type -

-
-

- Operator returns non-null if there is a non-success error code. -

-
-

- operator! -

-
-

- Operator to test if the error represents success. -

-
-

- unspecified_bool_true -

-
-
-

- value -

-
-

- Get the error value. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Inequality operator to compare two error objects. -

-
-

- operator== -

-
-

- Equality operator to compare two error objects. -

-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/assign.html b/Sources/Vendor/asio/doc/asio/reference/error_code/assign.html deleted file mode 100644 index bbb2889..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/assign.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -error_code::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign a new error value. -

-
void assign(
-    int v,
-    const error_category & c);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/category.html b/Sources/Vendor/asio/doc/asio/reference/error_code/category.html deleted file mode 100644 index 12cc121..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/category.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -error_code::category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the error category. -

-
const error_category & category() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/clear.html b/Sources/Vendor/asio/doc/asio/reference/error_code/clear.html deleted file mode 100644 index faf1d10..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/clear.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -error_code::clear - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Clear the error value to - the default. -

-
void clear();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code.html b/Sources/Vendor/asio/doc/asio/reference/error_code/error_code.html deleted file mode 100644 index 5d232f5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -error_code::error_code - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default constructor. -

-
error_code();
-  » more...
-
-

- Construct with specific error code and category. -

-
error_code(
-    int v,
-    const error_category & c);
-  » more...
-
-

- Construct from an error code enum. -

-
template<
-    typename ErrorEnum>
-error_code(
-    ErrorEnum e);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload1.html b/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload1.html deleted file mode 100644 index 2f00ce6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -error_code::error_code (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
error_code();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload2.html b/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload2.html deleted file mode 100644 index 1e89f45..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -error_code::error_code (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with specific error code and category. -

-
error_code(
-    int v,
-    const error_category & c);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload3.html b/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload3.html deleted file mode 100644 index 5176e3d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload3.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -error_code::error_code (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct from an error code enum. -

-
template<
-    typename ErrorEnum>
-error_code(
-    ErrorEnum e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/message.html b/Sources/Vendor/asio/doc/asio/reference/error_code/message.html deleted file mode 100644 index b864edc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/message.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -error_code::message - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the message associated - with the error. -

-
std::string message() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/error_code/operator_eq__eq_.html deleted file mode 100644 index b7d7bf4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -error_code::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Equality - operator to compare two error objects. -

-
friend bool operator==(
-    const error_code & e1,
-    const error_code & e2);
-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_not_.html b/Sources/Vendor/asio/doc/asio/reference/error_code/operator_not_.html deleted file mode 100644 index 15d1608..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_not_.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -error_code::operator! - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Operator to test - if the error represents success. -

-
bool operator!() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/error_code/operator_not__eq_.html deleted file mode 100644 index 8233de2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -error_code::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inequality - operator to compare two error objects. -

-
friend bool operator!=(
-    const error_code & e1,
-    const error_code & e2);
-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_unspecified_bool_type.html b/Sources/Vendor/asio/doc/asio/reference/error_code/operator_unspecified_bool_type.html deleted file mode 100644 index 9c9a96f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_unspecified_bool_type.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -error_code::operator unspecified_bool_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Operator - returns non-null if there is a non-success error code. -

-
operator unspecified_bool_type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/unspecified_bool_true.html b/Sources/Vendor/asio/doc/asio/reference/error_code/unspecified_bool_true.html deleted file mode 100644 index e06454b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/unspecified_bool_true.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -error_code::unspecified_bool_true - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static void unspecified_bool_true(
-    unspecified_bool_type_t );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/unspecified_bool_type.html b/Sources/Vendor/asio/doc/asio/reference/error_code/unspecified_bool_type.html deleted file mode 100644 index fd7279d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/unspecified_bool_type.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error_code::unspecified_bool_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
typedef void(*) unspecified_bool_type;
-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/value.html b/Sources/Vendor/asio/doc/asio/reference/error_code/value.html deleted file mode 100644 index b7a0d98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/value.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -error_code::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the error value. -

-
int value() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code__unspecified_bool_type_t.html b/Sources/Vendor/asio/doc/asio/reference/error_code__unspecified_bool_type_t.html deleted file mode 100644 index 4f07e92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code__unspecified_bool_type_t.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -error_code::unspecified_bool_type_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
struct unspecified_bool_type_t
-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context.html b/Sources/Vendor/asio/doc/asio/reference/execution_context.html deleted file mode 100644 index 1b35a5e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context.html +++ /dev/null @@ -1,382 +0,0 @@ - - - -execution_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A context for function object execution. -

-
class execution_context :
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- id -

-
-

- Class used to uniquely identify a service. -

-
-

- service -

-
-

- Base class for all io_context services. -

-
-

- fork_event -

-
-

- Fork-related event notifications. -

-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- notify_fork -

-
-

- Notify the execution_context of a fork-related event. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- destroy -

-
-

- Destroys all services in the context. -

-
-

- execution_context -

-
-

- Constructor. -

-
-

- shutdown -

-
-

- Shuts down all services in the context. -

-
-

- ~execution_context -

-
-

- Destructor. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add_service -

-
-

- (Deprecated: Use make_service().) Add a service object to the execution_context. -

-
-

- has_service -

-
-

- Determine if an execution_context contains a specified service - type. -

-
-

- make_service -

-
-

- Creates a service object and adds it to the execution_context. -

-
-

- use_service -

-
-

- Obtain the service object corresponding to the given type. -

-
-

- An execution context represents a place where function objects will be executed. - An io_context is an example of an execution context. -

-
- - The - execution_context class and services -
-

- Class execution_context - implements an extensible, type-safe, polymorphic set of services, indexed - by service type. -

-

- Services exist to manage the resources that are shared across an execution - context. For example, timers may be implemented in terms of a single timer - queue, and this queue would be stored in a service. -

-

- Access to the services of an execution_context - is via three function templates, use_service(), add_service() - and has_service(). -

-

- In a call to use_service<Service>(), the type argument - chooses a service, making available all members of the named type. If Service - is not present in an execution_context, - an object of type Service is created and added to the execution_context. - A C++ program can check if an execution_context - implements a particular service with the function template has_service<Service>(). -

-

- Service objects may be explicitly added to an execution_context - using the function template add_service<Service>(). If - the Service is already present, the service_already_exists - exception is thrown. If the owner of the service is not the same object as - the execution_context - parameter, the invalid_service_owner - exception is thrown. -

-

- Once a service reference is obtained from an execution_context - object by calling use_service(), that reference remains usable - as long as the owning execution_context - object exists. -

-

- All service implementations have execution_context::service - as a public base class. Custom services may be implemented by deriving from - this class and then added to an execution_context - using the facilities described above. -

-
- - The - execution_context as a base class -
-

- Class execution_context - may be used only as a base class for concrete execution context types. The - io_context is an example of such a derived type. -

-

- On destruction, a class that is derived from execution_context - must perform execution_context::shutdown() followed by execution_context::destroy(). -

-

- This destruction sequence permits programs to simplify their resource management - by using shared_ptr<>. Where an object's lifetime is tied - to the lifetime of a connection (or some other sequence of asynchronous operations), - a shared_ptr to the object would be bound into the handlers - for all asynchronous operations associated with it. This works as follows: -

-
    -
  • - When a single connection ends, all associated asynchronous operations - complete. The corresponding handler objects are destroyed, and all shared_ptr - references to the objects are destroyed. -
  • -
  • - To shut down the whole program, the io_context - function stop() is called to terminate any run() calls as soon as possible. - The io_context - destructor calls shutdown() and destroy() to - destroy all pending handlers, causing all shared_ptr references - to all connection objects to be destroyed. -
  • -
-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/_execution_context.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/_execution_context.html deleted file mode 100644 index a02b393..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/_execution_context.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -execution_context::~execution_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~execution_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/add_service.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/add_service.html deleted file mode 100644 index 3033cc4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/add_service.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -execution_context::add_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use make_service().) Add a service object to the execution_context. -

-
template<
-    typename Service>
-friend void add_service(
-    execution_context & e,
-    Service * svc);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
svc
-
-

- The service object. On success, ownership of the service object is - transferred to the execution_context. - When the execution_context - object is destroyed, it will destroy the service object by performing: -

-
delete static_cast<execution_context::service*>(svc)
-
-

-

-
-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
asio::invalid_service_owner
-

- Thrown if the service's owning execution_context - is not the execution_context - object specified by the e parameter. -

-
-
-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/destroy.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/destroy.html deleted file mode 100644 index e5c3cd9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/destroy.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -execution_context::destroy - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - all services in the context. -

-
void destroy();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order * of the beginning of service object lifetime, - performs delete static_cast<execution_context::service*>(svc). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/execution_context.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/execution_context.html deleted file mode 100644 index cab6575..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/execution_context.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -execution_context::execution_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
execution_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/fork_event.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/fork_event.html deleted file mode 100644 index 5ff7ca7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/fork_event.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -execution_context::fork_event - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Fork-related - event notifications. -

-
enum fork_event
-
-

- - - -

-
- - Values -
-
-

-
-
fork_prepare
-

- Notify the context that the process is about to fork. -

-
fork_parent
-

- Notify the context that the process has forked and is the parent. -

-
fork_child
-

- Notify the context that the process has forked and is the child. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/has_service.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/has_service.html deleted file mode 100644 index 7660057..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/has_service.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -execution_context::has_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - if an execution_context - contains a specified service type. -

-
template<
-    typename Service>
-friend bool has_service(
-    execution_context & e);
-
-

- This function is used to determine whether the execution_context - contains a service object corresponding to the given service type. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- A boolean indicating whether the execution_context - contains the service. -

-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/make_service.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/make_service.html deleted file mode 100644 index 532c853..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/make_service.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -execution_context::make_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Creates - a service object and adds it to the execution_context. -

-
template<
-    typename Service,
-    typename... Args>
-friend Service & make_service(
-    execution_context & e,
-    Args &&... args);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
args
-

- Zero or more arguments to be passed to the service constructor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
-
-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/notify_fork.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/notify_fork.html deleted file mode 100644 index 46d513c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/notify_fork.html +++ /dev/null @@ -1,118 +0,0 @@ - - - -execution_context::notify_fork - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Notify - the execution_context - of a fork-related event. -

-
void notify_fork(
-    fork_event event);
-
-

- This function is used to inform the execution_context - that the process is about to fork, or has just forked. This allows the - execution_context, - and the services it contains, to perform any necessary housekeeping to - ensure correct operation following a fork. -

-

- This function must not be called while any other execution_context - function, or any function associated with the execution_context's derived - class, is being called in another thread. It is, however, safe to call - this function from within a completion handler, provided no other thread - is accessing the execution_context - or its derived class. -

-
- - Parameters -
-
-

-
-
event
-

- A fork-related event. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the notification fails the execution_context - object should no longer be used and should be destroyed. -

-
-
-
- - Example -
-

- The following code illustrates how to incorporate the notify_fork() - function: -

-
my_execution_context.notify_fork(execution_context::fork_prepare);
-if (fork() == 0)
-{
-  // This is the child process.
-  my_execution_context.notify_fork(execution_context::fork_child);
-}
-else
-{
-  // This is the parent process.
-  my_execution_context.notify_fork(execution_context::fork_parent);
-}
-
-
- - Remarks -
-

- For each service object svc in the execution_context - set, performs svc->notify_fork();. When processing the - fork_prepare event, services are visited in reverse order of the beginning - of service object lifetime. Otherwise, services are visited in order of - the beginning of service object lifetime. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/shutdown.html deleted file mode 100644 index ccd39fe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/shutdown.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -execution_context::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Shuts - down all services in the context. -

-
void shutdown();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order of the beginning of service object lifetime, - performs svc->shutdown(). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service.html deleted file mode 100644 index 87fd092..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -execution_context::use_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-  » more...
-
-template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service/overload1.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service/overload1.html deleted file mode 100644 index 69e0157..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service/overload1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -execution_context::use_service (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the execution_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service/overload2.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service/overload2.html deleted file mode 100644 index 132c397..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service/overload2.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -execution_context::use_service (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the io_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
ioc
-

- The io_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Remarks -
-

- This overload is preserved for backwards compatibility with services - that inherit from io_context::service. -

-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__id.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__id.html deleted file mode 100644 index 5a9d70a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__id.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -execution_context::id - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Class used to uniquely identify a service. -

-
class id :
-  noncopyable
-
-
- - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- id -

-
-

- Constructor. -

-
-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__id/id.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__id/id.html deleted file mode 100644 index edd7c45..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__id/id.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -execution_context::id::id - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
id();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__service.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__service.html deleted file mode 100644 index c54584a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__service.html +++ /dev/null @@ -1,187 +0,0 @@ - - - -execution_context::service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Base class for all io_context - services. -

-
class service :
-  noncopyable
-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Get the context object that owns the service. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- service -

-
-

- Constructor. -

-
-

- ~service -

-
-

- Destructor. -

-
-
- - Private - Member Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- notify_fork -

-
-

- Handle notification of a fork-related event to perform any necessary - housekeeping. -

-
-

- shutdown -

-
-

- Destroy all user-defined handler objects owned by the service. -

-
-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/_service.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__service/_service.html deleted file mode 100644 index 0152469..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/_service.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -execution_context::service::~service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
virtual ~service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/context.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__service/context.html deleted file mode 100644 index acb97e4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -execution_context::service::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the context object that owns the service. -

-
execution_context & context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/notify_fork.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__service/notify_fork.html deleted file mode 100644 index be67bb4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/notify_fork.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -execution_context::service::notify_fork - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Handle - notification of a fork-related event to perform any necessary housekeeping. -

-
virtual void notify_fork(
-    execution_context::fork_event event);
-
-

- This function is not a pure virtual so that services only have to implement - it if necessary. The default implementation does nothing. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/service.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__service/service.html deleted file mode 100644 index b98406f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/service.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -execution_context::service::service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
service(
-    execution_context & owner);
-
-
- - Parameters -
-
-

-
-
owner
-

- The execution_context - object that owns the service. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__service/shutdown.html deleted file mode 100644 index ea0a608..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/shutdown.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -execution_context::service::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroy - all user-defined handler objects owned by the service. -

-
void shutdown();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor.html b/Sources/Vendor/asio/doc/asio/reference/executor.html deleted file mode 100644 index 50516f7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor.html +++ /dev/null @@ -1,328 +0,0 @@ - - - -executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Polymorphic wrapper for executors. -

-
class executor
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- unspecified_bool_type_t -

-
-
-

- unspecified_bool_type -

-
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the executor to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the executor to invoke the given function object. -

-
-

- executor -

-
-

- Default constructor.

Construct from nullptr.
-
Copy constructor.

Move constructor.
-
Construct a polymorphic wrapper for the specified executor. -

Allocator-aware constructor to create a polymorphic - wrapper for the specified executor. -

-
-

- on_work_finished -

-
-

- Inform the executor that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the executor that it has some outstanding work to do. -

-
-

- operator unspecified_bool_type -

-
-

- Operator to test if the executor contains a valid target. -

-
-

- operator= -

-
-

- Assignment operator.

-

-

-

Assignment operator for nullptr_t.

- Assignment operator to create a polymorphic wrapper for the specified - executor. -

-
-

- post -

-
-

- Request the executor to invoke the given function object. -

-
-

- target -

-
-

- Obtain a pointer to the target executor object. -

-
-

- target_type -

-
-

- Obtain type information for the target executor object. -

-
-

- unspecified_bool_true -

-
-
-

- ~executor -

-
-

- Destructor. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/_executor.html b/Sources/Vendor/asio/doc/asio/reference/executor/_executor.html deleted file mode 100644 index 1ad827c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/_executor.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor::~executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/context.html b/Sources/Vendor/asio/doc/asio/reference/executor/context.html deleted file mode 100644 index f58743a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the underlying execution - context. -

-
execution_context & context() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/defer.html b/Sources/Vendor/asio/doc/asio/reference/executor/defer.html deleted file mode 100644 index 9eda4f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/defer.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -executor::defer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the executor to invoke - the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void defer(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object is executed according to the rules of the target - executor object. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/executor/dispatch.html deleted file mode 100644 index bd8402d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/dispatch.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -executor::dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the executor to - invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void dispatch(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object is executed according to the rules of the target - executor object. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/executor.html b/Sources/Vendor/asio/doc/asio/reference/executor/executor.html deleted file mode 100644 index 512278e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/executor.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -executor::executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default constructor. -

-
executor();
-  » more...
-
-

- Construct from nullptr. -

-
executor(
-    nullptr_t );
-  » more...
-
-

- Copy constructor. -

-
executor(
-    const executor & other);
-  » more...
-
-

- Move constructor. -

-
executor(
-    executor && other);
-  » more...
-
-

- Construct a polymorphic wrapper for the specified executor. -

-
template<
-    typename Executor>
-executor(
-    Executor e);
-  » more...
-
-

- Allocator-aware constructor to create a polymorphic wrapper for the specified - executor. -

-
template<
-    typename Executor,
-    typename Allocator>
-executor(
-    allocator_arg_t ,
-    const Allocator & a,
-    Executor e);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload1.html b/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload1.html deleted file mode 100644 index c38a8e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor::executor (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload2.html b/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload2.html deleted file mode 100644 index 5e40aca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::executor (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct from nullptr. -

-
executor(
-    nullptr_t );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload3.html b/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload3.html deleted file mode 100644 index 9637394..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::executor (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
executor(
-    const executor & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload4.html b/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload4.html deleted file mode 100644 index f9e4f82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::executor (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
executor(
-    executor && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload5.html b/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload5.html deleted file mode 100644 index 2d47276..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload5.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -executor::executor (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a polymorphic wrapper for the specified executor. -

-
template<
-    typename Executor>
-executor(
-    Executor e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload6.html b/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload6.html deleted file mode 100644 index 8a3ed78..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload6.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -executor::executor (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Allocator-aware constructor to create a polymorphic wrapper for the specified - executor. -

-
template<
-    typename Executor,
-    typename Allocator>
-executor(
-    allocator_arg_t ,
-    const Allocator & a,
-    Executor e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/on_work_finished.html b/Sources/Vendor/asio/doc/asio/reference/executor/on_work_finished.html deleted file mode 100644 index 21c5484..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/on_work_finished.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::on_work_finished - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the executor that some work is no longer outstanding. -

-
void on_work_finished() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/on_work_started.html b/Sources/Vendor/asio/doc/asio/reference/executor/on_work_started.html deleted file mode 100644 index 9a8179d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/on_work_started.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::on_work_started - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform the - executor that it has some outstanding work to do. -

-
void on_work_started() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_.html deleted file mode 100644 index adfbbc8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -executor::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment operator. -

-
executor & operator=(
-    const executor & other);
-  » more...
-
-
-
-executor & operator=(
-    executor && other);
-  » more...
-
-

- Assignment operator for nullptr_t. -

-
executor & operator=(
-    nullptr_t );
-  » more...
-
-

- Assignment operator to create a polymorphic wrapper for the specified executor. -

-
template<
-    typename Executor>
-executor & operator=(
-    Executor && e);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload1.html deleted file mode 100644 index 7e56676..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::operator= (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assignment operator. -

-
executor & operator=(
-    const executor & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload2.html deleted file mode 100644 index 90e0367..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload2.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -executor::operator= (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
executor & operator=(
-    executor && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload3.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload3.html deleted file mode 100644 index cc3619e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::operator= (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assignment operator for nullptr_t. -

-
executor & operator=(
-    nullptr_t );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload4.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload4.html deleted file mode 100644 index dfb4d40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload4.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -executor::operator= (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assignment operator to create a polymorphic wrapper for the specified - executor. -

-
template<
-    typename Executor>
-executor & operator=(
-    Executor && e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq__eq_.html deleted file mode 100644 index c230fea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -executor::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two executors - for equality. -

-
friend bool operator==(
-    const executor & a,
-    const executor & b);
-
-
- - Requirements -
-

- Header: asio/executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_not__eq_.html deleted file mode 100644 index a8f343e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -executor::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two - executors for inequality. -

-
friend bool operator!=(
-    const executor & a,
-    const executor & b);
-
-
- - Requirements -
-

- Header: asio/executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_unspecified_bool_type.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_unspecified_bool_type.html deleted file mode 100644 index dada888..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_unspecified_bool_type.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -executor::operator unspecified_bool_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Operator - to test if the executor contains a valid target. -

-
operator unspecified_bool_type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/post.html b/Sources/Vendor/asio/doc/asio/reference/executor/post.html deleted file mode 100644 index 916f055..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/post.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -executor::post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the executor to invoke - the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void post(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object is executed according to the rules of the target - executor object. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/target.html b/Sources/Vendor/asio/doc/asio/reference/executor/target.html deleted file mode 100644 index 2ddccd1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/target.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -executor::target - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain a pointer to the target - executor object. -

-
template<
-    typename Executor>
-Executor * target();
-  » more...
-
-template<
-    typename Executor>
-const Executor * target() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/target/overload1.html b/Sources/Vendor/asio/doc/asio/reference/executor/target/overload1.html deleted file mode 100644 index e473cf9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/target/overload1.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -executor::target (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Obtain a pointer to the target executor object. -

-
template<
-    typename Executor>
-Executor * target();
-
-
- - Return - Value -
-

- If target_type() == typeid(T), a pointer to the stored executor - target; otherwise, a null pointer. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/target/overload2.html b/Sources/Vendor/asio/doc/asio/reference/executor/target/overload2.html deleted file mode 100644 index f79b8ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/target/overload2.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -executor::target (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Obtain a pointer to the target executor object. -

-
template<
-    typename Executor>
-const Executor * target() const;
-
-
- - Return - Value -
-

- If target_type() == typeid(T), a pointer to the stored executor - target; otherwise, a null pointer. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/target_type.html b/Sources/Vendor/asio/doc/asio/reference/executor/target_type.html deleted file mode 100644 index 7654037..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/target_type.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -executor::target_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain type information - for the target executor object. -

-
const std::type_info & target_type() const;
-
-
- - Return - Value -
-

- If *this has a target type of type T, typeid(T); - otherwise, typeid(void). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/unspecified_bool_true.html b/Sources/Vendor/asio/doc/asio/reference/executor/unspecified_bool_true.html deleted file mode 100644 index b523d95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/unspecified_bool_true.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor::unspecified_bool_true - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static void unspecified_bool_true(
-    unspecified_bool_type_t );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/unspecified_bool_type.html b/Sources/Vendor/asio/doc/asio/reference/executor/unspecified_bool_type.html deleted file mode 100644 index 77a799b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/unspecified_bool_type.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -executor::unspecified_bool_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
typedef void(*) unspecified_bool_type;
-
-
- - Requirements -
-

- Header: asio/executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor__unspecified_bool_type_t.html b/Sources/Vendor/asio/doc/asio/reference/executor__unspecified_bool_type_t.html deleted file mode 100644 index 99904af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor__unspecified_bool_type_t.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -executor::unspecified_bool_type_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
struct unspecified_bool_type_t
-
-
- - Requirements -
-

- Header: asio/executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_arg.html b/Sources/Vendor/asio/doc/asio/reference/executor_arg.html deleted file mode 100644 index e3251bd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_arg.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -executor_arg - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A special value, similar to std::nothrow, - used to disambiguate constructors that accept executor arguments. -

-
constexpr executor_arg_t executor_arg;
-
-

- See executor_arg_t - and uses_executor - for more information. -

-
- - Requirements -
-

- Header: asio/uses_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_arg_t.html b/Sources/Vendor/asio/doc/asio/reference/executor_arg_t.html deleted file mode 100644 index 3903b24..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_arg_t.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -executor_arg_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A special type, similar to std::nothrow_t, used to disambiguate constructors - that accept executor arguments. -

-
struct executor_arg_t
-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_arg_t -

-
-

- Constructor. -

-
-

- The executor_arg_t - struct is an empty structure type used as a unique type to disambiguate constructor - and function overloading. Specifically, some types have constructors with - executor_arg_t - as the first argument, immediately followed by an argument of a type that - satisfies the Executor type requirements. -

-
- - Requirements -
-

- Header: asio/uses_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_arg_t/executor_arg_t.html b/Sources/Vendor/asio/doc/asio/reference/executor_arg_t/executor_arg_t.html deleted file mode 100644 index 1168aa3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_arg_t/executor_arg_t.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor_arg_t::executor_arg_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
constexpr executor_arg_t();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder.html deleted file mode 100644 index e57a003..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder.html +++ /dev/null @@ -1,242 +0,0 @@ - - - -executor_binder - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A call wrapper type to bind an executor of type Executor to - an object of type T. -

-
template<
-    typename T,
-    typename Executor>
-class executor_binder
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- argument_type -

-
-

- The type of the function's argument. -

-
-

- executor_type -

-
-

- The type of the associated executor. -

-
-

- first_argument_type -

-
-

- The type of the function's first argument. -

-
-

- result_type -

-
-

- The return type if a function. -

-
-

- second_argument_type -

-
-

- The type of the function's second argument. -

-
-

- target_type -

-
-

- The type of the target object. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_binder -

-
-

- Construct an executor wrapper for the specified object.
-
Copy constructor.

Construct a copy, but specify - a different executor.

Construct a copy of a different - executor wrapper type.

Construct a copy of a different - executor wrapper type, but specify a different executor.
-
Move constructor.

Move construct the target - object, but specify a different executor.

Move construct - from a different executor wrapper type.

Move construct - from a different executor wrapper type, but specify a different - executor. -

-
-

- get -

-
-

- Obtain a reference to the target object. -

-
-

- get_executor -

-
-

- Obtain the associated executor. -

-
-

- operator() -

-
-
-

- ~executor_binder -

-
-

- Destructor. -

-
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/_executor_binder.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/_executor_binder.html deleted file mode 100644 index 3cd45db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/_executor_binder.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor_binder::~executor_binder - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~executor_binder();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/argument_type.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/argument_type.html deleted file mode 100644 index d2d3a3e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/argument_type.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -executor_binder::argument_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the function's argument. -

-
typedef see_below argument_type;
-
-

- The type of argument_type is based on the type T - of the wrapper's target object: -

-
    -
  • - if T is a pointer to a function type accepting a single - argument, argument_type is a synonym for the return type - of T; -
  • -
  • - if T is a class type with a member type argument_type, - then argument_type is a synonym for T::argument_type; -
  • -
  • - otherwise argument_type is not defined. -
  • -
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder.html deleted file mode 100644 index c16a7e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder.html +++ /dev/null @@ -1,127 +0,0 @@ - - - -executor_binder::executor_binder - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an executor wrapper for the specified object. -

-
template<
-    typename U>
-executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    U && u);
-  » more...
-
-

- Copy constructor. -

-
executor_binder(
-    const executor_binder & other);
-  » more...
-
-

- Construct a copy, but specify a different executor. -

-
executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    const executor_binder & other);
-  » more...
-
-

- Construct a copy of a different executor wrapper type. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    const executor_binder< U, OtherExecutor > & other);
-  » more...
-
-

- Construct a copy of a different executor wrapper type, but specify a different - executor. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    const executor_binder< U, OtherExecutor > & other);
-  » more...
-
-

- Move constructor. -

-
executor_binder(
-    executor_binder && other);
-  » more...
-
-

- Move construct the target object, but specify a different executor. -

-
executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    executor_binder && other);
-  » more...
-
-

- Move construct from a different executor wrapper type. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    executor_binder< U, OtherExecutor > && other);
-  » more...
-
-

- Move construct from a different executor wrapper type, but specify a different - executor. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    executor_binder< U, OtherExecutor > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload1.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload1.html deleted file mode 100644 index d2587f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload1.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -executor_binder::executor_binder (1 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an executor wrapper for the specified object. -

-
template<
-    typename U>
-executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    U && u);
-
-

- This constructor is only valid if the type T is constructible - from type U. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload2.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload2.html deleted file mode 100644 index 60f51d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor_binder::executor_binder (2 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
executor_binder(
-    const executor_binder & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload3.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload3.html deleted file mode 100644 index 0a3a298..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload3.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -executor_binder::executor_binder (3 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a copy, but specify a different executor. -

-
executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    const executor_binder & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload4.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload4.html deleted file mode 100644 index 13e9362..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload4.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -executor_binder::executor_binder (4 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a copy of a different executor wrapper type. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    const executor_binder< U, OtherExecutor > & other);
-
-

- This constructor is only valid if the Executor type is constructible - from type OtherExecutor, and the type T is - constructible from type U. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload5.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload5.html deleted file mode 100644 index 0c0fb94..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload5.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -executor_binder::executor_binder (5 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a copy of a different executor wrapper type, but specify a - different executor. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    const executor_binder< U, OtherExecutor > & other);
-
-

- This constructor is only valid if the type T is constructible - from type U. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload6.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload6.html deleted file mode 100644 index 5411ff9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload6.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor_binder::executor_binder (6 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
executor_binder(
-    executor_binder && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload7.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload7.html deleted file mode 100644 index 1e5e29c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload7.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -executor_binder::executor_binder (7 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move construct the target object, but specify a different executor. -

-
executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    executor_binder && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload8.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload8.html deleted file mode 100644 index a5d81eb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload8.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -executor_binder::executor_binder (8 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move construct from a different executor wrapper type. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    executor_binder< U, OtherExecutor > && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload9.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload9.html deleted file mode 100644 index 5caeab0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload9.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -executor_binder::executor_binder (9 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move construct from a different executor wrapper type, but specify a - different executor. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    executor_binder< U, OtherExecutor > && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_type.html deleted file mode 100644 index 59cd3c4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -executor_binder::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the associated executor. -

-
typedef Executor executor_type;
-
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/first_argument_type.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/first_argument_type.html deleted file mode 100644 index 5c9c73e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/first_argument_type.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -executor_binder::first_argument_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the function's first argument. -

-
typedef see_below first_argument_type;
-
-

- The type of first_argument_type is based on the type T - of the wrapper's target object: -

-
    -
  • - if T is a pointer to a function type accepting two arguments, - first_argument_type is a synonym for the return type of - T; -
  • -
  • - if T is a class type with a member type first_argument_type, - then first_argument_type is a synonym for T::first_argument_type; -
  • -
  • - otherwise first_argument_type is not defined. -
  • -
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/get.html deleted file mode 100644 index 92aae71..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -executor_binder::get - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain a reference - to the target object. -

-
target_type & get();
-  » more...
-
-const target_type & get() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get/overload1.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/get/overload1.html deleted file mode 100644 index 547fd0c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor_binder::get (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Obtain a reference to the target object. -

-
target_type & get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get/overload2.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/get/overload2.html deleted file mode 100644 index 8a8587e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor_binder::get (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Obtain a reference to the target object. -

-
const target_type & get() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/get_executor.html deleted file mode 100644 index 9a67a2e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor_binder::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the associated executor. -

-
executor_type get_executor() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_.html deleted file mode 100644 index 6616ad2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -executor_binder::operator() - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
template<
-    typename... Args>
-auto operator()(
-    Args && ...);
-  » more...
-
-template<
-    typename... Args>
-auto operator()(
-    Args && ...) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload1.html deleted file mode 100644 index e4c24ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor_binder::operator() (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
template<
-    typename... Args>
-auto operator()(
-    Args && ...);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload2.html deleted file mode 100644 index 18ff25b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor_binder::operator() (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
template<
-    typename... Args>
-auto operator()(
-    Args && ...) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/result_type.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/result_type.html deleted file mode 100644 index 9f68286..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/result_type.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -executor_binder::result_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - return type if a function. -

-
typedef see_below result_type;
-
-

- The type of result_type is based on the type T - of the wrapper's target object: -

-
    -
  • - if T is a pointer to function type, result_type - is a synonym for the return type of T; -
  • -
  • - if T is a class type with a member type result_type, - then result_type is a synonym for T::result_type; -
  • -
  • - otherwise result_type is not defined. -
  • -
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/second_argument_type.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/second_argument_type.html deleted file mode 100644 index 864a519..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/second_argument_type.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -executor_binder::second_argument_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the function's second argument. -

-
typedef see_below second_argument_type;
-
-

- The type of second_argument_type is based on the type T - of the wrapper's target object: -

-
    -
  • - if T is a pointer to a function type accepting two arguments, - second_argument_type is a synonym for the return type - of T; -
  • -
  • - if T is a class type with a member type first_argument_type, - then second_argument_type is a synonym for T::second_argument_type; -
  • -
  • - otherwise second_argument_type is not defined. -
  • -
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/target_type.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/target_type.html deleted file mode 100644 index 9376ec0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/target_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -executor_binder::target_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the target object. -

-
typedef T target_type;
-
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard.html deleted file mode 100644 index 0cd9699..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -executor_work_guard - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An object of type executor_work_guard controls ownership of - executor work within a scope. -

-
template<
-    typename Executor>
-class executor_work_guard
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The underlying executor type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_work_guard -

-
-

- Constructs a executor_work_guard object for the specified executor. -

Copy constructor.

Move constructor. -

-
-

- get_executor -

-
-

- Obtain the associated executor. -

-
-

- owns_work -

-
-

- Whether the executor_work_guard object owns some outstanding work. -

-
-

- reset -

-
-

- Indicate that the work is no longer outstanding. -

-
-

- ~executor_work_guard -

-
-

- Destructor. -

-
-
- - Requirements -
-

- Header: asio/executor_work_guard.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/_executor_work_guard.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/_executor_work_guard.html deleted file mode 100644 index 6de8bcc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/_executor_work_guard.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -executor_work_guard::~executor_work_guard - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~executor_work_guard();
-
-

- Unless the object has already been reset, or is in a moved-from state, - calls on_work_finished() on the stored executor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_type.html deleted file mode 100644 index 06ff5b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -executor_work_guard::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - underlying executor type. -

-
typedef Executor executor_type;
-
-
- - Requirements -
-

- Header: asio/executor_work_guard.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard.html deleted file mode 100644 index bb16a61..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -executor_work_guard::executor_work_guard - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructs - a executor_work_guard object for the specified executor. -

-
explicit executor_work_guard(
-    const executor_type & e);
-  » more...
-
-

- Copy constructor. -

-
executor_work_guard(
-    const executor_work_guard & other);
-  » more...
-
-

- Move constructor. -

-
executor_work_guard(
-    executor_work_guard && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload1.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload1.html deleted file mode 100644 index d7169fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload1.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -executor_work_guard::executor_work_guard (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructs a executor_work_guard object for the specified - executor. -

-
executor_work_guard(
-    const executor_type & e);
-
-

- Stores a copy of e and calls on_work_started() - on it. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload2.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload2.html deleted file mode 100644 index af0f65c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor_work_guard::executor_work_guard (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
executor_work_guard(
-    const executor_work_guard & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload3.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload3.html deleted file mode 100644 index b5684f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor_work_guard::executor_work_guard (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
executor_work_guard(
-    executor_work_guard && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/get_executor.html deleted file mode 100644 index 2e3d4f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor_work_guard::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the associated executor. -

-
executor_type get_executor() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/owns_work.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/owns_work.html deleted file mode 100644 index bc0b0fb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/owns_work.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -executor_work_guard::owns_work - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Whether - the executor_work_guard - object owns some outstanding work. -

-
bool owns_work() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/reset.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/reset.html deleted file mode 100644 index 9b6dee2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/reset.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor_work_guard::reset - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Indicate - that the work is no longer outstanding. -

-
void reset();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token.html b/Sources/Vendor/asio/doc/asio/reference/experimental__await_token.html deleted file mode 100644 index 3cf0678..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -experimental::await_token - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A completion token that represents the currently executing coroutine. -

-
template<
-    typename Executor>
-class await_token
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The associated executor type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- await_token -

-
-

- Copy constructor.

Move constructor. -

-
-

- get_executor -

-
-

- Get the associated executor. -

-
-

- The experimental::await_token - class is used to represent the currently executing coroutine. An experimental::await_token - may be passed as a handler to an asynchronous operation. For example: -

-
awaitable<void> my_coroutine()
-{
-  await_token token = co_await this_coro::token();
-  ...
-  std::size_t n = co_await my_socket.async_read_some(buffer, token);
-  ...
-}
-
-

- 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. -

-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token.html b/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token.html deleted file mode 100644 index 2a0a4d2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -experimental::await_token::await_token - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Copy - constructor. -

-
await_token(
-    const await_token & other);
-  » more...
-
-

- Move constructor. -

-
await_token(
-    await_token && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token/overload1.html b/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token/overload1.html deleted file mode 100644 index aae2648..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -experimental::await_token::await_token (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
await_token(
-    const await_token & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token/overload2.html b/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token/overload2.html deleted file mode 100644 index 7962ba3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -experimental::await_token::await_token (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
await_token(
-    await_token && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/executor_type.html deleted file mode 100644 index 44d5a73..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -experimental::await_token::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - associated executor type. -

-
typedef Executor executor_type;
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/get_executor.html deleted file mode 100644 index aa66ffa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -experimental::await_token::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the associated executor. -

-
executor_type get_executor() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable.html b/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable.html deleted file mode 100644 index 647875b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable.html +++ /dev/null @@ -1,151 +0,0 @@ - - - -experimental::awaitable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The return type of a coroutine or asynchronous operation. -

-
template<
-    typename T,
-    typename Executor = strand<executor>>
-class awaitable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The executor type that will be used for the coroutine. -

-
-

- value_type -

-
-

- The type of the awaited value. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- awaitable -

-
-

- Move constructor. -

-
-

- ~awaitable -

-
-

- Destructor. -

-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/_awaitable.html b/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/_awaitable.html deleted file mode 100644 index edba7a1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/_awaitable.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -experimental::awaitable::~awaitable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~awaitable();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/awaitable.html b/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/awaitable.html deleted file mode 100644 index e884f26..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/awaitable.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -experimental::awaitable::awaitable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move - constructor. -

-
awaitable(
-    awaitable && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/executor_type.html deleted file mode 100644 index 016f7d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -experimental::awaitable::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - executor type that will be used for the coroutine. -

-
typedef Executor executor_type;
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/value_type.html b/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/value_type.html deleted file mode 100644 index 4363938..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/value_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -experimental::awaitable::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the awaited value. -

-
typedef T value_type;
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn.html b/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn.html deleted file mode 100644 index 9dc0654..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -experimental::co_spawn - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Spawn a new thread - of execution. -

-
template<
-    typename Executor,
-    typename F,
-    typename CompletionToken,
-    typename  = typename enable_if<is_executor<Executor>::value>::type>
-auto co_spawn(
-    const Executor & ex,
-    F && f,
-    CompletionToken && token);
-  » more...
-
-template<
-    typename ExecutionContext,
-    typename F,
-    typename CompletionToken,
-    typename  = typename enable_if<      is_convertible<ExecutionContext&, execution_context&>::value>::type>
-auto co_spawn(
-    ExecutionContext & ctx,
-    F && f,
-    CompletionToken && token);
-  » more...
-
-template<
-    typename Executor,
-    typename F,
-    typename CompletionToken>
-auto co_spawn(
-    const await_token< Executor > & parent,
-    F && f,
-    CompletionToken && token);
-  » more...
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload1.html b/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload1.html deleted file mode 100644 index 5e4cd5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload1.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -experimental::co_spawn (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Spawn a new thread of execution. -

-
template<
-    typename Executor,
-    typename F,
-    typename CompletionToken,
-    typename  = typename enable_if<is_executor<Executor>::value>::type>
-auto co_spawn(
-    const Executor & ex,
-    F && f,
-    CompletionToken && token);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload2.html b/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload2.html deleted file mode 100644 index b0a768a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload2.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -experimental::co_spawn (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Spawn a new thread of execution. -

-
template<
-    typename ExecutionContext,
-    typename F,
-    typename CompletionToken,
-    typename  = typename enable_if<      is_convertible<ExecutionContext&, execution_context&>::value>::type>
-auto co_spawn(
-    ExecutionContext & ctx,
-    F && f,
-    CompletionToken && token);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload3.html b/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload3.html deleted file mode 100644 index dff8e08..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload3.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -experimental::co_spawn (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Spawn a new thread of execution. -

-
template<
-    typename Executor,
-    typename F,
-    typename CompletionToken>
-auto co_spawn(
-    const await_token< Executor > & parent,
-    F && f,
-    CompletionToken && token);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__detached.html b/Sources/Vendor/asio/doc/asio/reference/experimental__detached.html deleted file mode 100644 index d1248f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__detached.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -experimental::detached - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A special value, - similar to std::nothrow. -

-
constexpr detached_t detached;
-
-

- See the documentation for experimental::detached_t - for a usage example. -

-
- - Requirements -
-

- Header: asio/experimental/detached.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__detached_t.html b/Sources/Vendor/asio/doc/asio/reference/experimental__detached_t.html deleted file mode 100644 index e921286..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__detached_t.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -experimental::detached_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Class used to specify that an asynchronous operation is detached. -

-
class detached_t
-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- detached_t -

-
-

- Constructor. -

-
-

- The experimental::detached_t - class is used to indicate that an asynchronous operation is detached. That - is, there is no completion handler waiting for the operation's result. A - experimental::detached_t - object may be passed as a handler to an asynchronous operation, typically - using the special value asio::experimental::detached. For example: -

-
my_socket.async_send(my_buffer, asio::experimental::detached);
-
-
- - Requirements -
-

- Header: asio/experimental/detached.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__detached_t/detached_t.html b/Sources/Vendor/asio/doc/asio/reference/experimental__detached_t/detached_t.html deleted file mode 100644 index fddcf63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__detached_t/detached_t.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -experimental::detached_t::detached_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
constexpr detached_t();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error.html b/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error.html deleted file mode 100644 index fe4e2ca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -experimental::redirect_error - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - a completion token to capture error_code - values to a variable. -

-
template<
-    typename CompletionToken>
-redirect_error_t< typename decay< CompletionToken >::type > redirect_error(
-    CompletionToken && completion_token,
-    asio::error_code & ec);
-
-
- - Requirements -
-

- Header: asio/experimental/redirect_error.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t.html b/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t.html deleted file mode 100644 index 22b030f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -experimental::redirect_error_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Completion token type used to specify that an error produced by an asynchronous - operation is captured to an error_code - variable. -

-
template<
-    typename CompletionToken>
-class redirect_error_t
-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- redirect_error_t -

-
-

- Constructor. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ec_ -

-
-
-

- token_ -

-
-
-

- The experimental::redirect_error_t - class is used to indicate that any error_code - produced by an asynchronous operation is captured to a specified variable. -

-
- - Requirements -
-

- Header: asio/experimental/redirect_error.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/ec_.html b/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/ec_.html deleted file mode 100644 index afb9440..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/ec_.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -experimental::redirect_error_t::ec_ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
asio::error_code & ec_;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/redirect_error_t.html b/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/redirect_error_t.html deleted file mode 100644 index 52b059a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/redirect_error_t.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -experimental::redirect_error_t::redirect_error_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
template<
-    typename T>
-redirect_error_t(
-    T && completion_token,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/token_.html b/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/token_.html deleted file mode 100644 index 4a70fb3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/token_.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -experimental::redirect_error_t::token_ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
CompletionToken token_;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__executor.html b/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__executor.html deleted file mode 100644 index a57a29c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__executor.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -experimental::this_coro::executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Awaitable - object that returns the executor of the current coroutine. -

-
constexpr executor_t executor();
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__executor_t.html b/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__executor_t.html deleted file mode 100644 index 0170a98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__executor_t.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -experimental::this_coro::executor_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Awaitable type that returns the executor of the current coroutine. -

-
struct executor_t
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__token.html b/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__token.html deleted file mode 100644 index d90d0f3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__token.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -experimental::this_coro::token - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Awaitable - object that returns a completion token for the current coroutine. -

-
constexpr token_t token();
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__token_t.html b/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__token_t.html deleted file mode 100644 index 8c06bb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__token_t.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -experimental::this_coro::token_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Awaitable type that returns a completion token for the current coroutine. -

-
struct token_t
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint.html deleted file mode 100644 index 5babf38..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint.html +++ /dev/null @@ -1,332 +0,0 @@ - - - -generic::basic_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Describes an endpoint for any socket type. -

-
template<
-    typename Protocol>
-class basic_endpoint
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on the - underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint from the - specified socket address.

Construct an endpoint from - the specific endpoint type.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-

- The generic::basic_endpoint - class template describes an endpoint that may be associated with any socket - type. -

-
- - Remarks -
-

- The socket types sockaddr type must be able to fit into a sockaddr_storage - structure. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint.html deleted file mode 100644 index 1a4a1d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -generic::basic_endpoint::basic_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
basic_endpoint();
-  » more...
-
-

- Construct an endpoint from the specified socket address. -

-
basic_endpoint(
-    const void * socket_address,
-    std::size_t socket_address_size,
-    int socket_protocol = 0);
-  » more...
-
-

- Construct an endpoint from the specific endpoint type. -

-
template<
-    typename Endpoint>
-basic_endpoint(
-    const Endpoint & endpoint);
-  » more...
-
-

- Copy constructor. -

-
basic_endpoint(
-    const basic_endpoint & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload1.html deleted file mode 100644 index 9507521..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -generic::basic_endpoint::basic_endpoint (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
basic_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload2.html deleted file mode 100644 index 256c5ce..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -generic::basic_endpoint::basic_endpoint (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an endpoint from the specified socket address. -

-
basic_endpoint(
-    const void * socket_address,
-    std::size_t socket_address_size,
-    int socket_protocol = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload3.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload3.html deleted file mode 100644 index b438491..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload3.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -generic::basic_endpoint::basic_endpoint (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an endpoint from the specific endpoint type. -

-
template<
-    typename Endpoint>
-basic_endpoint(
-    const Endpoint & endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload4.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload4.html deleted file mode 100644 index 419d703..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::basic_endpoint::basic_endpoint (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_endpoint(
-    const basic_endpoint & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/capacity.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/capacity.html deleted file mode 100644 index cf31b49..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/capacity.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::basic_endpoint::capacity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the capacity of the endpoint in the native type. -

-
std::size_t capacity() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data.html deleted file mode 100644 index 1eca83f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -generic::basic_endpoint::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the underlying endpoint in the native type. -

-
data_type * data();
-  » more...
-
-const data_type * data() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data/overload1.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data/overload1.html deleted file mode 100644 index 99d4357..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -generic::basic_endpoint::data (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying endpoint in the native type. -

-
data_type * data();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data/overload2.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data/overload2.html deleted file mode 100644 index c4e1262..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -generic::basic_endpoint::data (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying endpoint in the native type. -

-
const data_type * data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data_type.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data_type.html deleted file mode 100644 index 52e0524..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data_type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -generic::basic_endpoint::data_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the endpoint structure. This type is dependent on the underlying - implementation of the socket layer. -

-
typedef implementation_defined data_type;
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_eq_.html deleted file mode 100644 index 7d52771..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -generic::basic_endpoint::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - from another endpoint. -

-
basic_endpoint & operator=(
-    const basic_endpoint & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_eq__eq_.html deleted file mode 100644 index eaf025a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::basic_endpoint::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two endpoints for equality. -

-
friend bool operator==(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_gt_.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_gt_.html deleted file mode 100644 index 480ac1e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_gt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::basic_endpoint::operator> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator>(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_gt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_gt__eq_.html deleted file mode 100644 index 70fcc6a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_gt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::basic_endpoint::operator>= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator>=(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_lt_.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_lt_.html deleted file mode 100644 index a708f87..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_lt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::basic_endpoint::operator< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator<(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_lt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_lt__eq_.html deleted file mode 100644 index deaab24..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_lt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::basic_endpoint::operator<= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator<=(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_not__eq_.html deleted file mode 100644 index ecb6726..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::basic_endpoint::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two endpoints for inequality. -

-
friend bool operator!=(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/protocol.html deleted file mode 100644 index 1e8bbe5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::basic_endpoint::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol associated with the endpoint. -

-
protocol_type protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/protocol_type.html deleted file mode 100644 index a8a56ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -generic::basic_endpoint::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type associated with the endpoint. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/resize.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/resize.html deleted file mode 100644 index 4cc984e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/resize.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -generic::basic_endpoint::resize - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the underlying size of the endpoint in the native type. -

-
void resize(
-    std::size_t new_size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/size.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/size.html deleted file mode 100644 index 28d4eaf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::basic_endpoint::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the underlying size of the endpoint in the native type. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol.html deleted file mode 100644 index dcdfa32..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol.html +++ /dev/null @@ -1,252 +0,0 @@ - - - -generic::datagram_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for a generic datagram-oriented socket. -

-
class datagram_protocol
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint -

-
-

- The type of an endpoint. -

-
-

- socket -

-
-

- The generic socket type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- datagram_protocol -

-
-

- Construct a protocol object for a specific address family and protocol. -

Construct a generic protocol object from a specific - protocol. -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two protocols for inequality. -

-
-

- operator== -

-
-

- Compare two protocols for equality. -

-
-

- The generic::datagram_protocol - class contains flags necessary for datagram-oriented sockets of any address - family and protocol. -

-
- - 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(asio::ip::udp::v4());
-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/generic/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol.html deleted file mode 100644 index a420f32..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::datagram_protocol::datagram_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a protocol object for a specific address family and protocol. -

-
datagram_protocol(
-    int address_family,
-    int socket_protocol);
-  » more...
-
-

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-datagram_protocol(
-    const Protocol & source_protocol);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload1.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload1.html deleted file mode 100644 index 04d39b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -generic::datagram_protocol::datagram_protocol (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a protocol object for a specific address family and protocol. -

-
datagram_protocol(
-    int address_family,
-    int socket_protocol);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload2.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload2.html deleted file mode 100644 index c5d7d4d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload2.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -generic::datagram_protocol::datagram_protocol (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-datagram_protocol(
-    const Protocol & source_protocol);
-
-
- - Exceptions -
-
-

-
-
@c
-

- bad_cast Thrown if the source protocol is not datagram-oriented. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/endpoint.html deleted file mode 100644 index d86302c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/endpoint.html +++ /dev/null @@ -1,333 +0,0 @@ - - - -generic::datagram_protocol::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of an endpoint. -

-
typedef basic_endpoint< datagram_protocol > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint from - the specified socket address.

Construct an endpoint - from the specific endpoint type.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-

- The generic::basic_endpoint - class template describes an endpoint that may be associated with any socket - type. -

-
- - Remarks -
-

- The socket types sockaddr type must be able to fit into a sockaddr_storage - structure. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/family.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/family.html deleted file mode 100644 index 3fc8447..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::datagram_protocol::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/operator_eq__eq_.html deleted file mode 100644 index e2713e6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::datagram_protocol::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for equality. -

-
friend bool operator==(
-    const datagram_protocol & p1,
-    const datagram_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/operator_not__eq_.html deleted file mode 100644 index 5f39b92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::datagram_protocol::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for inequality. -

-
friend bool operator!=(
-    const datagram_protocol & p1,
-    const datagram_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/protocol.html deleted file mode 100644 index 55aa5d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::datagram_protocol::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/socket.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/socket.html deleted file mode 100644 index c22d3ac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/socket.html +++ /dev/null @@ -1,932 +0,0 @@ - - - -generic::datagram_protocol::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - generic socket type. -

-
typedef basic_datagram_socket< datagram_protocol > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive on a connected socket. -

-
-

- async_receive_from -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send on a connected socket. -

-
-

- async_send_to -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- 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. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_datagram_socket from another.

- Move-assign a basic_datagram_socket from a socket of another - protocol type. -

-
-

- receive -

-
-

- Receive some data on a connected socket. -

-
-

- receive_from -

-
-

- Receive a datagram with the endpoint of the sender. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on a connected socket. -

-
-

- send_to -

-
-

- Send a datagram to the specified endpoint. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_datagram_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_datagram_socket - class template provides asynchronous and blocking datagram-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/type.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/type.html deleted file mode 100644 index 22b8d7d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::datagram_protocol::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the type of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol.html deleted file mode 100644 index 6776a04..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol.html +++ /dev/null @@ -1,251 +0,0 @@ - - - -generic::raw_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for a generic raw socket. -

-
class raw_protocol
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint -

-
-

- The type of an endpoint. -

-
-

- socket -

-
-

- The generic socket type. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- raw_protocol -

-
-

- Construct a protocol object for a specific address family and protocol. -

Construct a generic protocol object from a specific - protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two protocols for inequality. -

-
-

- operator== -

-
-

- Compare two protocols for equality. -

-
-

- The generic::raw_protocol - class contains flags necessary for raw sockets of any address family and - protocol. -

-
- - 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(asio::ip::icmp::v4());
-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/generic/raw_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/endpoint.html deleted file mode 100644 index 9238025..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/endpoint.html +++ /dev/null @@ -1,333 +0,0 @@ - - - -generic::raw_protocol::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of an endpoint. -

-
typedef basic_endpoint< raw_protocol > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint from - the specified socket address.

Construct an endpoint - from the specific endpoint type.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-

- The generic::basic_endpoint - class template describes an endpoint that may be associated with any socket - type. -

-
- - Remarks -
-

- The socket types sockaddr type must be able to fit into a sockaddr_storage - structure. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/raw_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/family.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/family.html deleted file mode 100644 index 77c37f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::raw_protocol::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/operator_eq__eq_.html deleted file mode 100644 index c98c847..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::raw_protocol::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for equality. -

-
friend bool operator==(
-    const raw_protocol & p1,
-    const raw_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/raw_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/operator_not__eq_.html deleted file mode 100644 index 9832b33..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::raw_protocol::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for inequality. -

-
friend bool operator!=(
-    const raw_protocol & p1,
-    const raw_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/raw_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/protocol.html deleted file mode 100644 index cf28530..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::raw_protocol::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol.html deleted file mode 100644 index eacd14e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::raw_protocol::raw_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a protocol object for a specific address family and protocol. -

-
raw_protocol(
-    int address_family,
-    int socket_protocol);
-  » more...
-
-

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-raw_protocol(
-    const Protocol & source_protocol);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload1.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload1.html deleted file mode 100644 index f2f9a82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -generic::raw_protocol::raw_protocol (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a protocol object for a specific address family and protocol. -

-
raw_protocol(
-    int address_family,
-    int socket_protocol);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload2.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload2.html deleted file mode 100644 index 374001c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload2.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -generic::raw_protocol::raw_protocol (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-raw_protocol(
-    const Protocol & source_protocol);
-
-
- - Exceptions -
-
-

-
-
@c
-

- bad_cast Thrown if the source protocol is not raw-oriented. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/socket.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/socket.html deleted file mode 100644 index b4b2779..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/socket.html +++ /dev/null @@ -1,930 +0,0 @@ - - - -generic::raw_protocol::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - generic socket type. -

-
typedef basic_raw_socket< raw_protocol > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive on a connected socket. -

-
-

- async_receive_from -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send on a connected socket. -

-
-

- async_send_to -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- 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. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_raw_socket from another.

Move-assign - a basic_raw_socket from a socket of another protocol type. -

-
-

- receive -

-
-

- Receive some data on a connected socket. -

-
-

- receive_from -

-
-

- Receive raw data with the endpoint of the sender. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on a connected socket. -

-
-

- send_to -

-
-

- Send raw data to the specified endpoint. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_raw_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_raw_socket - class template provides asynchronous and blocking raw-oriented socket functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/raw_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/type.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/type.html deleted file mode 100644 index 83aaf92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::raw_protocol::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the type of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol.html deleted file mode 100644 index 846e4e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol.html +++ /dev/null @@ -1,247 +0,0 @@ - - - -generic::seq_packet_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for a generic sequenced packet socket. -

-
class seq_packet_protocol
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint -

-
-

- The type of an endpoint. -

-
-

- socket -

-
-

- The generic socket type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- seq_packet_protocol -

-
-

- Construct a protocol object for a specific address family and protocol. -

Construct a generic protocol object from a specific - protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two protocols for inequality. -

-
-

- operator== -

-
-

- Compare two protocols for equality. -

-
-

- The generic::seq_packet_protocol - class contains flags necessary for seq_packet-oriented sockets of any address - family and protocol. -

-
- - Examples -
-

- Constructing using a native address family and socket protocol: -

-
seq_packet_protocol p(AF_INET, IPPROTO_SCTP);
-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/generic/seq_packet_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/endpoint.html deleted file mode 100644 index ec5bd7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/endpoint.html +++ /dev/null @@ -1,333 +0,0 @@ - - - -generic::seq_packet_protocol::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of an endpoint. -

-
typedef basic_endpoint< seq_packet_protocol > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint from - the specified socket address.

Construct an endpoint - from the specific endpoint type.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-

- The generic::basic_endpoint - class template describes an endpoint that may be associated with any socket - type. -

-
- - Remarks -
-

- The socket types sockaddr type must be able to fit into a sockaddr_storage - structure. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/seq_packet_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/family.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/family.html deleted file mode 100644 index fab1224..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::seq_packet_protocol::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/operator_eq__eq_.html deleted file mode 100644 index ee3c531..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::seq_packet_protocol::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for equality. -

-
friend bool operator==(
-    const seq_packet_protocol & p1,
-    const seq_packet_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/seq_packet_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/operator_not__eq_.html deleted file mode 100644 index 44bcbc6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::seq_packet_protocol::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for inequality. -

-
friend bool operator!=(
-    const seq_packet_protocol & p1,
-    const seq_packet_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/seq_packet_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/protocol.html deleted file mode 100644 index 457892d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::seq_packet_protocol::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol.html deleted file mode 100644 index 9637263..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::seq_packet_protocol::seq_packet_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a protocol object for a specific address family and protocol. -

-
seq_packet_protocol(
-    int address_family,
-    int socket_protocol);
-  » more...
-
-

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-seq_packet_protocol(
-    const Protocol & source_protocol);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload1.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload1.html deleted file mode 100644 index b0c4a47..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -generic::seq_packet_protocol::seq_packet_protocol (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a protocol object for a specific address family and protocol. -

-
seq_packet_protocol(
-    int address_family,
-    int socket_protocol);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload2.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload2.html deleted file mode 100644 index bcb1ed0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -generic::seq_packet_protocol::seq_packet_protocol (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-seq_packet_protocol(
-    const Protocol & source_protocol);
-
-
- - Exceptions -
-
-

-
-
@c
-

- bad_cast Thrown if the source protocol is not based around sequenced - packets. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/socket.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/socket.html deleted file mode 100644 index bf23e54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/socket.html +++ /dev/null @@ -1,885 +0,0 @@ - - - -generic::seq_packet_protocol::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - generic socket type. -

-
typedef basic_seq_packet_socket< seq_packet_protocol > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- 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. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_seq_packet_socket from another.

- Move-assign a basic_seq_packet_socket from a socket of another - protocol type. -

-
-

- receive -

-
-

- Receive some data on the socket.

Receive some data - on a connected socket. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_seq_packet_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_seq_packet_socket - class template provides asynchronous and blocking sequenced packet socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/seq_packet_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/type.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/type.html deleted file mode 100644 index 136d6cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::seq_packet_protocol::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the type of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol.html deleted file mode 100644 index a4fb553..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol.html +++ /dev/null @@ -1,263 +0,0 @@ - - - -generic::stream_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for a generic stream-oriented socket. -

-
class stream_protocol
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint -

-
-

- The type of an endpoint. -

-
-

- iostream -

-
-

- The generic socket iostream type. -

-
-

- socket -

-
-

- The generic socket type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- stream_protocol -

-
-

- Construct a protocol object for a specific address family and protocol. -

Construct a generic protocol object from a specific - protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two protocols for inequality. -

-
-

- operator== -

-
-

- Compare two protocols for equality. -

-
-

- The generic::stream_protocol - class contains flags necessary for stream-oriented sockets of any address - family and protocol. -

-
- - 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(asio::ip::tcp::v4());
-
-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/generic/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/endpoint.html deleted file mode 100644 index 204e387..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/endpoint.html +++ /dev/null @@ -1,333 +0,0 @@ - - - -generic::stream_protocol::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of an endpoint. -

-
typedef basic_endpoint< stream_protocol > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint from - the specified socket address.

Construct an endpoint - from the specific endpoint type.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-

- The generic::basic_endpoint - class template describes an endpoint that may be associated with any socket - type. -

-
- - Remarks -
-

- The socket types sockaddr type must be able to fit into a sockaddr_storage - structure. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/family.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/family.html deleted file mode 100644 index aefcda4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::stream_protocol::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/iostream.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/iostream.html deleted file mode 100644 index 53d387c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/iostream.html +++ /dev/null @@ -1,327 +0,0 @@ - - - -generic::stream_protocol::iostream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - generic socket iostream type. -

-
typedef basic_socket_iostream< stream_protocol > iostream;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type. -

-
-

- duration_type -

-
-

- (Deprecated: Use duration.) The duration type. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- time_point -

-
-

- The time type. -

-
-

- time_type -

-
-

- (Deprecated: Use time_point.) The time type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_socket_iostream -

-
-

- Construct a basic_socket_iostream without establishing a connection. -

Construct a basic_socket_iostream from the supplied - socket.

Move-construct a basic_socket_iostream - from another.

Establish a connection to an endpoint - corresponding to a resolver query. -

-
-

- close -

-
-

- Close the connection. -

-
-

- connect -

-
-

- Establish a connection to an endpoint corresponding to a resolver - query. -

-
-

- error -

-
-

- Get the last error associated with the stream. -

-
-

- expires_after -

-
-

- Set the stream's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time as an - absolute time.

Set the stream's expiry time as - an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time relative - to now.

(Deprecated: Use expires_after().) Set - the stream's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the stream's expiry time as an absolute time. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_iostream from another. -

-
-

- rdbuf -

-
-

- Return a pointer to the underlying streambuf. -

-
-

- socket -

-
-

- Get a reference to the underlying socket. -

-
-
- - Requirements -
-

- Header: asio/generic/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/operator_eq__eq_.html deleted file mode 100644 index 956a69a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::stream_protocol::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for equality. -

-
friend bool operator==(
-    const stream_protocol & p1,
-    const stream_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/operator_not__eq_.html deleted file mode 100644 index 838f9ec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::stream_protocol::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for inequality. -

-
friend bool operator!=(
-    const stream_protocol & p1,
-    const stream_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/protocol.html deleted file mode 100644 index 6cd2419..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::stream_protocol::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/socket.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/socket.html deleted file mode 100644 index ed7a8c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/socket.html +++ /dev/null @@ -1,933 +0,0 @@ - - - -generic::stream_protocol::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - generic socket type. -

-
typedef basic_stream_socket< stream_protocol > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_receive -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- 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. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_stream_socket from another.

- Move-assign a basic_stream_socket from a socket of another protocol - type. -

-
-

- read_some -

-
-

- Read some data from the socket. -

-
-

- receive -

-
-

- Receive some data on the socket.

Receive some data - on a connected socket. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- write_some -

-
-

- Write some data to the socket. -

-
-

- ~basic_stream_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_stream_socket - class template provides asynchronous and blocking stream-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol.html deleted file mode 100644 index dc9c7c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::stream_protocol::stream_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a protocol object for a specific address family and protocol. -

-
stream_protocol(
-    int address_family,
-    int socket_protocol);
-  » more...
-
-

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-stream_protocol(
-    const Protocol & source_protocol);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload1.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload1.html deleted file mode 100644 index 48b5b91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -generic::stream_protocol::stream_protocol (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a protocol object for a specific address family and protocol. -

-
stream_protocol(
-    int address_family,
-    int socket_protocol);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload2.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload2.html deleted file mode 100644 index f2cbf1e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload2.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -generic::stream_protocol::stream_protocol (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-stream_protocol(
-    const Protocol & source_protocol);
-
-
- - Exceptions -
-
-

-
-
@c
-

- bad_cast Thrown if the source protocol is not stream-oriented. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/type.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/type.html deleted file mode 100644 index 26b0ba4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::stream_protocol::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the type of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator.html b/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator.html deleted file mode 100644 index dd19b6b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -get_associated_allocator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Helper function - to obtain an object's associated allocator. -

-
template<
-    typename T>
-associated_allocator< T >::type get_associated_allocator(
-    const T & t);
-  » more...
-
-template<
-    typename T,
-    typename Allocator>
-associated_allocator< T, Allocator >::type get_associated_allocator(
-    const T & t,
-    const Allocator & a);
-  » more...
-
-
- - Requirements -
-

- Header: asio/associated_allocator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator/overload1.html b/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator/overload1.html deleted file mode 100644 index 0bc090b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator/overload1.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -get_associated_allocator (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Helper function to obtain an object's associated allocator. -

-
template<
-    typename T>
-associated_allocator< T >::type get_associated_allocator(
-    const T & t);
-
-
- - Return - Value -
-

- associated_allocator<T>::get(t) -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator/overload2.html b/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator/overload2.html deleted file mode 100644 index 2406f83..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator/overload2.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -get_associated_allocator (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Helper function to obtain an object's associated allocator. -

-
template<
-    typename T,
-    typename Allocator>
-associated_allocator< T, Allocator >::type get_associated_allocator(
-    const T & t,
-    const Allocator & a);
-
-
- - Return - Value -
-

- associated_allocator<T, Allocator>::get(t, a) -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor.html b/Sources/Vendor/asio/doc/asio/reference/get_associated_executor.html deleted file mode 100644 index 6415cdf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -get_associated_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Helper function - to obtain an object's associated executor. -

-
template<
-    typename T>
-associated_executor< T >::type get_associated_executor(
-    const T & t);
-  » more...
-
-template<
-    typename T,
-    typename Executor>
-associated_executor< T, Executor >::type get_associated_executor(
-    const T & t,
-    const Executor & ex,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-template<
-    typename T,
-    typename ExecutionContext>
-associated_executor< T, typename ExecutionContext::executor_type >::type get_associated_executor(
-    const T & t,
-    ExecutionContext & ctx,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/associated_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload1.html b/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload1.html deleted file mode 100644 index c3e175a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload1.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -get_associated_executor (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Helper function to obtain an object's associated executor. -

-
template<
-    typename T>
-associated_executor< T >::type get_associated_executor(
-    const T & t);
-
-
- - Return - Value -
-

- associated_executor<T>::get(t) -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload2.html b/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload2.html deleted file mode 100644 index f725891..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -get_associated_executor (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Helper function to obtain an object's associated executor. -

-
template<
-    typename T,
-    typename Executor>
-associated_executor< T, Executor >::type get_associated_executor(
-    const T & t,
-    const Executor & ex,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-
- - Return - Value -
-

- associated_executor<T, Executor>::get(t, ex) -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload3.html b/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload3.html deleted file mode 100644 index 18a7ed3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload3.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -get_associated_executor (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Helper function to obtain an object's associated executor. -

-
template<
-    typename T,
-    typename ExecutionContext>
-associated_executor< T, typename ExecutionContext::executor_type >::type get_associated_executor(
-    const T & t,
-    ExecutionContext & ctx,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-
- - Return - Value -
-

- associated_executor<T, typename ExecutionContext::executor_type>get(t, - ctx.get_executor()) -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/handler_type.html b/Sources/Vendor/asio/doc/asio/reference/handler_type.html deleted file mode 100644 index cf92074..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/handler_type.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -handler_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use two-parameter version of async_result.) - Default handler type traits provided for all completion token types. -

-
template<
-    typename CompletionToken,
-    typename Signature,
-    typename  = void>
-struct handler_type
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- type -

-
-

- The handler type for the specific signature. -

-
-

- The 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 completion token types. -

-
- - Requirements -
-

- Header: asio/handler_type.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/handler_type/type.html b/Sources/Vendor/asio/doc/asio/reference/handler_type/type.html deleted file mode 100644 index 85103b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/handler_type/type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -handler_type::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The handler type for the - specific signature. -

-
typedef conditional< is_same< CompletionToken, typename decay< CompletionToken >::type >::value, decay< CompletionToken >, handler_type< typename decay< CompletionToken >::type, Signature > >::type::type type;
-
-
- - Requirements -
-

- Header: asio/handler_type.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/has_service.html b/Sources/Vendor/asio/doc/asio/reference/has_service.html deleted file mode 100644 index 18e2f70..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/has_service.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -has_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
template<
-    typename Service>
-bool has_service(
-    execution_context & e);
-
-

- This function is used to determine whether the execution_context - contains a service object corresponding to the given service type. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- A boolean indicating whether the execution_context - contains the service. -

-
- - Requirements -
-

- Header: asio/impl/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/high_resolution_timer.html b/Sources/Vendor/asio/doc/asio/reference/high_resolution_timer.html deleted file mode 100644 index 744bfe7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/high_resolution_timer.html +++ /dev/null @@ -1,467 +0,0 @@ - - - -high_resolution_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Typedef for a timer - based on the high resolution clock. -

-
typedef basic_waitable_timer< chrono::high_resolution_clock > high_resolution_timer;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type of the clock. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- time_point -

-
-

- The time point type of the clock. -

-
-

- traits_type -

-
-

- The wait traits type. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the timer. -

-
-

- basic_waitable_timer -

-
-

- Constructor.

Constructor to set a particular expiry - time as an absolute time.

Constructor to set a particular - expiry time relative to now.

Move-construct a basic_waitable_timer - from another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancel - any asynchronous operations that are waiting on the timer. -

-
-

- cancel_one -

-
-

- Cancels one asynchronous operation that is waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancels - one asynchronous operation that is waiting on the timer. -

-
-

- expires_after -

-
-

- Set the timer's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time as an absolute - time.

Set the timer's expiry time as an absolute - time.

(Deprecated: Use non-error_code overload.) - Set the timer's expiry time as an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time relative - to now.

(Deprecated: Use expires_after().) Set the - timer's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the timer's expiry time as an absolute time. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_waitable_timer from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the timer. -

-
-

- ~basic_waitable_timer -

-
-

- Destroys the timer. -

-
-

- The basic_waitable_timer - class template provides the ability to perform a blocking or asynchronous - wait for a timer to expire. -

-

- 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 one of the steady_timer, - system_timer - or high_resolution_timer - typedefs. -

-
- - Remarks -
-

- This waitable timer functionality is for use with the C++11 standard library's - <chrono> facility, or with the Boost.Chrono library. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Examples -
-

- Performing a blocking wait (C++11): -

-
// Construct a timer without setting an expiry time.
-asio::steady_timer timer(io_context);
-
-// Set an expiry time relative to now.
-timer.expires_after(std::chrono::seconds(5));
-
-// Wait for the timer to expire.
-timer.wait();
-
-

- Performing an asynchronous wait (C++11): -

-
void handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Timer expired.
-  }
-}
-
-...
-
-// Construct a timer with an absolute expiry time.
-asio::steady_timer timer(io_context,
-    std::chrono::steady_clock::now() + std::chrono::seconds(60));
-
-// Start an asynchronous wait.
-timer.async_wait(handler);
-
-
- - Changing - an active waitable timer's expiry time -
-

- Changing the expiry time of a timer while there are pending asynchronous - waits causes those wait operations to be cancelled. To ensure that the action - associated with the timer is performed only once, use something like this: - used: -

-
void on_some_event()
-{
-  if (my_timer.expires_after(seconds(5)) > 0)
-  {
-    // We managed to cancel the timer. Start new asynchronous wait.
-    my_timer.async_wait(on_timeout);
-  }
-  else
-  {
-    // Too late, timer has already expired!
-  }
-}
-
-void on_timeout(const asio::error_code& e)
-{
-  if (e != asio::error::operation_aborted)
-  {
-    // Timer was not cancelled, take necessary action.
-  }
-}
-
-
    -
  • - The asio::basic_waitable_timer::expires_after() function - cancels any pending asynchronous waits, and returns the number of asynchronous - waits that were cancelled. If it returns 0 then you were too late and - the wait handler has already been executed, or will soon be executed. - If it returns 1 then the wait handler was successfully cancelled. -
  • -
  • - If a wait handler is cancelled, the error_code - passed to it contains the value asio::error::operation_aborted. -
  • -
-

- This typedef uses the C++11 <chrono> standard library - facility, if available. Otherwise, it may use the Boost.Chrono library. To - explicitly utilise Boost.Chrono, use the basic_waitable_timer - template directly: -

-
typedef basic_waitable_timer<boost::chrono::high_resolution_clock> timer;
-
-
- - Requirements -
-

- Header: asio/high_resolution_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/invalid_service_owner.html b/Sources/Vendor/asio/doc/asio/reference/invalid_service_owner.html deleted file mode 100644 index e72f137..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/invalid_service_owner.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -invalid_service_owner - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Exception thrown when trying to add a service object to an execution_context - where the service has a different owner. -

-
class invalid_service_owner
-
-
- - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- invalid_service_owner -

-
-
-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/invalid_service_owner/invalid_service_owner.html b/Sources/Vendor/asio/doc/asio/reference/invalid_service_owner/invalid_service_owner.html deleted file mode 100644 index 46dc48f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/invalid_service_owner/invalid_service_owner.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -invalid_service_owner::invalid_service_owner - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
invalid_service_owner();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context.html b/Sources/Vendor/asio/doc/asio/reference/io_context.html deleted file mode 100644 index ffdfeeb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context.html +++ /dev/null @@ -1,714 +0,0 @@ - - - -io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides core I/O functionality. -

-
class io_context :
-  public execution_context
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- Executor used to submit functions to an io_context. -

-
-

- service -

-
-

- Base class for all io_context services. -

-
-

- strand -

-
-

- Provides serialised handler execution. -

-
-

- work -

-
-

- (Deprecated: Use executor_work_guard.) Class to inform the io_context - when it has work to do. -

-
-

- count_type -

-
-

- The type used to count the number of handlers executed by the context. -

-
-

- fork_event -

-
-

- Fork-related event notifications. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dispatch -

-
-

- (Deprecated: Use asio::dispatch().) Request the io_context to invoke - the given handler. -

-
-

- get_executor -

-
-

- Obtains the executor associated with the io_context. -

-
-

- io_context -

-
-

- Constructor. -

-
-

- notify_fork -

-
-

- Notify the execution_context of a fork-related event. -

-
-

- poll -

-
-

- Run the io_context object's event processing loop to execute ready - handlers.

(Deprecated: Use non-error_code overload.) - Run the io_context object's event processing loop to execute ready - handlers. -

-
-

- poll_one -

-
-

- Run the io_context object's event processing loop to execute one - ready handler.

(Deprecated: Use non-error_code overload.) - Run the io_context object's event processing loop to execute one - ready handler. -

-
-

- post -

-
-

- (Deprecated: Use asio::post().) Request the io_context to invoke - the given handler and return immediately. -

-
-

- reset -

-
-

- (Deprecated: Use restart().) Reset the io_context in preparation - for a subsequent run() invocation. -

-
-

- restart -

-
-

- Restart the io_context in preparation for a subsequent run() invocation. -

-
-

- run -

-
-

- Run the io_context object's event processing loop.

- (Deprecated: Use non-error_code overload.) Run the io_context object's - event processing loop. -

-
-

- run_for -

-
-

- Run the io_context object's event processing loop for a specified - duration. -

-
-

- run_one -

-
-

- Run the io_context object's event processing loop to execute at - most one handler.

(Deprecated: Use non-error_code - overlaod.) Run the io_context object's event processing loop to - execute at most one handler. -

-
-

- run_one_for -

-
-

- Run the io_context object's event processing loop for a specified - duration to execute at most one handler. -

-
-

- run_one_until -

-
-

- Run the io_context object's event processing loop until a specified - time to execute at most one handler. -

-
-

- run_until -

-
-

- Run the io_context object's event processing loop until a specified - time. -

-
-

- stop -

-
-

- Stop the io_context object's event processing loop. -

-
-

- stopped -

-
-

- Determine whether the io_context object has been stopped. -

-
-

- wrap -

-
-

- (Deprecated: Use asio::bind_executor().) Create a new handler that - automatically dispatches the wrapped handler on the io_context. -

-
-

- ~io_context -

-
-

- Destructor. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- destroy -

-
-

- Destroys all services in the context. -

-
-

- shutdown -

-
-

- Shuts down all services in the context. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add_service -

-
-

- (Deprecated: Use make_service().) Add a service object to the execution_context. -

-
-

- has_service -

-
-

- Determine if an execution_context contains a specified service - type. -

-
-

- make_service -

-
-

- Creates a service object and adds it to the execution_context. -

-
-

- use_service -

-
-

-

Obtain the service object corresponding to the given - type. -

-
-

- The io_context - class provides the core I/O functionality for users of the asynchronous I/O - objects, including: -

-
    -
  • - asio::ip::tcp::socket -
  • -
  • - asio::ip::tcp::acceptor -
  • -
  • - asio::ip::udp::socket -
  • -
  • - deadline_timer. -
  • -
-

- The io_context - class also includes facilities intended for developers of custom asynchronous - services. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe, with the - specific exceptions of the restart() and notify_fork() - functions. Calling restart() while there are unfinished run(), - run_one(), run_for(), run_until(), - poll() or poll_one() calls results in undefined - behaviour. The notify_fork() function should not be called while - any io_context - function, or any function on an I/O object that is associated with the io_context, is being - called in another thread. -

-
- - Synchronous - and asynchronous operations -
-

- Synchronous operations on I/O objects implicitly run the io_context - object for an individual operation. The io_context - functions run(), run_one(), run_for(), - run_until(), poll() or poll_one() - must be called for the io_context - to perform asynchronous operations on behalf of a C++ program. Notification - that an asynchronous operation has completed is delivered by invocation of - the associated handler. Handlers are invoked only by a thread that is currently - calling any overload of run(), run_one(), run_for(), - run_until(), poll() or poll_one() - for the io_context. -

-
- - Effect - of exceptions thrown from handlers -
-

- If an exception is thrown from a handler, the exception is allowed to propagate - through the throwing thread's invocation of run(), run_one(), - run_for(), run_until(), 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(), - run_for(), run_until(), poll() or - poll_one() call may be restarted without - the need for an intervening call to restart(). This allows the - thread to rejoin the io_context - object's thread pool without impacting any other threads in the pool. -

-

- For example: -

-
asio::io_context io_context;
-...
-for (;;)
-{
-  try
-  {
-    io_context.run();
-    break; // run() exited normally
-  }
-  catch (my_exception& e)
-  {
-    // Deal with exception as appropriate.
-  }
-}
-
-
- - Submitting - arbitrary tasks to the io_context -
-

- To submit functions to the io_context, - use the dispatch - , post or defer - free functions. -

-

- For example: -

-
void my_task()
-{
-  ...
-}
-
-...
-
-asio::io_context io_context;
-
-// Submit a function to the io_context.
-asio::post(io_context, my_task);
-
-// Submit a lambda object to the io_context.
-asio::post(io_context,
-    []()
-    {
-      ...
-    });
-
-// Run the io_context until it runs out of work.
-io_context.run();
-
-
- - Stopping - the io_context from running out of work -
-

- Some applications may need to prevent an io_context - object's run() call from returning when there is no more work - to do. For example, the io_context - may be being run in a background thread that is launched prior to the application's - asynchronous operations. The run() call may be kept running - by creating an object of type asio::executor_work_guard<io_context::executor_type>: -

-
asio::io_context io_context;
-asio::executor_work_guard<asio::io_context::executor_type>
-  = asio::make_work_guard(io_context);
-...
-
-

- To effect a shutdown, the application will then need to call the io_context - object's stop() member function. This will cause the io_context - run() call to return as soon as possible, abandoning unfinished - operations and without permitting ready handlers to be dispatched. -

-

- Alternatively, if the application requires that all operations and handlers - be allowed to finish normally, the work object may be explicitly reset. -

-
asio::io_context io_context;
-asio::executor_work_guard<asio::io_context::executor_type>
-  = asio::make_work_guard(io_context);
-...
-work.reset(); // Allow run() to exit.
-
-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/_io_context.html b/Sources/Vendor/asio/doc/asio/reference/io_context/_io_context.html deleted file mode 100644 index 73c080f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/_io_context.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -io_context::~io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~io_context();
-
-

- On destruction, the io_context - performs the following sequence of operations: -

-
    -
  • - For each service object svc in the io_context - set, in reverse order of the beginning of service object lifetime, - performs svc->shutdown(). -
  • -
  • - Uninvoked handler objects that were scheduled for deferred invocation - on the io_context, - or any associated strand, are destroyed. -
  • -
  • - For each service object svc in the io_context - set, in reverse order of the beginning of service object lifetime, - performs delete static_cast<io_context::service*>(svc). -
  • -
-
- - Remarks -
-

- The destruction sequence described above permits programs to simplify their - resource management by using shared_ptr<>. Where an - object's lifetime is tied to the lifetime of a connection (or some other - sequence of asynchronous operations), a shared_ptr to the - object would be bound into the handlers for all asynchronous operations - associated with it. This works as follows: -

-
    -
  • - When a single connection ends, all associated asynchronous operations - complete. The corresponding handler objects are destroyed, and all - shared_ptr references to the objects are destroyed. -
  • -
  • - To shut down the whole program, the io_context - function stop() is called to terminate any run() - calls as soon as possible. The io_context - destructor defined above destroys all handlers, causing all shared_ptr - references to all connection objects to be destroyed. -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/add_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context/add_service.html deleted file mode 100644 index e7a0d2a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/add_service.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -io_context::add_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -(Deprecated: - Use make_service().) Add a service object to the execution_context. -

-
template<
-    typename Service>
-friend void add_service(
-    execution_context & e,
-    Service * svc);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
svc
-
-

- The service object. On success, ownership of the service object is - transferred to the execution_context. - When the execution_context - object is destroyed, it will destroy the service object by performing: -

-
delete static_cast<execution_context::service*>(svc)
-
-

-

-
-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
asio::invalid_service_owner
-

- Thrown if the service's owning execution_context - is not the execution_context - object specified by the e parameter. -

-
-
-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/count_type.html b/Sources/Vendor/asio/doc/asio/reference/io_context/count_type.html deleted file mode 100644 index dd7ccea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/count_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -io_context::count_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type used to - count the number of handlers executed by the context. -

-
typedef std::size_t count_type;
-
-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/destroy.html b/Sources/Vendor/asio/doc/asio/reference/io_context/destroy.html deleted file mode 100644 index 78d3556..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/destroy.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -io_context::destroy - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Destroys all services - in the context. -

-
void destroy();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order * of the beginning of service object lifetime, - performs delete static_cast<execution_context::service*>(svc). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/io_context/dispatch.html deleted file mode 100644 index c819129..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/dispatch.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -io_context::dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: Use dispatch.) Request - the io_context - to invoke the given handler. -

-
template<
-    typename LegacyCompletionHandler>
-DEDUCED dispatch(
-    LegacyCompletionHandler && handler);
-
-

- This function is used to ask the io_context - to execute the given handler. -

-

- The io_context - guarantees that the handler will only be called in a thread in which the - run(), run_one(), poll() or poll_one() - member functions is currently being invoked. The handler may be executed - inside this function if the guarantee can be met. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called. The io_context - will make a copy of the handler object as required. The function - signature of the handler must be: -

-
void handler();
-
-

-

-
-
-
-
- - Remarks -
-

- This function throws an exception only if: -

-
    -
  • - the handler's asio_handler_allocate function; or -
  • -
  • - the handler's copy constructor -
  • -
-

- throws an exception. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/fork_event.html b/Sources/Vendor/asio/doc/asio/reference/io_context/fork_event.html deleted file mode 100644 index e805b66..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/fork_event.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -io_context::fork_event - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Fork-related event - notifications. -

-
enum fork_event
-
-

- - - -

-
- - Values -
-
-

-
-
fork_prepare
-

- Notify the context that the process is about to fork. -

-
fork_parent
-

- Notify the context that the process has forked and is the parent. -

-
fork_child
-

- Notify the context that the process has forked and is the child. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/io_context/get_executor.html deleted file mode 100644 index 153cc00..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -io_context::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtains the - executor associated with the io_context. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/has_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context/has_service.html deleted file mode 100644 index 6537539..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/has_service.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -io_context::has_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Determine if - an execution_context - contains a specified service type. -

-
template<
-    typename Service>
-friend bool has_service(
-    execution_context & e);
-
-

- This function is used to determine whether the execution_context - contains a service object corresponding to the given service type. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return Value -
-

- A boolean indicating whether the execution_context - contains the service. -

-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/io_context.html b/Sources/Vendor/asio/doc/asio/reference/io_context/io_context.html deleted file mode 100644 index bcec8f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/io_context.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -io_context::io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
io_context();
-  » more...
-
-explicit io_context(
-    int concurrency_hint);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/io_context/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context/io_context/overload1.html deleted file mode 100644 index bd120c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/io_context/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -io_context::io_context (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor. -

-
io_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/io_context/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context/io_context/overload2.html deleted file mode 100644 index 31d9d02..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/io_context/overload2.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -io_context::io_context (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor. -

-
io_context(
-    int concurrency_hint);
-
-

- Construct with a hint about the required level of concurrency. -

-
- - Parameters -
-
-

-
-
concurrency_hint
-

- A suggestion to the implementation on how many threads it should - allow to run simultaneously. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/make_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context/make_service.html deleted file mode 100644 index 68f9fde..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/make_service.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -io_context::make_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Creates a service - object and adds it to the execution_context. -

-
template<
-    typename Service,
-    typename... Args>
-friend Service & make_service(
-    execution_context & e,
-    Args &&... args);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
args
-

- Zero or more arguments to be passed to the service constructor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
-
-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/notify_fork.html b/Sources/Vendor/asio/doc/asio/reference/io_context/notify_fork.html deleted file mode 100644 index 902ec88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/notify_fork.html +++ /dev/null @@ -1,120 +0,0 @@ - - - -io_context::notify_fork - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Notify the execution_context - of a fork-related event. -

-
void notify_fork(
-    fork_event event);
-
-

- This function is used to inform the execution_context - that the process is about to fork, or has just forked. This allows the - execution_context, - and the services it contains, to perform any necessary housekeeping to - ensure correct operation following a fork. -

-

- This function must not be called while any other execution_context - function, or any function associated with the execution_context's derived - class, is being called in another thread. It is, however, safe to call - this function from within a completion handler, provided no other thread - is accessing the execution_context - or its derived class. -

-
- - Parameters -
-
-

-
-
event
-

- A fork-related event. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the notification fails the execution_context - object should no longer be used and should be destroyed. -

-
-
-
- - Example -
-

- The following code illustrates how to incorporate the notify_fork() - function: -

-
my_execution_context.notify_fork(execution_context::fork_prepare);
-if (fork() == 0)
-{
-  // This is the child process.
-  my_execution_context.notify_fork(execution_context::fork_child);
-}
-else
-{
-  // This is the parent process.
-  my_execution_context.notify_fork(execution_context::fork_parent);
-}
-
-
- - Remarks -
-

- For each service object svc in the execution_context - set, performs svc->notify_fork();. When processing the - fork_prepare event, services are visited in reverse order of the beginning - of service object lifetime. Otherwise, services are visited in order of - the beginning of service object lifetime. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/poll.html b/Sources/Vendor/asio/doc/asio/reference/io_context/poll.html deleted file mode 100644 index e64fbe2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/poll.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -io_context::poll - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the io_context - object's event processing loop to execute ready handlers. -

-
count_type poll();
-  » more...
-
-

- (Deprecated: Use non-error_code overload.) Run the io_context - object's event processing loop to execute ready handlers. -

-
count_type poll(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/poll/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context/poll/overload1.html deleted file mode 100644 index e136fb3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/poll/overload1.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -io_context::poll (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Run the io_context - object's event processing loop to execute ready handlers. -

-
count_type poll();
-
-

- The poll() function runs handlers that are ready to run, - without blocking, until the io_context - has been stopped or there are no more ready handlers. -

-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/poll/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context/poll/overload2.html deleted file mode 100644 index 891ab20..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/poll/overload2.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -io_context::poll (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use non-error_code overload.) Run the io_context - object's event processing loop to execute ready handlers. -

-
count_type poll(
-    asio::error_code & ec);
-
-

- The poll() function runs handlers that are ready to run, - without blocking, until the io_context - has been stopped or there are no more ready handlers. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one.html b/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one.html deleted file mode 100644 index 9ed8164..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -io_context::poll_one - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the io_context - object's event processing loop to execute one ready handler. -

-
count_type poll_one();
-  » more...
-
-

- (Deprecated: Use non-error_code overload.) Run the io_context - object's event processing loop to execute one ready handler. -

-
count_type poll_one(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one/overload1.html deleted file mode 100644 index 9881084..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one/overload1.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -io_context::poll_one (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Run the io_context - object's event processing loop to execute one ready handler. -

-
count_type poll_one();
-
-

- The poll_one() function runs at most one handler that is - ready to run, without blocking. -

-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one/overload2.html deleted file mode 100644 index 5ef8329..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one/overload2.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -io_context::poll_one (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use non-error_code overload.) Run the io_context - object's event processing loop to execute one ready handler. -

-
count_type poll_one(
-    asio::error_code & ec);
-
-

- The poll_one() function runs at most one handler that is - ready to run, without blocking. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/post.html b/Sources/Vendor/asio/doc/asio/reference/io_context/post.html deleted file mode 100644 index ab6ac90..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/post.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -io_context::post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: Use post.) - Request the io_context - to invoke the given handler and return immediately. -

-
template<
-    typename LegacyCompletionHandler>
-DEDUCED post(
-    LegacyCompletionHandler && handler);
-
-

- This function is used to ask the io_context - to execute the given handler, but without allowing the io_context - to call the handler from inside this function. -

-

- The io_context - guarantees that the handler will only be called in a thread in which the - run(), run_one(), poll() or poll_one() - member functions is currently being invoked. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called. The io_context - will make a copy of the handler object as required. The function - signature of the handler must be: -

-
void handler();
-
-

-

-
-
-
-
- - Remarks -
-

- This function throws an exception only if: -

-
    -
  • - the handler's asio_handler_allocate function; or -
  • -
  • - the handler's copy constructor -
  • -
-

- throws an exception. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/reset.html b/Sources/Vendor/asio/doc/asio/reference/io_context/reset.html deleted file mode 100644 index 38f4049..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/reset.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -io_context::reset - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: Use restart().) - Reset the io_context - in preparation for a subsequent run() invocation. -

-
void reset();
-
-

- This function must be called prior to any second or later set of invocations - of the run(), run_one(), poll() - or poll_one() functions when a previous invocation of these - functions returned due to the io_context - being stopped or running out of work. After a call to restart(), - the io_context - object's stopped() function will return false. -

-

- This function must not be called while there are any unfinished calls to - the run(), run_one(), poll() or - poll_one() functions. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/restart.html b/Sources/Vendor/asio/doc/asio/reference/io_context/restart.html deleted file mode 100644 index 1cbae73..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/restart.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -io_context::restart - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Restart the io_context - in preparation for a subsequent run() invocation. -

-
void restart();
-
-

- This function must be called prior to any second or later set of invocations - of the run(), run_one(), poll() - or poll_one() functions when a previous invocation of these - functions returned due to the io_context - being stopped or running out of work. After a call to restart(), - the io_context - object's stopped() function will return false. -

-

- This function must not be called while there are any unfinished calls to - the run(), run_one(), poll() or - poll_one() functions. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run.html deleted file mode 100644 index dd2f09c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -io_context::run - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the io_context - object's event processing loop. -

-
count_type run();
-  » more...
-
-

- (Deprecated: Use non-error_code overload.) Run the io_context - object's event processing loop. -

-
count_type run(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run/overload1.html deleted file mode 100644 index 685560d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -io_context::run (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Run the io_context - object's event processing loop. -

-
count_type run();
-
-

- The run() function blocks until all work has finished and - there are no more handlers to be dispatched, or until the io_context - has been stopped. -

-

- Multiple threads may call the run() function to set up a - pool of threads from which the io_context - may execute handlers. All threads that are waiting in the pool are equivalent - and the io_context - may choose any one of them to invoke a handler. -

-

- A normal exit from the run() function implies that the - io_context - object is stopped (the stopped() function returns true). - Subsequent calls to run(), run_one(), poll() - or poll_one() will return immediately unless there is a - prior call to restart(). -

-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - Remarks -
-

- Calling the run() function from a thread that is currently - calling one of run(), run_one(), run_for(), - run_until(), poll() or poll_one() - on the same io_context - object may introduce the potential for deadlock. It is the caller's reponsibility - to avoid this. -

-

- The poll() function may also be used to dispatch ready handlers, - but without blocking. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run/overload2.html deleted file mode 100644 index c297938..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run/overload2.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -io_context::run (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use non-error_code overload.) Run the io_context - object's event processing loop. -

-
count_type run(
-    asio::error_code & ec);
-
-

- The run() function blocks until all work has finished and - there are no more handlers to be dispatched, or until the io_context - has been stopped. -

-

- Multiple threads may call the run() function to set up a - pool of threads from which the io_context - may execute handlers. All threads that are waiting in the pool are equivalent - and the io_context - may choose any one of them to invoke a handler. -

-

- A normal exit from the run() function implies that the - io_context - object is stopped (the stopped() function returns true). - Subsequent calls to run(), run_one(), poll() - or poll_one() will return immediately unless there is a - prior call to restart(). -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - Remarks -
-

- Calling the run() function from a thread that is currently - calling one of run(), run_one(), run_for(), - run_until(), poll() or poll_one() - on the same io_context - object may introduce the potential for deadlock. It is the caller's reponsibility - to avoid this. -

-

- The poll() function may also be used to dispatch ready handlers, - but without blocking. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run_for.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run_for.html deleted file mode 100644 index b09f396..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run_for.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -io_context::run_for - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the io_context - object's event processing loop for a specified duration. -

-
template<
-    typename Rep,
-    typename Period>
-std::size_t run_for(
-    const chrono::duration< Rep, Period > & rel_time);
-
-

- The run_for() function blocks until all work has finished - and there are no more handlers to be dispatched, until the io_context - has been stopped, or until the specified duration has elapsed. -

-
- - Parameters -
-
-

-
-
rel_time
-

- The duration for which the call may block. -

-
-
-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run_one.html deleted file mode 100644 index 4216d69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -io_context::run_one - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the io_context - object's event processing loop to execute at most one handler. -

-
count_type run_one();
-  » more...
-
-

- (Deprecated: Use non-error_code overlaod.) Run the io_context - object's event processing loop to execute at most one handler. -

-
count_type run_one(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run_one/overload1.html deleted file mode 100644 index 33a5a2a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one/overload1.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -io_context::run_one (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Run the io_context - object's event processing loop to execute at most one handler. -

-
count_type run_one();
-
-

- The run_one() function blocks until one handler has been - dispatched, or until the io_context - has been stopped. -

-
- - Return - Value -
-

- The number of handlers that were executed. A zero return value implies - that the io_context - object is stopped (the stopped() function returns true). - Subsequent calls to run(), run_one(), poll() - or poll_one() will return immediately unless there is a - prior call to restart(). -

-
- - Remarks -
-

- Calling the run_one() function from a thread that is currently - calling one of run(), run_one(), run_for(), - run_until(), poll() or poll_one() - on the same io_context - object may introduce the potential for deadlock. It is the caller's reponsibility - to avoid this. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run_one/overload2.html deleted file mode 100644 index c816968..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one/overload2.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -io_context::run_one (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use non-error_code overlaod.) Run the io_context - object's event processing loop to execute at most one handler. -

-
count_type run_one(
-    asio::error_code & ec);
-
-

- The run_one() function blocks until one handler has been - dispatched, or until the io_context - has been stopped. -

-
- - Return - Value -
-

- The number of handlers that were executed. A zero return value implies - that the io_context - object is stopped (the stopped() function returns true). - Subsequent calls to run(), run_one(), poll() - or poll_one() will return immediately unless there is a - prior call to restart(). -

-

- The number of handlers that were executed. -

-
- - Remarks -
-

- Calling the run_one() function from a thread that is currently - calling one of run(), run_one(), run_for(), - run_until(), poll() or poll_one() - on the same io_context - object may introduce the potential for deadlock. It is the caller's reponsibility - to avoid this. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one_for.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run_one_for.html deleted file mode 100644 index e18aca9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one_for.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -io_context::run_one_for - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the io_context object's - event processing loop for a specified duration to execute at most one handler. -

-
template<
-    typename Rep,
-    typename Period>
-std::size_t run_one_for(
-    const chrono::duration< Rep, Period > & rel_time);
-
-

- The run_one_for() function blocks until one handler has been - dispatched, until the io_context - has been stopped, or until the specified duration has elapsed. -

-
- - Parameters -
-
-

-
-
rel_time
-

- The duration for which the call may block. -

-
-
-
- - Return Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one_until.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run_one_until.html deleted file mode 100644 index 4fa37db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one_until.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -io_context::run_one_until - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the - io_context - object's event processing loop until a specified time to execute at most - one handler. -

-
template<
-    typename Clock,
-    typename Duration>
-std::size_t run_one_until(
-    const chrono::time_point< Clock, Duration > & abs_time);
-
-

- The run_one_until() function blocks until one handler has - been dispatched, until the io_context - has been stopped, or until the specified time has been reached. -

-
- - Parameters -
-
-

-
-
abs_time
-

- The time point until which the call may block. -

-
-
-
- - Return Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run_until.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run_until.html deleted file mode 100644 index 015906a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run_until.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -io_context::run_until - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the io_context - object's event processing loop until a specified time. -

-
template<
-    typename Clock,
-    typename Duration>
-std::size_t run_until(
-    const chrono::time_point< Clock, Duration > & abs_time);
-
-

- The run_until() function blocks until all work has finished - and there are no more handlers to be dispatched, until the io_context - has been stopped, or until the specified time has been reached. -

-
- - Parameters -
-
-

-
-
abs_time
-

- The time point until which the call may block. -

-
-
-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/io_context/shutdown.html deleted file mode 100644 index 1c283e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/shutdown.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -io_context::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Shuts down all services - in the context. -

-
void shutdown();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order of the beginning of service object lifetime, - performs svc->shutdown(). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/stop.html b/Sources/Vendor/asio/doc/asio/reference/io_context/stop.html deleted file mode 100644 index 54c4095..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/stop.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -io_context::stop - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Stop the io_context - object's event processing loop. -

-
void stop();
-
-

- This function does not block, but instead simply signals the io_context - to stop. All invocations of its run() or run_one() - member functions should return as soon as possible. Subsequent calls to - run(), run_one(), poll() or poll_one() - will return immediately until restart() is called. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/stopped.html b/Sources/Vendor/asio/doc/asio/reference/io_context/stopped.html deleted file mode 100644 index 774aa86..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/stopped.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -io_context::stopped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether the - io_context - object has been stopped. -

-
bool stopped() const;
-
-

- This function is used to determine whether an io_context - object has been stopped, either through an explicit call to stop(), - or due to running out of work. When an io_context - object is stopped, calls to run(), run_one(), - poll() or poll_one() will return immediately - without invoking any handlers. -

-
- - Return - Value -
-

- true if the io_context - object is stopped, otherwise false. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/use_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context/use_service.html deleted file mode 100644 index 222ca50..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/use_service.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -io_context::use_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-  » more...
-
-

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/use_service/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context/use_service/overload1.html deleted file mode 100644 index 1254be7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/use_service/overload1.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -io_context::use_service (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the io_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
ioc
-

- The io_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Remarks -
-

- This overload is preserved for backwards compatibility with services - that inherit from io_context::service. -

-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/use_service/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context/use_service/overload2.html deleted file mode 100644 index cdb0f40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/use_service/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -io_context::use_service (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the execution_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/wrap.html b/Sources/Vendor/asio/doc/asio/reference/io_context/wrap.html deleted file mode 100644 index c5f72e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/wrap.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -io_context::wrap - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: Use bind_executor.) - Create a new handler that automatically dispatches the wrapped handler - on the io_context. -

-
template<
-    typename Handler>
-unspecified wrap(
-    Handler handler);
-
-

- This function is used to create a new handler function object that, when - invoked, will automatically pass the wrapped handler to the io_context - object's dispatch function. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be wrapped. The io_context - will make a copy of the handler object as required. The function - signature of the handler must be: -

-
void handler(A1 a1, ... An an);
-
-

-

-
-
-
-
- - Return - Value -
-

- A function object that, when invoked, passes the wrapped handler to the - io_context - object's dispatch function. Given a function object with the signature: -

-
R f(A1 a1, ... An an);
-
-

- If this function object is passed to the wrap function like so: -

-
io_context.wrap(f);
-
-

- then the return value is a function object with the signature -

-
void g(A1 a1, ... An an);
-
-

- that, when invoked, executes code equivalent to: -

-
io_context.dispatch(boost::bind(f, a1, ... an));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type.html deleted file mode 100644 index 0488e46..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type.html +++ /dev/null @@ -1,208 +0,0 @@ - - - -io_context::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Executor used to submit functions to an io_context. -

-
class executor_type
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/context.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/context.html deleted file mode 100644 index 1e75ace..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -io_context::executor_type::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the underlying execution context. -

-
io_context & context() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/defer.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/defer.html deleted file mode 100644 index 8073687..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/defer.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -io_context::executor_type::defer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request - the io_context - to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void defer(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the io_context - to execute the given function object. The function object will never be - executed inside defer(). Instead, it will be scheduled to - run on the io_context. -

-

- If the current thread belongs to the io_context, - defer() will delay scheduling the function object until the - current thread returns control to the pool. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/dispatch.html deleted file mode 100644 index e8c12ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/dispatch.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -io_context::executor_type::dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request - the io_context - to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void dispatch(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the io_context - to execute the given function object. If the current thread is running - the io_context, - dispatch() executes the function before returning. Otherwise, - the function will be scheduled to run on the io_context. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/on_work_finished.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/on_work_finished.html deleted file mode 100644 index f079a40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/on_work_finished.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -io_context::executor_type::on_work_finished - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the io_context - that some work is no longer outstanding. -

-
void on_work_finished() const;
-
-

- This function is used to inform the io_context - that some work has finished. Once the count of unfinished work reaches - zero, the io_context - is stopped and the run() and run_one() functions - may exit. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/on_work_started.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/on_work_started.html deleted file mode 100644 index c22df69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/on_work_started.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -io_context::executor_type::on_work_started - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the io_context - that it has some outstanding work to do. -

-
void on_work_started() const;
-
-

- This function is used to inform the io_context - that some work has begun. This ensures that the io_context's run() - and run_one() functions do not exit while the work is underway. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/operator_eq__eq_.html deleted file mode 100644 index 64649c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/operator_eq__eq_.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -io_context::executor_type::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two executors for equality. -

-
friend bool operator==(
-    const executor_type & a,
-    const executor_type & b);
-
-

- Two executors are equal if they refer to the same underlying io_context. -

-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/operator_not__eq_.html deleted file mode 100644 index 112b16e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/operator_not__eq_.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -io_context::executor_type::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two executors for inequality. -

-
friend bool operator!=(
-    const executor_type & a,
-    const executor_type & b);
-
-

- Two executors are equal if they refer to the same underlying io_context. -

-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/post.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/post.html deleted file mode 100644 index ed4488d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/post.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -io_context::executor_type::post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request - the io_context - to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void post(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the io_context - to execute the given function object. The function object will never be - executed inside post(). Instead, it will be scheduled to run - on the io_context. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/running_in_this_thread.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/running_in_this_thread.html deleted file mode 100644 index da3f4f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/running_in_this_thread.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -io_context::executor_type::running_in_this_thread - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the io_context - is running in the current thread. -

-
bool running_in_this_thread() const;
-
-
- - Return - Value -
-

- true if the current thread is running the io_context. - Otherwise returns false. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__service.html b/Sources/Vendor/asio/doc/asio/reference/io_context__service.html deleted file mode 100644 index 7e00b9c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__service.html +++ /dev/null @@ -1,150 +0,0 @@ - - - -io_context::service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Base class for all io_context - services. -

-
class service
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get_io_context -

-
-

- Get the io_context object that owns the service. -

-
-

- get_io_service -

-
-

- Get the io_context object that owns the service. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- service -

-
-

- Constructor. -

-
-

- ~service -

-
-

- Destructor. -

-
-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__service/_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context__service/_service.html deleted file mode 100644 index 8a4e257..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__service/_service.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -io_context::service::~service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
virtual ~service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__service/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/io_context__service/get_io_context.html deleted file mode 100644 index 4159f53..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__service/get_io_context.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -io_context::service::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the io_context - object that owns the service. -

-
asio::io_context & get_io_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__service/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context__service/get_io_service.html deleted file mode 100644 index bf003d6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__service/get_io_service.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -io_context::service::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the io_context - object that owns the service. -

-
asio::io_context & get_io_service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__service/service.html b/Sources/Vendor/asio/doc/asio/reference/io_context__service/service.html deleted file mode 100644 index 34616b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__service/service.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -io_context::service::service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
service(
-    asio::io_context & owner);
-
-
- - Parameters -
-
-

-
-
owner
-

- The io_context - object that owns the service. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand.html deleted file mode 100644 index 66ded8e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand.html +++ /dev/null @@ -1,363 +0,0 @@ - - - -io_context::strand - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides serialised handler execution. -

-
class strand
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the strand to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the strand to invoke the given function object.
-
(Deprecated: Use asio::dispatch().) Request the strand to - invoke the given handler. -

-
-

- get_io_context -

-
-

- (Deprecated: Use context().) Get the io_context associated with - the strand. -

-
-

- get_io_service -

-
-

- (Deprecated: Use context().) Get the io_context associated with - the strand. -

-
-

- on_work_finished -

-
-

- Inform the strand that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the strand that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the strand to invoke the given function object.
-
(Deprecated: Use asio::post().) Request the strand to invoke - the given handler and return immediately. -

-
-

- running_in_this_thread -

-
-

- Determine whether the strand is running in the current thread. -

-
-

- strand -

-
-

- Constructor. -

-
-

- wrap -

-
-

- (Deprecated: Use asio::bind_executor().) Create a new handler that - automatically dispatches the wrapped handler on the strand. -

-
-

- ~strand -

-
-

- Destructor. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two strands for inequality. -

-
-

- operator== -

-
-

- Compare two strands for equality. -

-
-

- The io_context::strand - class provides the ability to post and dispatch handlers with the guarantee - that none of those handlers will execute concurrently. -

-
- - Order - of handler invocation -
-

- Given: -

-
    -
  • - a strand object s -
  • -
  • - an object a meeting completion handler requirements -
  • -
  • - an object a1 which is an arbitrary copy of a - made by the implementation -
  • -
  • - an object b meeting completion handler requirements -
  • -
  • - an object b1 which is an arbitrary copy of b - made by the implementation -
  • -
-

- if any of the following conditions are true: -

-
    -
  • - s.post(a) happens-before s.post(b) -
  • -
  • - s.post(a) happens-before s.dispatch(b), where - the latter is performed outside the strand -
  • -
  • - s.dispatch(a) happens-before s.post(b), where - the former is performed outside the strand -
  • -
  • - s.dispatch(a) happens-before s.dispatch(b), - where both are performed outside the strand -
  • -
-

- then asio_handler_invoke(a1, &a1) happens-before asio_handler_invoke(b1, - &b1). -

-

- Note that in the following case: -

-
async_op_1(..., s.wrap(a));
-async_op_2(..., s.wrap(b));
-
-

- 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. -

-
- - Remarks -
-

- The implementation makes no guarantee that handlers posted or dispatched - through different strand objects will be invoked concurrently. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/io_context_strand.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/_strand.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/_strand.html deleted file mode 100644 index 36c9294..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/_strand.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -io_context::strand::~strand - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~strand();
-
-

- Destroys a strand. -

-

- Handlers posted through the strand that have not yet been invoked will - still be dispatched in a way that meets the guarantee of non-concurrency. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/context.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/context.html deleted file mode 100644 index 32a88da..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -io_context::strand::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the underlying execution context. -

-
asio::io_context & context() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/defer.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/defer.html deleted file mode 100644 index 07bc42a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/defer.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -io_context::strand::defer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the - strand to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void defer(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object will never be executed inside this function. - Instead, it will be scheduled to run by the underlying io_context. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch.html deleted file mode 100644 index 41e0aa9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -io_context::strand::dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request - the strand to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void dispatch(
-    Function && f,
-    const Allocator & a) const;
-  » more...
-
-

- (Deprecated: Use dispatch.) - Request the strand to invoke the given handler. -

-
template<
-    typename LegacyCompletionHandler>
-DEDUCED dispatch(
-    LegacyCompletionHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch/overload1.html deleted file mode 100644 index 9b2e776..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -io_context::strand::dispatch (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Request the strand to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void dispatch(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the strand to execute the given function - object on its underlying io_context. - The function object will be executed inside this function if the strand - is not otherwise busy and if the underlying io_context's executor's - dispatch() function is also able to execute the function - before returning. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy - of the handler object as required. The function signature of the - function object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch/overload2.html deleted file mode 100644 index dbe4147..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -io_context::strand::dispatch (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use dispatch.) - Request the strand to invoke the given handler. -

-
template<
-    typename LegacyCompletionHandler>
-DEDUCED dispatch(
-    LegacyCompletionHandler && handler);
-
-

- This function is used to ask the strand to execute the given handler. -

-

- The strand object guarantees that handlers posted or dispatched through - the strand will not be executed concurrently. The handler may be executed - inside this function if the guarantee can be met. If this function is - called from within a handler that was posted or dispatched through the - same strand, then the new handler will be executed immediately. -

-

- The strand's guarantee is in addition to the guarantee provided by the - underlying io_context. - The io_context - guarantees that the handler will only be called in a thread in which - the io_context's run member function is currently being invoked. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called. The strand will make a copy of the handler - object as required. The function signature of the handler must - be: -

-
void handler();
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/get_io_context.html deleted file mode 100644 index da1c0cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -io_context::strand::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use context().) Get the io_context - associated with the strand. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the strand uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the strand will use to dispatch handlers. Ownership is not - transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/get_io_service.html deleted file mode 100644 index a210c3e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -io_context::strand::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use context().) Get the io_context - associated with the strand. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the strand uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the strand will use to dispatch handlers. Ownership is not - transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/on_work_finished.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/on_work_finished.html deleted file mode 100644 index 8caa753..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/on_work_finished.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -io_context::strand::on_work_finished - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the strand that some work is no longer outstanding. -

-
void on_work_finished() const;
-
-

- The strand delegates this call to its underlying io_context. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/on_work_started.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/on_work_started.html deleted file mode 100644 index 3827708..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/on_work_started.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -io_context::strand::on_work_started - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the strand that it has some outstanding work to do. -

-
void on_work_started() const;
-
-

- The strand delegates this call to its underlying io_context. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/operator_eq__eq_.html deleted file mode 100644 index 2308725..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/operator_eq__eq_.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -io_context::strand::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two strands for equality. -

-
friend bool operator==(
-    const strand & a,
-    const strand & b);
-
-

- Two strands are equal if they refer to the same ordered, non-concurrent - state. -

-
- - Requirements -
-

- Header: asio/io_context_strand.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/operator_not__eq_.html deleted file mode 100644 index 860c703..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/operator_not__eq_.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -io_context::strand::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two strands for inequality. -

-
friend bool operator!=(
-    const strand & a,
-    const strand & b);
-
-

- Two strands are equal if they refer to the same ordered, non-concurrent - state. -

-
- - Requirements -
-

- Header: asio/io_context_strand.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post.html deleted file mode 100644 index e437598..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -io_context::strand::post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the - strand to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void post(
-    Function && f,
-    const Allocator & a) const;
-  » more...
-
-

- (Deprecated: Use post.) - Request the strand to invoke the given handler and return immediately. -

-
template<
-    typename LegacyCompletionHandler>
-DEDUCED post(
-    LegacyCompletionHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post/overload1.html deleted file mode 100644 index 13a5317..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post/overload1.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -io_context::strand::post (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Request the strand to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void post(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object will never be executed inside this function. - Instead, it will be scheduled to run by the underlying io_context. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy - of the handler object as required. The function signature of the - function object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post/overload2.html deleted file mode 100644 index 7728b82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -io_context::strand::post (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use post.) - Request the strand to invoke the given handler and return immediately. -

-
template<
-    typename LegacyCompletionHandler>
-DEDUCED post(
-    LegacyCompletionHandler && handler);
-
-

- This function is used to ask the strand to execute the given handler, - but without allowing the strand to call the handler from inside this - function. -

-

- The strand object guarantees that handlers posted or dispatched through - the strand will not be executed concurrently. The strand's guarantee - is in addition to the guarantee provided by the underlying io_context. - The io_context - guarantees that the handler will only be called in a thread in which - the io_context's run member function is currently being invoked. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called. The strand will make a copy of the handler - object as required. The function signature of the handler must - be: -

-
void handler();
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/running_in_this_thread.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/running_in_this_thread.html deleted file mode 100644 index fb666d3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/running_in_this_thread.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -io_context::strand::running_in_this_thread - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the strand is running in the current thread. -

-
bool running_in_this_thread() const;
-
-
- - 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. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/strand.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/strand.html deleted file mode 100644 index 1bd5a95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/strand.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -io_context::strand::strand - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
strand(
-    asio::io_context & io_context);
-
-

- Constructs the strand. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the strand will use to dispatch handlers that are ready - to be run. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/wrap.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/wrap.html deleted file mode 100644 index 7be2d30..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/wrap.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -io_context::strand::wrap - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use bind_executor.) - Create a new handler that automatically dispatches the wrapped handler - on the strand. -

-
template<
-    typename Handler>
-unspecified wrap(
-    Handler handler);
-
-

- This function is used to create a new handler function object that, when - invoked, will automatically pass the wrapped handler to the strand's dispatch - function. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be wrapped. The strand will make a copy of the handler - object as required. The function signature of the handler must be: -

-
void handler(A1 a1, ... An an);
-
-

-

-
-
-
-
- - Return Value -
-

- A function object that, when invoked, passes the wrapped handler to the - strand's dispatch function. Given a function object with the signature: -

-
R f(A1 a1, ... An an);
-
-

- If this function object is passed to the wrap function like so: -

-
strand.wrap(f);
-
-

- then the return value is a function object with the signature -

-
void g(A1 a1, ... An an);
-
-

- that, when invoked, executes code equivalent to: -

-
strand.dispatch(boost::bind(f, a1, ... an));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__work.html b/Sources/Vendor/asio/doc/asio/reference/io_context__work.html deleted file mode 100644 index 3f31d62..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__work.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -io_context::work - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use executor_work_guard.) - Class to inform the io_context - when it has work to do. -

-
class work
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get_io_context -

-
-

- Get the io_context associated with the work. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_io_context().) Get the io_context associated - with the work. -

-
-

- work -

-
-

- Constructor notifies the io_context that work is starting.
-
Copy constructor notifies the io_context that work is starting. -

-
-

- ~work -

-
-

- Destructor notifies the io_context that the work is complete. -

-
-

- The work class is used to inform the io_context - when work starts and finishes. This ensures that the io_context - object's run() function will not exit while work is underway, - and that it does exit when there is no unfinished work remaining. -

-

- The work class is copy-constructible so that it may be used as a data member - in a handler class. It is not assignable. -

-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__work/_work.html b/Sources/Vendor/asio/doc/asio/reference/io_context__work/_work.html deleted file mode 100644 index 82963a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__work/_work.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -io_context::work::~work - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor notifies - the io_context - that the work is complete. -

-
~work();
-
-

- The destructor is used to inform the io_context - that some work has finished. Once the count of unfinished work reaches - zero, the io_context - object's run() function is permitted to exit. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__work/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/io_context__work/get_io_context.html deleted file mode 100644 index 01d4436..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__work/get_io_context.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -io_context::work::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the io_context - associated with the work. -

-
asio::io_context & get_io_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__work/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context__work/get_io_service.html deleted file mode 100644 index 4c81f0c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__work/get_io_service.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -io_context::work::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_io_context().) Get the io_context - associated with the work. -

-
asio::io_context & get_io_service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__work/work.html b/Sources/Vendor/asio/doc/asio/reference/io_context__work/work.html deleted file mode 100644 index 089f604..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__work/work.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -io_context::work::work - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor notifies - the io_context - that work is starting. -

-
explicit work(
-    asio::io_context & io_context);
-  » more...
-
-

- Copy constructor notifies the io_context - that work is starting. -

-
work(
-    const work & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__work/work/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context__work/work/overload1.html deleted file mode 100644 index fa032ee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__work/work/overload1.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -io_context::work::work (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor notifies the io_context - that work is starting. -

-
work(
-    asio::io_context & io_context);
-
-

- The constructor is used to inform the io_context - that some work has begun. This ensures that the io_context - object's run() function will not exit while the work is - underway. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__work/work/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context__work/work/overload2.html deleted file mode 100644 index dd5f69c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__work/work/overload2.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -io_context::work::work (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor notifies the io_context - that work is starting. -

-
work(
-    const work & other);
-
-

- The constructor is used to inform the io_context - that some work has begun. This ensures that the io_context - object's run() function will not exit while the work is - underway. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_service.html b/Sources/Vendor/asio/doc/asio/reference/io_service.html deleted file mode 100644 index cffeb73..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_service.html +++ /dev/null @@ -1,714 +0,0 @@ - - - -io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Typedef for backwards compatibility. -

-
typedef io_context io_service;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- Executor used to submit functions to an io_context. -

-
-

- service -

-
-

- Base class for all io_context services. -

-
-

- strand -

-
-

- Provides serialised handler execution. -

-
-

- work -

-
-

- (Deprecated: Use executor_work_guard.) Class to inform the io_context - when it has work to do. -

-
-

- count_type -

-
-

- The type used to count the number of handlers executed by the context. -

-
-

- fork_event -

-
-

- Fork-related event notifications. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dispatch -

-
-

- (Deprecated: Use asio::dispatch().) Request the io_context to invoke - the given handler. -

-
-

- get_executor -

-
-

- Obtains the executor associated with the io_context. -

-
-

- io_context -

-
-

- Constructor. -

-
-

- notify_fork -

-
-

- Notify the execution_context of a fork-related event. -

-
-

- poll -

-
-

- Run the io_context object's event processing loop to execute ready - handlers.

(Deprecated: Use non-error_code overload.) - Run the io_context object's event processing loop to execute ready - handlers. -

-
-

- poll_one -

-
-

- Run the io_context object's event processing loop to execute one - ready handler.

(Deprecated: Use non-error_code overload.) - Run the io_context object's event processing loop to execute one - ready handler. -

-
-

- post -

-
-

- (Deprecated: Use asio::post().) Request the io_context to invoke - the given handler and return immediately. -

-
-

- reset -

-
-

- (Deprecated: Use restart().) Reset the io_context in preparation - for a subsequent run() invocation. -

-
-

- restart -

-
-

- Restart the io_context in preparation for a subsequent run() invocation. -

-
-

- run -

-
-

- Run the io_context object's event processing loop.

- (Deprecated: Use non-error_code overload.) Run the io_context object's - event processing loop. -

-
-

- run_for -

-
-

- Run the io_context object's event processing loop for a specified - duration. -

-
-

- run_one -

-
-

- Run the io_context object's event processing loop to execute at - most one handler.

(Deprecated: Use non-error_code - overlaod.) Run the io_context object's event processing loop to - execute at most one handler. -

-
-

- run_one_for -

-
-

- Run the io_context object's event processing loop for a specified - duration to execute at most one handler. -

-
-

- run_one_until -

-
-

- Run the io_context object's event processing loop until a specified - time to execute at most one handler. -

-
-

- run_until -

-
-

- Run the io_context object's event processing loop until a specified - time. -

-
-

- stop -

-
-

- Stop the io_context object's event processing loop. -

-
-

- stopped -

-
-

- Determine whether the io_context object has been stopped. -

-
-

- wrap -

-
-

- (Deprecated: Use asio::bind_executor().) Create a new handler that - automatically dispatches the wrapped handler on the io_context. -

-
-

- ~io_context -

-
-

- Destructor. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- destroy -

-
-

- Destroys all services in the context. -

-
-

- shutdown -

-
-

- Shuts down all services in the context. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add_service -

-
-

- (Deprecated: Use make_service().) Add a service object to the execution_context. -

-
-

- has_service -

-
-

- Determine if an execution_context contains a specified service - type. -

-
-

- make_service -

-
-

- Creates a service object and adds it to the execution_context. -

-
-

- use_service -

-
-

-

Obtain the service object corresponding to the given - type. -

-
-

- The io_context - class provides the core I/O functionality for users of the asynchronous I/O - objects, including: -

-
    -
  • - asio::ip::tcp::socket -
  • -
  • - asio::ip::tcp::acceptor -
  • -
  • - asio::ip::udp::socket -
  • -
  • - deadline_timer. -
  • -
-

- The io_context - class also includes facilities intended for developers of custom asynchronous - services. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe, with the - specific exceptions of the restart() and notify_fork() - functions. Calling restart() while there are unfinished run(), - run_one(), run_for(), run_until(), - poll() or poll_one() calls results in undefined - behaviour. The notify_fork() function should not be called while - any io_context - function, or any function on an I/O object that is associated with the io_context, is being - called in another thread. -

-
- - Synchronous - and asynchronous operations -
-

- Synchronous operations on I/O objects implicitly run the io_context - object for an individual operation. The io_context - functions run(), run_one(), run_for(), - run_until(), poll() or poll_one() - must be called for the io_context - to perform asynchronous operations on behalf of a C++ program. Notification - that an asynchronous operation has completed is delivered by invocation of - the associated handler. Handlers are invoked only by a thread that is currently - calling any overload of run(), run_one(), run_for(), - run_until(), poll() or poll_one() - for the io_context. -

-
- - Effect - of exceptions thrown from handlers -
-

- If an exception is thrown from a handler, the exception is allowed to propagate - through the throwing thread's invocation of run(), run_one(), - run_for(), run_until(), 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(), - run_for(), run_until(), poll() or - poll_one() call may be restarted without - the need for an intervening call to restart(). This allows the - thread to rejoin the io_context - object's thread pool without impacting any other threads in the pool. -

-

- For example: -

-
asio::io_context io_context;
-...
-for (;;)
-{
-  try
-  {
-    io_context.run();
-    break; // run() exited normally
-  }
-  catch (my_exception& e)
-  {
-    // Deal with exception as appropriate.
-  }
-}
-
-
- - Submitting - arbitrary tasks to the io_context -
-

- To submit functions to the io_context, - use the dispatch - , post or defer - free functions. -

-

- For example: -

-
void my_task()
-{
-  ...
-}
-
-...
-
-asio::io_context io_context;
-
-// Submit a function to the io_context.
-asio::post(io_context, my_task);
-
-// Submit a lambda object to the io_context.
-asio::post(io_context,
-    []()
-    {
-      ...
-    });
-
-// Run the io_context until it runs out of work.
-io_context.run();
-
-
- - Stopping - the io_context from running out of work -
-

- Some applications may need to prevent an io_context - object's run() call from returning when there is no more work - to do. For example, the io_context - may be being run in a background thread that is launched prior to the application's - asynchronous operations. The run() call may be kept running - by creating an object of type asio::executor_work_guard<io_context::executor_type>: -

-
asio::io_context io_context;
-asio::executor_work_guard<asio::io_context::executor_type>
-  = asio::make_work_guard(io_context);
-...
-
-

- To effect a shutdown, the application will then need to call the io_context - object's stop() member function. This will cause the io_context - run() call to return as soon as possible, abandoning unfinished - operations and without permitting ready handlers to be dispatched. -

-

- Alternatively, if the application requires that all operations and handlers - be allowed to finish normally, the work object may be explicitly reset. -

-
asio::io_context io_context;
-asio::executor_work_guard<asio::io_context::executor_type>
-  = asio::make_work_guard(io_context);
-...
-work.reset(); // Allow run() to exit.
-
-
- - Requirements -
-

- Header: asio/io_service.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address.html b/Sources/Vendor/asio/doc/asio/reference/ip__address.html deleted file mode 100644 index 8cc3ea2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address.html +++ /dev/null @@ -1,375 +0,0 @@ - - - -ip::address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Implements version-independent IP addresses. -

-
class address
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address -

-
-

- Default constructor.

Construct an address from an - IPv4 address.

Construct an address from an IPv6 address. -

Copy constructor. -

-
-

- from_string -

-
-

- (Deprecated: Use make_address().) Create an address from an IPv4 - address string in dotted decimal form, or from an IPv6 address - in hexadecimal notation. -

-
-

- is_loopback -

-
-

- Determine whether the address is a loopback address. -

-
-

- is_multicast -

-
-

- Determine whether the address is a multicast address. -

-
-

- is_unspecified -

-
-

- Determine whether the address is unspecified. -

-
-

- is_v4 -

-
-

- Get whether the address is an IP version 4 address. -

-
-

- is_v6 -

-
-

- Get whether the address is an IP version 6 address. -

-
-

- operator= -

-
-

- Assign from another address.

Assign from an IPv4 - address.

Assign from an IPv6 address. -

-
-

- to_string -

-
-

- Get the address as a string.

(Deprecated: Use other - overload.) Get the address as a string. -

-
-

- to_v4 -

-
-

- Get the address as an IP version 4 address. -

-
-

- to_v6 -

-
-

- Get the address as an IP version 6 address. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator< -

-
-

- Compare addresses for ordering. -

-
-

- operator<= -

-
-

- Compare addresses for ordering. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- operator> -

-
-

- Compare addresses for ordering. -

-
-

- operator>= -

-
-

- Compare addresses for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_address -

-
-

- Create an address from an IPv4 address string in dotted decimal - form, or from an IPv6 address in hexadecimal notation. -

-
-

- operator<< -

-
-

- Output an address as a string. -

-
-

- The ip::address - class provides the ability to use either IP version 4 or version 6 addresses. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/address.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/address.html deleted file mode 100644 index 49e39e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/address.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ip::address::address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default constructor. -

-
address();
-  » more...
-
-

- Construct an address from an IPv4 address. -

-
address(
-    const asio::ip::address_v4 & ipv4_address);
-  » more...
-
-

- Construct an address from an IPv6 address. -

-
address(
-    const asio::ip::address_v6 & ipv6_address);
-  » more...
-
-

- Copy constructor. -

-
address(
-    const address & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload1.html deleted file mode 100644 index 397d611..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::address::address (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
address();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload2.html deleted file mode 100644 index 2020b91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::address (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an address from an IPv4 address. -

-
address(
-    const asio::ip::address_v4 & ipv4_address);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload3.html deleted file mode 100644 index ab1f24a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::address (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an address from an IPv6 address. -

-
address(
-    const asio::ip::address_v6 & ipv6_address);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload4.html deleted file mode 100644 index 2130988..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::address (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
address(
-    const address & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string.html deleted file mode 100644 index 1ec2f6f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ip::address::from_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use make_address().) Create an address from an IPv4 address - string in dotted decimal form, or from an IPv6 address in hexadecimal notation. -

-
static address from_string(
-    const char * str);
-  » more...
-
-static address from_string(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-static address from_string(
-    const std::string & str);
-  » more...
-
-static address from_string(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload1.html deleted file mode 100644 index 047762a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address::from_string (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address().) Create an address from - an IPv4 address string in dotted decimal form, or from an IPv6 address - in hexadecimal notation. -

-
static address from_string(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload2.html deleted file mode 100644 index c258343..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload2.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::address::from_string (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address().) Create an address from - an IPv4 address string in dotted decimal form, or from an IPv6 address - in hexadecimal notation. -

-
static address from_string(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload3.html deleted file mode 100644 index d709e79..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload3.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address::from_string (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address().) Create an address from - an IPv4 address string in dotted decimal form, or from an IPv6 address - in hexadecimal notation. -

-
static address from_string(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload4.html deleted file mode 100644 index bff74f7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload4.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::address::from_string (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address().) Create an address from - an IPv4 address string in dotted decimal form, or from an IPv6 address - in hexadecimal notation. -

-
static address from_string(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_loopback.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/is_loopback.html deleted file mode 100644 index 01cd4b6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_loopback.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::is_loopback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether - the address is a loopback address. -

-
bool is_loopback() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_multicast.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/is_multicast.html deleted file mode 100644 index a3eb5c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_multicast.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::is_multicast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a multicast address. -

-
bool is_multicast() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_unspecified.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/is_unspecified.html deleted file mode 100644 index 161eb15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_unspecified.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::is_unspecified - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is unspecified. -

-
bool is_unspecified() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/is_v4.html deleted file mode 100644 index 0cb89f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_v4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::is_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get whether the address - is an IP version 4 address. -

-
bool is_v4() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/is_v6.html deleted file mode 100644 index f1fe19c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_v6.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::is_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get whether the address - is an IP version 6 address. -

-
bool is_v6() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address.html deleted file mode 100644 index 6fd9fa3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -ip::address::make_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create an - address from an IPv4 address string in dotted decimal form, or from an - IPv6 address in hexadecimal notation. -

-
address make_address(
-    const char * str);
-  » more...
-
-address make_address(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-address make_address(
-    const std::string & str);
-  » more...
-
-address make_address(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-address make_address(
-    string_view str);
-  » more...
-
-address make_address(
-    string_view str,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload1.html deleted file mode 100644 index 43650d0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address::make_address (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an address from an IPv4 address string in dotted decimal form, - or from an IPv6 address in hexadecimal notation. -

-
address make_address(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload2.html deleted file mode 100644 index 2428568..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address::make_address (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an address from an IPv4 address string in dotted decimal form, - or from an IPv6 address in hexadecimal notation. -

-
address make_address(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload3.html deleted file mode 100644 index e857b27..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address::make_address (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an address from an IPv4 address string in dotted decimal form, - or from an IPv6 address in hexadecimal notation. -

-
address make_address(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload4.html deleted file mode 100644 index b300918..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload4.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address::make_address (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an address from an IPv4 address string in dotted decimal form, - or from an IPv6 address in hexadecimal notation. -

-
address make_address(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload5.html deleted file mode 100644 index d309944..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload5.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address::make_address (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an address from an IPv4 address string in dotted decimal form, - or from an IPv6 address in hexadecimal notation. -

-
address make_address(
-    string_view str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload6.html deleted file mode 100644 index de9f16d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload6.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address::make_address (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an address from an IPv4 address string in dotted decimal form, - or from an IPv6 address in hexadecimal notation. -

-
address make_address(
-    string_view str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_.html deleted file mode 100644 index 5427e82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -ip::address::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign from - another address. -

-
address & operator=(
-    const address & other);
-  » more...
-
-

- Assign from an IPv4 address. -

-
address & operator=(
-    const asio::ip::address_v4 & ipv4_address);
-  » more...
-
-

- Assign from an IPv6 address. -

-
address & operator=(
-    const asio::ip::address_v6 & ipv6_address);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload1.html deleted file mode 100644 index 0ca499c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::operator= (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign from another address. -

-
address & operator=(
-    const address & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload2.html deleted file mode 100644 index 4b74044..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::operator= (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign from an IPv4 address. -

-
address & operator=(
-    const asio::ip::address_v4 & ipv4_address);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload3.html deleted file mode 100644 index 02b8249..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::operator= (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign from an IPv6 address. -

-
address & operator=(
-    const asio::ip::address_v6 & ipv6_address);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq__eq_.html deleted file mode 100644 index b425538..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two addresses for equality. -

-
friend bool operator==(
-    const address & a1,
-    const address & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_gt_.html deleted file mode 100644 index 18cd8db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_gt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address::operator> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare addresses - for ordering. -

-
friend bool operator>(
-    const address & a1,
-    const address & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_gt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_gt__eq_.html deleted file mode 100644 index 0f5147c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_gt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address::operator>= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator>=(
-    const address & a1,
-    const address & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt_.html deleted file mode 100644 index 392cc77..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address::operator< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare addresses - for ordering. -

-
friend bool operator<(
-    const address & a1,
-    const address & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt__eq_.html deleted file mode 100644 index 6f6aa76..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address::operator<= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator<=(
-    const address & a1,
-    const address & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt__lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt__lt_.html deleted file mode 100644 index b881805..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt__lt_.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -ip::address::operator<< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Output - an address as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const address & addr);
-
-

- Used to output a human-readable string for a specified address. -

-
- - Parameters -
-
-

-
-
os
-

- The output stream to which the string will be written. -

-
addr
-

- The address to be written. -

-
-
-
- - Return - Value -
-

- The output stream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_not__eq_.html deleted file mode 100644 index f375f6f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two addresses for inequality. -

-
friend bool operator!=(
-    const address & a1,
-    const address & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string.html deleted file mode 100644 index ef256b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::address::to_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address - as a string. -

-
std::string to_string() const;
-  » more...
-
-

- (Deprecated: Use other overload.) Get the address as a string. -

-
std::string to_string(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string/overload1.html deleted file mode 100644 index 4c6e5a1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::address::to_string (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the address as a string. -

-
std::string to_string() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string/overload2.html deleted file mode 100644 index 41c7d88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::to_string (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use other overload.) Get the address as a string. -

-
std::string to_string(
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/to_v4.html deleted file mode 100644 index b67410c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_v4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::to_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address as an IP - version 4 address. -

-
asio::ip::address_v4 to_v4() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/to_v6.html deleted file mode 100644 index 5379895..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_v6.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::to_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address as an IP - version 6 address. -

-
asio::ip::address_v6 to_v6() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4.html deleted file mode 100644 index fc261d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4.html +++ /dev/null @@ -1,528 +0,0 @@ - - - -ip::address_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Implements IP version 4 style addresses. -

-
class address_v4
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_type -

-
-

- The type used to represent an address as an array of bytes. -

-
-

- uint_type -

-
-

- The type used to represent an address as an unsigned integer. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_v4 -

-
-

- Default constructor.

Construct an address from raw - bytes.

Construct an address from an unsigned integer - in host byte order.

Copy constructor. -

-
-

- any -

-
-

- Obtain an address object that represents any address. -

-
-

- broadcast -

-
-

- Obtain an address object that represents the broadcast address. -

(Deprecated: Use network_v4 class.) Obtain an address - object that represents the broadcast address that corresponds to - the specified address and netmask. -

-
-

- from_string -

-
-

- (Deprecated: Use make_address_v4().) Create an address from an - IP address string in dotted decimal form. -

-
-

- is_class_a -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class A address. -

-
-

- is_class_b -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class B address. -

-
-

- is_class_c -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class C address. -

-
-

- is_loopback -

-
-

- Determine whether the address is a loopback address. -

-
-

- is_multicast -

-
-

- Determine whether the address is a multicast address. -

-
-

- is_unspecified -

-
-

- Determine whether the address is unspecified. -

-
-

- loopback -

-
-

- Obtain an address object that represents the loopback address. -

-
-

- netmask -

-
-

- (Deprecated: Use network_v4 class.) Obtain the netmask that corresponds - to the address, based on its address class. -

-
-

- operator= -

-
-

- Assign from another address. -

-
-

- to_bytes -

-
-

- Get the address in bytes, in network byte order. -

-
-

- to_string -

-
-

- Get the address as a string in dotted decimal format.

- (Deprecated: Use other overload.) Get the address as a string in - dotted decimal format. -

-
-

- to_uint -

-
-

- Get the address as an unsigned integer in host byte order. -

-
-

- to_ulong -

-
-

- Get the address as an unsigned long in host byte order. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator< -

-
-

- Compare addresses for ordering. -

-
-

- operator<= -

-
-

- Compare addresses for ordering. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- operator> -

-
-

- Compare addresses for ordering. -

-
-

- operator>= -

-
-

- Compare addresses for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_address_v4 -

-
-

- Create an IPv4 address from raw bytes in network order. -

-

- Create an IPv4 address from an unsigned integer in host byte order. -

-

- Create an IPv4 address from an IP address string in dotted decimal - form. -

-

- Create an IPv4 address from a IPv4-mapped IPv6 address. -

-
-

- make_network_v4 -

-
-

- Create an IPv4 network from an address and prefix length. -

-

- Create an IPv4 network from an address and netmask. -

-
-

- operator<< -

-
-

- Output an address as a string. -

-

- Output a network as a string. -

-
-

- The ip::address_v4 - class provides the ability to use and manipulate IP version 4 addresses. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4.html deleted file mode 100644 index ee8c7b4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -ip::address_v4::address_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
address_v4();
-  » more...
-
-

- Construct an address from raw bytes. -

-
explicit address_v4(
-    const bytes_type & bytes);
-  » more...
-
-

- Construct an address from an unsigned integer in host byte order. -

-
explicit address_v4(
-    uint_type addr);
-  » more...
-
-

- Copy constructor. -

-
address_v4(
-    const address_v4 & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload1.html deleted file mode 100644 index 446fed1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::address_v4::address_v4 (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
address_v4();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload2.html deleted file mode 100644 index 6262331..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::address_v4 (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an address from raw bytes. -

-
address_v4(
-    const bytes_type & bytes);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload3.html deleted file mode 100644 index 2dbbca0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::address_v4 (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an address from an unsigned integer in host byte order. -

-
address_v4(
-    uint_type addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload4.html deleted file mode 100644 index 38b6257..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::address_v4 (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
address_v4(
-    const address_v4 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/any.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/any.html deleted file mode 100644 index 2ef3dc8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/any.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::any - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address object - that represents any address. -

-
static address_v4 any();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast.html deleted file mode 100644 index f949652..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ip::address_v4::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an - address object that represents the broadcast address. -

-
static address_v4 broadcast();
-  » more...
-
-

- (Deprecated: Use ip::network_v4 - class.) Obtain an address object that represents the broadcast address - that corresponds to the specified address and netmask. -

-
static address_v4 broadcast(
-    const address_v4 & addr,
-    const address_v4 & mask);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast/overload1.html deleted file mode 100644 index 7f81255..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::address_v4::broadcast (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Obtain an address object that represents the broadcast address. -

-
static address_v4 broadcast();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast/overload2.html deleted file mode 100644 index 8bd6c7d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast/overload2.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::address_v4::broadcast (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use ip::network_v4 - class.) Obtain an address object that represents the broadcast address - that corresponds to the specified address and netmask. -

-
static address_v4 broadcast(
-    const address_v4 & addr,
-    const address_v4 & mask);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/bytes_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/bytes_type.html deleted file mode 100644 index 3a773f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/bytes_type.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -ip::address_v4::bytes_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - used to represent an address as an array of bytes. -

-
typedef array< unsigned char, 4 > bytes_type;
-
-
- - Remarks -
-

- This type is defined in terms of the C++0x template std::array - when it is available. Otherwise, it uses boost:array. -

-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string.html deleted file mode 100644 index 1a29b53..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ip::address_v4::from_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use make_address_v4().) Create an address from an IP address - string in dotted decimal form. -

-
static address_v4 from_string(
-    const char * str);
-  » more...
-
-static address_v4 from_string(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-static address_v4 from_string(
-    const std::string & str);
-  » more...
-
-static address_v4 from_string(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload1.html deleted file mode 100644 index 6384e40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::from_string (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v4().) Create an address from - an IP address string in dotted decimal form. -

-
static address_v4 from_string(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload2.html deleted file mode 100644 index b736135..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address_v4::from_string (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v4().) Create an address from - an IP address string in dotted decimal form. -

-
static address_v4 from_string(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload3.html deleted file mode 100644 index acf8da5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::from_string (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v4().) Create an address from - an IP address string in dotted decimal form. -

-
static address_v4 from_string(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload4.html deleted file mode 100644 index cdc3d7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload4.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address_v4::from_string (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v4().) Create an address from - an IP address string in dotted decimal form. -

-
static address_v4 from_string(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_a.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_a.html deleted file mode 100644 index 848ff9a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_a.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::is_class_a - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use ip::network_v4 - class.) Determine whether the address is a class A address. -

-
bool is_class_a() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_b.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_b.html deleted file mode 100644 index b685f98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_b.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::is_class_b - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use ip::network_v4 - class.) Determine whether the address is a class B address. -

-
bool is_class_b() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_c.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_c.html deleted file mode 100644 index ef38ebd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_c.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::is_class_c - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use ip::network_v4 - class.) Determine whether the address is a class C address. -

-
bool is_class_c() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_loopback.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_loopback.html deleted file mode 100644 index 3c8acb0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_loopback.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::is_loopback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a loopback address. -

-
bool is_loopback() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_multicast.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_multicast.html deleted file mode 100644 index b62de01..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_multicast.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::is_multicast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a multicast address. -

-
bool is_multicast() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_unspecified.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_unspecified.html deleted file mode 100644 index a237f63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_unspecified.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::is_unspecified - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is unspecified. -

-
bool is_unspecified() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/loopback.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/loopback.html deleted file mode 100644 index 2c2ca52..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/loopback.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::loopback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address - object that represents the loopback address. -

-
static address_v4 loopback();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4.html deleted file mode 100644 index 3c3257c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -ip::address_v4::make_address_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - an IPv4 address from raw bytes in network order. -

-
address_v4 make_address_v4(
-    const address_v4::bytes_type & bytes);
-  » more...
-
-

- Create an IPv4 address from an unsigned integer in host byte order. -

-
address_v4 make_address_v4(
-    address_v4::uint_type addr);
-  » more...
-
-

- Create an IPv4 address from an IP address string in dotted decimal form. -

-
address_v4 make_address_v4(
-    const char * str);
-  » more...
-
-address_v4 make_address_v4(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-address_v4 make_address_v4(
-    const std::string & str);
-  » more...
-
-address_v4 make_address_v4(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-address_v4 make_address_v4(
-    string_view str);
-  » more...
-
-address_v4 make_address_v4(
-    string_view str,
-    asio::error_code & ec);
-  » more...
-
-

- Create an IPv4 address from a IPv4-mapped IPv6 address. -

-
address_v4 make_address_v4(
-    v4_mapped_t ,
-    const address_v6 & v6_addr);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload1.html deleted file mode 100644 index d8acee9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::make_address_v4 (1 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from raw bytes in network order. -

-
address_v4 make_address_v4(
-    const address_v4::bytes_type & bytes);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload2.html deleted file mode 100644 index 2d1c49a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::make_address_v4 (2 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from an unsigned integer in host byte order. -

-
address_v4 make_address_v4(
-    address_v4::uint_type addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload3.html deleted file mode 100644 index 2a3903d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::make_address_v4 (3 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from an IP address string in dotted decimal form. -

-
address_v4 make_address_v4(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload4.html deleted file mode 100644 index d88119c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload4.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::make_address_v4 (4 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from an IP address string in dotted decimal form. -

-
address_v4 make_address_v4(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload5.html deleted file mode 100644 index 154eecc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload5.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::make_address_v4 (5 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from an IP address string in dotted decimal form. -

-
address_v4 make_address_v4(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload6.html deleted file mode 100644 index ccf58be..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload6.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::make_address_v4 (6 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from an IP address string in dotted decimal form. -

-
address_v4 make_address_v4(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload7.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload7.html deleted file mode 100644 index e931b38..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload7.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::make_address_v4 (7 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from an IP address string in dotted decimal form. -

-
address_v4 make_address_v4(
-    string_view str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload8.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload8.html deleted file mode 100644 index 22f237d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload8.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::make_address_v4 (8 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from an IP address string in dotted decimal form. -

-
address_v4 make_address_v4(
-    string_view str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload9.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload9.html deleted file mode 100644 index 2630785..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload9.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::make_address_v4 (9 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from a IPv4-mapped IPv6 address. -

-
address_v4 make_address_v4(
-    v4_mapped_t ,
-    const address_v6 & v6_addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4.html deleted file mode 100644 index 1bd7547..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ip::address_v4::make_network_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - an IPv4 network from an address and prefix length. -

-
network_v4 make_network_v4(
-    const address_v4 & addr,
-    unsigned short prefix_len);
-  » more...
-
-

- Create an IPv4 network from an address and netmask. -

-
network_v4 make_network_v4(
-    const address_v4 & addr,
-    const address_v4 & mask);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload1.html deleted file mode 100644 index 343f2b7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::make_network_v4 (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from an address and prefix length. -

-
network_v4 make_network_v4(
-    const address_v4 & addr,
-    unsigned short prefix_len);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload2.html deleted file mode 100644 index 6fdb515..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::make_network_v4 (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from an address and netmask. -

-
network_v4 make_network_v4(
-    const address_v4 & addr,
-    const address_v4 & mask);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/netmask.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/netmask.html deleted file mode 100644 index c0a9442..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/netmask.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::address_v4::netmask - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use ip::network_v4 - class.) Obtain the netmask that corresponds to the address, based on its - address class. -

-
static address_v4 netmask(
-    const address_v4 & addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_eq_.html deleted file mode 100644 index 1a2f77e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - from another address. -

-
address_v4 & operator=(
-    const address_v4 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_eq__eq_.html deleted file mode 100644 index d380d5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v4::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two addresses for equality. -

-
friend bool operator==(
-    const address_v4 & a1,
-    const address_v4 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_gt_.html deleted file mode 100644 index 5cb12f7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_gt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v4::operator> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator>(
-    const address_v4 & a1,
-    const address_v4 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_gt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_gt__eq_.html deleted file mode 100644 index 680319e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_gt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v4::operator>= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator>=(
-    const address_v4 & a1,
-    const address_v4 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt_.html deleted file mode 100644 index 0f9f5d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v4::operator< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator<(
-    const address_v4 & a1,
-    const address_v4 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__eq_.html deleted file mode 100644 index 8371f27..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v4::operator<= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator<=(
-    const address_v4 & a1,
-    const address_v4 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_.html deleted file mode 100644 index a4c3ec1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ip::address_v4::operator<< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Output - an address as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const address_v4 & addr);
-  » more...
-
-

- Output a network as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const network_v4 & net);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload1.html deleted file mode 100644 index b1260a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -ip::address_v4::operator<< (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Output an address as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const address_v4 & addr);
-
-

- Used to output a human-readable string for a specified address. -

-
- - Parameters -
-
-

-
-
os
-

- The output stream to which the string will be written. -

-
addr
-

- The address to be written. -

-
-
-
- - Return - Value -
-

- The output stream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload2.html deleted file mode 100644 index bcfac08..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload2.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -ip::address_v4::operator<< (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Output a network as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const network_v4 & net);
-
-

- Used to output a human-readable string for a specified network. -

-
- - Parameters -
-
-

-
-
os
-

- The output stream to which the string will be written. -

-
net
-

- The network to be written. -

-
-
-
- - Return - Value -
-

- The output stream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_not__eq_.html deleted file mode 100644 index e1093af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v4::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two addresses for inequality. -

-
friend bool operator!=(
-    const address_v4 & a1,
-    const address_v4 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_bytes.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_bytes.html deleted file mode 100644 index 67e01f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_bytes.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::to_bytes - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address - in bytes, in network byte order. -

-
bytes_type to_bytes() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string.html deleted file mode 100644 index 9b285a0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ip::address_v4::to_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address - as a string in dotted decimal format. -

-
std::string to_string() const;
-  » more...
-
-

- (Deprecated: Use other overload.) Get the address as a string in dotted - decimal format. -

-
std::string to_string(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string/overload1.html deleted file mode 100644 index e8201aa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::address_v4::to_string (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the address as a string in dotted decimal format. -

-
std::string to_string() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string/overload2.html deleted file mode 100644 index ad9a164..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::to_string (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use other overload.) Get the address as a string in dotted - decimal format. -

-
std::string to_string(
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_uint.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_uint.html deleted file mode 100644 index 1eb574a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_uint.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::to_uint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address - as an unsigned integer in host byte order. -

-
uint_type to_uint() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_ulong.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_ulong.html deleted file mode 100644 index 092d4fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_ulong.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::to_ulong - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address - as an unsigned long in host byte order. -

-
unsigned long to_ulong() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/uint_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/uint_type.html deleted file mode 100644 index d061c7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/uint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::address_v4::uint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - used to represent an address as an unsigned integer. -

-
typedef uint_least32_t uint_type;
-
-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4_iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4_iterator.html deleted file mode 100644 index 096f690..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4_iterator.html +++ /dev/null @@ -1,297 +0,0 @@ - - - -ip::address_v4_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An input iterator - that can be used for traversing IPv4 addresses. -

-
typedef basic_address_iterator< address_v4 > address_v4_iterator;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- Distance between two iterators. -

-
-

- iterator_category -

-
-

- Denotes that the iterator satisfies the input iterator requirements. -

-
-

- pointer -

-
-

- The type of a pointer to an element pointed to by the iterator. -

-
-

- reference -

-
-

- The type of a reference to an element pointed to by the iterator. -

-
-

- value_type -

-
-

- The type of the elements pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_iterator -

-
-

- Construct an iterator that points to the specified address.
-
Copy constructor. -

-
-

- operator * -

-
-

- Dereference the iterator. -

-
-

- operator++ -

-
-

- Pre-increment operator.

Post-increment operator. -

-
-

- operator-- -

-
-

- Pre-decrement operator.

Post-decrement operator. -

-
-

- operator-> -

-
-

- Dereference the iterator. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- In addition to satisfying the input iterator requirements, this iterator - also supports decrement. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4_range.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4_range.html deleted file mode 100644 index 5d0f9a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4_range.html +++ /dev/null @@ -1,207 +0,0 @@ - - - -ip::address_v4_range - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Represents a range - of IPv4 addresses. -

-
typedef basic_address_range< address_v4 > address_v4_range;
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- iterator -

-
-

- The type of an iterator that points into the range. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_range -

-
-

- Construct an empty range.

Construct an range that - represents the given range of addresses.

Copy constructor. -

-
-

- begin -

-
-

- Obtain an iterator that points to the start of the range. -

-
-

- empty -

-
-

- Determine whether the range is empty. -

-
-

- end -

-
-

- Obtain an iterator that points to the end of the range. -

-
-

- find -

-
-

- Find an address in the range. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-

- size -

-
-

- Return the size of the range. -

-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4_range.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6.html deleted file mode 100644 index bf6c932..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6.html +++ /dev/null @@ -1,576 +0,0 @@ - - - -ip::address_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Implements IP version 6 style addresses. -

-
class address_v6
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_type -

-
-

- The type used to represent an address as an array of bytes. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_v6 -

-
-

- Default constructor.

Construct an address from raw - bytes and scope ID.

Copy constructor. -

-
-

- any -

-
-

- Obtain an address object that represents any address. -

-
-

- from_string -

-
-

- (Deprecated: Use make_address_v6().) Create an IPv6 address from - an IP address string. -

-
-

- is_link_local -

-
-

- Determine whether the address is link local. -

-
-

- is_loopback -

-
-

- Determine whether the address is a loopback address. -

-
-

- is_multicast -

-
-

- Determine whether the address is a multicast address. -

-
-

- is_multicast_global -

-
-

- Determine whether the address is a global multicast address. -

-
-

- is_multicast_link_local -

-
-

- Determine whether the address is a link-local multicast address. -

-
-

- is_multicast_node_local -

-
-

- Determine whether the address is a node-local multicast address. -

-
-

- is_multicast_org_local -

-
-

- Determine whether the address is a org-local multicast address. -

-
-

- is_multicast_site_local -

-
-

- Determine whether the address is a site-local multicast address. -

-
-

- is_site_local -

-
-

- Determine whether the address is site local. -

-
-

- is_unspecified -

-
-

- Determine whether the address is unspecified. -

-
-

- is_v4_compatible -

-
-

- (Deprecated: No replacement.) Determine whether the address is - an IPv4-compatible address. -

-
-

- is_v4_mapped -

-
-

- Determine whether the address is a mapped IPv4 address. -

-
-

- loopback -

-
-

- Obtain an address object that represents the loopback address. -

-
-

- operator= -

-
-

- Assign from another address. -

-
-

- scope_id -

-
-

- The scope ID of the address. -

-
-

- to_bytes -

-
-

- Get the address in bytes, in network byte order. -

-
-

- to_string -

-
-

- Get the address as a string.

(Deprecated: Use other - overload.) Get the address as a string. -

-
-

- to_v4 -

-
-

- (Deprecated: Use make_address_v4().) Converts an IPv4-mapped or - IPv4-compatible address to an IPv4 address. -

-
-

- v4_compatible -

-
-

- (Deprecated: No replacement.) Create an IPv4-compatible IPv6 address. -

-
-

- v4_mapped -

-
-

- (Deprecated: Use make_address_v6().) Create an IPv4-mapped IPv6 - address. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator< -

-
-

- Compare addresses for ordering. -

-
-

- operator<= -

-
-

- Compare addresses for ordering. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- operator> -

-
-

- Compare addresses for ordering. -

-
-

- operator>= -

-
-

- Compare addresses for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_address_v6 -

-
-

- Create an IPv6 address from raw bytes and scope ID. -

-

- Create an IPv6 address from an IP address string. -

-

- Createan IPv6 address from an IP address string. -

-

- Create an IPv4-mapped IPv6 address from an IPv4 address. -

-
-

- make_network_v6 -

-
-

- Create an IPv6 network from an address and prefix length. -

-
-

- operator<< -

-
-

- Output an address as a string. -

-

- Output a network as a string. -

-
-

- The ip::address_v6 - class provides the ability to use and manipulate IP version 6 addresses. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6.html deleted file mode 100644 index 5a03c25..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -ip::address_v6::address_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
address_v6();
-  » more...
-
-

- Construct an address from raw bytes and scope ID. -

-
explicit address_v6(
-    const bytes_type & bytes,
-    unsigned long scope_id = 0);
-  » more...
-
-

- Copy constructor. -

-
address_v6(
-    const address_v6 & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload1.html deleted file mode 100644 index e0fb1db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::address_v6::address_v6 (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
address_v6();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload2.html deleted file mode 100644 index a693a0d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::address_v6 (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an address from raw bytes and scope ID. -

-
address_v6(
-    const bytes_type & bytes,
-    unsigned long scope_id = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload3.html deleted file mode 100644 index f29a274..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::address_v6 (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
address_v6(
-    const address_v6 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/any.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/any.html deleted file mode 100644 index a77601c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/any.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::any - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address object - that represents any address. -

-
static address_v6 any();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/bytes_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/bytes_type.html deleted file mode 100644 index 9a9d526..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/bytes_type.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -ip::address_v6::bytes_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - used to represent an address as an array of bytes. -

-
typedef array< unsigned char, 16 > bytes_type;
-
-
- - Remarks -
-

- This type is defined in terms of the C++0x template std::array - when it is available. Otherwise, it uses boost:array. -

-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string.html deleted file mode 100644 index d55190a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ip::address_v6::from_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use make_address_v6().) Create an IPv6 address from an IP - address string. -

-
static address_v6 from_string(
-    const char * str);
-  » more...
-
-static address_v6 from_string(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-static address_v6 from_string(
-    const std::string & str);
-  » more...
-
-static address_v6 from_string(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload1.html deleted file mode 100644 index 1899961..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::from_string (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v6().) Create an IPv6 address - from an IP address string. -

-
static address_v6 from_string(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload2.html deleted file mode 100644 index 30e54ce..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address_v6::from_string (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v6().) Create an IPv6 address - from an IP address string. -

-
static address_v6 from_string(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload3.html deleted file mode 100644 index 30e53bf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::from_string (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v6().) Create an IPv6 address - from an IP address string. -

-
static address_v6 from_string(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload4.html deleted file mode 100644 index 1cd68a0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload4.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address_v6::from_string (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v6().) Create an IPv6 address - from an IP address string. -

-
static address_v6 from_string(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_link_local.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_link_local.html deleted file mode 100644 index f7fd597..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_link_local.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_link_local - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is link local. -

-
bool is_link_local() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_loopback.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_loopback.html deleted file mode 100644 index 284bbd4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_loopback.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_loopback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a loopback address. -

-
bool is_loopback() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast.html deleted file mode 100644 index cb02335..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_multicast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a multicast address. -

-
bool is_multicast() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_global.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_global.html deleted file mode 100644 index 7d9b3de..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_global.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_multicast_global - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a global multicast address. -

-
bool is_multicast_global() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_link_local.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_link_local.html deleted file mode 100644 index cf207c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_link_local.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_multicast_link_local - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a link-local multicast address. -

-
bool is_multicast_link_local() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_node_local.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_node_local.html deleted file mode 100644 index 0e7f73e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_node_local.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_multicast_node_local - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a node-local multicast address. -

-
bool is_multicast_node_local() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_org_local.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_org_local.html deleted file mode 100644 index ab002d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_org_local.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_multicast_org_local - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a org-local multicast address. -

-
bool is_multicast_org_local() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_site_local.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_site_local.html deleted file mode 100644 index 30ae9bf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_site_local.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_multicast_site_local - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a site-local multicast address. -

-
bool is_multicast_site_local() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_site_local.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_site_local.html deleted file mode 100644 index e901da5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_site_local.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_site_local - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is site local. -

-
bool is_site_local() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_unspecified.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_unspecified.html deleted file mode 100644 index 67103b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_unspecified.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_unspecified - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is unspecified. -

-
bool is_unspecified() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_v4_compatible.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_v4_compatible.html deleted file mode 100644 index 8ecf351..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_v4_compatible.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_v4_compatible - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - No replacement.) Determine whether the address is an IPv4-compatible address. -

-
bool is_v4_compatible() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_v4_mapped.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_v4_mapped.html deleted file mode 100644 index 12dfdf4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_v4_mapped.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_v4_mapped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a mapped IPv4 address. -

-
bool is_v4_mapped() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/loopback.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/loopback.html deleted file mode 100644 index a22f74b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/loopback.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::loopback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address - object that represents the loopback address. -

-
static address_v6 loopback();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6.html deleted file mode 100644 index 3b9d83b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -ip::address_v6::make_address_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - an IPv6 address from raw bytes and scope ID. -

-
address_v6 make_address_v6(
-    const address_v6::bytes_type & bytes,
-    unsigned long scope_id = 0);
-  » more...
-
-

- Create an IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    const char * str);
-  » more...
-
-address_v6 make_address_v6(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-

- Createan IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    const std::string & str);
-  » more...
-
-address_v6 make_address_v6(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-address_v6 make_address_v6(
-    string_view str);
-  » more...
-
-address_v6 make_address_v6(
-    string_view str,
-    asio::error_code & ec);
-  » more...
-
-

- Create an IPv4-mapped IPv6 address from an IPv4 address. -

-
address_v6 make_address_v6(
-    v4_mapped_t ,
-    const address_v4 & v4_addr);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload1.html deleted file mode 100644 index 0a38a2b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::make_address_v6 (1 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 address from raw bytes and scope ID. -

-
address_v6 make_address_v6(
-    const address_v6::bytes_type & bytes,
-    unsigned long scope_id = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload2.html deleted file mode 100644 index 4d96256..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::make_address_v6 (2 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload3.html deleted file mode 100644 index c52ba5a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::make_address_v6 (3 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload4.html deleted file mode 100644 index 953135a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::make_address_v6 (4 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Createan IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload5.html deleted file mode 100644 index cec368c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload5.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::make_address_v6 (5 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload6.html deleted file mode 100644 index 2ad7afb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload6.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::make_address_v6 (6 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    string_view str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload7.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload7.html deleted file mode 100644 index 16ca491..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload7.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::make_address_v6 (7 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    string_view str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload8.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload8.html deleted file mode 100644 index 88ee66b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload8.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::make_address_v6 (8 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4-mapped IPv6 address from an IPv4 address. -

-
address_v6 make_address_v6(
-    v4_mapped_t ,
-    const address_v4 & v4_addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_network_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_network_v6.html deleted file mode 100644 index a3e70bb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_network_v6.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address_v6::make_network_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - an IPv6 network from an address and prefix length. -

-
network_v6 make_network_v6(
-    const address_v6 & addr,
-    unsigned short prefix_len);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_eq_.html deleted file mode 100644 index 222df54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - from another address. -

-
address_v6 & operator=(
-    const address_v6 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_eq__eq_.html deleted file mode 100644 index f98ef91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v6::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two addresses for equality. -

-
friend bool operator==(
-    const address_v6 & a1,
-    const address_v6 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_gt_.html deleted file mode 100644 index c41150f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_gt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v6::operator> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator>(
-    const address_v6 & a1,
-    const address_v6 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_gt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_gt__eq_.html deleted file mode 100644 index 712b996..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_gt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v6::operator>= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator>=(
-    const address_v6 & a1,
-    const address_v6 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt_.html deleted file mode 100644 index 349455e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v6::operator< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator<(
-    const address_v6 & a1,
-    const address_v6 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__eq_.html deleted file mode 100644 index f371084..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v6::operator<= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator<=(
-    const address_v6 & a1,
-    const address_v6 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_.html deleted file mode 100644 index 8ef5e5c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ip::address_v6::operator<< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Output - an address as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const address_v6 & addr);
-  » more...
-
-

- Output a network as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const network_v6 & net);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload1.html deleted file mode 100644 index 40c034a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -ip::address_v6::operator<< (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Output an address as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const address_v6 & addr);
-
-

- Used to output a human-readable string for a specified address. -

-
- - Parameters -
-
-

-
-
os
-

- The output stream to which the string will be written. -

-
addr
-

- The address to be written. -

-
-
-
- - Return - Value -
-

- The output stream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload2.html deleted file mode 100644 index 3eec043..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload2.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -ip::address_v6::operator<< (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Output a network as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const network_v6 & net);
-
-

- Used to output a human-readable string for a specified network. -

-
- - Parameters -
-
-

-
-
os
-

- The output stream to which the string will be written. -

-
net
-

- The network to be written. -

-
-
-
- - Return - Value -
-

- The output stream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_not__eq_.html deleted file mode 100644 index 9a37011..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v6::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two addresses for inequality. -

-
friend bool operator!=(
-    const address_v6 & a1,
-    const address_v6 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id.html deleted file mode 100644 index f3713c6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ip::address_v6::scope_id - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The scope ID - of the address. -

-
unsigned long scope_id() const;
-  » more...
-
-void scope_id(
-    unsigned long id);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id/overload1.html deleted file mode 100644 index c475ccc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address_v6::scope_id (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The scope ID of the address. -

-
unsigned long scope_id() const;
-
-

- Returns the scope ID associated with the IPv6 address. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id/overload2.html deleted file mode 100644 index b942e09..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id/overload2.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::address_v6::scope_id (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The scope ID of the address. -

-
void scope_id(
-    unsigned long id);
-
-

- Modifies the scope ID associated with the IPv6 address. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_bytes.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_bytes.html deleted file mode 100644 index 40a2f33..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_bytes.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::to_bytes - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address - in bytes, in network byte order. -

-
bytes_type to_bytes() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string.html deleted file mode 100644 index 07fa278..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::address_v6::to_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address - as a string. -

-
std::string to_string() const;
-  » more...
-
-

- (Deprecated: Use other overload.) Get the address as a string. -

-
std::string to_string(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string/overload1.html deleted file mode 100644 index 1f24767..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::address_v6::to_string (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the address as a string. -

-
std::string to_string() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string/overload2.html deleted file mode 100644 index f6d1a22..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::to_string (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use other overload.) Get the address as a string. -

-
std::string to_string(
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_v4.html deleted file mode 100644 index 3986fb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_v4.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::to_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: Use - make_address_v4().) Converts an IPv4-mapped or IPv4-compatible - address to an IPv4 address. -

-
address_v4 to_v4() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/v4_compatible.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/v4_compatible.html deleted file mode 100644 index 8cd66e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/v4_compatible.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::v4_compatible - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - No replacement.) Create an IPv4-compatible IPv6 address. -

-
static address_v6 v4_compatible(
-    const address_v4 & addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/v4_mapped.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/v4_mapped.html deleted file mode 100644 index 89cb666..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/v4_mapped.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::v4_mapped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use make_address_v6().) Create an IPv4-mapped IPv6 address. -

-
static address_v6 v4_mapped(
-    const address_v4 & addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6_iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6_iterator.html deleted file mode 100644 index 15802bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6_iterator.html +++ /dev/null @@ -1,297 +0,0 @@ - - - -ip::address_v6_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An input iterator - that can be used for traversing IPv6 addresses. -

-
typedef basic_address_iterator< address_v6 > address_v6_iterator;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- Distance between two iterators. -

-
-

- iterator_category -

-
-

- Denotes that the iterator satisfies the input iterator requirements. -

-
-

- pointer -

-
-

- The type of a pointer to an element pointed to by the iterator. -

-
-

- reference -

-
-

- The type of a reference to an element pointed to by the iterator. -

-
-

- value_type -

-
-

- The type of the elements pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_iterator -

-
-

- Construct an iterator that points to the specified address.
-
Copy constructor. -

-
-

- operator * -

-
-

- Dereference the iterator. -

-
-

- operator++ -

-
-

- Pre-increment operator.

Post-increment operator. -

-
-

- operator-- -

-
-

- Pre-decrement operator.

Post-decrement operator. -

-
-

- operator-> -

-
-

- Dereference the iterator. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- In addition to satisfying the input iterator requirements, this iterator - also supports decrement. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6_range.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6_range.html deleted file mode 100644 index 0dbab84..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6_range.html +++ /dev/null @@ -1,195 +0,0 @@ - - - -ip::address_v6_range - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Represents a range - of IPv6 addresses. -

-
typedef basic_address_range< address_v6 > address_v6_range;
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- iterator -

-
-

- The type of an iterator that points into the range. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_range -

-
-

- Construct an empty range.

Construct an range that - represents the given range of addresses.

Copy constructor. -

-
-

- begin -

-
-

- Obtain an iterator that points to the start of the range. -

-
-

- empty -

-
-

- Determine whether the range is empty. -

-
-

- end -

-
-

- Obtain an iterator that points to the end of the range. -

-
-

- find -

-
-

- Find an address in the range. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6_range.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast.html b/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast.html deleted file mode 100644 index 8943366..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -ip::bad_address_cast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Thrown to indicate a failed address conversion. -

-
class bad_address_cast
-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bad_address_cast -

-
-

- Default constructor. -

-
-

- what -

-
-

- Get the message associated with the exception. -

-
-

- ~bad_address_cast -

-
-

- Destructor. -

-
-
- - Requirements -
-

- Header: asio/ip/bad_address_cast.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/_bad_address_cast.html b/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/_bad_address_cast.html deleted file mode 100644 index 9a76d42..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/_bad_address_cast.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::bad_address_cast::~bad_address_cast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
virtual ~bad_address_cast();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/bad_address_cast.html b/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/bad_address_cast.html deleted file mode 100644 index 23393a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/bad_address_cast.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::bad_address_cast::bad_address_cast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
bad_address_cast();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/what.html b/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/what.html deleted file mode 100644 index 8d574e4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/what.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::bad_address_cast::what - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - message associated with the exception. -

-
virtual const char * what() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_.html deleted file mode 100644 index 6d88ab6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_.html +++ /dev/null @@ -1,298 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 > - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An input iterator that can be used for traversing IPv4 addresses. -

-
template<>
-class basic_address_iterator< address_v4 >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- Distance between two iterators. -

-
-

- iterator_category -

-
-

- Denotes that the iterator satisfies the input iterator requirements. -

-
-

- pointer -

-
-

- The type of a pointer to an element pointed to by the iterator. -

-
-

- reference -

-
-

- The type of a reference to an element pointed to by the iterator. -

-
-

- value_type -

-
-

- The type of the elements pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_iterator -

-
-

- Construct an iterator that points to the specified address.
-
Copy constructor. -

-
-

- operator * -

-
-

- Dereference the iterator. -

-
-

- operator++ -

-
-

- Pre-increment operator.

Post-increment operator. -

-
-

- operator-- -

-
-

- Pre-decrement operator.

Post-decrement operator. -

-
-

- operator-> -

-
-

- Dereference the iterator. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- In addition to satisfying the input iterator requirements, this iterator - also supports decrement. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator.html deleted file mode 100644 index 078c7fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::basic_address_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an iterator that points to the specified address. -

-
basic_address_iterator(
-    const address_v4 & addr);
-  » more...
-
-

- Copy constructor. -

-
basic_address_iterator(
-    const basic_address_iterator & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload1.html deleted file mode 100644 index f1d8d9b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::basic_address_iterator (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an iterator that points to the specified address. -

-
basic_address_iterator(
-    const address_v4 & addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload2.html deleted file mode 100644 index 7a0017e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::basic_address_iterator (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_address_iterator(
-    const basic_address_iterator & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/difference_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/difference_type.html deleted file mode 100644 index 9f212fa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/difference_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::difference_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Distance between two iterators. -

-
typedef std::ptrdiff_t difference_type;
-
-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/iterator_category.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/iterator_category.html deleted file mode 100644 index d664000..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/iterator_category.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::iterator_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Denotes that the iterator satisfies the input iterator requirements. -

-
typedef std::input_iterator_tag iterator_category;
-
-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator__star_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator__star_.html deleted file mode 100644 index c7185e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator__star_.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator * - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference the iterator. -

-
const address_v4 & operator *() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_arrow_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_arrow_.html deleted file mode 100644 index c8744fc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_arrow_.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator-> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference the iterator. -

-
const address_v4 * operator->() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq_.html deleted file mode 100644 index 6a4d17e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment operator. -

-
basic_address_iterator & operator=(
-    const basic_address_iterator & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq__eq_.html deleted file mode 100644 index b5e7c75..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two addresses for equality. -

-
friend bool operator==(
-    const basic_address_iterator & a,
-    const basic_address_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_.html deleted file mode 100644 index e160b58..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator-- - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Pre-decrement operator. -

-
basic_address_iterator & operator--();
-  » more...
-
-

- Post-decrement operator. -

-
basic_address_iterator operator--(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload1.html deleted file mode 100644 index ec52adf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator-- (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Pre-decrement operator. -

-
basic_address_iterator & operator--();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload2.html deleted file mode 100644 index a643cd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator-- (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Post-decrement operator. -

-
basic_address_iterator operator--(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_not__eq_.html deleted file mode 100644 index d60f497..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two addresses for inequality. -

-
friend bool operator!=(
-    const basic_address_iterator & a,
-    const basic_address_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_.html deleted file mode 100644 index 4fa0df8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator++ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Pre-increment operator. -

-
basic_address_iterator & operator++();
-  » more...
-
-

- Post-increment operator. -

-
basic_address_iterator operator++(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload1.html deleted file mode 100644 index 96baa18..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator++ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Pre-increment operator. -

-
basic_address_iterator & operator++();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload2.html deleted file mode 100644 index e9fe157..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator++ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Post-increment operator. -

-
basic_address_iterator operator++(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/pointer.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/pointer.html deleted file mode 100644 index 25bdea4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/pointer.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::pointer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of a pointer to an element pointed to by the iterator. -

-
typedef const address_v4 * pointer;
-
-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/reference.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/reference.html deleted file mode 100644 index bc73ee6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/reference.html +++ /dev/null @@ -1,532 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::reference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of a reference to an element pointed to by the - iterator. -

-
typedef const address_v4 & reference;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_type -

-
-

- The type used to represent an address as an array of bytes. -

-
-

- uint_type -

-
-

- The type used to represent an address as an unsigned integer. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_v4 -

-
-

- Default constructor.

Construct an address from - raw bytes.

Construct an address from an unsigned - integer in host byte order.

Copy constructor. -

-
-

- any -

-
-

- Obtain an address object that represents any address. -

-
-

- broadcast -

-
-

- Obtain an address object that represents the broadcast address. -

(Deprecated: Use network_v4 class.) Obtain an address - object that represents the broadcast address that corresponds - to the specified address and netmask. -

-
-

- from_string -

-
-

- (Deprecated: Use make_address_v4().) Create an address from an - IP address string in dotted decimal form. -

-
-

- is_class_a -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class A address. -

-
-

- is_class_b -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class B address. -

-
-

- is_class_c -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class C address. -

-
-

- is_loopback -

-
-

- Determine whether the address is a loopback address. -

-
-

- is_multicast -

-
-

- Determine whether the address is a multicast address. -

-
-

- is_unspecified -

-
-

- Determine whether the address is unspecified. -

-
-

- loopback -

-
-

- Obtain an address object that represents the loopback address. -

-
-

- netmask -

-
-

- (Deprecated: Use network_v4 class.) Obtain the netmask that corresponds - to the address, based on its address class. -

-
-

- operator= -

-
-

- Assign from another address. -

-
-

- to_bytes -

-
-

- Get the address in bytes, in network byte order. -

-
-

- to_string -

-
-

- Get the address as a string in dotted decimal format.
-
(Deprecated: Use other overload.) Get the address as a - string in dotted decimal format. -

-
-

- to_uint -

-
-

- Get the address as an unsigned integer in host byte order. -

-
-

- to_ulong -

-
-

- Get the address as an unsigned long in host byte order. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator< -

-
-

- Compare addresses for ordering. -

-
-

- operator<= -

-
-

- Compare addresses for ordering. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- operator> -

-
-

- Compare addresses for ordering. -

-
-

- operator>= -

-
-

- Compare addresses for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_address_v4 -

-
-

- Create an IPv4 address from raw bytes in network order. -

-

- Create an IPv4 address from an unsigned integer in host byte - order. -

-

- Create an IPv4 address from an IP address string in dotted decimal - form. -

-

- Create an IPv4 address from a IPv4-mapped IPv6 address. -

-
-

- make_network_v4 -

-
-

- Create an IPv4 network from an address and prefix length. -

-

- Create an IPv4 network from an address and netmask. -

-
-

- operator<< -

-
-

- Output an address as a string. -

-

- Output a network as a string. -

-
-

- The ip::address_v4 - class provides the ability to use and manipulate IP version 4 addresses. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/value_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/value_type.html deleted file mode 100644 index bfe1b82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/value_type.html +++ /dev/null @@ -1,531 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of the elements pointed to by the iterator. -

-
typedef address_v4 value_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_type -

-
-

- The type used to represent an address as an array of bytes. -

-
-

- uint_type -

-
-

- The type used to represent an address as an unsigned integer. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_v4 -

-
-

- Default constructor.

Construct an address from - raw bytes.

Construct an address from an unsigned - integer in host byte order.

Copy constructor. -

-
-

- any -

-
-

- Obtain an address object that represents any address. -

-
-

- broadcast -

-
-

- Obtain an address object that represents the broadcast address. -

(Deprecated: Use network_v4 class.) Obtain an address - object that represents the broadcast address that corresponds - to the specified address and netmask. -

-
-

- from_string -

-
-

- (Deprecated: Use make_address_v4().) Create an address from an - IP address string in dotted decimal form. -

-
-

- is_class_a -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class A address. -

-
-

- is_class_b -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class B address. -

-
-

- is_class_c -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class C address. -

-
-

- is_loopback -

-
-

- Determine whether the address is a loopback address. -

-
-

- is_multicast -

-
-

- Determine whether the address is a multicast address. -

-
-

- is_unspecified -

-
-

- Determine whether the address is unspecified. -

-
-

- loopback -

-
-

- Obtain an address object that represents the loopback address. -

-
-

- netmask -

-
-

- (Deprecated: Use network_v4 class.) Obtain the netmask that corresponds - to the address, based on its address class. -

-
-

- operator= -

-
-

- Assign from another address. -

-
-

- to_bytes -

-
-

- Get the address in bytes, in network byte order. -

-
-

- to_string -

-
-

- Get the address as a string in dotted decimal format.
-
(Deprecated: Use other overload.) Get the address as a - string in dotted decimal format. -

-
-

- to_uint -

-
-

- Get the address as an unsigned integer in host byte order. -

-
-

- to_ulong -

-
-

- Get the address as an unsigned long in host byte order. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator< -

-
-

- Compare addresses for ordering. -

-
-

- operator<= -

-
-

- Compare addresses for ordering. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- operator> -

-
-

- Compare addresses for ordering. -

-
-

- operator>= -

-
-

- Compare addresses for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_address_v4 -

-
-

- Create an IPv4 address from raw bytes in network order. -

-

- Create an IPv4 address from an unsigned integer in host byte - order. -

-

- Create an IPv4 address from an IP address string in dotted decimal - form. -

-

- Create an IPv4 address from a IPv4-mapped IPv6 address. -

-
-

- make_network_v4 -

-
-

- Create an IPv4 network from an address and prefix length. -

-

- Create an IPv4 network from an address and netmask. -

-
-

- operator<< -

-
-

- Output an address as a string. -

-

- Output a network as a string. -

-
-

- The ip::address_v4 - class provides the ability to use and manipulate IP version 4 addresses. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_.html deleted file mode 100644 index 0079a5c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_.html +++ /dev/null @@ -1,298 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 > - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An input iterator that can be used for traversing IPv6 addresses. -

-
template<>
-class basic_address_iterator< address_v6 >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- Distance between two iterators. -

-
-

- iterator_category -

-
-

- Denotes that the iterator satisfies the input iterator requirements. -

-
-

- pointer -

-
-

- The type of a pointer to an element pointed to by the iterator. -

-
-

- reference -

-
-

- The type of a reference to an element pointed to by the iterator. -

-
-

- value_type -

-
-

- The type of the elements pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_iterator -

-
-

- Construct an iterator that points to the specified address.
-
Copy constructor. -

-
-

- operator * -

-
-

- Dereference the iterator. -

-
-

- operator++ -

-
-

- Pre-increment operator.

Post-increment operator. -

-
-

- operator-- -

-
-

- Pre-decrement operator.

Post-decrement operator. -

-
-

- operator-> -

-
-

- Dereference the iterator. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- In addition to satisfying the input iterator requirements, this iterator - also supports decrement. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator.html deleted file mode 100644 index 9aa3425..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::basic_address_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an iterator that points to the specified address. -

-
basic_address_iterator(
-    const address_v6 & addr);
-  » more...
-
-

- Copy constructor. -

-
basic_address_iterator(
-    const basic_address_iterator & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload1.html deleted file mode 100644 index 1df8740..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::basic_address_iterator (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an iterator that points to the specified address. -

-
basic_address_iterator(
-    const address_v6 & addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload2.html deleted file mode 100644 index 0cde8b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::basic_address_iterator (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_address_iterator(
-    const basic_address_iterator & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/difference_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/difference_type.html deleted file mode 100644 index 880a001..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/difference_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::difference_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Distance between two iterators. -

-
typedef std::ptrdiff_t difference_type;
-
-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/iterator_category.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/iterator_category.html deleted file mode 100644 index b5581b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/iterator_category.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::iterator_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Denotes that the iterator satisfies the input iterator requirements. -

-
typedef std::input_iterator_tag iterator_category;
-
-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator__star_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator__star_.html deleted file mode 100644 index eedb9df..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator__star_.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator * - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference the iterator. -

-
const address_v6 & operator *() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_arrow_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_arrow_.html deleted file mode 100644 index 62f1a55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_arrow_.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator-> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference the iterator. -

-
const address_v6 * operator->() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq_.html deleted file mode 100644 index 576af78..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment operator. -

-
basic_address_iterator & operator=(
-    const basic_address_iterator & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq__eq_.html deleted file mode 100644 index 5fe8013..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two addresses for equality. -

-
friend bool operator==(
-    const basic_address_iterator & a,
-    const basic_address_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_.html deleted file mode 100644 index 75ae6b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator-- - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Pre-decrement operator. -

-
basic_address_iterator & operator--();
-  » more...
-
-

- Post-decrement operator. -

-
basic_address_iterator operator--(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload1.html deleted file mode 100644 index 453cb41..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator-- (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Pre-decrement operator. -

-
basic_address_iterator & operator--();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload2.html deleted file mode 100644 index 7d29024..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator-- (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Post-decrement operator. -

-
basic_address_iterator operator--(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_not__eq_.html deleted file mode 100644 index 098e660..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two addresses for inequality. -

-
friend bool operator!=(
-    const basic_address_iterator & a,
-    const basic_address_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_.html deleted file mode 100644 index c8c664d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator++ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Pre-increment operator. -

-
basic_address_iterator & operator++();
-  » more...
-
-

- Post-increment operator. -

-
basic_address_iterator operator++(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload1.html deleted file mode 100644 index 46deed1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator++ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Pre-increment operator. -

-
basic_address_iterator & operator++();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload2.html deleted file mode 100644 index 1d65bee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator++ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Post-increment operator. -

-
basic_address_iterator operator++(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/pointer.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/pointer.html deleted file mode 100644 index faad8ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/pointer.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::pointer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of a pointer to an element pointed to by the iterator. -

-
typedef const address_v6 * pointer;
-
-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/reference.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/reference.html deleted file mode 100644 index 618fd46..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/reference.html +++ /dev/null @@ -1,580 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::reference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of a reference to an element pointed to by the - iterator. -

-
typedef const address_v6 & reference;
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_type -

-
-

- The type used to represent an address as an array of bytes. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_v6 -

-
-

- Default constructor.

Construct an address from - raw bytes and scope ID.

Copy constructor. -

-
-

- any -

-
-

- Obtain an address object that represents any address. -

-
-

- from_string -

-
-

- (Deprecated: Use make_address_v6().) Create an IPv6 address from - an IP address string. -

-
-

- is_link_local -

-
-

- Determine whether the address is link local. -

-
-

- is_loopback -

-
-

- Determine whether the address is a loopback address. -

-
-

- is_multicast -

-
-

- Determine whether the address is a multicast address. -

-
-

- is_multicast_global -

-
-

- Determine whether the address is a global multicast address. -

-
-

- is_multicast_link_local -

-
-

- Determine whether the address is a link-local multicast address. -

-
-

- is_multicast_node_local -

-
-

- Determine whether the address is a node-local multicast address. -

-
-

- is_multicast_org_local -

-
-

- Determine whether the address is a org-local multicast address. -

-
-

- is_multicast_site_local -

-
-

- Determine whether the address is a site-local multicast address. -

-
-

- is_site_local -

-
-

- Determine whether the address is site local. -

-
-

- is_unspecified -

-
-

- Determine whether the address is unspecified. -

-
-

- is_v4_compatible -

-
-

- (Deprecated: No replacement.) Determine whether the address is - an IPv4-compatible address. -

-
-

- is_v4_mapped -

-
-

- Determine whether the address is a mapped IPv4 address. -

-
-

- loopback -

-
-

- Obtain an address object that represents the loopback address. -

-
-

- operator= -

-
-

- Assign from another address. -

-
-

- scope_id -

-
-

- The scope ID of the address. -

-
-

- to_bytes -

-
-

- Get the address in bytes, in network byte order. -

-
-

- to_string -

-
-

- Get the address as a string.

(Deprecated: Use other - overload.) Get the address as a string. -

-
-

- to_v4 -

-
-

- (Deprecated: Use make_address_v4().) Converts an IPv4-mapped - or IPv4-compatible address to an IPv4 address. -

-
-

- v4_compatible -

-
-

- (Deprecated: No replacement.) Create an IPv4-compatible IPv6 - address. -

-
-

- v4_mapped -

-
-

- (Deprecated: Use make_address_v6().) Create an IPv4-mapped IPv6 - address. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator< -

-
-

- Compare addresses for ordering. -

-
-

- operator<= -

-
-

- Compare addresses for ordering. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- operator> -

-
-

- Compare addresses for ordering. -

-
-

- operator>= -

-
-

- Compare addresses for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_address_v6 -

-
-

- Create an IPv6 address from raw bytes and scope ID. -

-

- Create an IPv6 address from an IP address string. -

-

- Createan IPv6 address from an IP address string. -

-

- Create an IPv4-mapped IPv6 address from an IPv4 address. -

-
-

- make_network_v6 -

-
-

- Create an IPv6 network from an address and prefix length. -

-
-

- operator<< -

-
-

- Output an address as a string. -

-

- Output a network as a string. -

-
-

- The ip::address_v6 - class provides the ability to use and manipulate IP version 6 addresses. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/value_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/value_type.html deleted file mode 100644 index f9012be..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/value_type.html +++ /dev/null @@ -1,579 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of the elements pointed to by the iterator. -

-
typedef address_v6 value_type;
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_type -

-
-

- The type used to represent an address as an array of bytes. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_v6 -

-
-

- Default constructor.

Construct an address from - raw bytes and scope ID.

Copy constructor. -

-
-

- any -

-
-

- Obtain an address object that represents any address. -

-
-

- from_string -

-
-

- (Deprecated: Use make_address_v6().) Create an IPv6 address from - an IP address string. -

-
-

- is_link_local -

-
-

- Determine whether the address is link local. -

-
-

- is_loopback -

-
-

- Determine whether the address is a loopback address. -

-
-

- is_multicast -

-
-

- Determine whether the address is a multicast address. -

-
-

- is_multicast_global -

-
-

- Determine whether the address is a global multicast address. -

-
-

- is_multicast_link_local -

-
-

- Determine whether the address is a link-local multicast address. -

-
-

- is_multicast_node_local -

-
-

- Determine whether the address is a node-local multicast address. -

-
-

- is_multicast_org_local -

-
-

- Determine whether the address is a org-local multicast address. -

-
-

- is_multicast_site_local -

-
-

- Determine whether the address is a site-local multicast address. -

-
-

- is_site_local -

-
-

- Determine whether the address is site local. -

-
-

- is_unspecified -

-
-

- Determine whether the address is unspecified. -

-
-

- is_v4_compatible -

-
-

- (Deprecated: No replacement.) Determine whether the address is - an IPv4-compatible address. -

-
-

- is_v4_mapped -

-
-

- Determine whether the address is a mapped IPv4 address. -

-
-

- loopback -

-
-

- Obtain an address object that represents the loopback address. -

-
-

- operator= -

-
-

- Assign from another address. -

-
-

- scope_id -

-
-

- The scope ID of the address. -

-
-

- to_bytes -

-
-

- Get the address in bytes, in network byte order. -

-
-

- to_string -

-
-

- Get the address as a string.

(Deprecated: Use other - overload.) Get the address as a string. -

-
-

- to_v4 -

-
-

- (Deprecated: Use make_address_v4().) Converts an IPv4-mapped - or IPv4-compatible address to an IPv4 address. -

-
-

- v4_compatible -

-
-

- (Deprecated: No replacement.) Create an IPv4-compatible IPv6 - address. -

-
-

- v4_mapped -

-
-

- (Deprecated: Use make_address_v6().) Create an IPv4-mapped IPv6 - address. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator< -

-
-

- Compare addresses for ordering. -

-
-

- operator<= -

-
-

- Compare addresses for ordering. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- operator> -

-
-

- Compare addresses for ordering. -

-
-

- operator>= -

-
-

- Compare addresses for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_address_v6 -

-
-

- Create an IPv6 address from raw bytes and scope ID. -

-

- Create an IPv6 address from an IP address string. -

-

- Createan IPv6 address from an IP address string. -

-

- Create an IPv4-mapped IPv6 address from an IPv4 address. -

-
-

- make_network_v6 -

-
-

- Create an IPv6 network from an address and prefix length. -

-
-

- operator<< -

-
-

- Output an address as a string. -

-

- Output a network as a string. -

-
-

- The ip::address_v6 - class provides the ability to use and manipulate IP version 6 addresses. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_.html deleted file mode 100644 index 530d8ac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_.html +++ /dev/null @@ -1,208 +0,0 @@ - - - -ip::basic_address_range< address_v4 > - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Represents a range of IPv4 addresses. -

-
template<>
-class basic_address_range< address_v4 >
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- iterator -

-
-

- The type of an iterator that points into the range. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_range -

-
-

- Construct an empty range.

Construct an range that - represents the given range of addresses.

Copy constructor. -

-
-

- begin -

-
-

- Obtain an iterator that points to the start of the range. -

-
-

- empty -

-
-

- Determine whether the range is empty. -

-
-

- end -

-
-

- Obtain an iterator that points to the end of the range. -

-
-

- find -

-
-

- Find an address in the range. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-

- size -

-
-

- Return the size of the range. -

-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4_range.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range.html deleted file mode 100644 index 7d1d48b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::basic_address_range - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an empty range. -

-
basic_address_range();
-  » more...
-
-

- Construct an range that represents the given range of addresses. -

-
explicit basic_address_range(
-    const iterator & first,
-    const iterator & last);
-  » more...
-
-

- Copy constructor. -

-
basic_address_range(
-    const basic_address_range & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload1.html deleted file mode 100644 index e159e62..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::basic_address_range (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an empty range. -

-
basic_address_range();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload2.html deleted file mode 100644 index 22f4f12..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::basic_address_range (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an range that represents the given range of addresses. -

-
basic_address_range(
-    const iterator & first,
-    const iterator & last);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload3.html deleted file mode 100644 index e61d853..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::basic_address_range (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_address_range(
-    const basic_address_range & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/begin.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/begin.html deleted file mode 100644 index c47bdf9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/begin.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an iterator that points to the start of the range. -

-
iterator begin() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/empty.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/empty.html deleted file mode 100644 index 55919e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/empty.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::empty - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether the range is empty. -

-
bool empty() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/end.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/end.html deleted file mode 100644 index bddf0a6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/end.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an iterator that points to the end of the range. -

-
iterator end() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/find.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/find.html deleted file mode 100644 index 3ccad31..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/find.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::find - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Find an address in the range. -

-
iterator find(
-    const address_v4 & addr) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/iterator.html deleted file mode 100644 index 1c79fd4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/iterator.html +++ /dev/null @@ -1,298 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of an iterator that points into the range. -

-
typedef basic_address_iterator< address_v4 > iterator;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- Distance between two iterators. -

-
-

- iterator_category -

-
-

- Denotes that the iterator satisfies the input iterator requirements. -

-
-

- pointer -

-
-

- The type of a pointer to an element pointed to by the iterator. -

-
-

- reference -

-
-

- The type of a reference to an element pointed to by the iterator. -

-
-

- value_type -

-
-

- The type of the elements pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_iterator -

-
-

- Construct an iterator that points to the specified address. -

Copy constructor. -

-
-

- operator * -

-
-

- Dereference the iterator. -

-
-

- operator++ -

-
-

- Pre-increment operator.

Post-increment operator. -

-
-

- operator-- -

-
-

- Pre-decrement operator.

Post-decrement operator. -

-
-

- operator-> -

-
-

- Dereference the iterator. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- In addition to satisfying the input iterator requirements, this iterator - also supports decrement. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4_range.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/operator_eq_.html deleted file mode 100644 index d39fec3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment operator. -

-
basic_address_range & operator=(
-    const basic_address_range & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/size.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/size.html deleted file mode 100644 index f6a8593..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Return the size of the range. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_.html deleted file mode 100644 index a714a63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_.html +++ /dev/null @@ -1,196 +0,0 @@ - - - -ip::basic_address_range< address_v6 > - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Represents a range of IPv6 addresses. -

-
template<>
-class basic_address_range< address_v6 >
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- iterator -

-
-

- The type of an iterator that points into the range. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_range -

-
-

- Construct an empty range.

Construct an range that - represents the given range of addresses.

Copy constructor. -

-
-

- begin -

-
-

- Obtain an iterator that points to the start of the range. -

-
-

- empty -

-
-

- Determine whether the range is empty. -

-
-

- end -

-
-

- Obtain an iterator that points to the end of the range. -

-
-

- find -

-
-

- Find an address in the range. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6_range.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range.html deleted file mode 100644 index 5b89f69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::basic_address_range - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an empty range. -

-
basic_address_range();
-  » more...
-
-

- Construct an range that represents the given range of addresses. -

-
explicit basic_address_range(
-    const iterator & first,
-    const iterator & last);
-  » more...
-
-

- Copy constructor. -

-
basic_address_range(
-    const basic_address_range & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload1.html deleted file mode 100644 index 2c776ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::basic_address_range (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an empty range. -

-
basic_address_range();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload2.html deleted file mode 100644 index cdf73f8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::basic_address_range (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an range that represents the given range of addresses. -

-
basic_address_range(
-    const iterator & first,
-    const iterator & last);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload3.html deleted file mode 100644 index c89085f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::basic_address_range (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_address_range(
-    const basic_address_range & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/begin.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/begin.html deleted file mode 100644 index d921123..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/begin.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an iterator that points to the start of the range. -

-
iterator begin() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/empty.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/empty.html deleted file mode 100644 index 983ad51..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/empty.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::empty - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether the range is empty. -

-
bool empty() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/end.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/end.html deleted file mode 100644 index 3e0e891..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/end.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an iterator that points to the end of the range. -

-
iterator end() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/find.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/find.html deleted file mode 100644 index 6566b93..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/find.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::find - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Find an address in the range. -

-
iterator find(
-    const address_v6 & addr) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/iterator.html deleted file mode 100644 index 05b8342..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/iterator.html +++ /dev/null @@ -1,298 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of an iterator that points into the range. -

-
typedef basic_address_iterator< address_v6 > iterator;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- Distance between two iterators. -

-
-

- iterator_category -

-
-

- Denotes that the iterator satisfies the input iterator requirements. -

-
-

- pointer -

-
-

- The type of a pointer to an element pointed to by the iterator. -

-
-

- reference -

-
-

- The type of a reference to an element pointed to by the iterator. -

-
-

- value_type -

-
-

- The type of the elements pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_iterator -

-
-

- Construct an iterator that points to the specified address. -

Copy constructor. -

-
-

- operator * -

-
-

- Dereference the iterator. -

-
-

- operator++ -

-
-

- Pre-increment operator.

Post-increment operator. -

-
-

- operator-- -

-
-

- Pre-decrement operator.

Post-decrement operator. -

-
-

- operator-> -

-
-

- Dereference the iterator. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- In addition to satisfying the input iterator requirements, this iterator - also supports decrement. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6_range.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/operator_eq_.html deleted file mode 100644 index 4750cf7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment operator. -

-
basic_address_range & operator=(
-    const basic_address_range & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint.html deleted file mode 100644 index 0d34878..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint.html +++ /dev/null @@ -1,394 +0,0 @@ - - - -ip::basic_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Describes an endpoint for a version-independent IP socket. -

-
template<
-    typename InternetProtocol>
-class basic_endpoint
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on the - underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address -

-
-

- Get the IP address associated with the endpoint.

- Set the IP address associated with the endpoint. -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint using - a port number, specified in the host's byte order. The IP address - will be the any address (i.e. INADDR_ANY or in6addr_any). This - constructor would typically be used for accepting new connections. -

Construct an endpoint using a port number and an - IP address. This constructor may be used for accepting connections - on a specific interface or for making a connection to a remote - endpoint.

Copy constructor.

Move constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint.

Move-assign from another - endpoint. -

-
-

- port -

-
-

- Get the port associated with the endpoint. The port number is always - in the host's byte order.

Set the port associated - with the endpoint. The port number is always in the host's byte - order. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator<< -

-
-

- Output an endpoint as a string. -

-
-

- The ip::basic_endpoint - class template describes an endpoint that may be associated with a particular - socket. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address.html deleted file mode 100644 index 4db99b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_endpoint::address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - IP address associated with the endpoint. -

-
asio::ip::address address() const;
-  » more...
-
-

- Set the IP address associated with the endpoint. -

-
void address(
-    const asio::ip::address & addr);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address/overload1.html deleted file mode 100644 index 3e3653e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_endpoint::address (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the IP address associated with the endpoint. -

-
asio::ip::address address() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address/overload2.html deleted file mode 100644 index 83552a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::address (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the IP address associated with the endpoint. -

-
void address(
-    const asio::ip::address & addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint.html deleted file mode 100644 index 51246b7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -ip::basic_endpoint::basic_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
basic_endpoint();
-  » more...
-
-

- Construct an endpoint using a port number, specified in the host's byte - order. The IP address will be the any address (i.e. INADDR_ANY or in6addr_any). - This constructor would typically be used for accepting new connections. -

-
basic_endpoint(
-    const InternetProtocol & internet_protocol,
-    unsigned short port_num);
-  » more...
-
-

- Construct an endpoint using a port number and an IP address. This constructor - may be used for accepting connections on a specific interface or for making - a connection to a remote endpoint. -

-
basic_endpoint(
-    const asio::ip::address & addr,
-    unsigned short port_num);
-  » more...
-
-

- Copy constructor. -

-
basic_endpoint(
-    const basic_endpoint & other);
-  » more...
-
-

- Move constructor. -

-
basic_endpoint(
-    basic_endpoint && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload1.html deleted file mode 100644 index 3e8d03a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_endpoint::basic_endpoint (1 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
basic_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload2.html deleted file mode 100644 index 03c35b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload2.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ip::basic_endpoint::basic_endpoint (2 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an endpoint using a port number, specified in the host's byte - order. The IP address will be the any address (i.e. INADDR_ANY or in6addr_any). - This constructor would typically be used for accepting new connections. -

-
basic_endpoint(
-    const InternetProtocol & internet_protocol,
-    unsigned short port_num);
-
-
- - Examples -
-

- To initialise an IPv4 TCP endpoint for port 1234, use: -

-
asio::ip::tcp::endpoint ep(asio::ip::tcp::v4(), 1234);
-
-

- To specify an IPv6 UDP endpoint for port 9876, use: -

-
asio::ip::udp::endpoint ep(asio::ip::udp::v6(), 9876);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload3.html deleted file mode 100644 index 963289c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload3.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_endpoint::basic_endpoint (3 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an endpoint using a port number and an IP address. This constructor - may be used for accepting connections on a specific interface or for - making a connection to a remote endpoint. -

-
basic_endpoint(
-    const asio::ip::address & addr,
-    unsigned short port_num);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload4.html deleted file mode 100644 index f11aa22..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::basic_endpoint (4 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_endpoint(
-    const basic_endpoint & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload5.html deleted file mode 100644 index 70cab25..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload5.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::basic_endpoint (5 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
basic_endpoint(
-    basic_endpoint && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/capacity.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/capacity.html deleted file mode 100644 index dccd694..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/capacity.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::capacity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the capacity of the endpoint in the native type. -

-
std::size_t capacity() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data.html deleted file mode 100644 index f827048..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_endpoint::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the underlying - endpoint in the native type. -

-
data_type * data();
-  » more...
-
-const data_type * data() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data/overload1.html deleted file mode 100644 index 28157cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_endpoint::data (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying endpoint in the native type. -

-
data_type * data();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data/overload2.html deleted file mode 100644 index 6abcd98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_endpoint::data (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying endpoint in the native type. -

-
const data_type * data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data_type.html deleted file mode 100644 index 806cded..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data_type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ip::basic_endpoint::data_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the endpoint structure. This type is dependent on the underlying - implementation of the socket layer. -

-
typedef implementation_defined data_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_.html deleted file mode 100644 index c9c05f0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ip::basic_endpoint::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - from another endpoint. -

-
basic_endpoint & operator=(
-    const basic_endpoint & other);
-  » more...
-
-

- Move-assign from another endpoint. -

-
basic_endpoint & operator=(
-    basic_endpoint && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload1.html deleted file mode 100644 index dd8ba8c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign from another endpoint. -

-
basic_endpoint & operator=(
-    const basic_endpoint & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload2.html deleted file mode 100644 index 7a6fb6c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign from another endpoint. -

-
basic_endpoint & operator=(
-    basic_endpoint && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq__eq_.html deleted file mode 100644 index 2c756a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_endpoint::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two endpoints for equality. -

-
friend bool operator==(
-    const basic_endpoint< InternetProtocol > & e1,
-    const basic_endpoint< InternetProtocol > & e2);
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_gt_.html deleted file mode 100644 index d4b70d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_gt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_endpoint::operator> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator>(
-    const basic_endpoint< InternetProtocol > & e1,
-    const basic_endpoint< InternetProtocol > & e2);
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_gt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_gt__eq_.html deleted file mode 100644 index 83347e0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_gt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_endpoint::operator>= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator>=(
-    const basic_endpoint< InternetProtocol > & e1,
-    const basic_endpoint< InternetProtocol > & e2);
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt_.html deleted file mode 100644 index e3ea3a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_endpoint::operator< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator<(
-    const basic_endpoint< InternetProtocol > & e1,
-    const basic_endpoint< InternetProtocol > & e2);
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__eq_.html deleted file mode 100644 index 015dc55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_endpoint::operator<= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator<=(
-    const basic_endpoint< InternetProtocol > & e1,
-    const basic_endpoint< InternetProtocol > & e2);
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__lt_.html deleted file mode 100644 index 8526525..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__lt_.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ip::basic_endpoint::operator<< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Output - an endpoint as a string. -

-
std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const basic_endpoint< InternetProtocol > & endpoint);
-
-

- Used to output a human-readable string for a specified endpoint. -

-
- - Parameters -
-
-

-
-
os
-

- The output stream to which the string will be written. -

-
endpoint
-

- The endpoint to be written. -

-
-
-
- - Return - Value -
-

- The output stream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_not__eq_.html deleted file mode 100644 index 130897f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_endpoint::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two endpoints for inequality. -

-
friend bool operator!=(
-    const basic_endpoint< InternetProtocol > & e1,
-    const basic_endpoint< InternetProtocol > & e2);
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port.html deleted file mode 100644 index 8832845..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_endpoint::port - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the port - associated with the endpoint. The port number is always in the host's byte - order. -

-
unsigned short port() const;
-  » more...
-
-

- Set the port associated with the endpoint. The port number is always in - the host's byte order. -

-
void port(
-    unsigned short port_num);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port/overload1.html deleted file mode 100644 index c915705..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::port (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the port associated with the endpoint. The port number is always - in the host's byte order. -

-
unsigned short port() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port/overload2.html deleted file mode 100644 index e215a35..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_endpoint::port (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the port associated with the endpoint. The port number is always - in the host's byte order. -

-
void port(
-    unsigned short port_num);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/protocol.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/protocol.html deleted file mode 100644 index b0d1586..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol associated with the endpoint. -

-
protocol_type protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/protocol_type.html deleted file mode 100644 index 0a375a6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_endpoint::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type associated with the endpoint. -

-
typedef InternetProtocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/resize.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/resize.html deleted file mode 100644 index 57b4b55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/resize.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_endpoint::resize - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set the - underlying size of the endpoint in the native type. -

-
void resize(
-    std::size_t new_size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/size.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/size.html deleted file mode 100644 index 236aa63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the underlying - size of the endpoint in the native type. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver.html deleted file mode 100644 index e509149..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver.html +++ /dev/null @@ -1,436 +0,0 @@ - - - -ip::basic_resolver - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides endpoint resolution functionality. -

-
template<
-    typename InternetProtocol>
-class basic_resolver :
-  public ip::resolver_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-

- iterator -

-
-

- (Deprecated.) The iterator type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- query -

-
-

- (Deprecated.) The query type. -

-
-

- results_type -

-
-

- The results type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Asynchronously perform forward resolution of a query to a list - of entries.

Asynchronously perform forward resolution - of a query to a list of entries.

Asynchronously perform - reverse resolution of an endpoint to a list of entries. -

-
-

- basic_resolver -

-
-

- Constructor.

Move-construct a basic_resolver from - another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the resolver. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_resolver from another. -

-
-

- resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Perform forward resolution of a query to a list of entries.
-
Perform forward resolution of a query to a list of entries. -

Perform reverse resolution of an endpoint to a list - of entries. -

-
-

- ~basic_resolver -

-
-

- Destroys the resolver. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is configured - for the system. Only return IPv6 addresses if a non-loopback IPv6 - address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a port - number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-

- The ip::basic_resolver - class template provides the ability to resolve a query to a list of endpoints. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/_basic_resolver.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/_basic_resolver.html deleted file mode 100644 index 13bd862..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/_basic_resolver.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver::~basic_resolver - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the resolver. -

-
~basic_resolver();
-
-

- This function destroys the resolver, cancelling any outstanding asynchronous - wait operations associated with the resolver as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/address_configured.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/address_configured.html deleted file mode 100644 index aa1c7d8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/address_configured.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ip::basic_resolver::address_configured - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Only - return IPv4 addresses if a non-loopback IPv4 address is configured for - the system. Only return IPv6 addresses if a non-loopback IPv6 address is - configured for the system. -

-
static const flags address_configured = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/all_matching.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/all_matching.html deleted file mode 100644 index c23eace..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/all_matching.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver::all_matching - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -If - used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
static const flags all_matching = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve.html deleted file mode 100644 index 4c11890..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -ip::basic_resolver::async_resolve - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use overload with separate host and service parameters.) Asynchronously - perform forward resolution of a query to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const query & q,
-    ResolveHandler && handler);
-  » more...
-
-

- Asynchronously perform forward resolution of a query to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    string_view host,
-    string_view service,
-    ResolveHandler && handler);
-  » more...
-
-template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    ResolveHandler && handler);
-  » more...
-
-template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    ResolveHandler && handler);
-  » more...
-
-template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    ResolveHandler && handler);
-  » more...
-
-

- Asynchronously perform reverse resolution of an endpoint to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const endpoint_type & e,
-    ResolveHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload1.html deleted file mode 100644 index c77e324..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -ip::basic_resolver::async_resolve (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use overload with separate host and service parameters.) - Asynchronously perform forward resolution of a query to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const query & q,
-    ResolveHandler && handler);
-
-

- This function is used to asynchronously resolve a query into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
q
-

- A query object that determines what endpoints will be returned. -

-
handler
-
-

- The handler to be called when the resolve operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  resolver::results_type results // Resolved endpoints as a range.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-

- A successful resolve operation is guaranteed to pass a non-empty range - to the handler. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload2.html deleted file mode 100644 index b2ee4fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -ip::basic_resolver::async_resolve (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously perform forward resolution of a query to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    string_view host,
-    string_view service,
-    ResolveHandler && handler);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
handler
-
-

- The handler to be called when the resolve operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  resolver::results_type results // Resolved endpoints as a range.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-

- A successful resolve operation is guaranteed to pass a non-empty range - to the handler. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload3.html deleted file mode 100644 index 2fbfeed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload3.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -ip::basic_resolver::async_resolve (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously perform forward resolution of a query to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    ResolveHandler && handler);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
handler
-
-

- The handler to be called when the resolve operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  resolver::results_type results // Resolved endpoints as a range.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-

- A successful resolve operation is guaranteed to pass a non-empty range - to the handler. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload4.html deleted file mode 100644 index 0554961..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload4.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -ip::basic_resolver::async_resolve (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously perform forward resolution of a query to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    ResolveHandler && handler);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
handler
-
-

- The handler to be called when the resolve operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  resolver::results_type results // Resolved endpoints as a range.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-

- A successful resolve operation is guaranteed to pass a non-empty range - to the handler. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload5.html deleted file mode 100644 index 493a57a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload5.html +++ /dev/null @@ -1,127 +0,0 @@ - - - -ip::basic_resolver::async_resolve (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously perform forward resolution of a query to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    ResolveHandler && handler);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
handler
-
-

- The handler to be called when the resolve operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  resolver::results_type results // Resolved endpoints as a range.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-

- A successful resolve operation is guaranteed to pass a non-empty range - to the handler. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload6.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload6.html deleted file mode 100644 index ee53a19..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload6.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -ip::basic_resolver::async_resolve (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously perform reverse resolution of an endpoint to a list of - entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const endpoint_type & e,
-    ResolveHandler && handler);
-
-

- This function is used to asynchronously resolve an endpoint into a list - of endpoint entries. -

-
- - Parameters -
-
-

-
-
e
-

- An endpoint object that determines what endpoints will be returned. -

-
handler
-
-

- The handler to be called when the resolve operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  resolver::results_type results // Resolved endpoints as a range.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-

- A successful resolve operation is guaranteed to pass a non-empty range - to the handler. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver.html deleted file mode 100644 index 30d3b54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ip::basic_resolver::basic_resolver - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
explicit basic_resolver(
-    asio::io_context & io_context);
-  » more...
-
-

- Move-construct a ip::basic_resolver - from another. -

-
basic_resolver(
-    basic_resolver && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload1.html deleted file mode 100644 index d8ca9bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload1.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -ip::basic_resolver::basic_resolver (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor. -

-
basic_resolver(
-    asio::io_context & io_context);
-
-

- This constructor creates a ip::basic_resolver. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the resolver will use to dispatch handlers for any - asynchronous operations performed on the resolver. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload2.html deleted file mode 100644 index 1a6acc4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload2.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -ip::basic_resolver::basic_resolver (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a ip::basic_resolver - from another. -

-
basic_resolver(
-    basic_resolver && other);
-
-

- This constructor moves a resolver from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other ip::basic_resolver - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_resolver(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/cancel.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/cancel.html deleted file mode 100644 index 3903b2f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ip::basic_resolver::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - any asynchronous operations that are waiting on the resolver. -

-
void cancel();
-
-

- This function forces the completion of any pending asynchronous operations - on the host resolver. The handler for each cancelled operation will be - invoked with the asio::error::operation_aborted error code. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/canonical_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/canonical_name.html deleted file mode 100644 index 65eafdd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/canonical_name.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver::canonical_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Determine - the canonical name of the host specified in the query. -

-
static const flags canonical_name = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/endpoint_type.html deleted file mode 100644 index fc3efac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef InternetProtocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/executor_type.html deleted file mode 100644 index 11d5732..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -ip::basic_resolver::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/flags.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/flags.html deleted file mode 100644 index 5365d8f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -ip::basic_resolver::flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -A bitmask - type (C++ Std [lib.bitmask.types]). -

-
typedef unspecified flags;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_executor.html deleted file mode 100644 index a1e340b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_io_context.html deleted file mode 100644 index 037a334..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -ip::basic_resolver::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_io_service.html deleted file mode 100644 index 774e991..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -ip::basic_resolver::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/iterator.html deleted file mode 100644 index 7dbc2ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/iterator.html +++ /dev/null @@ -1,389 +0,0 @@ - - - -ip::basic_resolver::iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated.) - The iterator type. -

-
typedef basic_resolver_iterator< InternetProtocol > iterator;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- The type used for the distance between two iterators. -

-
-

- iterator_category -

-
-

- The iterator category. -

-
-

- pointer -

-
-

- The type of the result of applying operator->() to the iterator. -

-
-

- reference -

-
-

- The type of the result of applying operator*() to the iterator. -

-
-

- value_type -

-
-

- The type of the value pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_iterator -

-
-

- Default constructor creates an end iterator.

Copy - constructor.

Move constructor. -

-
-

- operator * -

-
-

- Dereference an iterator. -

-
-

- operator++ -

-
-

- Increment operator (prefix).

Increment operator - (postfix). -

-
-

- operator-> -

-
-

- Dereference an iterator. -

-
-

- operator= -

-
-

- Assignment operator.

Move-assignment operator. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dereference -

-
-
-

- equal -

-
-
-

- increment -

-
-
-
- - Protected - Data Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- index_ -

-
-
-

- values_ -

-
-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Test two iterators for inequality. -

-
-

- operator== -

-
-

- Test two iterators for equality. -

-
-

- The ip::basic_resolver_iterator - class template is used to define iterators over the results returned by - a resolver. -

-

- The iterator's value_type, obtained when the iterator is dereferenced, - is: -

-
const basic_resolver_entry<InternetProtocol>
-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/numeric_host.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/numeric_host.html deleted file mode 100644 index 0844c0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/numeric_host.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver::numeric_host - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Host - name should be treated as a numeric string defining an IPv4 or IPv6 address - and no name resolution should be attempted. -

-
static const flags numeric_host = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/numeric_service.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/numeric_service.html deleted file mode 100644 index 41cfb68..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/numeric_service.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver::numeric_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Service - name should be treated as a numeric string defining a port number and no - name resolution should be attempted. -

-
static const flags numeric_service = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/operator_eq_.html deleted file mode 100644 index 3b32e98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/operator_eq_.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -ip::basic_resolver::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a ip::basic_resolver - from another. -

-
basic_resolver & operator=(
-    basic_resolver && other);
-
-

- This assignment operator moves a resolver from one object to another. Cancels - any outstanding asynchronous operations associated with the target object. -

-
- - Parameters -
-
-

-
-
other
-

- The other ip::basic_resolver - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the basic_resolver(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/passive.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/passive.html deleted file mode 100644 index 71412d8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/passive.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver::passive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Indicate - that returned endpoint is intended for use as a locally bound socket endpoint. -

-
static const flags passive = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/protocol_type.html deleted file mode 100644 index ccfbe0a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef InternetProtocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/query.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/query.html deleted file mode 100644 index 8fd1757..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/query.html +++ /dev/null @@ -1,307 +0,0 @@ - - - -ip::basic_resolver::query - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated.) - The query type. -

-
typedef basic_resolver_query< InternetProtocol > query;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint query. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_query -

-
-

- Construct with specified service name for any protocol.
-
Construct with specified service name for a given protocol. -

Construct with specified host name and service - name for any protocol.

Construct with specified - host name and service name for a given protocol. -

-
-

- hints -

-
-

- Get the hints associated with the query. -

-
-

- host_name -

-
-

- Get the host name associated with the query. -

-
-

- service_name -

-
-

- Get the service name associated with the query. -

-
-
- - Data Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is - configured for the system. Only return IPv6 addresses if a non-loopback - IPv6 address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a - port number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-

- The ip::basic_resolver_query - class template describes a query that can be passed to a resolver. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve.html deleted file mode 100644 index 683b211..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve.html +++ /dev/null @@ -1,118 +0,0 @@ - - - -ip::basic_resolver::resolve - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use overload with separate host and service parameters.) Perform forward - resolution of a query to a list of entries. -

-
results_type resolve(
-    const query & q);
-  » more...
-
-results_type resolve(
-    const query & q,
-    asio::error_code & ec);
-  » more...
-
-

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    string_view host,
-    string_view service);
-  » more...
-
-results_type resolve(
-    string_view host,
-    string_view service,
-    asio::error_code & ec);
-  » more...
-
-results_type resolve(
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags);
-  » more...
-
-results_type resolve(
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    asio::error_code & ec);
-  » more...
-
-results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service);
-  » more...
-
-results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    asio::error_code & ec);
-  » more...
-
-results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags);
-  » more...
-
-results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    asio::error_code & ec);
-  » more...
-
-

- Perform reverse resolution of an endpoint to a list of entries. -

-
results_type resolve(
-    const endpoint_type & e);
-  » more...
-
-results_type resolve(
-    const endpoint_type & e,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload1.html deleted file mode 100644 index 8a196d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -ip::basic_resolver::resolve (1 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use overload with separate host and service parameters.) - Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    const query & q);
-
-

- This function is used to resolve a query into a list of endpoint entries. -

-
- - Parameters -
-
-

-
-
q
-

- A query object that determines what endpoints will be returned. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. A successful - call to this function is guaranteed to return a non-empty range. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload10.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload10.html deleted file mode 100644 index 98d43fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload10.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -ip::basic_resolver::resolve (10 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    asio::error_code & ec);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. An empty range - is returned if an error occurs. A successful call to this function is - guaranteed to return a non-empty range. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload11.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload11.html deleted file mode 100644 index 3cc43ce..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload11.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -ip::basic_resolver::resolve (11 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform reverse resolution of an endpoint to a list of entries. -

-
results_type resolve(
-    const endpoint_type & e);
-
-

- This function is used to resolve an endpoint into a list of endpoint - entries. -

-
- - Parameters -
-
-

-
-
e
-

- An endpoint object that determines what endpoints will be returned. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. A successful - call to this function is guaranteed to return a non-empty range. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload12.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload12.html deleted file mode 100644 index e2722cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload12.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -ip::basic_resolver::resolve (12 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform reverse resolution of an endpoint to a list of entries. -

-
results_type resolve(
-    const endpoint_type & e,
-    asio::error_code & ec);
-
-

- This function is used to resolve an endpoint into a list of endpoint - entries. -

-
- - Parameters -
-
-

-
-
e
-

- An endpoint object that determines what endpoints will be returned. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. An empty range - is returned if an error occurs. A successful call to this function is - guaranteed to return a non-empty range. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload2.html deleted file mode 100644 index 4b827e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload2.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -ip::basic_resolver::resolve (2 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use overload with separate host and service parameters.) - Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    const query & q,
-    asio::error_code & ec);
-
-

- This function is used to resolve a query into a list of endpoint entries. -

-
- - Parameters -
-
-

-
-
q
-

- A query object that determines what endpoints will be returned. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. An empty range - is returned if an error occurs. A successful call to this function is - guaranteed to return a non-empty range. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload3.html deleted file mode 100644 index a5ae26f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload3.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -ip::basic_resolver::resolve (3 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    string_view host,
-    string_view service);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. A successful - call to this function is guaranteed to return a non-empty range. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload4.html deleted file mode 100644 index c8a60f0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload4.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -ip::basic_resolver::resolve (4 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    string_view host,
-    string_view service,
-    asio::error_code & ec);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. An empty range - is returned if an error occurs. A successful call to this function is - guaranteed to return a non-empty range. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload5.html deleted file mode 100644 index c862861..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload5.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -ip::basic_resolver::resolve (5 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. A successful - call to this function is guaranteed to return a non-empty range. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload6.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload6.html deleted file mode 100644 index 5d4587d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload6.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -ip::basic_resolver::resolve (6 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    asio::error_code & ec);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. An empty range - is returned if an error occurs. A successful call to this function is - guaranteed to return a non-empty range. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload7.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload7.html deleted file mode 100644 index db46176..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload7.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -ip::basic_resolver::resolve (7 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. A successful - call to this function is guaranteed to return a non-empty range. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload8.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload8.html deleted file mode 100644 index 1f06c0e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload8.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -ip::basic_resolver::resolve (8 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    asio::error_code & ec);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. An empty range - is returned if an error occurs. A successful call to this function is - guaranteed to return a non-empty range. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload9.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload9.html deleted file mode 100644 index b4f95d3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload9.html +++ /dev/null @@ -1,123 +0,0 @@ - - - -ip::basic_resolver::resolve (9 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. A successful - call to this function is guaranteed to return a non-empty range. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/results_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/results_type.html deleted file mode 100644 index 02e3571..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/results_type.html +++ /dev/null @@ -1,567 +0,0 @@ - - - -ip::basic_resolver::results_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - results type. -

-
typedef basic_resolver_results< InternetProtocol > results_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_iterator -

-
-

- The type of an iterator into the range. -

-
-

- const_reference -

-
-

- The type of a const reference to a value in the range. -

-
-

- difference_type -

-
-

- Type used to represent the distance between two iterators in - the range. -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the results. -

-
-

- iterator -

-
-

- The type of an iterator into the range. -

-
-

- iterator_category -

-
-

- The iterator category. -

-
-

- pointer -

-
-

- The type of the result of applying operator->() to the iterator. -

-
-

- protocol_type -

-
-

- The protocol type associated with the results. -

-
-

- reference -

-
-

- The type of a non-const reference to a value in the range. -

-
-

- size_type -

-
-

- Type used to represent a count of the elements in the range. -

-
-

- value_type -

-
-

- The type of a value in the results range. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_results -

-
-

- Default constructor creates an empty range.

Copy - constructor.

Move constructor. -

-
-

- begin -

-
-

- Obtain a begin iterator for the results range. -

-
-

- cbegin -

-
-

- Obtain a begin iterator for the results range. -

-
-

- cend -

-
-

- Obtain an end iterator for the results range. -

-
-

- empty -

-
-

- Determine whether the results range is empty. -

-
-

- end -

-
-

- Obtain an end iterator for the results range. -

-
-

- max_size -

-
-

- Get the maximum number of entries permitted in a results range. -

-
-

- operator * -

-
-

- Dereference an iterator. -

-
-

- operator++ -

-
-

- Increment operator (prefix).

Increment operator - (postfix). -

-
-

- operator-> -

-
-

- Dereference an iterator. -

-
-

- operator= -

-
-

- Assignment operator.

Move-assignment operator. -

-
-

- size -

-
-

- Get the number of entries in the results range. -

-
-

- swap -

-
-

- Swap the results range with another. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dereference -

-
-
-

- equal -

-
-
-

- increment -

-
-
-
- - Protected - Data Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- index_ -

-
-
-

- values_ -

-
-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Test two iterators for inequality. -

-
-

- operator== -

-
-

- Test two iterators for equality. -

-
-

- The ip::basic_resolver_results - class template is used to define a range over the results returned by a - resolver. -

-

- The iterator's value_type, obtained when a results iterator is dereferenced, - is: -

-
const basic_resolver_entry<InternetProtocol>
-
-
- - Remarks -
-

- For backward compatibility, ip::basic_resolver_results - is derived from ip::basic_resolver_iterator. - This derivation is deprecated. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/v4_mapped.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/v4_mapped.html deleted file mode 100644 index 0729d14..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/v4_mapped.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver::v4_mapped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -If - the query protocol family is specified as IPv6, return IPv4-mapped IPv6 - addresses on finding no IPv6 addresses. -

-
static const flags v4_mapped = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry.html deleted file mode 100644 index ab5349e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry.html +++ /dev/null @@ -1,201 +0,0 @@ - - - -ip::basic_resolver_entry - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An entry produced by a resolver. -

-
template<
-    typename InternetProtocol>
-class basic_resolver_entry
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the endpoint entry. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint entry. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_entry -

-
-

- Default constructor.

Construct with specified endpoint, - host name and service name. -

-
-

- endpoint -

-
-

- Get the endpoint associated with the entry. -

-
-

- host_name -

-
-

- Get the host name associated with the entry. -

-
-

- operator endpoint_type -

-
-

- Convert to the endpoint associated with the entry. -

-
-

- service_name -

-
-

- Get the service name associated with the entry. -

-
-

- The ip::basic_resolver_entry - class template describes an entry as returned by a resolver. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_entry.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry.html deleted file mode 100644 index 53f8ff0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_entry::basic_resolver_entry - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
basic_resolver_entry();
-  » more...
-
-

- Construct with specified endpoint, host name and service name. -

-
basic_resolver_entry(
-    const endpoint_type & ep,
-    string_view host,
-    string_view service);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload1.html deleted file mode 100644 index e6a75b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_resolver_entry::basic_resolver_entry (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
basic_resolver_entry();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload2.html deleted file mode 100644 index 3767714..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::basic_resolver_entry::basic_resolver_entry (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with specified endpoint, host name and service name. -

-
basic_resolver_entry(
-    const endpoint_type & ep,
-    string_view host,
-    string_view service);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint.html deleted file mode 100644 index 863a899..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_entry::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the endpoint associated with the entry. -

-
endpoint_type endpoint() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint_type.html deleted file mode 100644 index fe219dc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_entry::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type associated with the endpoint entry. -

-
typedef InternetProtocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_entry.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name.html deleted file mode 100644 index ee28c79..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ip::basic_resolver_entry::host_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the host name associated with the entry. -

-
std::string host_name() const;
-  » more...
-
-template<
-    class Allocator>
-std::basic_string< char, std::char_traits< char >, Allocator > host_name(
-    const Allocator & alloc = Allocator()) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload1.html deleted file mode 100644 index a95c44f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_resolver_entry::host_name (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the host name associated with the entry. -

-
std::string host_name() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload2.html deleted file mode 100644 index e4f8d01..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::basic_resolver_entry::host_name (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the host name associated with the entry. -

-
template<
-    class Allocator>
-std::basic_string< char, std::char_traits< char >, Allocator > host_name(
-    const Allocator & alloc = Allocator()) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/operator_endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/operator_endpoint_type.html deleted file mode 100644 index c4f8f22..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/operator_endpoint_type.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_resolver_entry::operator endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Convert to the endpoint associated - with the entry. -

-
operator endpoint_type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/protocol_type.html deleted file mode 100644 index 90cc810..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_entry::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type associated with the endpoint entry. -

-
typedef InternetProtocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_entry.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name.html deleted file mode 100644 index 7c4e545..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ip::basic_resolver_entry::service_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the service name associated with the entry. -

-
std::string service_name() const;
-  » more...
-
-template<
-    class Allocator>
-std::basic_string< char, std::char_traits< char >, Allocator > service_name(
-    const Allocator & alloc = Allocator()) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload1.html deleted file mode 100644 index a6feb2c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_resolver_entry::service_name (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the service name associated with the entry. -

-
std::string service_name() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload2.html deleted file mode 100644 index 658351d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::basic_resolver_entry::service_name (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the service name associated with the entry. -

-
template<
-    class Allocator>
-std::basic_string< char, std::char_traits< char >, Allocator > service_name(
-    const Allocator & alloc = Allocator()) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator.html deleted file mode 100644 index 8719d4d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator.html +++ /dev/null @@ -1,387 +0,0 @@ - - - -ip::basic_resolver_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An iterator over the entries produced by a resolver. -

-
template<
-    typename InternetProtocol>
-class basic_resolver_iterator
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- The type used for the distance between two iterators. -

-
-

- iterator_category -

-
-

- The iterator category. -

-
-

- pointer -

-
-

- The type of the result of applying operator->() to the iterator. -

-
-

- reference -

-
-

- The type of the result of applying operator*() to the iterator. -

-
-

- value_type -

-
-

- The type of the value pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_iterator -

-
-

- Default constructor creates an end iterator.

Copy - constructor.

Move constructor. -

-
-

- operator * -

-
-

- Dereference an iterator. -

-
-

- operator++ -

-
-

- Increment operator (prefix).

Increment operator (postfix). -

-
-

- operator-> -

-
-

- Dereference an iterator. -

-
-

- operator= -

-
-

- Assignment operator.

Move-assignment operator. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dereference -

-
-
-

- equal -

-
-
-

- increment -

-
-
-
- - Protected - Data Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- index_ -

-
-
-

- values_ -

-
-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Test two iterators for inequality. -

-
-

- operator== -

-
-

- Test two iterators for equality. -

-
-

- The ip::basic_resolver_iterator - class template is used to define iterators over the results returned by a - resolver. -

-

- The iterator's value_type, obtained when the iterator is dereferenced, is: -

-
const basic_resolver_entry<InternetProtocol>
-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator.html deleted file mode 100644 index 22479ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -ip::basic_resolver_iterator::basic_resolver_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor creates an end iterator. -

-
basic_resolver_iterator();
-  » more...
-
-

- Copy constructor. -

-
basic_resolver_iterator(
-    const basic_resolver_iterator & other);
-  » more...
-
-

- Move constructor. -

-
basic_resolver_iterator(
-    basic_resolver_iterator && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload1.html deleted file mode 100644 index b6bf22a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_resolver_iterator::basic_resolver_iterator (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor creates an end iterator. -

-
basic_resolver_iterator();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload2.html deleted file mode 100644 index 20735bb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_iterator::basic_resolver_iterator (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_resolver_iterator(
-    const basic_resolver_iterator & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload3.html deleted file mode 100644 index 3d683ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_iterator::basic_resolver_iterator (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
basic_resolver_iterator(
-    basic_resolver_iterator && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/dereference.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/dereference.html deleted file mode 100644 index cf30f96..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/dereference.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -ip::basic_resolver_iterator::dereference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const basic_resolver_entry< InternetProtocol > & dereference() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/difference_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/difference_type.html deleted file mode 100644 index cdac87d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/difference_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_iterator::difference_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used for the distance between two iterators. -

-
typedef std::ptrdiff_t difference_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/equal.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/equal.html deleted file mode 100644 index cef31f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/equal.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_resolver_iterator::equal - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
bool equal(
-    const basic_resolver_iterator & other) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/increment.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/increment.html deleted file mode 100644 index 67ed739..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/increment.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -ip::basic_resolver_iterator::increment - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void increment();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/index_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/index_.html deleted file mode 100644 index 266715e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/index_.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -ip::basic_resolver_iterator::index_ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
std::size_t index_;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/iterator_category.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/iterator_category.html deleted file mode 100644 index 9719371..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/iterator_category.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_iterator::iterator_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - iterator category. -

-
typedef std::forward_iterator_tag iterator_category;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator__star_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator__star_.html deleted file mode 100644 index a0ac57b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator__star_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_resolver_iterator::operator * - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference - an iterator. -

-
const basic_resolver_entry< InternetProtocol > & operator *() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_arrow_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_arrow_.html deleted file mode 100644 index e60fd5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_arrow_.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_iterator::operator-> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference - an iterator. -

-
const basic_resolver_entry< InternetProtocol > * operator->() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_.html deleted file mode 100644 index 9c313f8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ip::basic_resolver_iterator::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment - operator. -

-
basic_resolver_iterator & operator=(
-    const basic_resolver_iterator & other);
-  » more...
-
-

- Move-assignment operator. -

-
basic_resolver_iterator & operator=(
-    basic_resolver_iterator && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload1.html deleted file mode 100644 index 51d9d2b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_iterator::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assignment operator. -

-
basic_resolver_iterator & operator=(
-    const basic_resolver_iterator & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload2.html deleted file mode 100644 index 774d57f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_iterator::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assignment operator. -

-
basic_resolver_iterator & operator=(
-    basic_resolver_iterator && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq__eq_.html deleted file mode 100644 index fd50dbb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_resolver_iterator::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - two iterators for equality. -

-
friend bool operator==(
-    const basic_resolver_iterator & a,
-    const basic_resolver_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_not__eq_.html deleted file mode 100644 index b73eac9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_resolver_iterator::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - two iterators for inequality. -

-
friend bool operator!=(
-    const basic_resolver_iterator & a,
-    const basic_resolver_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_.html deleted file mode 100644 index 49c98dc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_resolver_iterator::operator++ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Increment - operator (prefix). -

-
basic_resolver_iterator & operator++();
-  » more...
-
-

- Increment operator (postfix). -

-
basic_resolver_iterator operator++(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload1.html deleted file mode 100644 index d465bbd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_resolver_iterator::operator++ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Increment operator (prefix). -

-
basic_resolver_iterator & operator++();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload2.html deleted file mode 100644 index d16263a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_iterator::operator++ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Increment operator (postfix). -

-
basic_resolver_iterator operator++(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/pointer.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/pointer.html deleted file mode 100644 index 5c4da9f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/pointer.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_iterator::pointer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the result of applying operator->() to the iterator. -

-
typedef const basic_resolver_entry< InternetProtocol > * pointer;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/reference.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/reference.html deleted file mode 100644 index 99e2b32..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/reference.html +++ /dev/null @@ -1,202 +0,0 @@ - - - -ip::basic_resolver_iterator::reference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the result of applying operator*() to the iterator. -

-
typedef const basic_resolver_entry< InternetProtocol > & reference;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the endpoint entry. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint entry. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_entry -

-
-

- Default constructor.

Construct with specified endpoint, - host name and service name. -

-
-

- endpoint -

-
-

- Get the endpoint associated with the entry. -

-
-

- host_name -

-
-

- Get the host name associated with the entry. -

-
-

- operator endpoint_type -

-
-

- Convert to the endpoint associated with the entry. -

-
-

- service_name -

-
-

- Get the service name associated with the entry. -

-
-

- The ip::basic_resolver_entry - class template describes an entry as returned by a resolver. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/value_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/value_type.html deleted file mode 100644 index c70674c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/value_type.html +++ /dev/null @@ -1,202 +0,0 @@ - - - -ip::basic_resolver_iterator::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the value pointed to by the iterator. -

-
typedef basic_resolver_entry< InternetProtocol > value_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the endpoint entry. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint entry. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_entry -

-
-

- Default constructor.

Construct with specified endpoint, - host name and service name. -

-
-

- endpoint -

-
-

- Get the endpoint associated with the entry. -

-
-

- host_name -

-
-

- Get the host name associated with the entry. -

-
-

- operator endpoint_type -

-
-

- Convert to the endpoint associated with the entry. -

-
-

- service_name -

-
-

- Get the service name associated with the entry. -

-
-

- The ip::basic_resolver_entry - class template describes an entry as returned by a resolver. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/values_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/values_.html deleted file mode 100644 index eea7b0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/values_.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -ip::basic_resolver_iterator::values_ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
values_ptr_type values_;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query.html deleted file mode 100644 index 8276963..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query.html +++ /dev/null @@ -1,307 +0,0 @@ - - - -ip::basic_resolver_query - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An query to be passed to a resolver. -

-
template<
-    typename InternetProtocol>
-class basic_resolver_query :
-  public ip::resolver_query_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint query. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_query -

-
-

- Construct with specified service name for any protocol.
-
Construct with specified service name for a given protocol. -

Construct with specified host name and service name - for any protocol.

Construct with specified host name - and service name for a given protocol. -

-
-

- hints -

-
-

- Get the hints associated with the query. -

-
-

- host_name -

-
-

- Get the host name associated with the query. -

-
-

- service_name -

-
-

- Get the service name associated with the query. -

-
-
- - Data Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is configured - for the system. Only return IPv6 addresses if a non-loopback IPv6 - address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a port - number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-

- The ip::basic_resolver_query - class template describes a query that can be passed to a resolver. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_query.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/address_configured.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/address_configured.html deleted file mode 100644 index b854b7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/address_configured.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ip::basic_resolver_query::address_configured - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Only - return IPv4 addresses if a non-loopback IPv4 address is configured for - the system. Only return IPv6 addresses if a non-loopback IPv6 address is - configured for the system. -

-
static const flags address_configured = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/all_matching.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/all_matching.html deleted file mode 100644 index 0c1d90d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/all_matching.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver_query::all_matching - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -If - used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
static const flags all_matching = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query.html deleted file mode 100644 index 874db62..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -ip::basic_resolver_query::basic_resolver_query - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - with specified service name for any protocol. -

-
basic_resolver_query(
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = passive|address_configured);
-  » more...
-
-

- Construct with specified service name for a given protocol. -

-
basic_resolver_query(
-    const protocol_type & protocol,
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = passive|address_configured);
-  » more...
-
-

- Construct with specified host name and service name for any protocol. -

-
basic_resolver_query(
-    const std::string & host,
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = address_configured);
-  » more...
-
-

- Construct with specified host name and service name for a given protocol. -

-
basic_resolver_query(
-    const protocol_type & protocol,
-    const std::string & host,
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = address_configured);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload1.html deleted file mode 100644 index 7d9455b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -ip::basic_resolver_query::basic_resolver_query (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with specified service name for any protocol. -

-
basic_resolver_query(
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = passive|address_configured);
-
-

- This constructor is typically used to perform name resolution for local - service binding. -

-
- - Parameters -
-
-

-
-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for local service binding. -

-
-
-
- - Remarks -
-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload2.html deleted file mode 100644 index ffd103f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -ip::basic_resolver_query::basic_resolver_query (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with specified service name for a given protocol. -

-
basic_resolver_query(
-    const protocol_type & protocol,
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = passive|address_configured);
-
-

- This constructor is typically used to perform name resolution for local - service binding with a specific protocol version. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for local service binding. -

-
-
-
- - Remarks -
-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload3.html deleted file mode 100644 index 449bab7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload3.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -ip::basic_resolver_query::basic_resolver_query (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with specified host name and service name for any protocol. -

-
basic_resolver_query(
-    const std::string & host,
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = address_configured);
-
-

- This constructor is typically used to perform name resolution for communication - with remote hosts. -

-
- - Parameters -
-
-

-
-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
-
-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload4.html deleted file mode 100644 index 15baab5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload4.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -ip::basic_resolver_query::basic_resolver_query (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with specified host name and service name for a given protocol. -

-
basic_resolver_query(
-    const protocol_type & protocol,
-    const std::string & host,
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = address_configured);
-
-

- This constructor is typically used to perform name resolution for communication - with remote hosts. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
-
-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/canonical_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/canonical_name.html deleted file mode 100644 index 85e57dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/canonical_name.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver_query::canonical_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Determine - the canonical name of the host specified in the query. -

-
static const flags canonical_name = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/flags.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/flags.html deleted file mode 100644 index 6e1ad01..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -ip::basic_resolver_query::flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -A - bitmask type (C++ Std [lib.bitmask.types]). -

-
typedef unspecified flags;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_query.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/hints.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/hints.html deleted file mode 100644 index 1c33129..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/hints.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_query::hints - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the hints associated with the query. -

-
const asio::detail::addrinfo_type & hints() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/host_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/host_name.html deleted file mode 100644 index 8cc779d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/host_name.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_query::host_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the host name associated with the query. -

-
std::string host_name() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/numeric_host.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/numeric_host.html deleted file mode 100644 index 26f187a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/numeric_host.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver_query::numeric_host - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Host - name should be treated as a numeric string defining an IPv4 or IPv6 address - and no name resolution should be attempted. -

-
static const flags numeric_host = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/numeric_service.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/numeric_service.html deleted file mode 100644 index e3184f0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/numeric_service.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver_query::numeric_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Service - name should be treated as a numeric string defining a port number and no - name resolution should be attempted. -

-
static const flags numeric_service = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/passive.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/passive.html deleted file mode 100644 index c6b9953..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/passive.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver_query::passive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Indicate - that returned endpoint is intended for use as a locally bound socket endpoint. -

-
static const flags passive = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/protocol_type.html deleted file mode 100644 index 62d862d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_query::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type associated with the endpoint query. -

-
typedef InternetProtocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_query.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/service_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/service_name.html deleted file mode 100644 index 33b2886..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/service_name.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_query::service_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the service name associated with the query. -

-
std::string service_name() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/v4_mapped.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/v4_mapped.html deleted file mode 100644 index 98f0277..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/v4_mapped.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver_query::v4_mapped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -If - the query protocol family is specified as IPv6, return IPv4-mapped IPv6 - addresses on finding no IPv6 addresses. -

-
static const flags v4_mapped = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results.html deleted file mode 100644 index e502952..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results.html +++ /dev/null @@ -1,566 +0,0 @@ - - - -ip::basic_resolver_results - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A range of entries produced by a resolver. -

-
template<
-    typename InternetProtocol>
-class basic_resolver_results :
-  public ip::basic_resolver_iterator< InternetProtocol >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_iterator -

-
-

- The type of an iterator into the range. -

-
-

- const_reference -

-
-

- The type of a const reference to a value in the range. -

-
-

- difference_type -

-
-

- Type used to represent the distance between two iterators in the - range. -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the results. -

-
-

- iterator -

-
-

- The type of an iterator into the range. -

-
-

- iterator_category -

-
-

- The iterator category. -

-
-

- pointer -

-
-

- The type of the result of applying operator->() to the iterator. -

-
-

- protocol_type -

-
-

- The protocol type associated with the results. -

-
-

- reference -

-
-

- The type of a non-const reference to a value in the range. -

-
-

- size_type -

-
-

- Type used to represent a count of the elements in the range. -

-
-

- value_type -

-
-

- The type of a value in the results range. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_results -

-
-

- Default constructor creates an empty range.

Copy - constructor.

Move constructor. -

-
-

- begin -

-
-

- Obtain a begin iterator for the results range. -

-
-

- cbegin -

-
-

- Obtain a begin iterator for the results range. -

-
-

- cend -

-
-

- Obtain an end iterator for the results range. -

-
-

- empty -

-
-

- Determine whether the results range is empty. -

-
-

- end -

-
-

- Obtain an end iterator for the results range. -

-
-

- max_size -

-
-

- Get the maximum number of entries permitted in a results range. -

-
-

- operator * -

-
-

- Dereference an iterator. -

-
-

- operator++ -

-
-

- Increment operator (prefix).

Increment operator (postfix). -

-
-

- operator-> -

-
-

- Dereference an iterator. -

-
-

- operator= -

-
-

- Assignment operator.

Move-assignment operator. -

-
-

- size -

-
-

- Get the number of entries in the results range. -

-
-

- swap -

-
-

- Swap the results range with another. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dereference -

-
-
-

- equal -

-
-
-

- increment -

-
-
-
- - Protected - Data Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- index_ -

-
-
-

- values_ -

-
-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Test two iterators for inequality. -

-
-

- operator== -

-
-

- Test two iterators for equality. -

-
-

- The ip::basic_resolver_results - class template is used to define a range over the results returned by a resolver. -

-

- The iterator's value_type, obtained when a results iterator is dereferenced, - is: -

-
const basic_resolver_entry<InternetProtocol>
-
-
- - Remarks -
-

- For backward compatibility, ip::basic_resolver_results - is derived from ip::basic_resolver_iterator. - This derivation is deprecated. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results.html deleted file mode 100644 index b90aea1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -ip::basic_resolver_results::basic_resolver_results - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor creates an empty range. -

-
basic_resolver_results();
-  » more...
-
-

- Copy constructor. -

-
basic_resolver_results(
-    const basic_resolver_results & other);
-  » more...
-
-

- Move constructor. -

-
basic_resolver_results(
-    basic_resolver_results && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload1.html deleted file mode 100644 index 255161f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_resolver_results::basic_resolver_results (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor creates an empty range. -

-
basic_resolver_results();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload2.html deleted file mode 100644 index 7c37975..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::basic_resolver_results (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_resolver_results(
-    const basic_resolver_results & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload3.html deleted file mode 100644 index a51b214..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::basic_resolver_results (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
basic_resolver_results(
-    basic_resolver_results && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/begin.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/begin.html deleted file mode 100644 index e96b286..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/begin.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - a begin iterator for the results range. -

-
const_iterator begin() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/cbegin.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/cbegin.html deleted file mode 100644 index c166aaf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/cbegin.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::cbegin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - a begin iterator for the results range. -

-
const_iterator cbegin() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/cend.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/cend.html deleted file mode 100644 index 14bdfcf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/cend.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::cend - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an end iterator for the results range. -

-
const_iterator cend() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/const_iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/const_iterator.html deleted file mode 100644 index be0a922..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/const_iterator.html +++ /dev/null @@ -1,389 +0,0 @@ - - - -ip::basic_resolver_results::const_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of an iterator into the range. -

-
typedef basic_resolver_iterator< protocol_type > const_iterator;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- The type used for the distance between two iterators. -

-
-

- iterator_category -

-
-

- The iterator category. -

-
-

- pointer -

-
-

- The type of the result of applying operator->() to the iterator. -

-
-

- reference -

-
-

- The type of the result of applying operator*() to the iterator. -

-
-

- value_type -

-
-

- The type of the value pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_iterator -

-
-

- Default constructor creates an end iterator.

Copy - constructor.

Move constructor. -

-
-

- operator * -

-
-

- Dereference an iterator. -

-
-

- operator++ -

-
-

- Increment operator (prefix).

Increment operator - (postfix). -

-
-

- operator-> -

-
-

- Dereference an iterator. -

-
-

- operator= -

-
-

- Assignment operator.

Move-assignment operator. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dereference -

-
-
-

- equal -

-
-
-

- increment -

-
-
-
- - Protected - Data Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- index_ -

-
-
-

- values_ -

-
-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Test two iterators for inequality. -

-
-

- operator== -

-
-

- Test two iterators for equality. -

-
-

- The ip::basic_resolver_iterator - class template is used to define iterators over the results returned by - a resolver. -

-

- The iterator's value_type, obtained when the iterator is dereferenced, - is: -

-
const basic_resolver_entry<InternetProtocol>
-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/const_reference.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/const_reference.html deleted file mode 100644 index e4664ca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/const_reference.html +++ /dev/null @@ -1,202 +0,0 @@ - - - -ip::basic_resolver_results::const_reference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of a const reference to a value in the range. -

-
typedef const value_type & const_reference;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the endpoint entry. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint entry. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_entry -

-
-

- Default constructor.

Construct with specified endpoint, - host name and service name. -

-
-

- endpoint -

-
-

- Get the endpoint associated with the entry. -

-
-

- host_name -

-
-

- Get the host name associated with the entry. -

-
-

- operator endpoint_type -

-
-

- Convert to the endpoint associated with the entry. -

-
-

- service_name -

-
-

- Get the service name associated with the entry. -

-
-

- The ip::basic_resolver_entry - class template describes an entry as returned by a resolver. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/dereference.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/dereference.html deleted file mode 100644 index 3c4ac37..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/dereference.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_resolver_results::dereference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -

-
const basic_resolver_entry< InternetProtocol > & dereference() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/difference_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/difference_type.html deleted file mode 100644 index 0a5d400..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/difference_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_results::difference_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Type - used to represent the distance between two iterators in the range. -

-
typedef std::ptrdiff_t difference_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/empty.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/empty.html deleted file mode 100644 index cf433e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/empty.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::empty - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the results range is empty. -

-
bool empty() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/end.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/end.html deleted file mode 100644 index 71e9d8d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/end.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an end iterator for the results range. -

-
const_iterator end() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/endpoint_type.html deleted file mode 100644 index d2eabfa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_results::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type associated with the results. -

-
typedef protocol_type::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/equal.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/equal.html deleted file mode 100644 index dd4853b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/equal.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::basic_resolver_results::equal - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -

-
bool equal(
-    const basic_resolver_iterator & other) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/increment.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/increment.html deleted file mode 100644 index 28fad50..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/increment.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_resolver_results::increment - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -

-
void increment();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/index_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/index_.html deleted file mode 100644 index ca6812a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/index_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_resolver_results::index_ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -

-
std::size_t index_;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/iterator.html deleted file mode 100644 index e15af98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/iterator.html +++ /dev/null @@ -1,389 +0,0 @@ - - - -ip::basic_resolver_results::iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of an iterator into the range. -

-
typedef const_iterator iterator;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- The type used for the distance between two iterators. -

-
-

- iterator_category -

-
-

- The iterator category. -

-
-

- pointer -

-
-

- The type of the result of applying operator->() to the iterator. -

-
-

- reference -

-
-

- The type of the result of applying operator*() to the iterator. -

-
-

- value_type -

-
-

- The type of the value pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_iterator -

-
-

- Default constructor creates an end iterator.

Copy - constructor.

Move constructor. -

-
-

- operator * -

-
-

- Dereference an iterator. -

-
-

- operator++ -

-
-

- Increment operator (prefix).

Increment operator - (postfix). -

-
-

- operator-> -

-
-

- Dereference an iterator. -

-
-

- operator= -

-
-

- Assignment operator.

Move-assignment operator. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dereference -

-
-
-

- equal -

-
-
-

- increment -

-
-
-
- - Protected - Data Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- index_ -

-
-
-

- values_ -

-
-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Test two iterators for inequality. -

-
-

- operator== -

-
-

- Test two iterators for equality. -

-
-

- The ip::basic_resolver_iterator - class template is used to define iterators over the results returned by - a resolver. -

-

- The iterator's value_type, obtained when the iterator is dereferenced, - is: -

-
const basic_resolver_entry<InternetProtocol>
-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/iterator_category.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/iterator_category.html deleted file mode 100644 index 8275653..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/iterator_category.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -ip::basic_resolver_results::iterator_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -The - iterator category. -

-
typedef std::forward_iterator_tag iterator_category;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/max_size.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/max_size.html deleted file mode 100644 index 0ab33a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/max_size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::max_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the maximum number of entries permitted in a results range. -

-
size_type max_size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator__star_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator__star_.html deleted file mode 100644 index c8db420..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator__star_.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver_results::operator * - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -Dereference - an iterator. -

-
const basic_resolver_entry< InternetProtocol > & operator *() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_arrow_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_arrow_.html deleted file mode 100644 index 15fd92c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_arrow_.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver_results::operator-> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -Dereference - an iterator. -

-
const basic_resolver_entry< InternetProtocol > * operator->() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_.html deleted file mode 100644 index cf7fb53..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ip::basic_resolver_results::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment - operator. -

-
basic_resolver_results & operator=(
-    const basic_resolver_results & other);
-  » more...
-
-

- Move-assignment operator. -

-
basic_resolver_results & operator=(
-    basic_resolver_results && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload1.html deleted file mode 100644 index 56e45c8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assignment operator. -

-
basic_resolver_results & operator=(
-    const basic_resolver_results & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload2.html deleted file mode 100644 index 14059e5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assignment operator. -

-
basic_resolver_results & operator=(
-    basic_resolver_results && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_.html deleted file mode 100644 index 8a5e427..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_resolver_results::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - two iterators for equality. -

-
friend bool operator==(
-    const basic_resolver_results & a,
-    const basic_resolver_results & b);
-  » more...
-
-friend bool operator==(
-    const basic_resolver_iterator & a,
-    const basic_resolver_iterator & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload1.html deleted file mode 100644 index 38bd935..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload1.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ip::basic_resolver_results::operator== (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Test two iterators for equality. -

-
friend bool operator==(
-    const basic_resolver_results & a,
-    const basic_resolver_results & b);
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload2.html deleted file mode 100644 index d38729b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload2.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -ip::basic_resolver_results::operator== (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- Test two iterators for equality. -

-
friend bool operator==(
-    const basic_resolver_iterator & a,
-    const basic_resolver_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_.html deleted file mode 100644 index 072aeef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_resolver_results::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - two iterators for inequality. -

-
friend bool operator!=(
-    const basic_resolver_results & a,
-    const basic_resolver_results & b);
-  » more...
-
-friend bool operator!=(
-    const basic_resolver_iterator & a,
-    const basic_resolver_iterator & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload1.html deleted file mode 100644 index 03ed72b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload1.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ip::basic_resolver_results::operator!= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Test two iterators for inequality. -

-
friend bool operator!=(
-    const basic_resolver_results & a,
-    const basic_resolver_results & b);
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload2.html deleted file mode 100644 index 678a933..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload2.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -ip::basic_resolver_results::operator!= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- Test two iterators for inequality. -

-
friend bool operator!=(
-    const basic_resolver_iterator & a,
-    const basic_resolver_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_.html deleted file mode 100644 index bde09b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_resolver_results::operator++ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Increment - operator (prefix). -

-
basic_resolver_iterator & operator++();
-  » more...
-
-

- Increment operator (postfix). -

-
basic_resolver_iterator operator++(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload1.html deleted file mode 100644 index 72d785c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::basic_resolver_results::operator++ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- Increment operator (prefix). -

-
basic_resolver_iterator & operator++();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload2.html deleted file mode 100644 index 525026d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload2.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver_results::operator++ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- Increment operator (postfix). -

-
basic_resolver_iterator operator++(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/pointer.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/pointer.html deleted file mode 100644 index 8a98334..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/pointer.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -ip::basic_resolver_results::pointer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -The - type of the result of applying operator->() to the iterator. -

-
typedef const basic_resolver_entry< InternetProtocol > * pointer;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/protocol_type.html deleted file mode 100644 index ddcd768..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_results::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type associated with the results. -

-
typedef InternetProtocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/reference.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/reference.html deleted file mode 100644 index dc7f46e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/reference.html +++ /dev/null @@ -1,202 +0,0 @@ - - - -ip::basic_resolver_results::reference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of a non-const reference to a value in the range. -

-
typedef value_type & reference;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the endpoint entry. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint entry. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_entry -

-
-

- Default constructor.

Construct with specified endpoint, - host name and service name. -

-
-

- endpoint -

-
-

- Get the endpoint associated with the entry. -

-
-

- host_name -

-
-

- Get the host name associated with the entry. -

-
-

- operator endpoint_type -

-
-

- Convert to the endpoint associated with the entry. -

-
-

- service_name -

-
-

- Get the service name associated with the entry. -

-
-

- The ip::basic_resolver_entry - class template describes an entry as returned by a resolver. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/size.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/size.html deleted file mode 100644 index 22c4f67..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the number of entries in the results range. -

-
size_type size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/size_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/size_type.html deleted file mode 100644 index c170134..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/size_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_results::size_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Type - used to represent a count of the elements in the range. -

-
typedef std::size_t size_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/swap.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/swap.html deleted file mode 100644 index cc6e606..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/swap.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_resolver_results::swap - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Swap - the results range with another. -

-
void swap(
-    basic_resolver_results & that);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/value_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/value_type.html deleted file mode 100644 index f19ef56..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/value_type.html +++ /dev/null @@ -1,202 +0,0 @@ - - - -ip::basic_resolver_results::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of a value in the results range. -

-
typedef basic_resolver_entry< protocol_type > value_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the endpoint entry. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint entry. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_entry -

-
-

- Default constructor.

Construct with specified endpoint, - host name and service name. -

-
-

- endpoint -

-
-

- Get the endpoint associated with the entry. -

-
-

- host_name -

-
-

- Get the host name associated with the entry. -

-
-

- operator endpoint_type -

-
-

- Convert to the endpoint associated with the entry. -

-
-

- service_name -

-
-

- Get the service name associated with the entry. -

-
-

- The ip::basic_resolver_entry - class template describes an entry as returned by a resolver. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/values_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/values_.html deleted file mode 100644 index 79c5156..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/values_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_resolver_results::values_ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -

-
values_ptr_type values_;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__host_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__host_name.html deleted file mode 100644 index a27f4cc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__host_name.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -ip::host_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the current host name. -

-
std::string host_name();
-  » more...
-
-std::string host_name(
-    asio::error_code & ec);
-  » more...
-
-
- - Requirements -
-

- Header: asio/ip/host_name.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__host_name/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__host_name/overload1.html deleted file mode 100644 index c7e5ae8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__host_name/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::host_name (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the current host name. -

-
std::string host_name();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__host_name/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__host_name/overload2.html deleted file mode 100644 index 6809639..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__host_name/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::host_name (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the current host name. -

-
std::string host_name(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp.html deleted file mode 100644 index 2e08318..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp.html +++ /dev/null @@ -1,259 +0,0 @@ - - - -ip::icmp - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for ICMP. -

-
class icmp
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint -

-
-

- The type of a ICMP endpoint. -

-
-

- resolver -

-
-

- The ICMP resolver type. -

-
-

- socket -

-
-

- The ICMP socket type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-

- v4 -

-
-

- Construct to represent the IPv4 ICMP protocol. -

-
-

- v6 -

-
-

- Construct to represent the IPv6 ICMP protocol. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two protocols for inequality. -

-
-

- operator== -

-
-

- Compare two protocols for equality. -

-
-

- The ip::icmp - class contains flags necessary for ICMP sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/ip/icmp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/endpoint.html deleted file mode 100644 index 8d87099..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/endpoint.html +++ /dev/null @@ -1,393 +0,0 @@ - - - -ip::icmp::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of a ICMP endpoint. -

-
typedef basic_endpoint< icmp > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address -

-
-

- Get the IP address associated with the endpoint.

- Set the IP address associated with the endpoint. -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint using - a port number, specified in the host's byte order. The IP address - will be the any address (i.e. INADDR_ANY or in6addr_any). This - constructor would typically be used for accepting new connections. -

Construct an endpoint using a port number and an - IP address. This constructor may be used for accepting connections - on a specific interface or for making a connection to a remote - endpoint.

Copy constructor.

Move - constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint.

Move-assign from - another endpoint. -

-
-

- port -

-
-

- Get the port associated with the endpoint. The port number is - always in the host's byte order.

Set the port associated - with the endpoint. The port number is always in the host's byte - order. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-
- - Related Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator<< -

-
-

- Output an endpoint as a string. -

-
-

- The ip::basic_endpoint - class template describes an endpoint that may be associated with a particular - socket. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/icmp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/family.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/family.html deleted file mode 100644 index c493dd4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::icmp::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for the - protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/operator_eq__eq_.html deleted file mode 100644 index 5fc3df8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::icmp::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two protocols - for equality. -

-
friend bool operator==(
-    const icmp & p1,
-    const icmp & p2);
-
-
- - Requirements -
-

- Header: asio/ip/icmp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/operator_not__eq_.html deleted file mode 100644 index 59372be..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::icmp::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two - protocols for inequality. -

-
friend bool operator!=(
-    const icmp & p1,
-    const icmp & p2);
-
-
- - Requirements -
-

- Header: asio/ip/icmp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/protocol.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/protocol.html deleted file mode 100644 index 4f9e1e5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::icmp::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for - the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/resolver.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/resolver.html deleted file mode 100644 index dd7d8dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/resolver.html +++ /dev/null @@ -1,434 +0,0 @@ - - - -ip::icmp::resolver - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The ICMP resolver type. -

-
typedef basic_resolver< icmp > resolver;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-

- iterator -

-
-

- (Deprecated.) The iterator type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- query -

-
-

- (Deprecated.) The query type. -

-
-

- results_type -

-
-

- The results type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Asynchronously perform forward resolution of a query to a list - of entries.

Asynchronously perform forward resolution - of a query to a list of entries.

Asynchronously - perform reverse resolution of an endpoint to a list of entries. -

-
-

- basic_resolver -

-
-

- Constructor.

Move-construct a basic_resolver from - another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the resolver. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_resolver from another. -

-
-

- resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Perform forward resolution of a query to a list of entries. -

Perform forward resolution of a query to a list - of entries.

Perform reverse resolution of an endpoint - to a list of entries. -

-
-

- ~basic_resolver -

-
-

- Destroys the resolver. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is - configured for the system. Only return IPv6 addresses if a non-loopback - IPv6 address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a - port number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-

- The ip::basic_resolver - class template provides the ability to resolve a query to a list of endpoints. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/icmp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/socket.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/socket.html deleted file mode 100644 index b72f416..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/socket.html +++ /dev/null @@ -1,929 +0,0 @@ - - - -ip::icmp::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The ICMP socket type. -

-
typedef basic_raw_socket< icmp > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive on a connected socket. -

-
-

- async_receive_from -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send on a connected socket. -

-
-

- async_send_to -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- 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. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_raw_socket from another.

Move-assign - a basic_raw_socket from a socket of another protocol type. -

-
-

- receive -

-
-

- Receive some data on a connected socket. -

-
-

- receive_from -

-
-

- Receive raw data with the endpoint of the sender. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on a connected socket. -

-
-

- send_to -

-
-

- Send raw data to the specified endpoint. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_raw_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_raw_socket - class template provides asynchronous and blocking raw-oriented socket functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/icmp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/type.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/type.html deleted file mode 100644 index 7731c71..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::icmp::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for the type - of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/v4.html deleted file mode 100644 index 7de40ff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/v4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::icmp::v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct to represent the IPv4 ICMP - protocol. -

-
static icmp v4();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/v6.html deleted file mode 100644 index f809478..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/v6.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::icmp::v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct to represent the IPv6 ICMP - protocol. -

-
static icmp v6();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__enable_loopback.html b/Sources/Vendor/asio/doc/asio/reference/ip__multicast__enable_loopback.html deleted file mode 100644 index a4c5fa3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__enable_loopback.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -ip::multicast::enable_loopback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option determining whether outgoing multicast packets will be received on - the same socket if it is a member of the multicast group. -

-
typedef implementation_defined enable_loopback;
-
-

- Implements the IPPROTO_IP/IP_MULTICAST_LOOP socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::multicast::enable_loopback option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::multicast::enable_loopback option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/ip/multicast.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__hops.html b/Sources/Vendor/asio/doc/asio/reference/ip__multicast__hops.html deleted file mode 100644 index 128b9b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__hops.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -ip::multicast::hops - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option for time-to-live - associated with outgoing multicast packets. -

-
typedef implementation_defined hops;
-
-

- Implements the IPPROTO_IP/IP_MULTICAST_TTL socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::multicast::hops option(4);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::multicast::hops option;
-socket.get_option(option);
-int ttl = option.value();
-
-
- - Requirements -
-

- Header: asio/ip/multicast.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__join_group.html b/Sources/Vendor/asio/doc/asio/reference/ip__multicast__join_group.html deleted file mode 100644 index 5d2d6b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__join_group.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -ip::multicast::join_group - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option - to join a multicast group on a specified interface. -

-
typedef implementation_defined join_group;
-
-

- Implements the IPPROTO_IP/IP_ADD_MEMBERSHIP socket option. -

-
- - Examples -
-

- Setting the option to join a multicast group: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::address multicast_address =
-  asio::ip::address::from_string("225.0.0.1");
-asio::ip::multicast::join_group option(multicast_address);
-socket.set_option(option);
-
-
- - Requirements -
-

- Header: asio/ip/multicast.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__leave_group.html b/Sources/Vendor/asio/doc/asio/reference/ip__multicast__leave_group.html deleted file mode 100644 index ad4f4b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__leave_group.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -ip::multicast::leave_group - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option to leave a multicast group on a specified interface. -

-
typedef implementation_defined leave_group;
-
-

- Implements the IPPROTO_IP/IP_DROP_MEMBERSHIP socket option. -

-
- - Examples -
-

- Setting the option to leave a multicast group: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::address multicast_address =
-  asio::ip::address::from_string("225.0.0.1");
-asio::ip::multicast::leave_group option(multicast_address);
-socket.set_option(option);
-
-
- - Requirements -
-

- Header: asio/ip/multicast.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__outbound_interface.html b/Sources/Vendor/asio/doc/asio/reference/ip__multicast__outbound_interface.html deleted file mode 100644 index 1c1d424..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__outbound_interface.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -ip::multicast::outbound_interface - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option for local interface to use for outgoing multicast packets. -

-
typedef implementation_defined outbound_interface;
-
-

- Implements the IPPROTO_IP/IP_MULTICAST_IF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::address_v4 local_interface =
-  asio::ip::address_v4::from_string("1.2.3.4");
-asio::ip::multicast::outbound_interface option(local_interface);
-socket.set_option(option);
-
-
- - Requirements -
-

- Header: asio/ip/multicast.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4.html deleted file mode 100644 index 29ddbc2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4.html +++ /dev/null @@ -1,326 +0,0 @@ - - - -ip::network_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Represents an IPv4 network. -

-
class network_v4
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address -

-
-

- Obtain the address object specified when the network object was - created. -

-
-

- broadcast -

-
-

- Obtain an address object that represents the network's broadcast - address. -

-
-

- canonical -

-
-

- Obtain the true network address, omitting any host bits. -

-
-

- hosts -

-
-

- Obtain an address range corresponding to the hosts in the network. -

-
-

- is_host -

-
-

- Test if network is a valid host address. -

-
-

- is_subnet_of -

-
-

- Test if a network is a real subnet of another network. -

-
-

- netmask -

-
-

- Obtain the netmask that was specified when the network object was - created. -

-
-

- network -

-
-

- Obtain an address object that represents the network address. -

-
-

- network_v4 -

-
-

- Default constructor.

Construct a network based on - the specified address and prefix length.

Construct - network based on the specified address and netmask.

- Copy constructor. -

-
-

- operator= -

-
-

- Assign from another network. -

-
-

- prefix_length -

-
-

- Obtain the prefix length that was specified when the network object - was created. -

-
-

- to_string -

-
-

- Get the network as an address in dotted decimal format. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two networks for inequality. -

-
-

- operator== -

-
-

- Compare two networks for equality. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_network_v4 -

-
-

- Create an IPv4 network from a string containing IP address and - prefix length. -

-
-

- The ip::network_v4 - class provides the ability to use and manipulate IP version 4 networks. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/network_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/address.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/address.html deleted file mode 100644 index 16d0d4a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/address.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the address - object specified when the network object was created. -

-
address_v4 address() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/broadcast.html deleted file mode 100644 index 02326fa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/broadcast.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an - address object that represents the network's broadcast address. -

-
address_v4 broadcast() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/canonical.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/canonical.html deleted file mode 100644 index abe1881..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/canonical.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::canonical - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the - true network address, omitting any host bits. -

-
network_v4 canonical() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/hosts.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/hosts.html deleted file mode 100644 index 2d52220..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/hosts.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::hosts - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address - range corresponding to the hosts in the network. -

-
address_v4_range hosts() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/is_host.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/is_host.html deleted file mode 100644 index 842dbfd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/is_host.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::is_host - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test if network - is a valid host address. -

-
bool is_host() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/is_subnet_of.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/is_subnet_of.html deleted file mode 100644 index a071612..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/is_subnet_of.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v4::is_subnet_of - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - if a network is a real subnet of another network. -

-
bool is_subnet_of(
-    const network_v4 & other) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4.html deleted file mode 100644 index 4e407d3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -ip::network_v4::make_network_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - an IPv4 network from a string containing IP address and prefix length. -

-
network_v4 make_network_v4(
-    const char * str);
-  » more...
-
-network_v4 make_network_v4(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-network_v4 make_network_v4(
-    const std::string & str);
-  » more...
-
-network_v4 make_network_v4(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-network_v4 make_network_v4(
-    string_view str);
-  » more...
-
-network_v4 make_network_v4(
-    string_view str,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload1.html deleted file mode 100644 index 9d2506c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v4::make_network_v4 (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from a string containing IP address and prefix - length. -

-
network_v4 make_network_v4(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload2.html deleted file mode 100644 index def44c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::network_v4::make_network_v4 (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from a string containing IP address and prefix - length. -

-
network_v4 make_network_v4(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload3.html deleted file mode 100644 index 31aaffc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v4::make_network_v4 (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from a string containing IP address and prefix - length. -

-
network_v4 make_network_v4(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload4.html deleted file mode 100644 index 1b7dd5d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload4.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::network_v4::make_network_v4 (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from a string containing IP address and prefix - length. -

-
network_v4 make_network_v4(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload5.html deleted file mode 100644 index 66b3c15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload5.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v4::make_network_v4 (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from a string containing IP address and prefix - length. -

-
network_v4 make_network_v4(
-    string_view str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload6.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload6.html deleted file mode 100644 index 58b01b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload6.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::network_v4::make_network_v4 (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from a string containing IP address and prefix - length. -

-
network_v4 make_network_v4(
-    string_view str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/netmask.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/netmask.html deleted file mode 100644 index d1721f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/netmask.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::netmask - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the netmask - that was specified when the network object was created. -

-
address_v4 netmask() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network.html deleted file mode 100644 index 7457af8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::network - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address - object that represents the network address. -

-
address_v4 network() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4.html deleted file mode 100644 index f302dcb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -ip::network_v4::network_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
network_v4();
-  » more...
-
-

- Construct a network based on the specified address and prefix length. -

-
network_v4(
-    const address_v4 & addr,
-    unsigned short prefix_len);
-  » more...
-
-

- Construct network based on the specified address and netmask. -

-
network_v4(
-    const address_v4 & addr,
-    const address_v4 & mask);
-  » more...
-
-

- Copy constructor. -

-
network_v4(
-    const network_v4 & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload1.html deleted file mode 100644 index 2c4ff9b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::network_v4::network_v4 (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
network_v4();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload2.html deleted file mode 100644 index ff52d32..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v4::network_v4 (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a network based on the specified address and prefix length. -

-
network_v4(
-    const address_v4 & addr,
-    unsigned short prefix_len);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload3.html deleted file mode 100644 index 33fea9e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v4::network_v4 (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct network based on the specified address and netmask. -

-
network_v4(
-    const address_v4 & addr,
-    const address_v4 & mask);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload4.html deleted file mode 100644 index 5990906..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::network_v4 (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
network_v4(
-    const network_v4 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_eq_.html deleted file mode 100644 index e1174d3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v4::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - from another network. -

-
network_v4 & operator=(
-    const network_v4 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_eq__eq_.html deleted file mode 100644 index d7a4012..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::network_v4::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two networks for equality. -

-
friend bool operator==(
-    const network_v4 & a,
-    const network_v4 & b);
-
-
- - Requirements -
-

- Header: asio/ip/network_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_not__eq_.html deleted file mode 100644 index c64f820..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::network_v4::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two networks for inequality. -

-
friend bool operator!=(
-    const network_v4 & a,
-    const network_v4 & b);
-
-
- - Requirements -
-

- Header: asio/ip/network_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/prefix_length.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/prefix_length.html deleted file mode 100644 index ad73cd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/prefix_length.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::prefix_length - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the prefix length that was specified when the network object was created. -

-
unsigned short prefix_length() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string.html deleted file mode 100644 index 2fb80ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ip::network_v4::to_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the network - as an address in dotted decimal format. -

-
std::string to_string() const;
-  » more...
-
-std::string to_string(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string/overload1.html deleted file mode 100644 index efdcf86..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::network_v4::to_string (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the network as an address in dotted decimal format. -

-
std::string to_string() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string/overload2.html deleted file mode 100644 index 1a29e2b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::to_string (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the network as an address in dotted decimal format. -

-
std::string to_string(
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6.html deleted file mode 100644 index 3c07aa6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6.html +++ /dev/null @@ -1,298 +0,0 @@ - - - -ip::network_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Represents an IPv6 network. -

-
class network_v6
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address -

-
-

- Obtain the address object specified when the network object was - created. -

-
-

- canonical -

-
-

- Obtain the true network address, omitting any host bits. -

-
-

- hosts -

-
-

- Obtain an address range corresponding to the hosts in the network. -

-
-

- is_host -

-
-

- Test if network is a valid host address. -

-
-

- is_subnet_of -

-
-

- Test if a network is a real subnet of another network. -

-
-

- network -

-
-

- Obtain an address object that represents the network address. -

-
-

- network_v6 -

-
-

- Default constructor.

Construct a network based on - the specified address and prefix length.

Copy constructor. -

-
-

- operator= -

-
-

- Assign from another network. -

-
-

- prefix_length -

-
-

- Obtain the prefix length that was specified when the network object - was created. -

-
-

- to_string -

-
-

- Get the network as an address in dotted decimal format. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two networks for inequality. -

-
-

- operator== -

-
-

- Compare two networks for equality. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_network_v6 -

-
-

- Create an IPv6 network from a string containing IP address and - prefix length. -

-
-

- The ip::network_v6 - class provides the ability to use and manipulate IP version 6 networks. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/network_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/address.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/address.html deleted file mode 100644 index 0b40eec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/address.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the address - object specified when the network object was created. -

-
address_v6 address() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/canonical.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/canonical.html deleted file mode 100644 index 5fd25a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/canonical.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::canonical - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the - true network address, omitting any host bits. -

-
network_v6 canonical() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/hosts.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/hosts.html deleted file mode 100644 index 562ac88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/hosts.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::hosts - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address - range corresponding to the hosts in the network. -

-
address_v6_range hosts() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/is_host.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/is_host.html deleted file mode 100644 index 6c6d662..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/is_host.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::is_host - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test if network - is a valid host address. -

-
bool is_host() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/is_subnet_of.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/is_subnet_of.html deleted file mode 100644 index 50a75dc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/is_subnet_of.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v6::is_subnet_of - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - if a network is a real subnet of another network. -

-
bool is_subnet_of(
-    const network_v6 & other) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6.html deleted file mode 100644 index 48abb1a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -ip::network_v6::make_network_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - an IPv6 network from a string containing IP address and prefix length. -

-
network_v6 make_network_v6(
-    const char * str);
-  » more...
-
-network_v6 make_network_v6(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-network_v6 make_network_v6(
-    const std::string & str);
-  » more...
-
-network_v6 make_network_v6(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-network_v6 make_network_v6(
-    string_view str);
-  » more...
-
-network_v6 make_network_v6(
-    string_view str,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload1.html deleted file mode 100644 index 6ac0d20..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v6::make_network_v6 (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 network from a string containing IP address and prefix - length. -

-
network_v6 make_network_v6(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload2.html deleted file mode 100644 index d242124..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::network_v6::make_network_v6 (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 network from a string containing IP address and prefix - length. -

-
network_v6 make_network_v6(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload3.html deleted file mode 100644 index 0df90c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v6::make_network_v6 (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 network from a string containing IP address and prefix - length. -

-
network_v6 make_network_v6(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload4.html deleted file mode 100644 index 2bf8cdd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload4.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::network_v6::make_network_v6 (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 network from a string containing IP address and prefix - length. -

-
network_v6 make_network_v6(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload5.html deleted file mode 100644 index 5304e7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload5.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v6::make_network_v6 (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 network from a string containing IP address and prefix - length. -

-
network_v6 make_network_v6(
-    string_view str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload6.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload6.html deleted file mode 100644 index 3e8acaa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload6.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::network_v6::make_network_v6 (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 network from a string containing IP address and prefix - length. -

-
network_v6 make_network_v6(
-    string_view str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network.html deleted file mode 100644 index 78122c0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::network - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address - object that represents the network address. -

-
address_v6 network() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6.html deleted file mode 100644 index 8d9ffae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -ip::network_v6::network_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
network_v6();
-  » more...
-
-

- Construct a network based on the specified address and prefix length. -

-
network_v6(
-    const address_v6 & addr,
-    unsigned short prefix_len);
-  » more...
-
-

- Copy constructor. -

-
network_v6(
-    const network_v6 & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload1.html deleted file mode 100644 index 9ded8b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::network_v6::network_v6 (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
network_v6();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload2.html deleted file mode 100644 index a9deded..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v6::network_v6 (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a network based on the specified address and prefix length. -

-
network_v6(
-    const address_v6 & addr,
-    unsigned short prefix_len);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload3.html deleted file mode 100644 index ccb1811..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::network_v6 (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
network_v6(
-    const network_v6 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_eq_.html deleted file mode 100644 index 367d72b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v6::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - from another network. -

-
network_v6 & operator=(
-    const network_v6 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_eq__eq_.html deleted file mode 100644 index 99b6b2d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::network_v6::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two networks for equality. -

-
friend bool operator==(
-    const network_v6 & a,
-    const network_v6 & b);
-
-
- - Requirements -
-

- Header: asio/ip/network_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_not__eq_.html deleted file mode 100644 index 71dc178..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::network_v6::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two networks for inequality. -

-
friend bool operator!=(
-    const network_v6 & a,
-    const network_v6 & b);
-
-
- - Requirements -
-

- Header: asio/ip/network_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/prefix_length.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/prefix_length.html deleted file mode 100644 index c5928f5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/prefix_length.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::prefix_length - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the prefix length that was specified when the network object was created. -

-
unsigned short prefix_length() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string.html deleted file mode 100644 index ca8fec4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ip::network_v6::to_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the network - as an address in dotted decimal format. -

-
std::string to_string() const;
-  » more...
-
-std::string to_string(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string/overload1.html deleted file mode 100644 index 66f08b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::network_v6::to_string (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the network as an address in dotted decimal format. -

-
std::string to_string() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string/overload2.html deleted file mode 100644 index d2555f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::to_string (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the network as an address in dotted decimal format. -

-
std::string to_string(
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base.html deleted file mode 100644 index 66f64be..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base.html +++ /dev/null @@ -1,237 +0,0 @@ - - - -ip::resolver_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The ip::resolver_base - class is used as a base for the ip::basic_resolver - class templates to provide a common place to define the flag constants. -

-
class resolver_base
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~resolver_base -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is configured - for the system. Only return IPv6 addresses if a non-loopback IPv6 - address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a port - number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-
- - Requirements -
-

- Header: asio/ip/resolver_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/_resolver_base.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/_resolver_base.html deleted file mode 100644 index 23a8605..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/_resolver_base.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::resolver_base::~resolver_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~resolver_base();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/address_configured.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/address_configured.html deleted file mode 100644 index 6b426b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/address_configured.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::resolver_base::address_configured - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Only - return IPv4 addresses if a non-loopback IPv4 address is configured for - the system. Only return IPv6 addresses if a non-loopback IPv6 address is - configured for the system. -

-
static const flags address_configured = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/all_matching.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/all_matching.html deleted file mode 100644 index 7f4ef6c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/all_matching.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::resolver_base::all_matching - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -If - used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
static const flags all_matching = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/canonical_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/canonical_name.html deleted file mode 100644 index fc928ff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/canonical_name.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::resolver_base::canonical_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the canonical name of the host specified in the query. -

-
static const flags canonical_name = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/flags.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/flags.html deleted file mode 100644 index 484be4f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/flags.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::resolver_base::flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A bitmask type - (C++ Std [lib.bitmask.types]). -

-
typedef unspecified flags;
-
-
- - Requirements -
-

- Header: asio/ip/resolver_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/numeric_host.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/numeric_host.html deleted file mode 100644 index 2cf0f90..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/numeric_host.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::resolver_base::numeric_host - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Host - name should be treated as a numeric string defining an IPv4 or IPv6 address - and no name resolution should be attempted. -

-
static const flags numeric_host = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/numeric_service.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/numeric_service.html deleted file mode 100644 index e6db84e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/numeric_service.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::resolver_base::numeric_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Service - name should be treated as a numeric string defining a port number and no - name resolution should be attempted. -

-
static const flags numeric_service = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/passive.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/passive.html deleted file mode 100644 index 3002a15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/passive.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::resolver_base::passive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Indicate - that returned endpoint is intended for use as a locally bound socket endpoint. -

-
static const flags passive = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/v4_mapped.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/v4_mapped.html deleted file mode 100644 index 03bc2a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/v4_mapped.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::resolver_base::v4_mapped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -If - the query protocol family is specified as IPv6, return IPv4-mapped IPv6 - addresses on finding no IPv6 addresses. -

-
static const flags v4_mapped = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base.html deleted file mode 100644 index b933d0f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base.html +++ /dev/null @@ -1,238 +0,0 @@ - - - -ip::resolver_query_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The ip::resolver_query_base - class is used as a base for the ip::basic_resolver_query - class templates to provide a common place to define the flag constants. -

-
class resolver_query_base :
-  public ip::resolver_base
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~resolver_query_base -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is configured - for the system. Only return IPv6 addresses if a non-loopback IPv6 - address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a port - number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-
- - Requirements -
-

- Header: asio/ip/resolver_query_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/_resolver_query_base.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/_resolver_query_base.html deleted file mode 100644 index 747591c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/_resolver_query_base.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::resolver_query_base::~resolver_query_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~resolver_query_base();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/address_configured.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/address_configured.html deleted file mode 100644 index e5af38e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/address_configured.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ip::resolver_query_base::address_configured - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Only - return IPv4 addresses if a non-loopback IPv4 address is configured for - the system. Only return IPv6 addresses if a non-loopback IPv6 address is - configured for the system. -

-
static const flags address_configured = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/all_matching.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/all_matching.html deleted file mode 100644 index 8b89f49..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/all_matching.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::resolver_query_base::all_matching - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -If - used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
static const flags all_matching = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/canonical_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/canonical_name.html deleted file mode 100644 index a1dff0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/canonical_name.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::resolver_query_base::canonical_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Determine - the canonical name of the host specified in the query. -

-
static const flags canonical_name = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/flags.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/flags.html deleted file mode 100644 index f4c9f85..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -ip::resolver_query_base::flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -A - bitmask type (C++ Std [lib.bitmask.types]). -

-
typedef unspecified flags;
-
-
- - Requirements -
-

- Header: asio/ip/resolver_query_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/numeric_host.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/numeric_host.html deleted file mode 100644 index 73f41c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/numeric_host.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::resolver_query_base::numeric_host - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Host - name should be treated as a numeric string defining an IPv4 or IPv6 address - and no name resolution should be attempted. -

-
static const flags numeric_host = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/numeric_service.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/numeric_service.html deleted file mode 100644 index 837e568..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/numeric_service.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::resolver_query_base::numeric_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Service - name should be treated as a numeric string defining a port number and no - name resolution should be attempted. -

-
static const flags numeric_service = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/passive.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/passive.html deleted file mode 100644 index 2a81860..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/passive.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::resolver_query_base::passive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Indicate - that returned endpoint is intended for use as a locally bound socket endpoint. -

-
static const flags passive = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/v4_mapped.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/v4_mapped.html deleted file mode 100644 index 329877a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/v4_mapped.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::resolver_query_base::v4_mapped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -If - the query protocol family is specified as IPv6, return IPv4-mapped IPv6 - addresses on finding no IPv6 addresses. -

-
static const flags v4_mapped = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp.html deleted file mode 100644 index 0c8551d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp.html +++ /dev/null @@ -1,295 +0,0 @@ - - - -ip::tcp - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for TCP. -

-
class tcp
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- acceptor -

-
-

- The TCP acceptor type. -

-
-

- endpoint -

-
-

- The type of a TCP endpoint. -

-
-

- iostream -

-
-

- The TCP iostream type. -

-
-

- no_delay -

-
-

- Socket option for disabling the Nagle algorithm. -

-
-

- resolver -

-
-

- The TCP resolver type. -

-
-

- socket -

-
-

- The TCP socket type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-

- v4 -

-
-

- Construct to represent the IPv4 TCP protocol. -

-
-

- v6 -

-
-

- Construct to represent the IPv6 TCP protocol. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two protocols for inequality. -

-
-

- operator== -

-
-

- Compare two protocols for equality. -

-
-

- The ip::tcp class - contains flags necessary for TCP sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/acceptor.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/acceptor.html deleted file mode 100644 index 3301481..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/acceptor.html +++ /dev/null @@ -1,789 +0,0 @@ - - - -ip::tcp::acceptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The TCP acceptor type. -

-
typedef basic_socket_acceptor< tcp > acceptor;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of an acceptor. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- accept -

-
-

- Accept a new connection.

Accept a new connection - and obtain the endpoint of the peer. -

-
-

- assign -

-
-

- Assigns an existing native acceptor to the acceptor. -

-
-

- async_accept -

-
-

- Start an asynchronous accept. -

-
-

- async_wait -

-
-

- Asynchronously wait for the acceptor to become ready to read, - ready to write, or to have pending error conditions. -

-
-

- basic_socket_acceptor -

-
-

- Construct an acceptor without opening it.

Construct - an open acceptor.

Construct an acceptor opened - on the given endpoint.

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 an acceptor of another protocol - type. -

-
-

- bind -

-
-

- Bind the acceptor to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the acceptor. -

-
-

- close -

-
-

- Close the acceptor. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the acceptor. -

-
-

- io_control -

-
-

- Perform an IO control command on the acceptor. -

-
-

- is_open -

-
-

- Determine whether the acceptor is open. -

-
-

- listen -

-
-

- Place the acceptor into the state where it will listen for new - connections. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the acceptor. -

-
-

- native_handle -

-
-

- Get the native acceptor representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native acceptor implementation. -

Sets the non-blocking mode of the native acceptor - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the acceptor.

Sets - the non-blocking mode of the acceptor. -

-
-

- open -

-
-

- Open the acceptor using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_acceptor from another.

- Move-assign a basic_socket_acceptor from an acceptor of another - protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native acceptor. -

-
-

- set_option -

-
-

- Set an option on the acceptor. -

-
-

- wait -

-
-

- Wait for the acceptor to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_socket_acceptor -

-
-

- Destroys the acceptor. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket_acceptor - class template is used for accepting new socket connections. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Example -
-

- Opening a socket acceptor with the SO_REUSEADDR option enabled: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), port);
-acceptor.open(endpoint.protocol());
-acceptor.set_option(asio::ip::tcp::acceptor::reuse_address(true));
-acceptor.bind(endpoint);
-acceptor.listen();
-
-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/endpoint.html deleted file mode 100644 index c34c830..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/endpoint.html +++ /dev/null @@ -1,394 +0,0 @@ - - - -ip::tcp::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of a TCP endpoint. -

-
typedef basic_endpoint< tcp > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address -

-
-

- Get the IP address associated with the endpoint.

- Set the IP address associated with the endpoint. -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint using - a port number, specified in the host's byte order. The IP address - will be the any address (i.e. INADDR_ANY or in6addr_any). This - constructor would typically be used for accepting new connections. -

Construct an endpoint using a port number and an - IP address. This constructor may be used for accepting connections - on a specific interface or for making a connection to a remote - endpoint.

Copy constructor.

Move - constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint.

Move-assign from - another endpoint. -

-
-

- port -

-
-

- Get the port associated with the endpoint. The port number is - always in the host's byte order.

Set the port associated - with the endpoint. The port number is always in the host's byte - order. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator<< -

-
-

- Output an endpoint as a string. -

-
-

- The ip::basic_endpoint - class template describes an endpoint that may be associated with a particular - socket. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/family.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/family.html deleted file mode 100644 index 08a7ba6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::tcp::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for the - protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/iostream.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/iostream.html deleted file mode 100644 index 1bbece3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/iostream.html +++ /dev/null @@ -1,326 +0,0 @@ - - - -ip::tcp::iostream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The TCP iostream type. -

-
typedef basic_socket_iostream< tcp > iostream;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type. -

-
-

- duration_type -

-
-

- (Deprecated: Use duration.) The duration type. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- time_point -

-
-

- The time type. -

-
-

- time_type -

-
-

- (Deprecated: Use time_point.) The time type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_socket_iostream -

-
-

- Construct a basic_socket_iostream without establishing a connection. -

Construct a basic_socket_iostream from the supplied - socket.

Move-construct a basic_socket_iostream - from another.

Establish a connection to an endpoint - corresponding to a resolver query. -

-
-

- close -

-
-

- Close the connection. -

-
-

- connect -

-
-

- Establish a connection to an endpoint corresponding to a resolver - query. -

-
-

- error -

-
-

- Get the last error associated with the stream. -

-
-

- expires_after -

-
-

- Set the stream's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time as an - absolute time.

Set the stream's expiry time as - an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time relative - to now.

(Deprecated: Use expires_after().) Set - the stream's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the stream's expiry time as an absolute time. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_iostream from another. -

-
-

- rdbuf -

-
-

- Return a pointer to the underlying streambuf. -

-
-

- socket -

-
-

- Get a reference to the underlying socket. -

-
-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/no_delay.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/no_delay.html deleted file mode 100644 index 0747e7a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/no_delay.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -ip::tcp::no_delay - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option for disabling - the Nagle algorithm. -

-
typedef implementation_defined no_delay;
-
-

- Implements the IPPROTO_TCP/TCP_NODELAY socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/operator_eq__eq_.html deleted file mode 100644 index bf0c5f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::tcp::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two protocols - for equality. -

-
friend bool operator==(
-    const tcp & p1,
-    const tcp & p2);
-
-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/operator_not__eq_.html deleted file mode 100644 index fd9d0bb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::tcp::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two protocols - for inequality. -

-
friend bool operator!=(
-    const tcp & p1,
-    const tcp & p2);
-
-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/protocol.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/protocol.html deleted file mode 100644 index a0a5332..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::tcp::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for - the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/resolver.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/resolver.html deleted file mode 100644 index 062d0c0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/resolver.html +++ /dev/null @@ -1,434 +0,0 @@ - - - -ip::tcp::resolver - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The TCP resolver type. -

-
typedef basic_resolver< tcp > resolver;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-

- iterator -

-
-

- (Deprecated.) The iterator type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- query -

-
-

- (Deprecated.) The query type. -

-
-

- results_type -

-
-

- The results type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Asynchronously perform forward resolution of a query to a list - of entries.

Asynchronously perform forward resolution - of a query to a list of entries.

Asynchronously - perform reverse resolution of an endpoint to a list of entries. -

-
-

- basic_resolver -

-
-

- Constructor.

Move-construct a basic_resolver from - another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the resolver. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_resolver from another. -

-
-

- resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Perform forward resolution of a query to a list of entries. -

Perform forward resolution of a query to a list - of entries.

Perform reverse resolution of an endpoint - to a list of entries. -

-
-

- ~basic_resolver -

-
-

- Destroys the resolver. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is - configured for the system. Only return IPv6 addresses if a non-loopback - IPv6 address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a - port number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-

- The ip::basic_resolver - class template provides the ability to resolve a query to a list of endpoints. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/socket.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/socket.html deleted file mode 100644 index b7d7e34..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/socket.html +++ /dev/null @@ -1,932 +0,0 @@ - - - -ip::tcp::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The TCP socket type. -

-
typedef basic_stream_socket< tcp > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_receive -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- 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. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_stream_socket from another.

- Move-assign a basic_stream_socket from a socket of another protocol - type. -

-
-

- read_some -

-
-

- Read some data from the socket. -

-
-

- receive -

-
-

- Receive some data on the socket.

Receive some data - on a connected socket. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- write_some -

-
-

- Write some data to the socket. -

-
-

- ~basic_stream_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_stream_socket - class template provides asynchronous and blocking stream-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/type.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/type.html deleted file mode 100644 index a77432e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::tcp::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for the type - of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/v4.html deleted file mode 100644 index fba103e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/v4.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::tcp::v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct to represent the IPv4 TCP protocol. -

-
static tcp v4();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/v6.html deleted file mode 100644 index 2f0b589..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/v6.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::tcp::v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct to represent the IPv6 TCP protocol. -

-
static tcp v6();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp.html deleted file mode 100644 index 30a22f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp.html +++ /dev/null @@ -1,259 +0,0 @@ - - - -ip::udp - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for UDP. -

-
class udp
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint -

-
-

- The type of a UDP endpoint. -

-
-

- resolver -

-
-

- The UDP resolver type. -

-
-

- socket -

-
-

- The UDP socket type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-

- v4 -

-
-

- Construct to represent the IPv4 UDP protocol. -

-
-

- v6 -

-
-

- Construct to represent the IPv6 UDP protocol. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two protocols for inequality. -

-
-

- operator== -

-
-

- Compare two protocols for equality. -

-
-

- The ip::udp class - contains flags necessary for UDP sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/ip/udp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/endpoint.html deleted file mode 100644 index 7a99267..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/endpoint.html +++ /dev/null @@ -1,394 +0,0 @@ - - - -ip::udp::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of a UDP endpoint. -

-
typedef basic_endpoint< udp > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address -

-
-

- Get the IP address associated with the endpoint.

- Set the IP address associated with the endpoint. -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint using - a port number, specified in the host's byte order. The IP address - will be the any address (i.e. INADDR_ANY or in6addr_any). This - constructor would typically be used for accepting new connections. -

Construct an endpoint using a port number and an - IP address. This constructor may be used for accepting connections - on a specific interface or for making a connection to a remote - endpoint.

Copy constructor.

Move - constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint.

Move-assign from - another endpoint. -

-
-

- port -

-
-

- Get the port associated with the endpoint. The port number is - always in the host's byte order.

Set the port associated - with the endpoint. The port number is always in the host's byte - order. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator<< -

-
-

- Output an endpoint as a string. -

-
-

- The ip::basic_endpoint - class template describes an endpoint that may be associated with a particular - socket. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/udp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/family.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/family.html deleted file mode 100644 index 34657b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::udp::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for the - protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/operator_eq__eq_.html deleted file mode 100644 index 25a06d5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::udp::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two protocols - for equality. -

-
friend bool operator==(
-    const udp & p1,
-    const udp & p2);
-
-
- - Requirements -
-

- Header: asio/ip/udp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/operator_not__eq_.html deleted file mode 100644 index 5267e61..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::udp::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two protocols - for inequality. -

-
friend bool operator!=(
-    const udp & p1,
-    const udp & p2);
-
-
- - Requirements -
-

- Header: asio/ip/udp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/protocol.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/protocol.html deleted file mode 100644 index 7cc1ba1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::udp::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for - the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/resolver.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/resolver.html deleted file mode 100644 index 70912bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/resolver.html +++ /dev/null @@ -1,434 +0,0 @@ - - - -ip::udp::resolver - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The UDP resolver type. -

-
typedef basic_resolver< udp > resolver;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-

- iterator -

-
-

- (Deprecated.) The iterator type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- query -

-
-

- (Deprecated.) The query type. -

-
-

- results_type -

-
-

- The results type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Asynchronously perform forward resolution of a query to a list - of entries.

Asynchronously perform forward resolution - of a query to a list of entries.

Asynchronously - perform reverse resolution of an endpoint to a list of entries. -

-
-

- basic_resolver -

-
-

- Constructor.

Move-construct a basic_resolver from - another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the resolver. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_resolver from another. -

-
-

- resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Perform forward resolution of a query to a list of entries. -

Perform forward resolution of a query to a list - of entries.

Perform reverse resolution of an endpoint - to a list of entries. -

-
-

- ~basic_resolver -

-
-

- Destroys the resolver. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is - configured for the system. Only return IPv6 addresses if a non-loopback - IPv6 address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a - port number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-

- The ip::basic_resolver - class template provides the ability to resolve a query to a list of endpoints. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/udp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/socket.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/socket.html deleted file mode 100644 index 552a638..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/socket.html +++ /dev/null @@ -1,931 +0,0 @@ - - - -ip::udp::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The UDP socket type. -

-
typedef basic_datagram_socket< udp > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive on a connected socket. -

-
-

- async_receive_from -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send on a connected socket. -

-
-

- async_send_to -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- 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. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_datagram_socket from another.

- Move-assign a basic_datagram_socket from a socket of another - protocol type. -

-
-

- receive -

-
-

- Receive some data on a connected socket. -

-
-

- receive_from -

-
-

- Receive a datagram with the endpoint of the sender. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on a connected socket. -

-
-

- send_to -

-
-

- Send a datagram to the specified endpoint. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_datagram_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_datagram_socket - class template provides asynchronous and blocking datagram-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/udp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/type.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/type.html deleted file mode 100644 index e89f0ad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::udp::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for the type - of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/v4.html deleted file mode 100644 index 5640fd7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/v4.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::udp::v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct to represent the IPv4 UDP protocol. -

-
static udp v4();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/v6.html deleted file mode 100644 index b56d7f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/v6.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::udp::v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct to represent the IPv6 UDP protocol. -

-
static udp v6();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__unicast__hops.html b/Sources/Vendor/asio/doc/asio/reference/ip__unicast__hops.html deleted file mode 100644 index 122b194..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__unicast__hops.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -ip::unicast::hops - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option for time-to-live - associated with outgoing unicast packets. -

-
typedef implementation_defined hops;
-
-

- Implements the IPPROTO_IP/IP_UNICAST_TTL socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::unicast::hops option(4);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::unicast::hops option;
-socket.get_option(option);
-int ttl = option.value();
-
-
- - Requirements -
-

- Header: asio/ip/unicast.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__v4_mapped_t.html b/Sources/Vendor/asio/doc/asio/reference/ip__v4_mapped_t.html deleted file mode 100644 index c293073..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__v4_mapped_t.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -ip::v4_mapped_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Tag type used for distinguishing - overloads that deal in IPv4-mapped IPv6 addresses. -

-
enum v4_mapped_t
-
-

- -

-
- - Values -
-
-

-
-
v4_mapped
-
-
-
-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__v6_only.html b/Sources/Vendor/asio/doc/asio/reference/ip__v6_only.html deleted file mode 100644 index f3562e2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__v6_only.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -ip::v6_only - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option for determining whether - an IPv6 socket supports IPv6 communication only. -

-
typedef implementation_defined v6_only;
-
-

- Implements the IPPROTO_IPV6/IP_V6ONLY socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::v6_only option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::v6_only option;
-socket.get_option(option);
-bool v6_only = option.value();
-
-
- - Requirements -
-

- Header: asio/ip/v6_only.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_const_buffer_sequence.html b/Sources/Vendor/asio/doc/asio/reference/is_const_buffer_sequence.html deleted file mode 100644 index 5ca9463..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_const_buffer_sequence.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -is_const_buffer_sequence - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Trait to determine whether a type satisfies the ConstBufferSequence requirements. -

-
template<
-    typename T>
-struct is_const_buffer_sequence
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_dynamic_buffer.html b/Sources/Vendor/asio/doc/asio/reference/is_dynamic_buffer.html deleted file mode 100644 index 977de3a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_dynamic_buffer.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -is_dynamic_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Trait to determine whether a type satisfies the DynamicBuffer requirements. -

-
template<
-    typename T>
-struct is_dynamic_buffer
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_endpoint_sequence.html b/Sources/Vendor/asio/doc/asio/reference/is_endpoint_sequence.html deleted file mode 100644 index cebea0c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_endpoint_sequence.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -is_endpoint_sequence - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Type trait used to determine whether a type is an endpoint sequence that - can be used with with connect and async_connect. -

-
template<
-    typename T>
-struct is_endpoint_sequence
-
-
- - Data - Members -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- value -

-
-

- The value member is true if the type may be used as an endpoint - sequence. -

-
-
- - Requirements -
-

- Header: asio/connect.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_endpoint_sequence/value.html b/Sources/Vendor/asio/doc/asio/reference/is_endpoint_sequence/value.html deleted file mode 100644 index d3245d2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_endpoint_sequence/value.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -is_endpoint_sequence::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The value - member is true if the type may be used as an endpoint sequence. -

-
static const bool value;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_executor.html b/Sources/Vendor/asio/doc/asio/reference/is_executor.html deleted file mode 100644 index 9a1f55d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_executor.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -is_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The is_executor - trait detects whether a type T meets the Executor type requirements. -

-
template<
-    typename T>
-struct is_executor
-
-

- Class template is_executor is a UnaryTypeTrait that is derived - from true_type if the type T meets the syntactic - requirements for Executor, otherwise false_type. -

-
- - Requirements -
-

- Header: asio/is_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_match_condition.html b/Sources/Vendor/asio/doc/asio/reference/is_match_condition.html deleted file mode 100644 index fcdaf66..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_match_condition.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -is_match_condition - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Type trait used to determine whether a type can be used as a match condition - function with read_until and async_read_until. -

-
template<
-    typename T>
-struct is_match_condition
-
-
- - Data - Members -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- value -

-
-

- The value member is true if the type may be used as a match condition. -

-
-
- - Requirements -
-

- Header: asio/read_until.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_match_condition/value.html b/Sources/Vendor/asio/doc/asio/reference/is_match_condition/value.html deleted file mode 100644 index a747387..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_match_condition/value.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -is_match_condition::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The value - member is true if the type may be used as a match condition. -

-
static const bool value;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_mutable_buffer_sequence.html b/Sources/Vendor/asio/doc/asio/reference/is_mutable_buffer_sequence.html deleted file mode 100644 index 4e75ded..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_mutable_buffer_sequence.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -is_mutable_buffer_sequence - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Trait to determine whether a type satisfies the MutableBufferSequence requirements. -

-
template<
-    typename T>
-struct is_mutable_buffer_sequence
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_read_buffered.html b/Sources/Vendor/asio/doc/asio/reference/is_read_buffered.html deleted file mode 100644 index b362b6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_read_buffered.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -is_read_buffered - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The is_read_buffered - class is a traits class that may be used to determine whether a stream type - supports buffering of read data. -

-
template<
-    typename Stream>
-class is_read_buffered
-
-
- - Data - Members -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- value -

-
-

- The value member is true only if the Stream type supports buffering - of read data. -

-
-
- - Requirements -
-

- Header: asio/is_read_buffered.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_read_buffered/value.html b/Sources/Vendor/asio/doc/asio/reference/is_read_buffered/value.html deleted file mode 100644 index f805289..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_read_buffered/value.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -is_read_buffered::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The value member - is true only if the Stream type supports buffering of read data. -

-
static const bool value;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_write_buffered.html b/Sources/Vendor/asio/doc/asio/reference/is_write_buffered.html deleted file mode 100644 index b2326e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_write_buffered.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -is_write_buffered - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The is_write_buffered - class is a traits class that may be used to determine whether a stream type - supports buffering of written data. -

-
template<
-    typename Stream>
-class is_write_buffered
-
-
- - Data - Members -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- value -

-
-

- The value member is true only if the Stream type supports buffering - of written data. -

-
-
- - Requirements -
-

- Header: asio/is_write_buffered.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_write_buffered/value.html b/Sources/Vendor/asio/doc/asio/reference/is_write_buffered/value.html deleted file mode 100644 index b5c01fa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_write_buffered/value.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -is_write_buffered::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The value member - is true only if the Stream type supports buffering of written data. -

-
static const bool value;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint.html deleted file mode 100644 index bc55bdf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint.html +++ /dev/null @@ -1,371 +0,0 @@ - - - -local::basic_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Describes an endpoint for a UNIX socket. -

-
template<
-    typename Protocol>
-class basic_endpoint
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on the - underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint using - the specified path name.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- path -

-
-

- Get the path associated with the endpoint.

Set the - path associated with the endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator<< -

-
-

- Output an endpoint as a string. -

-
-

- The local::basic_endpoint - class template describes an endpoint that may be associated with a particular - UNIX socket. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint.html deleted file mode 100644 index a65ba1a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -local::basic_endpoint::basic_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
basic_endpoint();
-  » more...
-
-

- Construct an endpoint using the specified path name. -

-
basic_endpoint(
-    const char * path_name);
-  » more...
-
-basic_endpoint(
-    const std::string & path_name);
-  » more...
-
-

- Copy constructor. -

-
basic_endpoint(
-    const basic_endpoint & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload1.html deleted file mode 100644 index 629e250..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -local::basic_endpoint::basic_endpoint (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
basic_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload2.html deleted file mode 100644 index 9983988..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::basic_endpoint (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an endpoint using the specified path name. -

-
basic_endpoint(
-    const char * path_name);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload3.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload3.html deleted file mode 100644 index a7c24ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::basic_endpoint (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an endpoint using the specified path name. -

-
basic_endpoint(
-    const std::string & path_name);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload4.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload4.html deleted file mode 100644 index 486a171..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::basic_endpoint (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_endpoint(
-    const basic_endpoint & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/capacity.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/capacity.html deleted file mode 100644 index f470ef4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/capacity.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::capacity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the capacity of the endpoint in the native type. -

-
std::size_t capacity() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data.html deleted file mode 100644 index e43abd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -local::basic_endpoint::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - underlying endpoint in the native type. -

-
data_type * data();
-  » more...
-
-const data_type * data() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data/overload1.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data/overload1.html deleted file mode 100644 index 43a820b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -local::basic_endpoint::data (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying endpoint in the native type. -

-
data_type * data();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data/overload2.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data/overload2.html deleted file mode 100644 index 6be0120..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -local::basic_endpoint::data (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying endpoint in the native type. -

-
const data_type * data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data_type.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data_type.html deleted file mode 100644 index 3995467..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data_type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -local::basic_endpoint::data_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the endpoint structure. This type is dependent on the underlying - implementation of the socket layer. -

-
typedef implementation_defined data_type;
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_eq_.html deleted file mode 100644 index 4bcd071..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -local::basic_endpoint::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - from another endpoint. -

-
basic_endpoint & operator=(
-    const basic_endpoint & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_eq__eq_.html deleted file mode 100644 index 170848b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -local::basic_endpoint::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two endpoints for equality. -

-
friend bool operator==(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_gt_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_gt_.html deleted file mode 100644 index aa83117..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_gt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -local::basic_endpoint::operator> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator>(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_gt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_gt__eq_.html deleted file mode 100644 index 5292ff1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_gt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -local::basic_endpoint::operator>= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator>=(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt_.html deleted file mode 100644 index d48d7c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -local::basic_endpoint::operator< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator<(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt__eq_.html deleted file mode 100644 index 8e29553..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -local::basic_endpoint::operator<= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator<=(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt__lt_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt__lt_.html deleted file mode 100644 index 81e8d6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt__lt_.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -local::basic_endpoint::operator<< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Output - an endpoint as a string. -

-
std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const basic_endpoint< Protocol > & endpoint);
-
-

- Used to output a human-readable string for a specified endpoint. -

-
- - Parameters -
-
-

-
-
os
-

- The output stream to which the string will be written. -

-
endpoint
-

- The endpoint to be written. -

-
-
-
- - Return - Value -
-

- The output stream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_not__eq_.html deleted file mode 100644 index 9be98ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -local::basic_endpoint::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two endpoints for inequality. -

-
friend bool operator!=(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path.html deleted file mode 100644 index 68dccd4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -local::basic_endpoint::path - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - path associated with the endpoint. -

-
std::string path() const;
-  » more...
-
-

- Set the path associated with the endpoint. -

-
void path(
-    const char * p);
-  » more...
-
-void path(
-    const std::string & p);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload1.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload1.html deleted file mode 100644 index 21100b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -local::basic_endpoint::path (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the path associated with the endpoint. -

-
std::string path() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload2.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload2.html deleted file mode 100644 index 25f6afb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::path (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the path associated with the endpoint. -

-
void path(
-    const char * p);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload3.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload3.html deleted file mode 100644 index 44c27a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::path (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the path associated with the endpoint. -

-
void path(
-    const std::string & p);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/protocol.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/protocol.html deleted file mode 100644 index 1d39daf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol associated with the endpoint. -

-
protocol_type protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/protocol_type.html deleted file mode 100644 index a83ef57..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -local::basic_endpoint::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type associated with the endpoint. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/resize.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/resize.html deleted file mode 100644 index e684afd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/resize.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -local::basic_endpoint::resize - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the underlying size of the endpoint in the native type. -

-
void resize(
-    std::size_t new_size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/size.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/size.html deleted file mode 100644 index ffcb2b4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - underlying size of the endpoint in the native type. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__connect_pair.html b/Sources/Vendor/asio/doc/asio/reference/local__connect_pair.html deleted file mode 100644 index 37a8810..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__connect_pair.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -local::connect_pair - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create a pair of connected - sockets. -

-
template<
-    typename Protocol>
-void connect_pair(
-    basic_socket< Protocol > & socket1,
-    basic_socket< Protocol > & socket2);
-  » more...
-
-template<
-    typename Protocol>
-void connect_pair(
-    basic_socket< Protocol > & socket1,
-    basic_socket< Protocol > & socket2,
-    asio::error_code & ec);
-  » more...
-
-
- - Requirements -
-

- Header: asio/local/connect_pair.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__connect_pair/overload1.html b/Sources/Vendor/asio/doc/asio/reference/local__connect_pair/overload1.html deleted file mode 100644 index 24e383b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__connect_pair/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -local::connect_pair (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a pair of connected sockets. -

-
template<
-    typename Protocol>
-void connect_pair(
-    basic_socket< Protocol > & socket1,
-    basic_socket< Protocol > & socket2);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__connect_pair/overload2.html b/Sources/Vendor/asio/doc/asio/reference/local__connect_pair/overload2.html deleted file mode 100644 index cebe9ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__connect_pair/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -local::connect_pair (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a pair of connected sockets. -

-
template<
-    typename Protocol>
-void connect_pair(
-    basic_socket< Protocol > & socket1,
-    basic_socket< Protocol > & socket2,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol.html b/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol.html deleted file mode 100644 index 5d4c5cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -local::datagram_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for datagram-oriented UNIX sockets. -

-
class datagram_protocol
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint -

-
-

- The type of a UNIX domain endpoint. -

-
-

- socket -

-
-

- The UNIX domain socket type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-

- The local::datagram_protocol - class contains flags necessary for datagram-oriented UNIX domain sockets. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/local/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/endpoint.html deleted file mode 100644 index 5d1f271..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/endpoint.html +++ /dev/null @@ -1,372 +0,0 @@ - - - -local::datagram_protocol::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of a UNIX domain endpoint. -

-
typedef basic_endpoint< datagram_protocol > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint using - the specified path name.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- path -

-
-

- Get the path associated with the endpoint.

Set - the path associated with the endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator<< -

-
-

- Output an endpoint as a string. -

-
-

- The local::basic_endpoint - class template describes an endpoint that may be associated with a particular - UNIX socket. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/local/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/family.html b/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/family.html deleted file mode 100644 index 705deb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::datagram_protocol::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/protocol.html b/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/protocol.html deleted file mode 100644 index 219ca48..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::datagram_protocol::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/socket.html b/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/socket.html deleted file mode 100644 index d3c65db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/socket.html +++ /dev/null @@ -1,932 +0,0 @@ - - - -local::datagram_protocol::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - UNIX domain socket type. -

-
typedef basic_datagram_socket< datagram_protocol > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive on a connected socket. -

-
-

- async_receive_from -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send on a connected socket. -

-
-

- async_send_to -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- 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. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_datagram_socket from another.

- Move-assign a basic_datagram_socket from a socket of another - protocol type. -

-
-

- receive -

-
-

- Receive some data on a connected socket. -

-
-

- receive_from -

-
-

- Receive a datagram with the endpoint of the sender. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on a connected socket. -

-
-

- send_to -

-
-

- Send a datagram to the specified endpoint. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_datagram_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_datagram_socket - class template provides asynchronous and blocking datagram-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/local/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/type.html b/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/type.html deleted file mode 100644 index af59909..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::datagram_protocol::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the type of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol.html deleted file mode 100644 index f55c9f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol.html +++ /dev/null @@ -1,198 +0,0 @@ - - - -local::stream_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for stream-oriented UNIX sockets. -

-
class stream_protocol
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- acceptor -

-
-

- The UNIX domain acceptor type. -

-
-

- endpoint -

-
-

- The type of a UNIX domain endpoint. -

-
-

- iostream -

-
-

- The UNIX domain iostream type. -

-
-

- socket -

-
-

- The UNIX domain socket type. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-

- The local::stream_protocol - class contains flags necessary for stream-oriented UNIX domain sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/local/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/acceptor.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/acceptor.html deleted file mode 100644 index 05e4908..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/acceptor.html +++ /dev/null @@ -1,790 +0,0 @@ - - - -local::stream_protocol::acceptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - UNIX domain acceptor type. -

-
typedef basic_socket_acceptor< stream_protocol > acceptor;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of an acceptor. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- accept -

-
-

- Accept a new connection.

Accept a new connection - and obtain the endpoint of the peer. -

-
-

- assign -

-
-

- Assigns an existing native acceptor to the acceptor. -

-
-

- async_accept -

-
-

- Start an asynchronous accept. -

-
-

- async_wait -

-
-

- Asynchronously wait for the acceptor to become ready to read, - ready to write, or to have pending error conditions. -

-
-

- basic_socket_acceptor -

-
-

- Construct an acceptor without opening it.

Construct - an open acceptor.

Construct an acceptor opened - on the given endpoint.

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 an acceptor of another protocol - type. -

-
-

- bind -

-
-

- Bind the acceptor to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the acceptor. -

-
-

- close -

-
-

- Close the acceptor. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the acceptor. -

-
-

- io_control -

-
-

- Perform an IO control command on the acceptor. -

-
-

- is_open -

-
-

- Determine whether the acceptor is open. -

-
-

- listen -

-
-

- Place the acceptor into the state where it will listen for new - connections. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the acceptor. -

-
-

- native_handle -

-
-

- Get the native acceptor representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native acceptor implementation. -

Sets the non-blocking mode of the native acceptor - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the acceptor.

Sets - the non-blocking mode of the acceptor. -

-
-

- open -

-
-

- Open the acceptor using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_acceptor from another.

- Move-assign a basic_socket_acceptor from an acceptor of another - protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native acceptor. -

-
-

- set_option -

-
-

- Set an option on the acceptor. -

-
-

- wait -

-
-

- Wait for the acceptor to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_socket_acceptor -

-
-

- Destroys the acceptor. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket_acceptor - class template is used for accepting new socket connections. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Example -
-

- Opening a socket acceptor with the SO_REUSEADDR option enabled: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), port);
-acceptor.open(endpoint.protocol());
-acceptor.set_option(asio::ip::tcp::acceptor::reuse_address(true));
-acceptor.bind(endpoint);
-acceptor.listen();
-
-
- - Requirements -
-

- Header: asio/local/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/endpoint.html deleted file mode 100644 index 7b7e798..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/endpoint.html +++ /dev/null @@ -1,372 +0,0 @@ - - - -local::stream_protocol::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of a UNIX domain endpoint. -

-
typedef basic_endpoint< stream_protocol > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint using - the specified path name.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- path -

-
-

- Get the path associated with the endpoint.

Set - the path associated with the endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator<< -

-
-

- Output an endpoint as a string. -

-
-

- The local::basic_endpoint - class template describes an endpoint that may be associated with a particular - UNIX socket. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/local/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/family.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/family.html deleted file mode 100644 index 8d80ad5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::stream_protocol::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/iostream.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/iostream.html deleted file mode 100644 index 8e9a948..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/iostream.html +++ /dev/null @@ -1,327 +0,0 @@ - - - -local::stream_protocol::iostream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - UNIX domain iostream type. -

-
typedef basic_socket_iostream< stream_protocol > iostream;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type. -

-
-

- duration_type -

-
-

- (Deprecated: Use duration.) The duration type. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- time_point -

-
-

- The time type. -

-
-

- time_type -

-
-

- (Deprecated: Use time_point.) The time type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_socket_iostream -

-
-

- Construct a basic_socket_iostream without establishing a connection. -

Construct a basic_socket_iostream from the supplied - socket.

Move-construct a basic_socket_iostream - from another.

Establish a connection to an endpoint - corresponding to a resolver query. -

-
-

- close -

-
-

- Close the connection. -

-
-

- connect -

-
-

- Establish a connection to an endpoint corresponding to a resolver - query. -

-
-

- error -

-
-

- Get the last error associated with the stream. -

-
-

- expires_after -

-
-

- Set the stream's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time as an - absolute time.

Set the stream's expiry time as - an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time relative - to now.

(Deprecated: Use expires_after().) Set - the stream's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the stream's expiry time as an absolute time. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_iostream from another. -

-
-

- rdbuf -

-
-

- Return a pointer to the underlying streambuf. -

-
-

- socket -

-
-

- Get a reference to the underlying socket. -

-
-
- - Requirements -
-

- Header: asio/local/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/protocol.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/protocol.html deleted file mode 100644 index ce01563..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::stream_protocol::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/socket.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/socket.html deleted file mode 100644 index 5e0b8d8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/socket.html +++ /dev/null @@ -1,933 +0,0 @@ - - - -local::stream_protocol::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - UNIX domain socket type. -

-
typedef basic_stream_socket< stream_protocol > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_receive -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- 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. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_stream_socket from another.

- Move-assign a basic_stream_socket from a socket of another protocol - type. -

-
-

- read_some -

-
-

- Read some data from the socket. -

-
-

- receive -

-
-

- Receive some data on the socket.

Receive some data - on a connected socket. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- write_some -

-
-

- Write some data to the socket. -

-
-

- ~basic_stream_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_stream_socket - class template provides asynchronous and blocking stream-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/local/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/type.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/type.html deleted file mode 100644 index 275c53e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::stream_protocol::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the type of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/make_work_guard.html b/Sources/Vendor/asio/doc/asio/reference/make_work_guard.html deleted file mode 100644 index e62a1af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/make_work_guard.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -make_work_guard - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create an executor_work_guard - object. -

-
template<
-    typename Executor>
-executor_work_guard< Executor > make_work_guard(
-    const Executor & ex,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-template<
-    typename ExecutionContext>
-executor_work_guard< typename ExecutionContext::executor_type > make_work_guard(
-    ExecutionContext & ctx,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-template<
-    typename T>
-executor_work_guard< typename associated_executor< T >::type > make_work_guard(
-    const T & t,
-    typename enable_if<!is_executor< T >::value &&!is_convertible< T &, execution_context & >::value >::type *  = 0);
-  » more...
-
-template<
-    typename T,
-    typename Executor>
-executor_work_guard< typename associated_executor< T, Executor >::type > make_work_guard(
-    const T & t,
-    const Executor & ex,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-template<
-    typename T,
-    typename ExecutionContext>
-executor_work_guard< typename associated_executor< T, typename ExecutionContext::executor_type >::type > make_work_guard(
-    const T & t,
-    ExecutionContext & ctx,
-    typename enable_if<!is_executor< T >::value &&!is_convertible< T &, execution_context & >::value &&is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/executor_work_guard.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload1.html b/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload1.html deleted file mode 100644 index a44f61c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -make_work_guard (1 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an executor_work_guard - object. -

-
template<
-    typename Executor>
-executor_work_guard< Executor > make_work_guard(
-    const Executor & ex,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload2.html b/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload2.html deleted file mode 100644 index 1a602ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -make_work_guard (2 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an executor_work_guard - object. -

-
template<
-    typename ExecutionContext>
-executor_work_guard< typename ExecutionContext::executor_type > make_work_guard(
-    ExecutionContext & ctx,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload3.html b/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload3.html deleted file mode 100644 index 1473ceb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload3.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -make_work_guard (3 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an executor_work_guard - object. -

-
template<
-    typename T>
-executor_work_guard< typename associated_executor< T >::type > make_work_guard(
-    const T & t,
-    typename enable_if<!is_executor< T >::value &&!is_convertible< T &, execution_context & >::value >::type *  = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload4.html b/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload4.html deleted file mode 100644 index d037514..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload4.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -make_work_guard (4 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an executor_work_guard - object. -

-
template<
-    typename T,
-    typename Executor>
-executor_work_guard< typename associated_executor< T, Executor >::type > make_work_guard(
-    const T & t,
-    const Executor & ex,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload5.html b/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload5.html deleted file mode 100644 index 270e799..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload5.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -make_work_guard (5 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an executor_work_guard - object. -

-
template<
-    typename T,
-    typename ExecutionContext>
-executor_work_guard< typename associated_executor< T, typename ExecutionContext::executor_type >::type > make_work_guard(
-    const T & t,
-    ExecutionContext & ctx,
-    typename enable_if<!is_executor< T >::value &&!is_convertible< T &, execution_context & >::value &&is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer.html deleted file mode 100644 index f552ae1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer.html +++ /dev/null @@ -1,183 +0,0 @@ - - - -mutable_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Holds a buffer that can be modified. -

-
class mutable_buffer
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- mutable_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new modifiable buffer that is offset from the start of - another. -

-
-

- The mutable_buffer - class provides a safe representation of a buffer that can be modified. It - does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() and - size() member functions: -

-
asio::mutable_buffer b1 = ...;
-std::size_t s1 = b1.size();
-unsigned char* p1 = static_cast<unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/data.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/data.html deleted file mode 100644 index 3289dc9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/data.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -mutable_buffer::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a pointer to the - beginning of the memory range. -

-
void * data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer.html deleted file mode 100644 index 9341a52..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -mutable_buffer::mutable_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an empty buffer. -

-
mutable_buffer();
-  » more...
-
-

- Construct a buffer to represent a given memory range. -

-
mutable_buffer(
-    void * data,
-    std::size_t size);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload1.html deleted file mode 100644 index a5838cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -mutable_buffer::mutable_buffer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an empty buffer. -

-
mutable_buffer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload2.html deleted file mode 100644 index f64ebeb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -mutable_buffer::mutable_buffer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a buffer to represent a given memory range. -

-
mutable_buffer(
-    void * data,
-    std::size_t size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_.html deleted file mode 100644 index bdc13e8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -mutable_buffer::operator+ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - a new modifiable buffer that is offset from the start of another. -

-
mutable_buffer operator+(
-    const mutable_buffer & b,
-    std::size_t n);
-  » more...
-
-mutable_buffer operator+(
-    std::size_t n,
-    const mutable_buffer & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload1.html deleted file mode 100644 index b082dbc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -mutable_buffer::operator+ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that is offset from the start of another. -

-
mutable_buffer operator+(
-    const mutable_buffer & b,
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload2.html deleted file mode 100644 index ee7160b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -mutable_buffer::operator+ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that is offset from the start of another. -

-
mutable_buffer operator+(
-    std::size_t n,
-    const mutable_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus__eq_.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus__eq_.html deleted file mode 100644 index 8be95a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus__eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -mutable_buffer::operator+= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move - the start of the buffer by the specified number of bytes. -

-
mutable_buffer & operator+=(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/size.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/size.html deleted file mode 100644 index 1625854..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -mutable_buffer::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the size of the - memory range. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1.html deleted file mode 100644 index ff1e489..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1.html +++ /dev/null @@ -1,236 +0,0 @@ - - - -mutable_buffers_1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use mutable_buffer.) - Adapts a single modifiable buffer so that it meets the requirements of the - MutableBufferSequence concept. -

-
class mutable_buffers_1 :
-  public mutable_buffer
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_iterator -

-
-

- A random-access iterator type that may be used to read elements. -

-
-

- value_type -

-
-

- The type for each element in the list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- begin -

-
-

- Get a random-access iterator to the first element. -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- end -

-
-

- Get a random-access iterator for one past the last element. -

-
-

- mutable_buffers_1 -

-
-

- Construct to represent a given memory range.

Construct - to represent a single modifiable buffer. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new modifiable buffer that is offset from the start of - another. -

-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/begin.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/begin.html deleted file mode 100644 index 0ed64d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/begin.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -mutable_buffers_1::begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a random-access - iterator to the first element. -

-
const_iterator begin() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/const_iterator.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/const_iterator.html deleted file mode 100644 index 4681d39..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/const_iterator.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -mutable_buffers_1::const_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A - random-access iterator type that may be used to read elements. -

-
typedef const mutable_buffer * const_iterator;
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/data.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/data.html deleted file mode 100644 index 786aa24..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/data.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -mutable_buffers_1::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from mutable_buffer. -

-

- -Get a pointer - to the beginning of the memory range. -

-
void * data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/end.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/end.html deleted file mode 100644 index d2c97f5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/end.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -mutable_buffers_1::end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a random-access - iterator for one past the last element. -

-
const_iterator end() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1.html deleted file mode 100644 index 2c076e5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -mutable_buffers_1::mutable_buffers_1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - to represent a given memory range. -

-
mutable_buffers_1(
-    void * data,
-    std::size_t size);
-  » more...
-
-

- Construct to represent a single modifiable buffer. -

-
explicit mutable_buffers_1(
-    const mutable_buffer & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload1.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload1.html deleted file mode 100644 index b9319b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -mutable_buffers_1::mutable_buffers_1 (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct to represent a given memory range. -

-
mutable_buffers_1(
-    void * data,
-    std::size_t size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload2.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload2.html deleted file mode 100644 index 6fade54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -mutable_buffers_1::mutable_buffers_1 (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct to represent a single modifiable buffer. -

-
mutable_buffers_1(
-    const mutable_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_.html deleted file mode 100644 index 25bee34..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -mutable_buffers_1::operator+ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - a new modifiable buffer that is offset from the start of another. -

-
mutable_buffer operator+(
-    const mutable_buffer & b,
-    std::size_t n);
-  » more...
-
-mutable_buffer operator+(
-    std::size_t n,
-    const mutable_buffer & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload1.html deleted file mode 100644 index 389bdbb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -mutable_buffers_1::operator+ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from mutable_buffer. -

-

- Create a new modifiable buffer that is offset from the start of another. -

-
mutable_buffer operator+(
-    const mutable_buffer & b,
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload2.html deleted file mode 100644 index 67757c4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -mutable_buffers_1::operator+ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from mutable_buffer. -

-

- Create a new modifiable buffer that is offset from the start of another. -

-
mutable_buffer operator+(
-    std::size_t n,
-    const mutable_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus__eq_.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus__eq_.html deleted file mode 100644 index 1fc48cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus__eq_.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -mutable_buffers_1::operator+= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from mutable_buffer. -

-

- -Move - the start of the buffer by the specified number of bytes. -

-
mutable_buffer & operator+=(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/size.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/size.html deleted file mode 100644 index 99f4232..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/size.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -mutable_buffers_1::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from mutable_buffer. -

-

- -Get the size - of the memory range. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/value_type.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/value_type.html deleted file mode 100644 index 1eb340c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/value_type.html +++ /dev/null @@ -1,185 +0,0 @@ - - - -mutable_buffers_1::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type for each element in the list of buffers. -

-
typedef mutable_buffer value_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- mutable_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new modifiable buffer that is offset from the start - of another. -

-
-

- The mutable_buffer - class provides a safe representation of a buffer that can be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() - and size() member functions: -

-
asio::mutable_buffer b1 = ...;
-std::size_t s1 = b1.size();
-unsigned char* p1 = static_cast<unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/null_buffers.html b/Sources/Vendor/asio/doc/asio/reference/null_buffers.html deleted file mode 100644 index 3223a19..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/null_buffers.html +++ /dev/null @@ -1,150 +0,0 @@ - - - -null_buffers - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use the socket/descriptor wait() and async_wait() member functions.) - An implementation of both the ConstBufferSequence and MutableBufferSequence - concepts to represent a null buffer sequence. -

-
class null_buffers
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_iterator -

-
-

- A random-access iterator type that may be used to read elements. -

-
-

- value_type -

-
-

- The type for each element in the list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- begin -

-
-

- Get a random-access iterator to the first element. -

-
-

- end -

-
-

- Get a random-access iterator for one past the last element. -

-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/null_buffers/begin.html b/Sources/Vendor/asio/doc/asio/reference/null_buffers/begin.html deleted file mode 100644 index 555443c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/null_buffers/begin.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -null_buffers::begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a random-access iterator - to the first element. -

-
const_iterator begin() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/null_buffers/const_iterator.html b/Sources/Vendor/asio/doc/asio/reference/null_buffers/const_iterator.html deleted file mode 100644 index ad0b996..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/null_buffers/const_iterator.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -null_buffers::const_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A random-access - iterator type that may be used to read elements. -

-
typedef const mutable_buffer * const_iterator;
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/null_buffers/end.html b/Sources/Vendor/asio/doc/asio/reference/null_buffers/end.html deleted file mode 100644 index 119d9b7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/null_buffers/end.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -null_buffers::end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a random-access iterator - for one past the last element. -

-
const_iterator end() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/null_buffers/value_type.html b/Sources/Vendor/asio/doc/asio/reference/null_buffers/value_type.html deleted file mode 100644 index 6967fa3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/null_buffers/value_type.html +++ /dev/null @@ -1,185 +0,0 @@ - - - -null_buffers::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type for - each element in the list of buffers. -

-
typedef mutable_buffer value_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- mutable_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new modifiable buffer that is offset from the start - of another. -

-
-

- The mutable_buffer - class provides a safe representation of a buffer that can be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() - and size() member functions: -

-
asio::mutable_buffer b1 = ...;
-std::size_t s1 = b1.size();
-unsigned char* p1 = static_cast<unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/operator_lt__lt_.html b/Sources/Vendor/asio/doc/asio/reference/operator_lt__lt_.html deleted file mode 100644 index f7e0123..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/operator_lt__lt_.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -operator<< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Output an error code. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const error_code & ec);
-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/placeholders__bytes_transferred.html b/Sources/Vendor/asio/doc/asio/reference/placeholders__bytes_transferred.html deleted file mode 100644 index 7552cc5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/placeholders__bytes_transferred.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -placeholders::bytes_transferred - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An - argument placeholder, for use with boost::bind(), that corresponds to the - bytes_transferred argument of a handler for asynchronous functions such as - asio::basic_stream_socket::async_write_some or asio::async_write. -

-
unspecified bytes_transferred;
-
-
- - Requirements -
-

- Header: asio/placeholders.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/placeholders__endpoint.html b/Sources/Vendor/asio/doc/asio/reference/placeholders__endpoint.html deleted file mode 100644 index cb274d8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/placeholders__endpoint.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -placeholders::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An argument placeholder, - for use with boost::bind(), that corresponds to the results argument of a - handler for asynchronous functions such as asio::async_connect. -

-
unspecified endpoint;
-
-
- - Requirements -
-

- Header: asio/placeholders.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/placeholders__error.html b/Sources/Vendor/asio/doc/asio/reference/placeholders__error.html deleted file mode 100644 index b339f2d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/placeholders__error.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -placeholders::error - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An argument placeholder, - for use with boost::bind(), that corresponds to the error argument of a handler - for any of the asynchronous functions. -

-
unspecified error;
-
-
- - Requirements -
-

- Header: asio/placeholders.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/placeholders__iterator.html b/Sources/Vendor/asio/doc/asio/reference/placeholders__iterator.html deleted file mode 100644 index 43d3031..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/placeholders__iterator.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -placeholders::iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An argument placeholder, - for use with boost::bind(), that corresponds to the iterator argument of - a handler for asynchronous functions such as asio::async_connect. -

-
unspecified iterator;
-
-
- - Requirements -
-

- Header: asio/placeholders.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/placeholders__results.html b/Sources/Vendor/asio/doc/asio/reference/placeholders__results.html deleted file mode 100644 index c338dcf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/placeholders__results.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -placeholders::results - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An argument placeholder, - for use with boost::bind(), that corresponds to the results argument of a - handler for asynchronous functions such as asio::basic_resolver::async_resolve. -

-
unspecified results;
-
-
- - Requirements -
-

- Header: asio/placeholders.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/placeholders__signal_number.html b/Sources/Vendor/asio/doc/asio/reference/placeholders__signal_number.html deleted file mode 100644 index e7fff5c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/placeholders__signal_number.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -placeholders::signal_number - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An argument - placeholder, for use with boost::bind(), that corresponds to the signal_number - argument of a handler for asynchronous functions such as asio::signal_set::async_wait. -

-
unspecified signal_number;
-
-
- - Requirements -
-

- Header: asio/placeholders.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor.html deleted file mode 100644 index 5b58fe5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor.html +++ /dev/null @@ -1,426 +0,0 @@ - - - -posix::descriptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides POSIX descriptor functionality. -

-
class descriptor :
-  public posix::descriptor_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- A descriptor is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a descriptor. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native descriptor to the descriptor. -

-
-

- async_wait -

-
-

- Asynchronously wait for the descriptor to become ready to read, - ready to write, or to have pending error conditions. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the descriptor. -

-
-

- close -

-
-

- Close the descriptor. -

-
-

- descriptor -

-
-

- Construct a descriptor without opening it.

Construct - a descriptor on an existing native descriptor.

Move-construct - a descriptor from another. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- io_control -

-
-

- Perform an IO control command on the descriptor. -

-
-

- is_open -

-
-

- Determine whether the descriptor is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native descriptor representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native descriptor implementation. -

Sets the non-blocking mode of the native descriptor - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the descriptor.

Sets - the non-blocking mode of the descriptor. -

-
-

- operator= -

-
-

- Move-assign a descriptor from another. -

-
-

- release -

-
-

- Release ownership of the native descriptor implementation. -

-
-

- wait -

-
-

- Wait for the descriptor to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~descriptor -

-
-

- Protected destructor to prevent deletion through this type. -

-
-

- The posix::descriptor - class template provides the ability to wrap a POSIX descriptor. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/posix/descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/_descriptor.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/_descriptor.html deleted file mode 100644 index 6e839aa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/_descriptor.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -posix::descriptor::~descriptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~descriptor();
-
-

- This function destroys the descriptor, cancelling any outstanding asynchronous - wait operations associated with the descriptor as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign.html deleted file mode 100644 index a06898e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -posix::descriptor::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign an - existing native descriptor to the descriptor. -

-
void assign(
-    const native_handle_type & native_descriptor);
-  » more...
-
-void assign(
-    const native_handle_type & native_descriptor,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign/overload1.html deleted file mode 100644 index b9e68cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -posix::descriptor::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native descriptor to the descriptor. -

-
void assign(
-    const native_handle_type & native_descriptor);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign/overload2.html deleted file mode 100644 index cd001b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -posix::descriptor::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native descriptor to the descriptor. -

-
void assign(
-    const native_handle_type & native_descriptor,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/async_wait.html deleted file mode 100644 index ad20e7a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/async_wait.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -posix::descriptor::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Asynchronously - wait for the descriptor to become ready to read, ready to write, or to - have pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for a descriptor - to enter a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired descriptor state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::posix::stream_descriptor descriptor(io_context);
-...
-descriptor.async_wait(
-    asio::posix::stream_descriptor::wait_read,
-    wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/bytes_readable.html deleted file mode 100644 index f59fbec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/bytes_readable.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -posix::descriptor::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::descriptor_base::bytes_readable command(true);
-descriptor.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/posix/descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel.html deleted file mode 100644 index 63d94e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -posix::descriptor::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel all - asynchronous operations associated with the descriptor. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel/overload1.html deleted file mode 100644 index 6c899ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -posix::descriptor::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the descriptor. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel/overload2.html deleted file mode 100644 index c51ce1f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -posix::descriptor::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the descriptor. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close.html deleted file mode 100644 index 712f08d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -posix::descriptor::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close the descriptor. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close/overload1.html deleted file mode 100644 index 6412c6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close/overload1.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -posix::descriptor::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the descriptor. -

-
void close();
-
-

- This function is used to close the descriptor. Any asynchronous read - or write operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. Note that, even if the function indicates an - error, the underlying descriptor is closed. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close/overload2.html deleted file mode 100644 index dafb6fc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close/overload2.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -posix::descriptor::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the descriptor. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the descriptor. Any asynchronous read - or write operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. Note that, even if - the function indicates an error, the underlying descriptor is closed. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor.html deleted file mode 100644 index a479f79..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -posix::descriptor::descriptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a descriptor without opening it. -

-
explicit descriptor(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct a descriptor on an existing native descriptor. -

-
descriptor(
-    asio::io_context & io_context,
-    const native_handle_type & native_descriptor);
-  » more...
-
-

- Move-construct a descriptor from another. -

-
descriptor(
-    descriptor && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload1.html deleted file mode 100644 index 6d422db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload1.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -posix::descriptor::descriptor (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a descriptor without opening it. -

-
descriptor(
-    asio::io_context & io_context);
-
-

- This constructor creates a descriptor without opening it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the descriptor will use to dispatch handlers for any - asynchronous operations performed on the descriptor. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload2.html deleted file mode 100644 index cb2dd34..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -posix::descriptor::descriptor (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a descriptor on an existing native descriptor. -

-
descriptor(
-    asio::io_context & io_context,
-    const native_handle_type & native_descriptor);
-
-

- This constructor creates a descriptor object to hold an existing native - descriptor. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the descriptor will use to dispatch handlers for any - asynchronous operations performed on the descriptor. -

-
native_descriptor
-

- A native descriptor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload3.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload3.html deleted file mode 100644 index 1f06e9e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload3.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -posix::descriptor::descriptor (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a descriptor from another. -

-
descriptor(
-    descriptor && other);
-
-

- This constructor moves a descriptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other descriptor object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the descriptor(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/executor_type.html deleted file mode 100644 index 317ed49..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -posix::descriptor::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/posix/descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_executor.html deleted file mode 100644 index 262d41d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -posix::descriptor::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_io_context.html deleted file mode 100644 index c00d01b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -posix::descriptor::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_io_service.html deleted file mode 100644 index 45b42bd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -posix::descriptor::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control.html deleted file mode 100644 index 99ed255..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -posix::descriptor::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - an IO control command on the descriptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control/overload1.html deleted file mode 100644 index 8700256..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -posix::descriptor::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform an IO control command on the descriptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the descriptor. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the descriptor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::posix::stream_descriptor::bytes_readable command;
-descriptor.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control/overload2.html deleted file mode 100644 index 026c03c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -posix::descriptor::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform an IO control command on the descriptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the descriptor. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the descriptor. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::posix::stream_descriptor::bytes_readable command;
-asio::error_code ec;
-descriptor.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/is_open.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/is_open.html deleted file mode 100644 index c4fb4c0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/is_open.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -posix::descriptor::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the descriptor is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer.html deleted file mode 100644 index 2bd7662..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -posix::descriptor::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer/overload1.html deleted file mode 100644 index bd365e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer/overload1.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::descriptor::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a descriptor cannot contain any further layers, it simply returns - a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer/overload2.html deleted file mode 100644 index bcd8ce2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::descriptor::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a descriptor cannot contain any further layers, it simply - returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer_type.html deleted file mode 100644 index 4c916d7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer_type.html +++ /dev/null @@ -1,427 +0,0 @@ - - - -posix::descriptor::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A - descriptor is always the lowest layer. -

-
typedef descriptor lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- A descriptor is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a descriptor. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native descriptor to the descriptor. -

-
-

- async_wait -

-
-

- Asynchronously wait for the descriptor to become ready to read, - ready to write, or to have pending error conditions. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the descriptor. -

-
-

- close -

-
-

- Close the descriptor. -

-
-

- descriptor -

-
-

- Construct a descriptor without opening it.

Construct - a descriptor on an existing native descriptor.

- Move-construct a descriptor from another. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- io_control -

-
-

- Perform an IO control command on the descriptor. -

-
-

- is_open -

-
-

- Determine whether the descriptor is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native descriptor representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native descriptor implementation. -

Sets the non-blocking mode of the native descriptor - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the descriptor.

Sets - the non-blocking mode of the descriptor. -

-
-

- operator= -

-
-

- Move-assign a descriptor from another. -

-
-

- release -

-
-

- Release ownership of the native descriptor implementation. -

-
-

- wait -

-
-

- Wait for the descriptor to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~descriptor -

-
-

- Protected destructor to prevent deletion through this type. -

-
-

- The posix::descriptor - class template provides the ability to wrap a POSIX descriptor. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/posix/descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_handle.html deleted file mode 100644 index 5c6e956..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -posix::descriptor::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the native descriptor representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - descriptor. This is intended to allow access to native descriptor functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_handle_type.html deleted file mode 100644 index c19a1c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -posix::descriptor::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a descriptor. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/posix/descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking.html deleted file mode 100644 index 5b3d1ec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::descriptor::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native descriptor implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native descriptor implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload1.html deleted file mode 100644 index 51f0f6e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload1.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -posix::descriptor::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Gets the non-blocking mode of the native descriptor implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native descriptor. This mode has no effect on the behaviour of the descriptor - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying descriptor is in non-blocking mode - and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the descriptor object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native descriptor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload2.html deleted file mode 100644 index c4d67c7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -posix::descriptor::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the native descriptor implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native descriptor. It has no effect on the behaviour of the descriptor - object's synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying descriptor is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload3.html deleted file mode 100644 index ff686d7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload3.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -posix::descriptor::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the native descriptor implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native descriptor. It has no effect on the behaviour of the descriptor - object's synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying descriptor is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking.html deleted file mode 100644 index 8545920..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::descriptor::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the descriptor. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the descriptor. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload1.html deleted file mode 100644 index 39d99f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload1.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -posix::descriptor::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Gets the non-blocking mode of the descriptor. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the descriptor's synchronous operations will fail - with asio::error::would_block if they are unable to perform - the requested operation immediately. If false, synchronous - operations will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload2.html deleted file mode 100644 index 9c7668d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -posix::descriptor::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the descriptor. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the descriptor's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload3.html deleted file mode 100644 index 4b62fad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload3.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -posix::descriptor::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the descriptor. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the descriptor's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/operator_eq_.html deleted file mode 100644 index 016b09b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/operator_eq_.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -posix::descriptor::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a descriptor from another. -

-
descriptor & operator=(
-    descriptor && other);
-
-

- This assignment operator moves a descriptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other descriptor object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the descriptor(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/release.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/release.html deleted file mode 100644 index 6d7ec13..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/release.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -posix::descriptor::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release - ownership of the native descriptor implementation. -

-
native_handle_type release();
-
-

- This function may be used to obtain the underlying representation of the - descriptor. After calling this function, is_open() returns - false. The caller is responsible for closing the descriptor. -

-

- All outstanding asynchronous read or write operations will finish immediately, - and the handlers for cancelled operations will be passed the asio::error::operation_aborted - error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait.html deleted file mode 100644 index 02bfd97..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -posix::descriptor::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait for the - descriptor to become ready to read, ready to write, or to have pending - error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait/overload1.html deleted file mode 100644 index 461c478..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -posix::descriptor::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wait for the descriptor to become ready to read, ready to write, or to - have pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for a descriptor to - enter a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired descriptor state. -

-
-
-
- - Example -
-

- Waiting for a descriptor to become readable. -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-descriptor.wait(asio::posix::stream_descriptor::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait/overload2.html deleted file mode 100644 index 756f388..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait/overload2.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -posix::descriptor::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wait for the descriptor to become ready to read, ready to write, or to - have pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for a descriptor to - enter a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired descriptor state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for a descriptor to become readable. -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::error_code ec;
-descriptor.wait(asio::posix::stream_descriptor::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait_type.html deleted file mode 100644 index 9c90a9b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -posix::descriptor::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a descriptor to become ready to read. -

-
wait_write
-

- Wait for a descriptor to become ready to write. -

-
wait_error
-

- Wait for a descriptor to have error conditions pending. -

-
-
-

- For use with descriptor::wait() and descriptor::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base.html deleted file mode 100644 index a368935..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -posix::descriptor_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The posix::descriptor_base - class is used as a base for the descriptor class as a place to define the - associated IO control commands. -

-
class descriptor_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~descriptor_base -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Requirements -
-

- Header: asio/posix/descriptor_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/_descriptor_base.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/_descriptor_base.html deleted file mode 100644 index e1ced84..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/_descriptor_base.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -posix::descriptor_base::~descriptor_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~descriptor_base();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/bytes_readable.html deleted file mode 100644 index 94dcae2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/bytes_readable.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -posix::descriptor_base::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::descriptor_base::bytes_readable command(true);
-descriptor.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/posix/descriptor_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/wait_type.html deleted file mode 100644 index dfe1509..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/wait_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -posix::descriptor_base::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a descriptor to become ready to read. -

-
wait_write
-

- Wait for a descriptor to become ready to write. -

-
wait_error
-

- Wait for a descriptor to have error conditions pending. -

-
-
-

- For use with descriptor::wait() and descriptor::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor.html deleted file mode 100644 index 7969d2d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor.html +++ /dev/null @@ -1,439 +0,0 @@ - - - -posix::stream_descriptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides stream-oriented descriptor functionality. -

-
class stream_descriptor :
-  public posix::descriptor
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- A descriptor is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a descriptor. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native descriptor to the descriptor. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_wait -

-
-

- Asynchronously wait for the descriptor to become ready to read, - ready to write, or to have pending error conditions. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the descriptor. -

-
-

- close -

-
-

- Close the descriptor. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- io_control -

-
-

- Perform an IO control command on the descriptor. -

-
-

- is_open -

-
-

- Determine whether the descriptor is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native descriptor representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native descriptor implementation. -

Sets the non-blocking mode of the native descriptor - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the descriptor.

Sets - the non-blocking mode of the descriptor. -

-
-

- operator= -

-
-

- Move-assign a stream_descriptor from another. -

-
-

- read_some -

-
-

- Read some data from the descriptor. -

-
-

- release -

-
-

- Release ownership of the native descriptor implementation. -

-
-

- stream_descriptor -

-
-

- Construct a stream_descriptor without opening it.

- Construct a stream_descriptor on an existing native descriptor. -

Move-construct a stream_descriptor from another. -

-
-

- wait -

-
-

- Wait for the descriptor to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- write_some -

-
-

- Write some data to the descriptor. -

-
-

- The posix::stream_descriptor - class template provides asynchronous and blocking stream-oriented descriptor - functionality. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/posix/stream_descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign.html deleted file mode 100644 index a1b24f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -posix::stream_descriptor::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native descriptor to the descriptor. -

-
void assign(
-    const native_handle_type & native_descriptor);
-  » more...
-
-void assign(
-    const native_handle_type & native_descriptor,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign/overload1.html deleted file mode 100644 index ef48eee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -posix::stream_descriptor::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Assign an existing native descriptor to the descriptor. -

-
void assign(
-    const native_handle_type & native_descriptor);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign/overload2.html deleted file mode 100644 index 251b947..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -posix::stream_descriptor::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Assign an existing native descriptor to the descriptor. -

-
void assign(
-    const native_handle_type & native_descriptor,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_read_some.html deleted file mode 100644 index d28e6a2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_read_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -posix::stream_descriptor::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data from the stream descriptor. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes read.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The read operation may not read all of the requested number of bytes. Consider - using the async_read - function if you need to ensure that the requested amount of data is read - before the asynchronous operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
descriptor.async_read_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_wait.html deleted file mode 100644 index a377725..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_wait.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -posix::stream_descriptor::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -Asynchronously - wait for the descriptor to become ready to read, ready to write, or to - have pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for a descriptor - to enter a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired descriptor state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::posix::stream_descriptor descriptor(io_context);
-...
-descriptor.async_wait(
-    asio::posix::stream_descriptor::wait_read,
-    wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_write_some.html deleted file mode 100644 index bbea0cc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_write_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -posix::stream_descriptor::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write data to the stream descriptor. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the descriptor. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes written.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The write operation may not transmit all of the data to the peer. Consider - using the async_write - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
descriptor.async_write_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/bytes_readable.html deleted file mode 100644 index 3dd500b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/bytes_readable.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -posix::stream_descriptor::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::descriptor_base::bytes_readable command(true);
-descriptor.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/posix/stream_descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel.html deleted file mode 100644 index d7d9312..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -posix::stream_descriptor::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the descriptor. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel/overload1.html deleted file mode 100644 index d8caaad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -posix::stream_descriptor::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Cancel all asynchronous operations associated with the descriptor. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel/overload2.html deleted file mode 100644 index 791cff6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel/overload2.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -posix::stream_descriptor::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Cancel all asynchronous operations associated with the descriptor. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close.html deleted file mode 100644 index a631710..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -posix::stream_descriptor::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the descriptor. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close/overload1.html deleted file mode 100644 index 03db595..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -posix::stream_descriptor::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Close the descriptor. -

-
void close();
-
-

- This function is used to close the descriptor. Any asynchronous read - or write operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. Note that, even if the function indicates an - error, the underlying descriptor is closed. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close/overload2.html deleted file mode 100644 index dd3a614..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close/overload2.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -posix::stream_descriptor::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Close the descriptor. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the descriptor. Any asynchronous read - or write operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. Note that, even if - the function indicates an error, the underlying descriptor is closed. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/executor_type.html deleted file mode 100644 index a25d21f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/executor_type.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -posix::stream_descriptor::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/posix/stream_descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_executor.html deleted file mode 100644 index ec22ddb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_executor.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -posix::stream_descriptor::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_io_context.html deleted file mode 100644 index 7b979da..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_io_context.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -posix::stream_descriptor::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_io_service.html deleted file mode 100644 index 389398d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_io_service.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -posix::stream_descriptor::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control.html deleted file mode 100644 index c18e7fe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -posix::stream_descriptor::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - an IO control command on the descriptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control/overload1.html deleted file mode 100644 index 76b9d73..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -posix::stream_descriptor::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Perform an IO control command on the descriptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the descriptor. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the descriptor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::posix::stream_descriptor::bytes_readable command;
-descriptor.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control/overload2.html deleted file mode 100644 index 17be294..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -posix::stream_descriptor::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Perform an IO control command on the descriptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the descriptor. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the descriptor. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::posix::stream_descriptor::bytes_readable command;
-asio::error_code ec;
-descriptor.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/is_open.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/is_open.html deleted file mode 100644 index 8f60c4a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/is_open.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -posix::stream_descriptor::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -Determine - whether the descriptor is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer.html deleted file mode 100644 index 63b9f91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -posix::stream_descriptor::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer/overload1.html deleted file mode 100644 index 99b52d2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -posix::stream_descriptor::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a descriptor cannot contain any further layers, it simply returns - a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer/overload2.html deleted file mode 100644 index 9763bfa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -posix::stream_descriptor::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a descriptor cannot contain any further layers, it simply - returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer_type.html deleted file mode 100644 index 1668b9f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer_type.html +++ /dev/null @@ -1,430 +0,0 @@ - - - -posix::stream_descriptor::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -A - descriptor is always the lowest layer. -

-
typedef descriptor lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- A descriptor is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a descriptor. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native descriptor to the descriptor. -

-
-

- async_wait -

-
-

- Asynchronously wait for the descriptor to become ready to read, - ready to write, or to have pending error conditions. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the descriptor. -

-
-

- close -

-
-

- Close the descriptor. -

-
-

- descriptor -

-
-

- Construct a descriptor without opening it.

Construct - a descriptor on an existing native descriptor.

- Move-construct a descriptor from another. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- io_control -

-
-

- Perform an IO control command on the descriptor. -

-
-

- is_open -

-
-

- Determine whether the descriptor is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native descriptor representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native descriptor implementation. -

Sets the non-blocking mode of the native descriptor - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the descriptor.

Sets - the non-blocking mode of the descriptor. -

-
-

- operator= -

-
-

- Move-assign a descriptor from another. -

-
-

- release -

-
-

- Release ownership of the native descriptor implementation. -

-
-

- wait -

-
-

- Wait for the descriptor to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~descriptor -

-
-

- Protected destructor to prevent deletion through this type. -

-
-

- The posix::descriptor - class template provides the ability to wrap a POSIX descriptor. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/posix/stream_descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_handle.html deleted file mode 100644 index 369b70e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_handle.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -posix::stream_descriptor::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -Get - the native descriptor representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - descriptor. This is intended to allow access to native descriptor functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_handle_type.html deleted file mode 100644 index 7416738..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_handle_type.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::stream_descriptor::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -The - native representation of a descriptor. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/posix/stream_descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking.html deleted file mode 100644 index 2d93677..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::stream_descriptor::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native descriptor implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native descriptor implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload1.html deleted file mode 100644 index f49ecda..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -posix::stream_descriptor::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Gets the non-blocking mode of the native descriptor implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native descriptor. This mode has no effect on the behaviour of the descriptor - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying descriptor is in non-blocking mode - and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the descriptor object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native descriptor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload2.html deleted file mode 100644 index 6e0430b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload2.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -posix::stream_descriptor::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Sets the non-blocking mode of the native descriptor implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native descriptor. It has no effect on the behaviour of the descriptor - object's synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying descriptor is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload3.html deleted file mode 100644 index d9335e5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload3.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -posix::stream_descriptor::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Sets the non-blocking mode of the native descriptor implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native descriptor. It has no effect on the behaviour of the descriptor - object's synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying descriptor is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking.html deleted file mode 100644 index e018ced..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::stream_descriptor::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the descriptor. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the descriptor. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload1.html deleted file mode 100644 index 16fb1ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -posix::stream_descriptor::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Gets the non-blocking mode of the descriptor. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the descriptor's synchronous operations will fail - with asio::error::would_block if they are unable to perform - the requested operation immediately. If false, synchronous - operations will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload2.html deleted file mode 100644 index dadeb3d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -posix::stream_descriptor::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Sets the non-blocking mode of the descriptor. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the descriptor's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload3.html deleted file mode 100644 index 001ecee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload3.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -posix::stream_descriptor::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Sets the non-blocking mode of the descriptor. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the descriptor's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/operator_eq_.html deleted file mode 100644 index 9060d38..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/operator_eq_.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -posix::stream_descriptor::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a posix::stream_descriptor - from another. -

-
stream_descriptor & operator=(
-    stream_descriptor && other);
-
-

- This assignment operator moves a stream descriptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other posix::stream_descriptor - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the stream_descriptor(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some.html deleted file mode 100644 index ec78c79..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -posix::stream_descriptor::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read - some data from the descriptor. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some/overload1.html deleted file mode 100644 index 51d9b11..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -posix::stream_descriptor::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the descriptor. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to read data from the stream descriptor. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes read. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
descriptor.read_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some/overload2.html deleted file mode 100644 index 9ac5583..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -posix::stream_descriptor::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the descriptor. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to read data from the stream descriptor. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/release.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/release.html deleted file mode 100644 index b24022e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/release.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::stream_descriptor::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -Release - ownership of the native descriptor implementation. -

-
native_handle_type release();
-
-

- This function may be used to obtain the underlying representation of the - descriptor. After calling this function, is_open() returns - false. The caller is responsible for closing the descriptor. -

-

- All outstanding asynchronous read or write operations will finish immediately, - and the handlers for cancelled operations will be passed the asio::error::operation_aborted - error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor.html deleted file mode 100644 index 98ad7c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -posix::stream_descriptor::stream_descriptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a posix::stream_descriptor - without opening it. -

-
explicit stream_descriptor(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct a posix::stream_descriptor - on an existing native descriptor. -

-
stream_descriptor(
-    asio::io_context & io_context,
-    const native_handle_type & native_descriptor);
-  » more...
-
-

- Move-construct a posix::stream_descriptor - from another. -

-
stream_descriptor(
-    stream_descriptor && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload1.html deleted file mode 100644 index 598f1b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -posix::stream_descriptor::stream_descriptor (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a posix::stream_descriptor - without opening it. -

-
stream_descriptor(
-    asio::io_context & io_context);
-
-

- This constructor creates a stream descriptor without opening it. The - descriptor needs to be opened and then connected or accepted before data - can be sent or received on it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream descriptor will use to dispatch handlers - for any asynchronous operations performed on the descriptor. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload2.html deleted file mode 100644 index b31e756..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -posix::stream_descriptor::stream_descriptor (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a posix::stream_descriptor - on an existing native descriptor. -

-
stream_descriptor(
-    asio::io_context & io_context,
-    const native_handle_type & native_descriptor);
-
-

- This constructor creates a stream descriptor object to hold an existing - native descriptor. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream descriptor will use to dispatch handlers - for any asynchronous operations performed on the descriptor. -

-
native_descriptor
-

- The new underlying descriptor implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload3.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload3.html deleted file mode 100644 index d9bd149..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload3.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -posix::stream_descriptor::stream_descriptor (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a posix::stream_descriptor - from another. -

-
stream_descriptor(
-    stream_descriptor && other);
-
-

- This constructor moves a stream descriptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other posix::stream_descriptor - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the stream_descriptor(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait.html deleted file mode 100644 index 6dbb227..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -posix::stream_descriptor::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait - for the descriptor to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait/overload1.html deleted file mode 100644 index defab95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -posix::stream_descriptor::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Wait for the descriptor to become ready to read, ready to write, or to - have pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for a descriptor to - enter a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired descriptor state. -

-
-
-
- - Example -
-

- Waiting for a descriptor to become readable. -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-descriptor.wait(asio::posix::stream_descriptor::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait/overload2.html deleted file mode 100644 index d224efa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -posix::stream_descriptor::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Wait for the descriptor to become ready to read, ready to write, or to - have pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for a descriptor to - enter a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired descriptor state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for a descriptor to become readable. -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::error_code ec;
-descriptor.wait(asio::posix::stream_descriptor::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait_type.html deleted file mode 100644 index 39d2867..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait_type.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -posix::stream_descriptor::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a descriptor to become ready to read. -

-
wait_write
-

- Wait for a descriptor to become ready to write. -

-
wait_error
-

- Wait for a descriptor to have error conditions pending. -

-
-
-

- For use with descriptor::wait() and descriptor::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some.html deleted file mode 100644 index 9cdaf9e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -posix::stream_descriptor::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write - some data to the descriptor. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some/overload1.html deleted file mode 100644 index a31586d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -posix::stream_descriptor::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the descriptor. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to write data to the stream descriptor. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the descriptor. -

-
-
-
- - Return - Value -
-

- The number of bytes written. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
descriptor.write_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some/overload2.html deleted file mode 100644 index 69edb30..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -posix::stream_descriptor::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the descriptor. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to write data to the stream descriptor. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the descriptor. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/post.html b/Sources/Vendor/asio/doc/asio/reference/post.html deleted file mode 100644 index 9da9d19..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/post.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-post -

-

- -Submits a completion token or function object for - execution. -

-
template<
-    typename CompletionToken>
-DEDUCED post(
-    CompletionToken && token);
-  » more...
-
-template<
-    typename Executor,
-    typename CompletionToken>
-DEDUCED post(
-    const Executor & ex,
-    CompletionToken && token,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-template<
-    typename ExecutionContext,
-    typename CompletionToken>
-DEDUCED post(
-    ExecutionContext & ctx,
-    CompletionToken && token,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/post.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/post/overload1.html b/Sources/Vendor/asio/doc/asio/reference/post/overload1.html deleted file mode 100644 index f988b97..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/post/overload1.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -post (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename CompletionToken>
-DEDUCED post(
-    CompletionToken && token);
-
-

- This function submits an object for execution using the object's associated - executor. The function object is queued for execution, and is never called - from the current thread prior to returning from post(). -

-

- This function has the following effects: -

-
    -
  • - Constructs a function object handler of type Handler, - initialized with handler(forward<CompletionToken>(token)). -
  • -
  • - Constructs an object result of type async_result<Handler>, - initializing the object as result(handler). -
  • -
  • - Obtains the handler's associated executor object ex by - performing get_associated_executor(handler). -
  • -
  • - Obtains the handler's associated allocator object alloc - by performing get_associated_allocator(handler). -
  • -
  • - Performs ex.post(std::move(handler), alloc). -
  • -
  • - Returns result.get(). -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/post/overload2.html b/Sources/Vendor/asio/doc/asio/reference/post/overload2.html deleted file mode 100644 index 90bbe19..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/post/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -post (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename Executor,
-    typename CompletionToken>
-DEDUCED post(
-    const Executor & ex,
-    CompletionToken && token,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-

- This function submits an object for execution using the specified executor. - The function object is queued for execution, and is never called from the - current thread prior to returning from post(). -

-

- This function has the following effects: -

-
    -
  • - Constructs a function object handler of type Handler, - initialized with handler(forward<CompletionToken>(token)). -
  • -
  • - Constructs an object result of type async_result<Handler>, - initializing the object as result(handler). -
  • -
  • - Obtains the handler's associated executor object ex1 by - performing get_associated_executor(handler). -
  • -
  • - Creates a work object w by performing make_work(ex1). -
  • -
  • - Obtains the handler's associated allocator object alloc - by performing get_associated_allocator(handler). -
  • -
  • - Constructs a function object f with a function call operator - that performs ex1.dispatch(std::move(handler), alloc) - followed by w.reset(). -
  • -
  • - Performs Executor(ex).post(std::move(f), alloc). -
  • -
  • - Returns result.get(). -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/post/overload3.html b/Sources/Vendor/asio/doc/asio/reference/post/overload3.html deleted file mode 100644 index 7bfc670..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/post/overload3.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -post (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename ExecutionContext,
-    typename CompletionToken>
-DEDUCED post(
-    ExecutionContext & ctx,
-    CompletionToken && token,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-
- - Return - Value -
-

- post(ctx.get_executor(), forward<CompletionToken>(token)). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read.html b/Sources/Vendor/asio/doc/asio/reference/read.html deleted file mode 100644 index 49b3165..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read.html +++ /dev/null @@ -1,176 +0,0 @@ - - - -read - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-read -

-

- -The read function is a composed operation - that reads a certain amount of data from a stream before returning. -

-

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename MutableBufferSequence>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename MutableBufferSequence>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-  » more...
-
-
- - Requirements -
-

- Header: asio/read.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload1.html b/Sources/Vendor/asio/doc/asio/reference/read/overload1.html deleted file mode 100644 index dc23fc9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload1.html +++ /dev/null @@ -1,131 +0,0 @@ - - - -read (1 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename MutableBufferSequence>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the stream. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::read(s, asio::buffer(data, size));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read(
-    s, buffers,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload10.html b/Sources/Vendor/asio/doc/asio/reference/read/overload10.html deleted file mode 100644 index 2a49765..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload10.html +++ /dev/null @@ -1,105 +0,0 @@ - - - -read (10 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffer is full (that is, it has reached maximum size). -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read(
-    s, b,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload11.html b/Sources/Vendor/asio/doc/asio/reference/read/overload11.html deleted file mode 100644 index 1f581a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload11.html +++ /dev/null @@ -1,124 +0,0 @@ - - - -read (11 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffer is full (that is, it has reached maximum size). -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's read_some function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload12.html b/Sources/Vendor/asio/doc/asio/reference/read/overload12.html deleted file mode 100644 index 2b56cb3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload12.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -read (12 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffer is full (that is, it has reached maximum size). -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's read_some function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload2.html b/Sources/Vendor/asio/doc/asio/reference/read/overload2.html deleted file mode 100644 index 60b31c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload2.html +++ /dev/null @@ -1,123 +0,0 @@ - - - -read (2 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename MutableBufferSequence>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the stream. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::read(s, asio::buffer(data, size), ec);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read(
-    s, buffers,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload3.html b/Sources/Vendor/asio/doc/asio/reference/read/overload3.html deleted file mode 100644 index fe3ba6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload3.html +++ /dev/null @@ -1,143 +0,0 @@ - - - -read (3 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the stream. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's read_some function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::read(s, asio::buffer(data, size),
-    asio::transfer_at_least(32));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload4.html b/Sources/Vendor/asio/doc/asio/reference/read/overload4.html deleted file mode 100644 index 54bb5ec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload4.html +++ /dev/null @@ -1,120 +0,0 @@ - - - -read (4 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the stream. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's read_some function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload5.html b/Sources/Vendor/asio/doc/asio/reference/read/overload5.html deleted file mode 100644 index fb577cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload5.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -read (5 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The specified dynamic buffer sequence is full (that is, it has reached - maximum size). -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read(
-    s, buffers,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload6.html b/Sources/Vendor/asio/doc/asio/reference/read/overload6.html deleted file mode 100644 index 5f558b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload6.html +++ /dev/null @@ -1,105 +0,0 @@ - - - -read (6 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffer is full (that is, it has reached maximum size). -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read(
-    s, buffers,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload7.html b/Sources/Vendor/asio/doc/asio/reference/read/overload7.html deleted file mode 100644 index 0359f8f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload7.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -read (7 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The specified dynamic buffer sequence is full (that is, it has reached - maximum size). -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's read_some function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload8.html b/Sources/Vendor/asio/doc/asio/reference/read/overload8.html deleted file mode 100644 index 94e8308..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload8.html +++ /dev/null @@ -1,118 +0,0 @@ - - - -read (8 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The specified dynamic buffer sequence is full (that is, it has reached - maximum size). -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's read_some function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload9.html b/Sources/Vendor/asio/doc/asio/reference/read/overload9.html deleted file mode 100644 index 2dce8cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload9.html +++ /dev/null @@ -1,113 +0,0 @@ - - - -read (9 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffer is full (that is, it has reached maximum size). -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read(
-    s, b,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at.html b/Sources/Vendor/asio/doc/asio/reference/read_at.html deleted file mode 100644 index 1bf62f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at.html +++ /dev/null @@ -1,139 +0,0 @@ - - - -read_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The read_at function is a composed - operation that reads a certain amount of data at the specified offset before - returning. -

-

- Attempt to read a certain amount of data at the specified offset before returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition);
-  » more...
-
-template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b);
-  » more...
-
-template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-  » more...
-
-template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-  » more...
-
-
- - Requirements -
-

- Header: asio/read_at.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload1.html deleted file mode 100644 index 23c103f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload1.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -read_at (1 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the device. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::read_at(d, 42, asio::buffer(data, size));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read_at(
-    d, 42, buffers,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload2.html deleted file mode 100644 index cf2329b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload2.html +++ /dev/null @@ -1,130 +0,0 @@ - - - -read_at (2 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the device. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::read_at(d, 42,
-    asio::buffer(data, size), ec);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read_at(
-    d, 42, buffers,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload3.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload3.html deleted file mode 100644 index 92fd04a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload3.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -read_at (3 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the device. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the device's read_some_at function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::read_at(d, 42, asio::buffer(data, size),
-    asio::transfer_at_least(32));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload4.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload4.html deleted file mode 100644 index 295505a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload4.html +++ /dev/null @@ -1,126 +0,0 @@ - - - -read_at (4 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the device. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the device's read_some_at function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload5.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload5.html deleted file mode 100644 index e6cd658..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload5.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -read_at (5 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
  • - An error occurred. -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read_at(
-    d, 42, b,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload6.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload6.html deleted file mode 100644 index dbb1bc5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload6.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -read_at (6 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
  • - An error occurred. -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read_at(
-    d, 42, b,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload7.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload7.html deleted file mode 100644 index de568e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload7.html +++ /dev/null @@ -1,126 +0,0 @@ - - - -read_at (7 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
  • - The completion_condition function object returns 0. -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the device's read_some_at function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload8.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload8.html deleted file mode 100644 index 9c94d76..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload8.html +++ /dev/null @@ -1,119 +0,0 @@ - - - -read_at (8 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
  • - The completion_condition function object returns 0. -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the device's read_some_at function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until.html b/Sources/Vendor/asio/doc/asio/reference/read_until.html deleted file mode 100644 index 812302f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until.html +++ /dev/null @@ -1,234 +0,0 @@ - - - -read_until - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The read_until function is - a composed operation that reads data into a dynamic buffer sequence, or into - a streambuf, until it contains a delimiter, matches a regular expression, - or a function object indicates a match. -

-

- Read data into a dynamic buffer sequence until it contains a specified delimiter. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    char delim);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    char delim,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    string_view delim);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    string_view delim,
-    asio::error_code & ec);
-  » more...
-
-

- Read data into a dynamic buffer sequence until some part of the data it contains - matches a regular expression. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    const boost::regex & expr);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    const boost::regex & expr,
-    asio::error_code & ec);
-  » more...
-
-

- Read data into a dynamic buffer sequence until a function object indicates - a match. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    MatchCondition match_condition,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    MatchCondition match_condition,
-    asio::error_code & ec,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-  » more...
-
-

- Read data into a streambuf until it contains a specified delimiter. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    char delim);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    char delim,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    string_view delim);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    string_view delim,
-    asio::error_code & ec);
-  » more...
-
-

- Read data into a streambuf until some part of the data it contains matches - a regular expression. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    const boost::regex & expr);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    const boost::regex & expr,
-    asio::error_code & ec);
-  » more...
-
-

- Read data into a streambuf until a function object indicates a match. -

-
template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    MatchCondition match_condition,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    MatchCondition match_condition,
-    asio::error_code & ec,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/read_until.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload1.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload1.html deleted file mode 100644 index e3905ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload1.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -read_until (1 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until it contains a specified - delimiter. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    char delim);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until the dynamic buffer sequence's get area contains the specified delimiter. - The call will block until one of the following conditions is true: -

-
    -
  • - The get area of the dynamic buffer sequence contains the specified - delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the dynamic buffer sequence's get area already contains - the delimiter, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
delim
-

- The delimiter character. -

-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic buffer sequence's get area up to and - including the delimiter. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond the delimiter. An application will typically - leave that data in the dynamic buffer sequence for a subsequent read_until - operation to examine. -

-
- - Example -
-

- To read data into a std::string until a newline is encountered: -

-
std::string data;
-std::string n = asio::read_until(s,
-    asio::dynamic_buffer(data), '\n');
-std::string line = data.substr(0, n);
-data.erase(0, n);
-
-

- After the read_until operation completes successfully, the - string data contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\n', 'd', 'e', ... }
-
-

- The call to substr then extracts the data up to and including - the delimiter, so that the string line contains: -

-
{ 'a', 'b', ..., 'c', '\n' }
-
-

- After the call to erase, the remaining data is left in the - buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload10.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload10.html deleted file mode 100644 index 2ebcfcd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload10.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -read_until (10 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until it contains a specified delimiter. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    char delim,
-    asio::error_code & ec);
-
-

- This function is used to read data into the specified streambuf until the - streambuf's get area contains the specified delimiter. The call will block - until one of the following conditions is true: -

-
    -
  • - The get area of the streambuf contains the specified delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the streambuf's get area already contains the delimiter, - the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
delim
-

- The delimiter character. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area up to and including the - delimiter. Returns 0 if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond the delimiter. An application will typically leave that data - in the streambuf for a subsequent read_until operation to examine. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload11.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload11.html deleted file mode 100644 index 3629524..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload11.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -read_until (11 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until it contains a specified delimiter. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    string_view delim);
-
-

- This function is used to read data into the specified streambuf until the - streambuf's get area contains the specified delimiter. The call will block - until one of the following conditions is true: -

-
    -
  • - The get area of the streambuf contains the specified delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the streambuf's get area already contains the delimiter, - the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
delim
-

- The delimiter string. -

-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area up to and including the - delimiter. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond the delimiter. An application will typically leave that data - in the streambuf for a subsequent read_until operation to examine. -

-
- - Example -
-

- To read data into a streambuf until a newline is encountered: -

-
asio::streambuf b;
-asio::read_until(s, b, "\r\n");
-std::istream is(&b);
-std::string line;
-std::getline(is, line);
-
-

- After the read_until operation completes successfully, the - buffer b contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to std::getline then extracts the data up to and - including the newline (which is discarded), so that the string line - contains: -

-
{ 'a', 'b', ..., 'c', '\r' }
-
-

- The remaining data is left in the buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload12.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload12.html deleted file mode 100644 index ec3478d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload12.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -read_until (12 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until it contains a specified delimiter. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    string_view delim,
-    asio::error_code & ec);
-
-

- This function is used to read data into the specified streambuf until the - streambuf's get area contains the specified delimiter. The call will block - until one of the following conditions is true: -

-
    -
  • - The get area of the streambuf contains the specified delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the streambuf's get area already contains the delimiter, - the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
delim
-

- The delimiter string. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area up to and including the - delimiter. Returns 0 if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond the delimiter. An application will typically leave that data - in the streambuf for a subsequent read_until operation to examine. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload13.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload13.html deleted file mode 100644 index 858acb4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload13.html +++ /dev/null @@ -1,156 +0,0 @@ - - - -read_until (13 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until some part of the data it contains matches - a regular expression. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    const boost::regex & expr);
-
-

- This function is used to read data into the specified streambuf until the - streambuf's get area contains some data that matches a regular expression. - The call will block until one of the following conditions is true: -

-
    -
  • - A substring of the streambuf's get area matches the regular expression. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the streambuf's get area already contains data that - matches the regular expression, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
expr
-

- The regular expression. -

-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area up to and including the - substring that matches the regular expression. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond that which matched the regular expression. An application will - typically leave that data in the streambuf for a subsequent read_until - operation to examine. -

-
- - Example -
-

- To read data into a streambuf until a CR-LF sequence is encountered: -

-
asio::streambuf b;
-asio::read_until(s, b, boost::regex("\r\n"));
-std::istream is(&b);
-std::string line;
-std::getline(is, line);
-
-

- After the read_until operation completes successfully, the - buffer b contains the data which matched the regular expression: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to std::getline then extracts the data up to and - including the newline (which is discarded), so that the string line - contains: -

-
{ 'a', 'b', ..., 'c', '\r' }
-
-

- The remaining data is left in the buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload14.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload14.html deleted file mode 100644 index 30218ec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload14.html +++ /dev/null @@ -1,113 +0,0 @@ - - - -read_until (14 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until some part of the data it contains matches - a regular expression. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    const boost::regex & expr,
-    asio::error_code & ec);
-
-

- This function is used to read data into the specified streambuf until the - streambuf's get area contains some data that matches a regular expression. - The call will block until one of the following conditions is true: -

-
    -
  • - A substring of the streambuf's get area matches the regular expression. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the streambuf's get area already contains data that - matches the regular expression, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
expr
-

- The regular expression. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area up to and including the - substring that matches the regular expression. Returns 0 if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond that which matched the regular expression. An application will - typically leave that data in the streambuf for a subsequent read_until - operation to examine. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload15.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload15.html deleted file mode 100644 index 09cc181..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload15.html +++ /dev/null @@ -1,204 +0,0 @@ - - - -read_until (15 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until a function object indicates a match. -

-
template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    MatchCondition match_condition,
-    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: -

-
    -
  • - The match condition function object returns a std::pair where the second - element evaluates to true. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the match condition function object already indicates - a match, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
match_condition
-
-

- The function object to be called to determine whether a match exists. - The signature of the function object must be: -

-
pair<iterator, bool> match_condition(iterator begin, iterator end);
-
-

- where iterator represents the type: -

-
buffers_iterator<basic_streambuf<Allocator>::const_buffers_type>
-
-

- The iterator parameters begin and end define - the range of bytes to be scanned to determine whether there is a - match. The first member of the return value is an iterator - marking one-past-the-end of the bytes that have been consumed by - the match function. This iterator is used to calculate the begin - parameter for any subsequent invocation of the match condition. The - second member of the return value is true if a match - has been found, false otherwise. -

-
-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area that have been fully consumed - by the match function. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond that which matched the function object. An application will - typically leave that data in the streambuf for a subsequent read_until - operation to examine. -

-

- The default implementation of the is_match_condition type - trait evaluates to true for function pointers and function objects with - a result_type typedef. It must be specialised for other user-defined - function objects. -

-
- - Examples -
-

- To read data into a streambuf until whitespace is encountered: -

-
typedef asio::buffers_iterator<
-    asio::streambuf::const_buffers_type> iterator;
-
-std::pair<iterator, bool>
-match_whitespace(iterator begin, iterator end)
-{
-  iterator i = begin;
-  while (i != end)
-    if (std::isspace(*i++))
-      return std::make_pair(i, true);
-  return std::make_pair(i, false);
-}
-...
-asio::streambuf b;
-asio::read_until(s, b, match_whitespace);
-
-

- To read data into a streambuf until a matching character is found: -

-
class match_char
-{
-public:
-  explicit match_char(char c) : c_(c) {}
-
-  template <typename Iterator>
-  std::pair<Iterator, bool> operator()(
-      Iterator begin, Iterator end) const
-  {
-    Iterator i = begin;
-    while (i != end)
-      if (c_ == *i++)
-        return std::make_pair(i, true);
-    return std::make_pair(i, false);
-  }
-
-private:
-  char c_;
-};
-
-namespace asio {
-  template <> struct is_match_condition<match_char>
-    : public boost::true_type {};
-} // namespace asio
-...
-asio::streambuf b;
-asio::read_until(s, b, match_char('a'));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload16.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload16.html deleted file mode 100644 index b1f0949..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload16.html +++ /dev/null @@ -1,142 +0,0 @@ - - - -read_until (16 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until a function object indicates a match. -

-
template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    MatchCondition match_condition,
-    asio::error_code & ec,
-    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: -

-
    -
  • - The match condition function object returns a std::pair where the second - element evaluates to true. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the match condition function object already indicates - a match, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
match_condition
-
-

- The function object to be called to determine whether a match exists. - The signature of the function object must be: -

-
pair<iterator, bool> match_condition(iterator begin, iterator end);
-
-

- where iterator represents the type: -

-
buffers_iterator<basic_streambuf<Allocator>::const_buffers_type>
-
-

- The iterator parameters begin and end define - the range of bytes to be scanned to determine whether there is a - match. The first member of the return value is an iterator - marking one-past-the-end of the bytes that have been consumed by - the match function. This iterator is used to calculate the begin - parameter for any subsequent invocation of the match condition. The - second member of the return value is true if a match - has been found, false otherwise. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area that have been fully consumed - by the match function. Returns 0 if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond that which matched the function object. An application will - typically leave that data in the streambuf for a subsequent read_until - operation to examine. -

-

- The default implementation of the is_match_condition type - trait evaluates to true for function pointers and function objects with - a result_type typedef. It must be specialised for other user-defined - function objects. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload2.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload2.html deleted file mode 100644 index c0017d7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload2.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -read_until (2 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until it contains a specified - delimiter. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    char delim,
-    asio::error_code & ec);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until the dynamic buffer sequence's get area contains the specified delimiter. - The call will block until one of the following conditions is true: -

-
    -
  • - The get area of the dynamic buffer sequence contains the specified - delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the dynamic buffer sequence's get area already contains - the delimiter, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
delim
-

- The delimiter character. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic buffer sequence's get area up to and - including the delimiter. Returns 0 if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond the delimiter. An application will typically - leave that data in the dynamic buffer sequence for a subsequent read_until - operation to examine. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload3.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload3.html deleted file mode 100644 index e29e329..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload3.html +++ /dev/null @@ -1,145 +0,0 @@ - - - -read_until (3 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until it contains a specified - delimiter. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    string_view delim);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until the dynamic buffer sequence's get area contains the specified delimiter. - The call will block until one of the following conditions is true: -

-
    -
  • - The get area of the dynamic buffer sequence contains the specified - delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the dynamic buffer sequence's get area already contains - the delimiter, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
delim
-

- The delimiter string. -

-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic buffer sequence's get area up to and - including the delimiter. -

-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond the delimiter. An application will typically - leave that data in the dynamic buffer sequence for a subsequent read_until - operation to examine. -

-
- - Example -
-

- To read data into a std::string until a CR-LF sequence is - encountered: -

-
std::string data;
-std::string n = asio::read_until(s,
-    asio::dynamic_buffer(data), "\r\n");
-std::string line = data.substr(0, n);
-data.erase(0, n);
-
-

- After the read_until operation completes successfully, the - string data contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to substr then extracts the data up to and including - the delimiter, so that the string line contains: -

-
{ 'a', 'b', ..., 'c', '\r', '\n' }
-
-

- After the call to erase, the remaining data is left in the - buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload4.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload4.html deleted file mode 100644 index 726a9e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload4.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -read_until (4 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until it contains a specified - delimiter. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    string_view delim,
-    asio::error_code & ec);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until the dynamic buffer sequence's get area contains the specified delimiter. - The call will block until one of the following conditions is true: -

-
    -
  • - The get area of the dynamic buffer sequence contains the specified - delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the dynamic buffer sequence's get area already contains - the delimiter, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
delim
-

- The delimiter string. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic buffer sequence's get area up to and - including the delimiter. Returns 0 if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond the delimiter. An application will typically - leave that data in the dynamic buffer sequence for a subsequent read_until - operation to examine. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload5.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload5.html deleted file mode 100644 index 4091450..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload5.html +++ /dev/null @@ -1,159 +0,0 @@ - - - -read_until (5 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until some part of the data it - contains matches a regular expression. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    const boost::regex & expr);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until the dynamic buffer sequence's get area contains some data that matches - a regular expression. The call will block until one of the following conditions - is true: -

-
    -
  • - A substring of the dynamic buffer sequence's get area matches the regular - expression. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the dynamic buffer sequence's get area already contains - data that matches the regular expression, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- A dynamic buffer sequence into which the data will be read. -

-
expr
-

- The regular expression. -

-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic buffer sequence's get area up to and - including the substring that matches the regular expression. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond that which matched the regular expression. - An application will typically leave that data in the dynamic buffer sequence - for a subsequent read_until operation to examine. -

-
- - Example -
-

- To read data into a std::string until a CR-LF sequence is - encountered: -

-
std::string data;
-std::string n = asio::read_until(s,
-    asio::dynamic_buffer(data), boost::regex("\r\n"));
-std::string line = data.substr(0, n);
-data.erase(0, n);
-
-

- After the read_until operation completes successfully, the - string data contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to substr then extracts the data up to and including - the delimiter, so that the string line contains: -

-
{ 'a', 'b', ..., 'c', '\r', '\n' }
-
-

- After the call to erase, the remaining data is left in the - buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload6.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload6.html deleted file mode 100644 index effc36f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload6.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -read_until (6 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until some part of the data it - contains matches a regular expression. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    const boost::regex & expr,
-    asio::error_code & ec);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until the dynamic buffer sequence's get area contains some data that matches - a regular expression. The call will block until one of the following conditions - is true: -

-
    -
  • - A substring of the dynamic buffer sequence's get area matches the regular - expression. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the dynamic buffer sequence's get area already contains - data that matches the regular expression, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- A dynamic buffer sequence into which the data will be read. -

-
expr
-

- The regular expression. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic buffer sequence's get area up to and - including the substring that matches the regular expression. Returns 0 - if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond that which matched the regular expression. - An application will typically leave that data in the dynamic buffer sequence - for a subsequent read_until operation to examine. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload7.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload7.html deleted file mode 100644 index fc6506b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload7.html +++ /dev/null @@ -1,206 +0,0 @@ - - - -read_until (7 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until a function object indicates - a match. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    MatchCondition match_condition,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until a user-defined match condition function object, when applied to the - data contained in the dynamic buffer sequence, indicates a successful match. - The call will block until one of the following conditions is true: -

-
    -
  • - The match condition function object returns a std::pair where the second - element evaluates to true. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the match condition function object already indicates - a match, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- A dynamic buffer sequence into which the data will be read. -

-
match_condition
-
-

- The function object to be called to determine whether a match exists. - The signature of the function object must be: -

-
pair<iterator, bool> match_condition(iterator begin, iterator end);
-
-

- where iterator represents the type: -

-
buffers_iterator<typename DynamicBuffer::const_buffers_type>
-
-

- The iterator parameters begin and end define - the range of bytes to be scanned to determine whether there is a - match. The first member of the return value is an iterator - marking one-past-the-end of the bytes that have been consumed by - the match function. This iterator is used to calculate the begin - parameter for any subsequent invocation of the match condition. The - second member of the return value is true if a match - has been found, false otherwise. -

-
-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic_buffer's get area that have been fully - consumed by the match function. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond that which matched the function object. - An application will typically leave that data in the dynamic buffer sequence - for a subsequent read_until operation to examine. -

-

- The default implementation of the is_match_condition type - trait evaluates to true for function pointers and function objects with - a result_type typedef. It must be specialised for other user-defined - function objects. -

-
- - Examples -
-

- To read data into a dynamic buffer sequence until whitespace is encountered: -

-
typedef asio::buffers_iterator<
-    asio::const_buffers_1> iterator;
-
-std::pair<iterator, bool>
-match_whitespace(iterator begin, iterator end)
-{
-  iterator i = begin;
-  while (i != end)
-    if (std::isspace(*i++))
-      return std::make_pair(i, true);
-  return std::make_pair(i, false);
-}
-...
-std::string data;
-asio::read_until(s, data, match_whitespace);
-
-

- To read data into a std::string until a matching character - is found: -

-
class match_char
-{
-public:
-  explicit match_char(char c) : c_(c) {}
-
-  template <typename Iterator>
-  std::pair<Iterator, bool> operator()(
-      Iterator begin, Iterator end) const
-  {
-    Iterator i = begin;
-    while (i != end)
-      if (c_ == *i++)
-        return std::make_pair(i, true);
-    return std::make_pair(i, false);
-  }
-
-private:
-  char c_;
-};
-
-namespace asio {
-  template <> struct is_match_condition<match_char>
-    : public boost::true_type {};
-} // namespace asio
-...
-std::string data;
-asio::read_until(s, data, match_char('a'));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload8.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload8.html deleted file mode 100644 index b2026da..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload8.html +++ /dev/null @@ -1,143 +0,0 @@ - - - -read_until (8 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until a function object indicates - a match. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    MatchCondition match_condition,
-    asio::error_code & ec,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until a user-defined match condition function object, when applied to the - data contained in the dynamic buffer sequence, indicates a successful match. - The call will block until one of the following conditions is true: -

-
    -
  • - The match condition function object returns a std::pair where the second - element evaluates to true. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the match condition function object already indicates - a match, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- A dynamic buffer sequence into which the data will be read. -

-
match_condition
-
-

- The function object to be called to determine whether a match exists. - The signature of the function object must be: -

-
pair<iterator, bool> match_condition(iterator begin, iterator end);
-
-

- where iterator represents the type: -

-
buffers_iterator<DynamicBuffer::const_buffers_type>
-
-

- The iterator parameters begin and end define - the range of bytes to be scanned to determine whether there is a - match. The first member of the return value is an iterator - marking one-past-the-end of the bytes that have been consumed by - the match function. This iterator is used to calculate the begin - parameter for any subsequent invocation of the match condition. The - second member of the return value is true if a match - has been found, false otherwise. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic buffer sequence's get area that have - been fully consumed by the match function. Returns 0 if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond that which matched the function object. - An application will typically leave that data in the dynamic buffer sequence - for a subsequent read_until operation to examine. -

-

- The default implementation of the is_match_condition type - trait evaluates to true for function pointers and function objects with - a result_type typedef. It must be specialised for other user-defined - function objects. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload9.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload9.html deleted file mode 100644 index 2ed3817..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload9.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -read_until (9 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until it contains a specified delimiter. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    char delim);
-
-

- This function is used to read data into the specified streambuf until the - streambuf's get area contains the specified delimiter. The call will block - until one of the following conditions is true: -

-
    -
  • - The get area of the streambuf contains the specified delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the streambuf's get area already contains the delimiter, - the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
delim
-

- The delimiter character. -

-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area up to and including the - delimiter. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond the delimiter. An application will typically leave that data - in the streambuf for a subsequent read_until operation to examine. -

-
- - Example -
-

- To read data into a streambuf until a newline is encountered: -

-
asio::streambuf b;
-asio::read_until(s, b, '\n');
-std::istream is(&b);
-std::string line;
-std::getline(is, line);
-
-

- After the read_until operation completes successfully, the - buffer b contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\n', 'd', 'e', ... }
-
-

- The call to std::getline then extracts the data up to and - including the newline (which is discarded), so that the string line - contains: -

-
{ 'a', 'b', ..., 'c' }
-
-

- The remaining data is left in the buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_write_operations.html b/Sources/Vendor/asio/doc/asio/reference/read_write_operations.html deleted file mode 100644 index 59b5431..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_write_operations.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -Requirements on read and write operations - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A read operation is an operation that reads data into - a mutable buffer sequence argument of a type meeting MutableBufferSequence - requirements. The mutable buffer sequence specifies memory where the data - should be placed. A read operation shall always fill a buffer in the sequence - completely before proceeding to the next. -

-

- A write operation is an operation that writes data from - a constant buffer sequence argument of a type meeting ConstBufferSequence - requirements. The constant buffer sequence specifies memory where the data - to be written is located. A write operation shall always write a buffer in - the sequence completely before proceeding to the next. -

-

- If a read or write operation is also an asynchronous - operation, the operation shall maintain one or more copies of the - buffer sequence until such time as the operation no longer requires access - to the memory specified by the buffers in the sequence. The program shall - ensure the memory remains valid until: -

-

- — the last copy of the buffer sequence is destroyed, or -

-

- — the completion handler for the asynchronous operation is invoked, -

-

- whichever comes first. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/resolver_errc__try_again.html b/Sources/Vendor/asio/doc/asio/reference/resolver_errc__try_again.html deleted file mode 100644 index 9e18463..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/resolver_errc__try_again.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -resolver_errc::try_again - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const error::netdb_errors try_again = error::host_not_found_try_again;
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port.html b/Sources/Vendor/asio/doc/asio/reference/serial_port.html deleted file mode 100644 index 078f7ec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port.html +++ /dev/null @@ -1,398 +0,0 @@ - - - -serial_port - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides serial port functionality. -

-
class serial_port :
-  public serial_port_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- A basic_serial_port is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a serial port. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native serial port to the serial port. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the serial port. -

-
-

- close -

-
-

- Close the serial port. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the serial port. -

-
-

- is_open -

-
-

- Determine whether the serial port is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native serial port representation. -

-
-

- open -

-
-

- Open the serial port using the specified device name. -

-
-

- operator= -

-
-

- Move-assign a serial_port from another. -

-
-

- read_some -

-
-

- Read some data from the serial port. -

-
-

- send_break -

-
-

- Send a break sequence to the serial port. -

-
-

- serial_port -

-
-

- Construct a serial_port without opening it.

Construct - and open a serial_port.

Construct a serial_port on - an existing native serial port.

Move-construct a - serial_port from another. -

-
-

- set_option -

-
-

- Set an option on the serial port. -

-
-

- write_some -

-
-

- Write some data to the serial port. -

-
-

- ~serial_port -

-
-

- Destroys the serial port. -

-
-

- The serial_port - class provides a wrapper over serial port functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/serial_port.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/_serial_port.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/_serial_port.html deleted file mode 100644 index 3746bd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/_serial_port.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -serial_port::~serial_port - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the serial port. -

-
~serial_port();
-
-

- This function destroys the serial port, cancelling any outstanding asynchronous - wait operations associated with the serial port as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/assign.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/assign.html deleted file mode 100644 index bdf6d5f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/assign.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -serial_port::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign an existing native - serial port to the serial port. -

-
void assign(
-    const native_handle_type & native_serial_port);
-  » more...
-
-void assign(
-    const native_handle_type & native_serial_port,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/assign/overload1.html deleted file mode 100644 index dc9ff5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/assign/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native serial port to the serial port. -

-
void assign(
-    const native_handle_type & native_serial_port);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/assign/overload2.html deleted file mode 100644 index 4f08fac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/assign/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -serial_port::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native serial port to the serial port. -

-
void assign(
-    const native_handle_type & native_serial_port,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/async_read_some.html deleted file mode 100644 index 079b44b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/async_read_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -serial_port::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data from the serial port. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes read.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The read operation may not read all of the requested number of bytes. Consider - using the async_read - function if you need to ensure that the requested amount of data is read - before the asynchronous operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
serial_port.async_read_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/async_write_some.html deleted file mode 100644 index 5f9bd09..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/async_write_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -serial_port::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write data to the serial port. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the serial port. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes written.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The write operation may not transmit all of the data to the peer. Consider - using the async_write - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
serial_port.async_write_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel.html deleted file mode 100644 index 0433bf8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -serial_port::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel all asynchronous - operations associated with the serial port. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel/overload1.html deleted file mode 100644 index 6d59606..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -serial_port::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the serial port. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel/overload2.html deleted file mode 100644 index 449cfc4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -serial_port::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the serial port. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/close.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/close.html deleted file mode 100644 index c94a114..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/close.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -serial_port::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close the serial port. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/close/overload1.html deleted file mode 100644 index 2cc714d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/close/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -serial_port::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the serial port. -

-
void close();
-
-

- This function is used to close the serial port. Any asynchronous read - or write operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/close/overload2.html deleted file mode 100644 index 05dae55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/close/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -serial_port::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the serial port. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the serial port. Any asynchronous read - or write operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/executor_type.html deleted file mode 100644 index 14132f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -serial_port::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/serial_port.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/get_executor.html deleted file mode 100644 index 7a65e25..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the executor - associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/get_io_context.html deleted file mode 100644 index ffa7636..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -serial_port::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/get_io_service.html deleted file mode 100644 index 48d8fd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -serial_port::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option.html deleted file mode 100644 index 02697e8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -serial_port::get_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get an option - from the serial port. -

-
template<
-    typename GettableSerialPortOption>
-void get_option(
-    GettableSerialPortOption & option);
-  » more...
-
-template<
-    typename GettableSerialPortOption>
-void get_option(
-    GettableSerialPortOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option/overload1.html deleted file mode 100644 index 9641353..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -serial_port::get_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an option from the serial port. -

-
template<
-    typename GettableSerialPortOption>
-void get_option(
-    GettableSerialPortOption & option);
-
-

- This function is used to get the current value of an option on the serial - port. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the serial port. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option/overload2.html deleted file mode 100644 index a5280a6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option/overload2.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -serial_port::get_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an option from the serial port. -

-
template<
-    typename GettableSerialPortOption>
-void get_option(
-    GettableSerialPortOption & option,
-    asio::error_code & ec);
-
-

- This function is used to get the current value of an option on the serial - port. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the serial port. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/is_open.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/is_open.html deleted file mode 100644 index 682fba9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/is_open.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether the - serial port is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer.html deleted file mode 100644 index 696de52..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -serial_port::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a reference - to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer/overload1.html deleted file mode 100644 index 74b4d3a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer/overload1.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -serial_port::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a serial_port - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer/overload2.html deleted file mode 100644 index 388af7b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -serial_port::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a serial_port - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer_type.html deleted file mode 100644 index b5d1eed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer_type.html +++ /dev/null @@ -1,400 +0,0 @@ - - - -serial_port::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A - basic_serial_port is always the lowest layer. -

-
typedef serial_port lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- A basic_serial_port is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a serial port. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native serial port to the serial port. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the serial - port. -

-
-

- close -

-
-

- Close the serial port. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the serial port. -

-
-

- is_open -

-
-

- Determine whether the serial port is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native serial port representation. -

-
-

- open -

-
-

- Open the serial port using the specified device name. -

-
-

- operator= -

-
-

- Move-assign a serial_port from another. -

-
-

- read_some -

-
-

- Read some data from the serial port. -

-
-

- send_break -

-
-

- Send a break sequence to the serial port. -

-
-

- serial_port -

-
-

- Construct a serial_port without opening it.

Construct - and open a serial_port.

Construct a serial_port - on an existing native serial port.

Move-construct - a serial_port from another. -

-
-

- set_option -

-
-

- Set an option on the serial port. -

-
-

- write_some -

-
-

- Write some data to the serial port. -

-
-

- ~serial_port -

-
-

- Destroys the serial port. -

-
-

- The serial_port - class provides a wrapper over serial port functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/serial_port.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/native_handle.html deleted file mode 100644 index 0156daf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -serial_port::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - native serial port representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - serial port. This is intended to allow access to native serial port functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/native_handle_type.html deleted file mode 100644 index e4c9fb1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -serial_port::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a serial port. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/serial_port.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/open.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/open.html deleted file mode 100644 index c30eafd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/open.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -serial_port::open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Open the serial port using - the specified device name. -

-
void open(
-    const std::string & device);
-  » more...
-
-void open(
-    const std::string & device,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/open/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/open/overload1.html deleted file mode 100644 index 679fdaf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/open/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -serial_port::open (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Open the serial port using the specified device name. -

-
void open(
-    const std::string & device);
-
-

- This function opens the serial port for the specified device name. -

-
- - Parameters -
-
-

-
-
device
-

- The platform-specific device name. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/open/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/open/overload2.html deleted file mode 100644 index 6e15b25..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/open/overload2.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -serial_port::open (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Open the serial port using the specified device name. -

-
void open(
-    const std::string & device,
-    asio::error_code & ec);
-
-

- This function opens the serial port using the given platform-specific - device name. -

-
- - Parameters -
-
-

-
-
device
-

- The platform-specific device name. -

-
ec
-

- Set the indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/operator_eq_.html deleted file mode 100644 index 9ebbdf2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/operator_eq_.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -serial_port::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a serial_port - from another. -

-
serial_port & operator=(
-    serial_port && other);
-
-

- This assignment operator moves a serial port from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other serial_port - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the serial_port(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some.html deleted file mode 100644 index a9c17d8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -serial_port::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read some data - from the serial port. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some/overload1.html deleted file mode 100644 index 2b9a4dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -serial_port::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the serial port. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to read data from the serial port. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes read. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
serial_port.read_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some/overload2.html deleted file mode 100644 index 47e85ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -serial_port::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the serial port. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to read data from the serial port. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break.html deleted file mode 100644 index 88e2ee8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -serial_port::send_break - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Send a break - sequence to the serial port. -

-
void send_break();
-  » more...
-
-void send_break(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break/overload1.html deleted file mode 100644 index f4d0b54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -serial_port::send_break (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send a break sequence to the serial port. -

-
void send_break();
-
-

- This function causes a break sequence of platform-specific duration to - be sent out the serial port. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break/overload2.html deleted file mode 100644 index 577fb61..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break/overload2.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -serial_port::send_break (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send a break sequence to the serial port. -

-
void send_break(
-    asio::error_code & ec);
-
-

- This function causes a break sequence of platform-specific duration to - be sent out the serial port. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port.html deleted file mode 100644 index 2325588..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -serial_port::serial_port - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct a - serial_port - without opening it. -

-
explicit serial_port(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct and open a serial_port. -

-
explicit serial_port(
-    asio::io_context & io_context,
-    const char * device);
-  » more...
-
-explicit serial_port(
-    asio::io_context & io_context,
-    const std::string & device);
-  » more...
-
-

- Construct a serial_port - on an existing native serial port. -

-
serial_port(
-    asio::io_context & io_context,
-    const native_handle_type & native_serial_port);
-  » more...
-
-

- Move-construct a serial_port - from another. -

-
serial_port(
-    serial_port && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload1.html deleted file mode 100644 index e1d50c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload1.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -serial_port::serial_port (1 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a serial_port - without opening it. -

-
serial_port(
-    asio::io_context & io_context);
-
-

- This constructor creates a serial port without opening it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the serial port will use to dispatch handlers for any - asynchronous operations performed on the port. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload2.html deleted file mode 100644 index 239b77c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload2.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -serial_port::serial_port (2 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct and open a serial_port. -

-
serial_port(
-    asio::io_context & io_context,
-    const char * device);
-
-

- This constructor creates and opens a serial port for the specified device - name. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the serial port will use to dispatch handlers for any - asynchronous operations performed on the port. -

-
device
-

- The platform-specific device name for this serial port. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload3.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload3.html deleted file mode 100644 index 22d6fe5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload3.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -serial_port::serial_port (3 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct and open a serial_port. -

-
serial_port(
-    asio::io_context & io_context,
-    const std::string & device);
-
-

- This constructor creates and opens a serial port for the specified device - name. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the serial port will use to dispatch handlers for any - asynchronous operations performed on the port. -

-
device
-

- The platform-specific device name for this serial port. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload4.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload4.html deleted file mode 100644 index 1a14ab5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload4.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -serial_port::serial_port (4 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a serial_port - on an existing native serial port. -

-
serial_port(
-    asio::io_context & io_context,
-    const native_handle_type & native_serial_port);
-
-

- This constructor creates a serial port object to hold an existing native - serial port. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the serial port will use to dispatch handlers for any - asynchronous operations performed on the port. -

-
native_serial_port
-

- A native serial port. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload5.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload5.html deleted file mode 100644 index b2cef03..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload5.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -serial_port::serial_port (5 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a serial_port - from another. -

-
serial_port(
-    serial_port && other);
-
-

- This constructor moves a serial port from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other serial_port - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the serial_port(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option.html deleted file mode 100644 index 929811d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -serial_port::set_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set an option - on the serial port. -

-
template<
-    typename SettableSerialPortOption>
-void set_option(
-    const SettableSerialPortOption & option);
-  » more...
-
-template<
-    typename SettableSerialPortOption>
-void set_option(
-    const SettableSerialPortOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option/overload1.html deleted file mode 100644 index 0ad3a98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option/overload1.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -serial_port::set_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set an option on the serial port. -

-
template<
-    typename SettableSerialPortOption>
-void set_option(
-    const SettableSerialPortOption & option);
-
-

- This function is used to set an option on the serial port. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be set on the serial port. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option/overload2.html deleted file mode 100644 index f9b4c80..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option/overload2.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -serial_port::set_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set an option on the serial port. -

-
template<
-    typename SettableSerialPortOption>
-void set_option(
-    const SettableSerialPortOption & option,
-    asio::error_code & ec);
-
-

- This function is used to set an option on the serial port. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be set on the serial port. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some.html deleted file mode 100644 index d52675a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -serial_port::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write some data - to the serial port. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some/overload1.html deleted file mode 100644 index 2994d63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -serial_port::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the serial port. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to write data to the serial port. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the serial port. -

-
-
-
- - Return - Value -
-

- The number of bytes written. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
serial_port.write_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some/overload2.html deleted file mode 100644 index 8ac29e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -serial_port::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the serial port. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to write data to the serial port. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the serial port. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base.html deleted file mode 100644 index 75a8de3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base.html +++ /dev/null @@ -1,172 +0,0 @@ - - - -serial_port_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The serial_port_base - class is used as a base for the basic_serial_port class template so that - we have a common place to define the serial port options. -

-
class serial_port_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- baud_rate -

-
-

- Serial port option to permit changing the baud rate. -

-
-

- character_size -

-
-

- Serial port option to permit changing the character size. -

-
-

- flow_control -

-
-

- Serial port option to permit changing the flow control. -

-
-

- parity -

-
-

- Serial port option to permit changing the parity. -

-
-

- stop_bits -

-
-

- Serial port option to permit changing the number of stop bits. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~serial_port_base -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Requirements -
-

- Header: asio/serial_port_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base/_serial_port_base.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base/_serial_port_base.html deleted file mode 100644 index 7acd37d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base/_serial_port_base.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::~serial_port_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~serial_port_base();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate.html deleted file mode 100644 index 4e882b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -serial_port_base::baud_rate - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Serial port option to permit changing the baud rate. -

-
class baud_rate
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- baud_rate -

-
-
-

- load -

-
-
-

- store -

-
-
-

- value -

-
-
-

- Implements changing the baud rate for a given serial port. -

-
- - Requirements -
-

- Header: asio/serial_port_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/baud_rate.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/baud_rate.html deleted file mode 100644 index 92f6af1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/baud_rate.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -serial_port_base::baud_rate::baud_rate - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
baud_rate(
-    unsigned int rate = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/load.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/load.html deleted file mode 100644 index f5f7d14..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/load.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::baud_rate::load - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void load(
-    const ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/store.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/store.html deleted file mode 100644 index 6fe9111..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/store.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::baud_rate::store - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void store(
-    ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/value.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/value.html deleted file mode 100644 index 51c8376..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/value.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -serial_port_base::baud_rate::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
unsigned int value() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size.html deleted file mode 100644 index 8428113..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -serial_port_base::character_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Serial port option to permit changing the character size. -

-
class character_size
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- character_size -

-
-
-

- load -

-
-
-

- store -

-
-
-

- value -

-
-
-

- Implements changing the character size for a given serial port. -

-
- - Requirements -
-

- Header: asio/serial_port_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/character_size.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/character_size.html deleted file mode 100644 index 27a252f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/character_size.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -serial_port_base::character_size::character_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
character_size(
-    unsigned int t = 8);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/load.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/load.html deleted file mode 100644 index 67aafee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/load.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::character_size::load - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void load(
-    const ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/store.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/store.html deleted file mode 100644 index 6772fc4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/store.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::character_size::store - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void store(
-    ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/value.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/value.html deleted file mode 100644 index 7aaf4b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/value.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -serial_port_base::character_size::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
unsigned int value() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control.html deleted file mode 100644 index 23d4c58..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control.html +++ /dev/null @@ -1,146 +0,0 @@ - - - -serial_port_base::flow_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Serial port option to permit changing the flow control. -

-
class flow_control
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- type -

-
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- flow_control -

-
-
-

- load -

-
-
-

- store -

-
-
-

- value -

-
-
-

- Implements changing the flow control for a given serial port. -

-
- - Requirements -
-

- Header: asio/serial_port_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/flow_control.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/flow_control.html deleted file mode 100644 index 53b21b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/flow_control.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -serial_port_base::flow_control::flow_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
flow_control(
-    type t = none);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/load.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/load.html deleted file mode 100644 index 7eda30c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/load.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::flow_control::load - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void load(
-    const ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/store.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/store.html deleted file mode 100644 index d3a13a1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/store.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::flow_control::store - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void store(
-    ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/type.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/type.html deleted file mode 100644 index f63b227..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/type.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -serial_port_base::flow_control::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum type
-
-

- - - -

-
- - Values -
-
-

-
-
none
-
-
software
-
-
hardware
-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/value.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/value.html deleted file mode 100644 index fc7641b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/value.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -serial_port_base::flow_control::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
type value() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity.html deleted file mode 100644 index cdfd4b6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity.html +++ /dev/null @@ -1,146 +0,0 @@ - - - -serial_port_base::parity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Serial port option to permit changing the parity. -

-
class parity
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- type -

-
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- load -

-
-
-

- parity -

-
-
-

- store -

-
-
-

- value -

-
-
-

- Implements changing the parity for a given serial port. -

-
- - Requirements -
-

- Header: asio/serial_port_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/load.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/load.html deleted file mode 100644 index debf36f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/load.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::parity::load - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void load(
-    const ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/parity.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/parity.html deleted file mode 100644 index e5abbd4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/parity.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -serial_port_base::parity::parity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
parity(
-    type t = none);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/store.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/store.html deleted file mode 100644 index 1030dd1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/store.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::parity::store - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void store(
-    ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/type.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/type.html deleted file mode 100644 index 72ae0bf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/type.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -serial_port_base::parity::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum type
-
-

- - - -

-
- - Values -
-
-

-
-
none
-
-
odd
-
-
even
-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/value.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/value.html deleted file mode 100644 index bf7a97d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/value.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -serial_port_base::parity::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
type value() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits.html deleted file mode 100644 index 6bd6526..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits.html +++ /dev/null @@ -1,146 +0,0 @@ - - - -serial_port_base::stop_bits - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Serial port option to permit changing the number of stop bits. -

-
class stop_bits
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- type -

-
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- load -

-
-
-

- stop_bits -

-
-
-

- store -

-
-
-

- value -

-
-
-

- Implements changing the number of stop bits for a given serial port. -

-
- - Requirements -
-

- Header: asio/serial_port_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/load.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/load.html deleted file mode 100644 index 47d0455..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/load.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::stop_bits::load - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void load(
-    const ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/stop_bits.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/stop_bits.html deleted file mode 100644 index 70d1143..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/stop_bits.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -serial_port_base::stop_bits::stop_bits - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
stop_bits(
-    type t = one);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/store.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/store.html deleted file mode 100644 index 2fdf8a9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/store.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::stop_bits::store - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void store(
-    ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/type.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/type.html deleted file mode 100644 index a1a057c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/type.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -serial_port_base::stop_bits::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum type
-
-

- - - -

-
- - Values -
-
-

-
-
one
-
-
onepointfive
-
-
two
-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/value.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/value.html deleted file mode 100644 index 2221343..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/value.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -serial_port_base::stop_bits::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
type value() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/service_already_exists.html b/Sources/Vendor/asio/doc/asio/reference/service_already_exists.html deleted file mode 100644 index fd97c86..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/service_already_exists.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -service_already_exists - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Exception thrown when trying to add a duplicate service to an execution_context. -

-
class service_already_exists
-
-
- - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- service_already_exists -

-
-
-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/service_already_exists/service_already_exists.html b/Sources/Vendor/asio/doc/asio/reference/service_already_exists/service_already_exists.html deleted file mode 100644 index f055e80..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/service_already_exists/service_already_exists.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -service_already_exists::service_already_exists - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
service_already_exists();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set.html b/Sources/Vendor/asio/doc/asio/reference/signal_set.html deleted file mode 100644 index d081f76..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set.html +++ /dev/null @@ -1,320 +0,0 @@ - - - -signal_set - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides signal functionality. -

-
class signal_set
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add -

-
-

- Add a signal to a signal_set. -

-
-

- async_wait -

-
-

- Start an asynchronous operation to wait for a signal to be delivered. -

-
-

- cancel -

-
-

- Cancel all operations associated with the signal set. -

-
-

- clear -

-
-

- Remove all signals from a signal_set. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- remove -

-
-

- Remove a signal from a signal_set. -

-
-

- signal_set -

-
-

- Construct a signal set without adding any signals.

- Construct a signal set and add one signal.

Construct - a signal set and add two signals.

Construct a signal - set and add three signals. -

-
-

- ~signal_set -

-
-

- Destroys the signal set. -

-
-

- The signal_set - class provides the ability to perform an asynchronous wait for one or more - signals to occur. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Example -
-

- Performing an asynchronous wait: -

-
void handler(
-    const asio::error_code& error,
-    int signal_number)
-{
-  if (!error)
-  {
-    // A signal occurred.
-  }
-}
-
-...
-
-// Construct a signal set registered for process termination.
-asio::signal_set signals(io_context, SIGINT, SIGTERM);
-
-// Start an asynchronous wait for one of the signals to occur.
-signals.async_wait(handler);
-
-
- - Queueing - of signal notifications -
-

- If a signal is registered with a signal_set, - and the signal occurs when there are no waiting handlers, then the signal - notification is queued. The next async_wait operation on that signal_set - will dequeue the notification. If multiple notifications are queued, subsequent - async_wait operations dequeue them one at a time. Signal notifications are - dequeued in order of ascending signal number. -

-

- If a signal number is removed from a signal_set - (using the remove or erase member functions) then - any queued notifications for that signal are discarded. -

-
- - Multiple - registration of signals -
-

- The same signal number may be registered with different signal_set - objects. When the signal occurs, one handler is called for each signal_set - object. -

-

- Note that multiple registration only works for signals that are registered - using Asio. The application must not also register a signal handler using - functions such as signal() or sigaction(). -

-
- - Signal - masking on POSIX platforms -
-

- POSIX allows signals to be blocked using functions such as sigprocmask() - and pthread_sigmask(). For signals to be delivered, programs - must ensure that any signals registered using signal_set - objects are unblocked in at least one thread. -

-
- - Requirements -
-

- Header: asio/signal_set.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/_signal_set.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/_signal_set.html deleted file mode 100644 index 1a963e0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/_signal_set.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -signal_set::~signal_set - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys the - signal set. -

-
~signal_set();
-
-

- This function destroys the signal set, cancelling any outstanding asynchronous - wait operations associated with the signal set as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/add.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/add.html deleted file mode 100644 index af72912..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/add.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -signal_set::add - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Add a signal to a signal_set. -

-
void add(
-    int signal_number);
-  » more...
-
-void add(
-    int signal_number,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/add/overload1.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/add/overload1.html deleted file mode 100644 index 0032eb3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/add/overload1.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -signal_set::add (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Add a signal to a signal_set. -

-
void add(
-    int signal_number);
-
-

- This function adds the specified signal to the set. It has no effect - if the signal is already in the set. -

-
- - Parameters -
-
-

-
-
signal_number
-

- The signal to be added to the set. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/add/overload2.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/add/overload2.html deleted file mode 100644 index 00e6bf3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/add/overload2.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -signal_set::add (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Add a signal to a signal_set. -

-
void add(
-    int signal_number,
-    asio::error_code & ec);
-
-

- This function adds the specified signal to the set. It has no effect - if the signal is already in the set. -

-
- - Parameters -
-
-

-
-
signal_number
-

- The signal to be added to the set. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/async_wait.html deleted file mode 100644 index 540b03f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/async_wait.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -signal_set::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start an asynchronous - operation to wait for a signal to be delivered. -

-
template<
-    typename SignalHandler>
-DEDUCED async_wait(
-    SignalHandler && handler);
-
-

- This function may be used to initiate an asynchronous wait against the - signal set. It always returns immediately. -

-

- For each call to async_wait(), the supplied handler will be - called exactly once. The handler will be called when: -

-
    -
  • - One of the registered signals in the signal set occurs; or -
  • -
  • - The signal set was cancelled, in which case the handler is passed the - error code asio::error::operation_aborted. -
  • -
-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called when the signal occurs. Copies will be made - of the handler as required. The function signature of the handler - must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  int signal_number // Indicates which signal occurred.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel.html deleted file mode 100644 index 4b0e7e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -signal_set::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel all operations associated - with the signal set. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel/overload1.html deleted file mode 100644 index 29136a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel/overload1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -signal_set::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all operations associated with the signal set. -

-
void cancel();
-
-

- This function forces the completion of any pending asynchronous wait - operations against the signal set. The handler for each cancelled operation - will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancellation does not alter the set of registered signals. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If a registered signal occurred before cancel() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel/overload2.html deleted file mode 100644 index 6fa6e69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel/overload2.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -signal_set::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all operations associated with the signal set. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function forces the completion of any pending asynchronous wait - operations against the signal set. The handler for each cancelled operation - will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancellation does not alter the set of registered signals. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- If a registered signal occurred before cancel() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/clear.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/clear.html deleted file mode 100644 index 7f9c2e5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/clear.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -signal_set::clear - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Remove all signals from a - signal_set. -

-
void clear();
-  » more...
-
-void clear(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/clear/overload1.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/clear/overload1.html deleted file mode 100644 index 6b15d91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/clear/overload1.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -signal_set::clear (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Remove all signals from a signal_set. -

-
void clear();
-
-

- This function removes all signals from the set. It has no effect if the - set is already empty. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Removes all queued notifications. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/clear/overload2.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/clear/overload2.html deleted file mode 100644 index 2606cad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/clear/overload2.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -signal_set::clear (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Remove all signals from a signal_set. -

-
void clear(
-    asio::error_code & ec);
-
-

- This function removes all signals from the set. It has no effect if the - set is already empty. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Removes all queued notifications. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/executor_type.html deleted file mode 100644 index 8abd108..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -signal_set::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/signal_set.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/get_executor.html deleted file mode 100644 index 1d6afa1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -signal_set::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the executor - associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/get_io_context.html deleted file mode 100644 index 36324b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -signal_set::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/get_io_service.html deleted file mode 100644 index cc94f12..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -signal_set::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/remove.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/remove.html deleted file mode 100644 index e30a680..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/remove.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -signal_set::remove - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Remove a signal from a - signal_set. -

-
void remove(
-    int signal_number);
-  » more...
-
-void remove(
-    int signal_number,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/remove/overload1.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/remove/overload1.html deleted file mode 100644 index d9089a6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/remove/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -signal_set::remove (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Remove a signal from a signal_set. -

-
void remove(
-    int signal_number);
-
-

- This function removes the specified signal from the set. It has no effect - if the signal is not in the set. -

-
- - Parameters -
-
-

-
-
signal_number
-

- The signal to be removed from the set. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Removes any notifications that have been queued for the specified signal - number. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/remove/overload2.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/remove/overload2.html deleted file mode 100644 index 839db21..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/remove/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -signal_set::remove (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Remove a signal from a signal_set. -

-
void remove(
-    int signal_number,
-    asio::error_code & ec);
-
-

- This function removes the specified signal from the set. It has no effect - if the signal is not in the set. -

-
- - Parameters -
-
-

-
-
signal_number
-

- The signal to be removed from the set. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Removes any notifications that have been queued for the specified signal - number. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set.html deleted file mode 100644 index da59682..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -signal_set::signal_set - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct a signal - set without adding any signals. -

-
explicit signal_set(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct a signal set and add one signal. -

-
signal_set(
-    asio::io_context & io_context,
-    int signal_number_1);
-  » more...
-
-

- Construct a signal set and add two signals. -

-
signal_set(
-    asio::io_context & io_context,
-    int signal_number_1,
-    int signal_number_2);
-  » more...
-
-

- Construct a signal set and add three signals. -

-
signal_set(
-    asio::io_context & io_context,
-    int signal_number_1,
-    int signal_number_2,
-    int signal_number_3);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload1.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload1.html deleted file mode 100644 index eed1e30..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload1.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -signal_set::signal_set (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a signal set without adding any signals. -

-
signal_set(
-    asio::io_context & io_context);
-
-

- This constructor creates a signal set without registering for any signals. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the signal set will use to dispatch handlers for any - asynchronous operations performed on the set. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload2.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload2.html deleted file mode 100644 index 2efa66d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload2.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -signal_set::signal_set (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a signal set and add one signal. -

-
signal_set(
-    asio::io_context & io_context,
-    int signal_number_1);
-
-

- This constructor creates a signal set and registers for one signal. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the signal set will use to dispatch handlers for any - asynchronous operations performed on the set. -

-
signal_number_1
-

- The signal number to be added. -

-
-
-
- - Remarks -
-

- This constructor is equivalent to performing: -

-
asio::signal_set signals(io_context);
-signals.add(signal_number_1);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload3.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload3.html deleted file mode 100644 index 5dc8054..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload3.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -signal_set::signal_set (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a signal set and add two signals. -

-
signal_set(
-    asio::io_context & io_context,
-    int signal_number_1,
-    int signal_number_2);
-
-

- This constructor creates a signal set and registers for two signals. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the signal set will use to dispatch handlers for any - asynchronous operations performed on the set. -

-
signal_number_1
-

- The first signal number to be added. -

-
signal_number_2
-

- The second signal number to be added. -

-
-
-
- - Remarks -
-

- This constructor is equivalent to performing: -

-
asio::signal_set signals(io_context);
-signals.add(signal_number_1);
-signals.add(signal_number_2);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload4.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload4.html deleted file mode 100644 index 9c31e0d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload4.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -signal_set::signal_set (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a signal set and add three signals. -

-
signal_set(
-    asio::io_context & io_context,
-    int signal_number_1,
-    int signal_number_2,
-    int signal_number_3);
-
-

- This constructor creates a signal set and registers for three signals. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the signal set will use to dispatch handlers for any - asynchronous operations performed on the set. -

-
signal_number_1
-

- The first signal number to be added. -

-
signal_number_2
-

- The second signal number to be added. -

-
signal_number_3
-

- The third signal number to be added. -

-
-
-
- - Remarks -
-

- This constructor is equivalent to performing: -

-
asio::signal_set signals(io_context);
-signals.add(signal_number_1);
-signals.add(signal_number_2);
-signals.add(signal_number_3);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base.html b/Sources/Vendor/asio/doc/asio/reference/socket_base.html deleted file mode 100644 index 49e45a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base.html +++ /dev/null @@ -1,407 +0,0 @@ - - - -socket_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The socket_base - class is used as a base for the basic_stream_socket - and basic_datagram_socket - class templates so that we have a common place to define the shutdown_type - and enum. -

-
class socket_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close if - unsent data is present. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive operations. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~socket_base -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length of - the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/_socket_base.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/_socket_base.html deleted file mode 100644 index 40f6833..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/_socket_base.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -socket_base::~socket_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~socket_base();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/broadcast.html deleted file mode 100644 index ca8dd13..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/broadcast.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option to - permit sending of broadcast messages. -

-
typedef implementation_defined broadcast;
-
-

- Implements the SOL_SOCKET/SO_BROADCAST socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/bytes_readable.html deleted file mode 100644 index 0786c1d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/bytes_readable.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -socket_base::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -IO control - command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::bytes_readable command(true);
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/debug.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/debug.html deleted file mode 100644 index 5604be3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/debug.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::debug - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option to enable - socket-level debugging. -

-
typedef implementation_defined debug;
-
-

- Implements the SOL_SOCKET/SO_DEBUG socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/do_not_route.html deleted file mode 100644 index 1d8951d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/do_not_route.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option - to prevent routing, use local interfaces only. -

-
typedef implementation_defined do_not_route;
-
-

- Implements the SOL_SOCKET/SO_DONTROUTE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/enable_connection_aborted.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/enable_connection_aborted.html deleted file mode 100644 index 5a8b473..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/enable_connection_aborted.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -socket_base::enable_connection_aborted - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option to report aborted connections on accept. -

-
typedef implementation_defined enable_connection_aborted;
-
-

- Implements a custom socket option that determines whether or not an accept - operation is permitted to fail with asio::error::connection_aborted. - By default the option is false. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/keep_alive.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/keep_alive.html deleted file mode 100644 index bef1734..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/keep_alive.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::keep_alive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option - to send keep-alives. -

-
typedef implementation_defined keep_alive;
-
-

- Implements the SOL_SOCKET/SO_KEEPALIVE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/linger.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/linger.html deleted file mode 100644 index e3c1ee4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/linger.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -socket_base::linger - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option to specify - whether the socket lingers on close if unsent data is present. -

-
typedef implementation_defined linger;
-
-

- Implements the SOL_SOCKET/SO_LINGER socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option(true, 30);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option;
-socket.get_option(option);
-bool is_set = option.enabled();
-unsigned short timeout = option.timeout();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/max_connections.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/max_connections.html deleted file mode 100644 index e1d60b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/max_connections.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -socket_base::max_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use max_listen_connections.) The maximum length of the queue of pending - incoming connections. -

-
static const int max_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/max_listen_connections.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/max_listen_connections.html deleted file mode 100644 index 4ff58a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/max_listen_connections.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -socket_base::max_listen_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - maximum length of the queue of pending incoming connections. -

-
static const int max_listen_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/message_do_not_route.html deleted file mode 100644 index 8c735f7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_do_not_route.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -socket_base::message_do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Specify - that the data should not be subject to routing. -

-
static const int message_do_not_route = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_end_of_record.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/message_end_of_record.html deleted file mode 100644 index c2cf0cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_end_of_record.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -socket_base::message_end_of_record - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Specifies - that the data marks the end of a record. -

-
static const int message_end_of_record = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_flags.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/message_flags.html deleted file mode 100644 index c7ff863..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_flags.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -socket_base::message_flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bitmask - type for flags that can be passed to send and receive operations. -

-
typedef int message_flags;
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_out_of_band.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/message_out_of_band.html deleted file mode 100644 index 1e6b743..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_out_of_band.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -socket_base::message_out_of_band - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Process - out-of-band data. -

-
static const int message_out_of_band = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_peek.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/message_peek.html deleted file mode 100644 index 629164e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_peek.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -socket_base::message_peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Peek at incoming - data without removing it from the input queue. -

-
static const int message_peek = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/out_of_band_inline.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/out_of_band_inline.html deleted file mode 100644 index 5762147..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/out_of_band_inline.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::out_of_band_inline - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option for putting received out-of-band data inline. -

-
typedef implementation_defined out_of_band_inline;
-
-

- Implements the SOL_SOCKET/SO_OOBINLINE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option;
-socket.get_option(option);
-bool value = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/receive_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/receive_buffer_size.html deleted file mode 100644 index a569f04..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/receive_buffer_size.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::receive_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option for the receive buffer size of a socket. -

-
typedef implementation_defined receive_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_RCVBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/receive_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/receive_low_watermark.html deleted file mode 100644 index e46ae70..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/receive_low_watermark.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::receive_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option for the receive low watermark. -

-
typedef implementation_defined receive_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_RCVLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/reuse_address.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/reuse_address.html deleted file mode 100644 index 8234d96..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/reuse_address.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -socket_base::reuse_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option to allow the socket to be bound to an address that is already in - use. -

-
typedef implementation_defined reuse_address;
-
-

- Implements the SOL_SOCKET/SO_REUSEADDR socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/send_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/send_buffer_size.html deleted file mode 100644 index 7f55bcb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/send_buffer_size.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::send_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option for the send buffer size of a socket. -

-
typedef implementation_defined send_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_SNDBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/send_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/send_low_watermark.html deleted file mode 100644 index 59bf0a2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/send_low_watermark.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::send_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option for the send low watermark. -

-
typedef implementation_defined send_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_SNDLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/shutdown_type.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/shutdown_type.html deleted file mode 100644 index bc2279a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/shutdown_type.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -socket_base::shutdown_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Different - ways a socket may be shutdown. -

-
enum shutdown_type
-
-

- - - -

-
- - Values -
-
-

-
-
shutdown_receive
-

- Shutdown the receive side of the socket. -

-
shutdown_send
-

- Shutdown the send side of the socket. -

-
shutdown_both
-

- Shutdown both send and receive on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/wait_type.html deleted file mode 100644 index b6e8341..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/wait_type.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -socket_base::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a socket to become ready to read. -

-
wait_write
-

- Wait for a socket to become ready to write. -

-
wait_error
-

- Wait for a socket to have error conditions pending. -

-
-
-

- For use with basic_socket::wait() and basic_socket::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn.html b/Sources/Vendor/asio/doc/asio/reference/spawn.html deleted file mode 100644 index 4e8d457..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn.html +++ /dev/null @@ -1,161 +0,0 @@ - - - -spawn - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-spawn -

-

- -Start a new stackful coroutine. -

-

- Start a new stackful coroutine, calling the specified handler when it completes. -

-
template<
-    typename Function>
-void spawn(
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-  » more...
-
-template<
-    typename Handler,
-    typename Function>
-void spawn(
-    Handler && handler,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes(),
-    typename enable_if<!is_executor< typename decay< Handler >::type >::value &&!is_convertible< Handler &, execution_context & >::value >::type *  = 0);
-  » more...
-
-

- Start a new stackful coroutine, inheriting the execution context of another. -

-
template<
-    typename Handler,
-    typename Function>
-void spawn(
-    basic_yield_context< Handler > ctx,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-  » more...
-
-

- Start a new stackful coroutine that executes on a given executor. -

-
template<
-    typename Function,
-    typename Executor>
-void spawn(
-    const Executor & ex,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes(),
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-

- Start a new stackful coroutine that executes on a given strand. -

-
template<
-    typename Function,
-    typename Executor>
-void spawn(
-    const strand< Executor > & ex,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-  » more...
-
-

- Start a new stackful coroutine that executes in the context of a strand. -

-
template<
-    typename Function>
-void spawn(
-    const asio::io_context::strand & s,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-  » more...
-
-

- Start a new stackful coroutine that executes on a given execution context. -

-
template<
-    typename Function,
-    typename ExecutionContext>
-void spawn(
-    ExecutionContext & ctx,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes(),
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » 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: -

-
asio::spawn(my_strand, do_echo);
-
-// ...
-
-void do_echo(asio::yield_context yield)
-{
-  try
-  {
-    char data[128];
-    for (;;)
-    {
-      std::size_t length =
-        my_socket.async_read_some(
-          asio::buffer(data), yield);
-
-      asio::async_write(my_socket,
-          asio::buffer(data, length), yield);
-    }
-  }
-  catch (std::exception& e)
-  {
-    // ...
-  }
-}
-
-
- - Requirements -
-

- Header: asio/spawn.hpp -

-

- Convenience header: None -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn/overload1.html b/Sources/Vendor/asio/doc/asio/reference/spawn/overload1.html deleted file mode 100644 index 7a4638a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn/overload1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -spawn (1 of 7 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start a new stackful coroutine, calling the specified handler when it completes. -

-
template<
-    typename Function>
-void spawn(
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-
-

- This function is used to launch a new coroutine. -

-
- - Parameters -
-
-

-
-
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. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn/overload2.html b/Sources/Vendor/asio/doc/asio/reference/spawn/overload2.html deleted file mode 100644 index b1809e4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -spawn (2 of 7 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start a new stackful coroutine, calling the specified handler when it completes. -

-
template<
-    typename Handler,
-    typename Function>
-void spawn(
-    Handler && handler,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes(),
-    typename enable_if<!is_executor< typename decay< Handler >::type >::value &&!is_convertible< Handler &, execution_context & >::value >::type *  = 0);
-
-

- This function is used to launch a new coroutine. -

-
- - Parameters -
-
-

-
-
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. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn/overload3.html b/Sources/Vendor/asio/doc/asio/reference/spawn/overload3.html deleted file mode 100644 index 793223e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn/overload3.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -spawn (3 of 7 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start a new stackful coroutine, inheriting the execution context of another. -

-
template<
-    typename 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. -

-
- - Parameters -
-
-

-
-
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. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn/overload4.html b/Sources/Vendor/asio/doc/asio/reference/spawn/overload4.html deleted file mode 100644 index 7685dd6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn/overload4.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -spawn (4 of 7 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start a new stackful coroutine that executes on a given executor. -

-
template<
-    typename Function,
-    typename Executor>
-void spawn(
-    const Executor & ex,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes(),
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-

- This function is used to launch a new coroutine. -

-
- - Parameters -
-
-

-
-
ex
-

- Identifies the executor that will run the coroutine. The new coroutine - is implicitly given its own strand within this executor. -

-
function
-
-

- The coroutine function. The function must have the signature: -

-
void function(yield_context yield);
-
-

-

-
-
attributes
-

- Boost.Coroutine attributes used to customise the coroutine. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn/overload5.html b/Sources/Vendor/asio/doc/asio/reference/spawn/overload5.html deleted file mode 100644 index ea640d0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn/overload5.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -spawn (5 of 7 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start a new stackful coroutine that executes on a given strand. -

-
template<
-    typename Function,
-    typename Executor>
-void spawn(
-    const strand< Executor > & ex,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-
-

- This function is used to launch a new coroutine. -

-
- - Parameters -
-
-

-
-
ex
-

- Identifies the strand that will run the coroutine. -

-
function
-
-

- The coroutine function. The function must have the signature: -

-
void function(yield_context yield);
-
-

-

-
-
attributes
-

- Boost.Coroutine attributes used to customise the coroutine. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn/overload6.html b/Sources/Vendor/asio/doc/asio/reference/spawn/overload6.html deleted file mode 100644 index 2c62fe3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn/overload6.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -spawn (6 of 7 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start a new stackful coroutine that executes in the context of a strand. -

-
template<
-    typename Function>
-void spawn(
-    const asio::io_context::strand & s,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-
-

- This function is used to launch a new coroutine. -

-
- - Parameters -
-
-

-
-
s
-

- 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. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn/overload7.html b/Sources/Vendor/asio/doc/asio/reference/spawn/overload7.html deleted file mode 100644 index ffc64b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn/overload7.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -spawn (7 of 7 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start a new stackful coroutine that executes on a given execution context. -

-
template<
-    typename Function,
-    typename ExecutionContext>
-void spawn(
-    ExecutionContext & ctx,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes(),
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-

- This function is used to launch a new coroutine. -

-
- - Parameters -
-
-

-
-
ctx
-

- Identifies the execution context that will run the coroutine. The - new coroutine is implicitly given its own strand within this execution - context. -

-
function
-
-

- The coroutine function. The function must have the signature: -

-
void function(yield_context yield);
-
-

-

-
-
attributes
-

- Boost.Coroutine attributes used to customise the coroutine. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context.html deleted file mode 100644 index aae64ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context.html +++ /dev/null @@ -1,583 +0,0 @@ - - - -ssl::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
class context :
-  public ssl::context_base,
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- file_format -

-
-

- File format types. -

-
-

- method -

-
-

- Different methods supported by a context. -

-
-

- native_handle_type -

-
-

- The native handle type of the SSL context. -

-
-

- options -

-
-

- Bitmask type for SSL options. -

-
-

- password_purpose -

-
-

- Purpose of PEM password. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add_certificate_authority -

-
-

- Add certification authority for performing verification. -

-
-

- add_verify_path -

-
-

- Add a directory containing certificate authority files to be used - for performing verification. -

-
-

- clear_options -

-
-

- Clear options on the context. -

-
-

- context -

-
-

- Constructor.

Move-construct a context from another. -

-
-

- load_verify_file -

-
-

- Load a certification authority file for performing verification. -

-
-

- native_handle -

-
-

- Get the underlying implementation in the native type. -

-
-

- operator= -

-
-

- Move-assign a context from another. -

-
-

- set_default_verify_paths -

-
-

- Configures the context to use the default directories for finding - certification authority certificates. -

-
-

- set_options -

-
-

- Set options on the context. -

-
-

- set_password_callback -

-
-

- Set the password callback. -

-
-

- set_verify_callback -

-
-

- Set the callback used to verify peer certificates. -

-
-

- set_verify_depth -

-
-

- Set the peer verification depth. -

-
-

- set_verify_mode -

-
-

- Set the peer verification mode. -

-
-

- use_certificate -

-
-

- Use a certificate from a memory buffer. -

-
-

- use_certificate_chain -

-
-

- Use a certificate chain from a memory buffer. -

-
-

- use_certificate_chain_file -

-
-

- Use a certificate chain from a file. -

-
-

- use_certificate_file -

-
-

- Use a certificate from a file. -

-
-

- use_private_key -

-
-

- Use a private key from a memory buffer. -

-
-

- use_private_key_file -

-
-

- Use a private key from a file. -

-
-

- use_rsa_private_key -

-
-

- Use an RSA private key from a memory buffer. -

-
-

- use_rsa_private_key_file -

-
-

- Use an RSA private key from a file. -

-
-

- use_tmp_dh -

-
-

- Use the specified memory buffer to obtain the temporary Diffie-Hellman - parameters. -

-
-

- use_tmp_dh_file -

-
-

- Use the specified file to obtain the temporary Diffie-Hellman parameters. -

-
-

- ~context -

-
-

- Destructor. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- default_workarounds -

-
-

- Implement various bug workarounds. -

-
-

- no_compression -

-
-

- Disable compression. Compression is disabled by default. -

-
-

- no_sslv2 -

-
-

- Disable SSL v2. -

-
-

- no_sslv3 -

-
-

- Disable SSL v3. -

-
-

- no_tlsv1 -

-
-

- Disable TLS v1. -

-
-

- no_tlsv1_1 -

-
-

- Disable TLS v1.1. -

-
-

- no_tlsv1_2 -

-
-

- Disable TLS v1.2. -

-
-

- no_tlsv1_3 -

-
-

- Disable TLS v1.3. -

-
-

- single_dh_use -

-
-

- Always create a new key when using tmp_dh parameters. -

-
-
- - Requirements -
-

- Header: asio/ssl/context.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/_context.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/_context.html deleted file mode 100644 index 3360ff9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/_context.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ssl::context::~context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority.html deleted file mode 100644 index 998d053..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::add_certificate_authority - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Add - certification authority for performing verification. -

-
void add_certificate_authority(
-    const const_buffer & ca);
-  » more...
-
-void add_certificate_authority(
-    const const_buffer & ca,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload1.html deleted file mode 100644 index 5e06604..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::context::add_certificate_authority (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- 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. -

-
- - Parameters -
-
-

-
-
ca
-

- The buffer containing the certification authority certificate. - The certificate must use the PEM format. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_get_cert_store and X509_STORE_add_cert. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload2.html deleted file mode 100644 index 54d1cc3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::context::add_certificate_authority (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Add certification authority for performing verification. -

-
void add_certificate_authority(
-    const const_buffer & ca,
-    asio::error_code & ec);
-
-

- This function is used to add one trusted certification authority from - a memory buffer. -

-
- - Parameters -
-
-

-
-
ca
-

- The buffer containing the certification authority certificate. - The certificate must use the PEM format. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_get_cert_store and X509_STORE_add_cert. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path.html deleted file mode 100644 index 3b18d6c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ssl::context::add_verify_path - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Add - a directory containing certificate authority files to be used for performing - verification. -

-
void add_verify_path(
-    const std::string & path);
-  » more...
-
-void add_verify_path(
-    const std::string & path,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path/overload1.html deleted file mode 100644 index 353b998..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path/overload1.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -ssl::context::add_verify_path (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Add a directory containing certificate authority files to be used for - performing verification. -

-
void add_verify_path(
-    const std::string & path);
-
-

- This function is used to specify the name of a directory containing certification - authority certificates. Each file in the directory must contain a single - certificate. The files must be named using the subject name's hash and - an extension of ".0". -

-
- - Parameters -
-
-

-
-
path
-

- The name of a directory containing the certificates. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_load_verify_locations. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path/overload2.html deleted file mode 100644 index 7f87584..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path/overload2.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -ssl::context::add_verify_path (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Add a directory containing certificate authority files to be used for - performing verification. -

-
void add_verify_path(
-    const std::string & path,
-    asio::error_code & ec);
-
-

- This function is used to specify the name of a directory containing certification - authority certificates. Each file in the directory must contain a single - certificate. The files must be named using the subject name's hash and - an extension of ".0". -

-
- - Parameters -
-
-

-
-
path
-

- The name of a directory containing the certificates. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_load_verify_locations. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options.html deleted file mode 100644 index 557bd92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::clear_options - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Clear - options on the context. -

-
void clear_options(
-    options o);
-  » more...
-
-void clear_options(
-    options o,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options/overload1.html deleted file mode 100644 index 2f78331..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -ssl::context::clear_options (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Clear options on the context. -

-
void clear_options(
-    options o);
-
-

- This function may be used to configure the SSL options used by the context. -

-
- - Parameters -
-
-

-
-
o
-

- A bitmask of options. The available option values are defined in - the ssl::context_base - class. The specified options, if currently enabled on the context, - are cleared. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_clear_options. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options/overload2.html deleted file mode 100644 index 5d69e0d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -ssl::context::clear_options (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Clear options on the context. -

-
void clear_options(
-    options o,
-    asio::error_code & ec);
-
-

- This function may be used to configure the SSL options used by the context. -

-
- - Parameters -
-
-

-
-
o
-

- A bitmask of options. The available option values are defined in - the ssl::context_base - class. The specified options, if currently enabled on the context, - are cleared. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_clear_options. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/context.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/context.html deleted file mode 100644 index 2177c14..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/context.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ssl::context::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
explicit context(
-    method m);
-  » more...
-
-

- Move-construct a context from another. -

-
context(
-    context && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/context/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/context/overload1.html deleted file mode 100644 index 3f9b2f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/context/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context::context (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor. -

-
context(
-    method m);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/context/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/context/overload2.html deleted file mode 100644 index 73c888e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/context/overload2.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -ssl::context::context (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a context from another. -

-
context(
-    context && other);
-
-

- This constructor moves an SSL context from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other context object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the following operations only are valid for the moved-from - object: * Destruction. -

-
  • - As a target for move-assignment. -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/default_workarounds.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/default_workarounds.html deleted file mode 100644 index 3f98407..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/default_workarounds.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context::default_workarounds - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Implement - various bug workarounds. -

-
static const long default_workarounds = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/file_format.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/file_format.html deleted file mode 100644 index d863b1e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/file_format.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ssl::context::file_format - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -File format - types. -

-
enum file_format
-
-

- - -

-
- - Values -
-
-

-
-
asn1
-

- ASN.1 file. -

-
pem
-

- PEM file. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file.html deleted file mode 100644 index 375aba5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::load_verify_file - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Load - a certification authority file for performing verification. -

-
void load_verify_file(
-    const std::string & filename);
-  » more...
-
-void load_verify_file(
-    const std::string & filename,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file/overload1.html deleted file mode 100644 index 2687ee6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::context::load_verify_file (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Load a certification authority file for performing verification. -

-
void load_verify_file(
-    const std::string & filename);
-
-

- This function is used to load one or more trusted certification authorities - from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of a file containing certification authority certificates - in PEM format. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_load_verify_locations. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file/overload2.html deleted file mode 100644 index 7b5a28f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::context::load_verify_file (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Load a certification authority file for performing verification. -

-
void load_verify_file(
-    const std::string & filename,
-    asio::error_code & ec);
-
-

- This function is used to load the certificates for one or more trusted - certification authorities from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of a file containing certification authority certificates - in PEM format. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_load_verify_locations. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/method.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/method.html deleted file mode 100644 index 1daeb9c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/method.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -ssl::context::method - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Different methods supported - by a context. -

-
enum method
-
-

- - - - - - - - - - - - - - - - - - - - - - - - -

-
- - Values -
-
-

-
-
sslv2
-

- Generic SSL version 2. -

-
sslv2_client
-

- SSL version 2 client. -

-
sslv2_server
-

- SSL version 2 server. -

-
sslv3
-

- Generic SSL version 3. -

-
sslv3_client
-

- SSL version 3 client. -

-
sslv3_server
-

- SSL version 3 server. -

-
tlsv1
-

- Generic TLS version 1. -

-
tlsv1_client
-

- TLS version 1 client. -

-
tlsv1_server
-

- TLS version 1 server. -

-
sslv23
-

- Generic SSL/TLS. -

-
sslv23_client
-

- SSL/TLS client. -

-
sslv23_server
-

- 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. -

-
tlsv13
-

- Generic TLS version 1.3. -

-
tlsv13_client
-

- TLS version 1.3 client. -

-
tlsv13_server
-

- TLS version 1.3 server. -

-
tls
-

- Generic TLS. -

-
tls_client
-

- TLS client. -

-
tls_server
-

- TLS server. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/native_handle.html deleted file mode 100644 index d664ce4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ssl::context::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - underlying implementation in the native type. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying implementation of the - context. This is intended to allow access to context functionality that - is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/native_handle_type.html deleted file mode 100644 index 57193ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::context::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native handle type of the SSL context. -

-
typedef SSL_CTX * native_handle_type;
-
-
- - Requirements -
-

- Header: asio/ssl/context.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_compression.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_compression.html deleted file mode 100644 index 389bc50..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_compression.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context::no_compression - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - compression. Compression is disabled by default. -

-
static const long no_compression = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_sslv2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_sslv2.html deleted file mode 100644 index eeb27f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_sslv2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ssl::context::no_sslv2 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable SSL v2. -

-
static const long no_sslv2 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_sslv3.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_sslv3.html deleted file mode 100644 index e1f3217..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_sslv3.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ssl::context::no_sslv3 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable SSL v3. -

-
static const long no_sslv3 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1.html deleted file mode 100644 index fdce0ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ssl::context::no_tlsv1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable TLS v1. -

-
static const long no_tlsv1 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_1.html deleted file mode 100644 index eb3e1ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context::no_tlsv1_1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable TLS - v1.1. -

-
static const long no_tlsv1_1 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_2.html deleted file mode 100644 index dd0eb82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context::no_tlsv1_2 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable TLS - v1.2. -

-
static const long no_tlsv1_2 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_3.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_3.html deleted file mode 100644 index fba297a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context::no_tlsv1_3 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable TLS - v1.3. -

-
static const long no_tlsv1_3 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/operator_eq_.html deleted file mode 100644 index c393ae6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/operator_eq_.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -ssl::context::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a context from another. -

-
context & operator=(
-    context && other);
-
-

- This assignment operator moves an SSL context from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other context object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the following operations only are valid for the moved-from - object: * Destruction. -

-
  • - As a target for move-assignment. -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/options.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/options.html deleted file mode 100644 index 7007bff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/options.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::context::options - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bitmask type for - SSL options. -

-
typedef long options;
-
-
- - Requirements -
-

- Header: asio/ssl/context.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/password_purpose.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/password_purpose.html deleted file mode 100644 index e628408..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/password_purpose.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ssl::context::password_purpose - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Purpose - of PEM password. -

-
enum password_purpose
-
-

- - -

-
- - Values -
-
-

-
-
for_reading
-

- The password is needed for reading/decryption. -

-
for_writing
-

- The password is needed for writing/encryption. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths.html deleted file mode 100644 index d33e60d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -ssl::context::set_default_verify_paths - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Configures - the context to use the default directories for finding certification authority - certificates. -

-
void set_default_verify_paths();
-  » more...
-
-void set_default_verify_paths(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload1.html deleted file mode 100644 index d2032f3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload1.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -ssl::context::set_default_verify_paths (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Configures the context to use the default directories for finding certification - authority certificates. -

-
void set_default_verify_paths();
-
-

- This function specifies that the context should use the default, system-dependent - directories for locating certification authority certificates. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_default_verify_paths. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload2.html deleted file mode 100644 index a8c3436..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload2.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -ssl::context::set_default_verify_paths (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Configures the context to use the default directories for finding certification - authority certificates. -

-
void set_default_verify_paths(
-    asio::error_code & ec);
-
-

- This function specifies that the context should use the default, system-dependent - directories for locating certification authority certificates. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_default_verify_paths. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options.html deleted file mode 100644 index 37022f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::set_options - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set options - on the context. -

-
void set_options(
-    options o);
-  » more...
-
-void set_options(
-    options o,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options/overload1.html deleted file mode 100644 index b8b2fdb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -ssl::context::set_options (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set options on the context. -

-
void set_options(
-    options o);
-
-

- This function may be used to configure the SSL options used by the context. -

-
- - Parameters -
-
-

-
-
o
-

- A bitmask of options. The available option values are defined in - the ssl::context_base - class. The options are bitwise-ored with any existing value for - the options. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_options. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options/overload2.html deleted file mode 100644 index fe7d737..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -ssl::context::set_options (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set options on the context. -

-
void set_options(
-    options o,
-    asio::error_code & ec);
-
-

- This function may be used to configure the SSL options used by the context. -

-
- - Parameters -
-
-

-
-
o
-

- A bitmask of options. The available option values are defined in - the ssl::context_base - class. The options are bitwise-ored with any existing value for - the options. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_options. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback.html deleted file mode 100644 index 8eef803..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::context::set_password_callback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the password callback. -

-
template<
-    typename PasswordCallback>
-void set_password_callback(
-    PasswordCallback callback);
-  » more...
-
-template<
-    typename PasswordCallback>
-void set_password_callback(
-    PasswordCallback callback,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback/overload1.html deleted file mode 100644 index f85da72..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback/overload1.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -ssl::context::set_password_callback (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the password callback. -

-
template<
-    typename PasswordCallback>
-void set_password_callback(
-    PasswordCallback callback);
-
-

- This function is used to specify a callback function to obtain password - information about an encrypted key in PEM format. -

-
- - Parameters -
-
-

-
-
callback
-
-

- The function object to be used for obtaining the password. The - function signature of the handler must be: -

-
std::string password_callback(
-  std::size_t max_length,  // The maximum size for a password.
-  password_purpose purpose // Whether password is for reading or writing.
-);
-
-

- The return value of the callback is a string containing the password. -

-
-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_default_passwd_cb. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback/overload2.html deleted file mode 100644 index add78f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback/overload2.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -ssl::context::set_password_callback (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the password callback. -

-
template<
-    typename PasswordCallback>
-void set_password_callback(
-    PasswordCallback callback,
-    asio::error_code & ec);
-
-

- This function is used to specify a callback function to obtain password - information about an encrypted key in PEM format. -

-
- - Parameters -
-
-

-
-
callback
-
-

- The function object to be used for obtaining the password. The - function signature of the handler must be: -

-
std::string password_callback(
-  std::size_t max_length,  // The maximum size for a password.
-  password_purpose purpose // Whether password is for reading or writing.
-);
-
-

- The return value of the callback is a string containing the password. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_default_passwd_cb. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback.html deleted file mode 100644 index 57e7871..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::context::set_verify_callback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the callback used to verify peer certificates. -

-
template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback);
-  » more...
-
-template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback/overload1.html deleted file mode 100644 index d099ddf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback/overload1.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -ssl::context::set_verify_callback (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the callback used to verify peer certificates. -

-
template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback);
-
-

- This function is used to specify a callback function that will be called - by the implementation when it needs to verify a peer certificate. -

-
- - Parameters -
-
-

-
-
callback
-
-

- The function object to be used for verifying a certificate. The - function signature of the handler must be: -

-
bool verify_callback(
-  bool preverified, // True if the certificate passed pre-verification.
-  verify_context& ctx // The peer certificate and other context.
-);
-
-

- The return value of the callback is true if the certificate has - passed verification, false otherwise. -

-
-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback/overload2.html deleted file mode 100644 index 4b984e6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -ssl::context::set_verify_callback (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the callback used to verify peer certificates. -

-
template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback,
-    asio::error_code & ec);
-
-

- This function is used to specify a callback function that will be called - by the implementation when it needs to verify a peer certificate. -

-
- - Parameters -
-
-

-
-
callback
-
-

- The function object to be used for verifying a certificate. The - function signature of the handler must be: -

-
bool verify_callback(
-  bool preverified, // True if the certificate passed pre-verification.
-  verify_context& ctx // The peer certificate and other context.
-);
-
-

- The return value of the callback is true if the certificate has - passed verification, false otherwise. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth.html deleted file mode 100644 index 71ff28d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::set_verify_depth - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the peer verification depth. -

-
void set_verify_depth(
-    int depth);
-  » more...
-
-void set_verify_depth(
-    int depth,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth/overload1.html deleted file mode 100644 index c039bb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::context::set_verify_depth (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- 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. -

-
- - Parameters -
-
-

-
-
depth
-

- Maximum depth for the certificate chain verification that shall - be allowed. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_verify_depth. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth/overload2.html deleted file mode 100644 index f32b4cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::context::set_verify_depth (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the peer verification depth. -

-
void set_verify_depth(
-    int depth,
-    asio::error_code & ec);
-
-

- This function may be used to configure the maximum verification depth - allowed by the context. -

-
- - Parameters -
-
-

-
-
depth
-

- Maximum depth for the certificate chain verification that shall - be allowed. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_verify_depth. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode.html deleted file mode 100644 index 8ec86ca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::set_verify_mode - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the peer verification mode. -

-
void set_verify_mode(
-    verify_mode v);
-  » more...
-
-void set_verify_mode(
-    verify_mode v,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode/overload1.html deleted file mode 100644 index b312fe3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::context::set_verify_mode (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the peer verification mode. -

-
void set_verify_mode(
-    verify_mode v);
-
-

- This function may be used to configure the peer verification mode used - by the context. -

-
- - Parameters -
-
-

-
-
v
-

- A bitmask of peer verification modes. See ssl::verify_mode - for available values. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode/overload2.html deleted file mode 100644 index a99ac41..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::context::set_verify_mode (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the peer verification mode. -

-
void set_verify_mode(
-    verify_mode v,
-    asio::error_code & ec);
-
-

- This function may be used to configure the peer verification mode used - by the context. -

-
- - Parameters -
-
-

-
-
v
-

- A bitmask of peer verification modes. See ssl::verify_mode - for available values. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/single_dh_use.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/single_dh_use.html deleted file mode 100644 index 4017e8e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/single_dh_use.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context::single_dh_use - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Always - create a new key when using tmp_dh parameters. -

-
static const long single_dh_use = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate.html deleted file mode 100644 index cda9651..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::context::use_certificate - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - a certificate from a memory buffer. -

-
void use_certificate(
-    const const_buffer & certificate,
-    file_format format);
-  » more...
-
-void use_certificate(
-    const const_buffer & certificate,
-    file_format format,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate/overload1.html deleted file mode 100644 index a5e336c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate/overload1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -ssl::context::use_certificate (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- 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. -

-
- - Parameters -
-
-

-
-
certificate
-

- The buffer containing the certificate. -

-
format
-

- The certificate format (ASN.1 or PEM). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate or SSL_CTX_use_certificate_ASN1. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate/overload2.html deleted file mode 100644 index 693738c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate/overload2.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -ssl::context::use_certificate (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a certificate from a memory buffer. -

-
void use_certificate(
-    const const_buffer & certificate,
-    file_format format,
-    asio::error_code & ec);
-
-

- This function is used to load a certificate into the context from a buffer. -

-
- - Parameters -
-
-

-
-
certificate
-

- The buffer containing the certificate. -

-
format
-

- The certificate format (ASN.1 or PEM). -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate or SSL_CTX_use_certificate_ASN1. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain.html deleted file mode 100644 index ebc1f4f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::use_certificate_chain - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - a certificate chain from a memory buffer. -

-
void use_certificate_chain(
-    const const_buffer & chain);
-  » more...
-
-void use_certificate_chain(
-    const const_buffer & chain,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload1.html deleted file mode 100644 index 009fe6e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::context::use_certificate_chain (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- 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. -

-
- - Parameters -
-
-

-
-
chain
-

- The buffer containing the certificate chain. The certificate chain - must use the PEM format. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate and SSL_CTX_add_extra_chain_cert. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload2.html deleted file mode 100644 index d528e55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::context::use_certificate_chain (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a certificate chain from a memory buffer. -

-
void use_certificate_chain(
-    const const_buffer & chain,
-    asio::error_code & ec);
-
-

- This function is used to load a certificate chain into the context from - a buffer. -

-
- - Parameters -
-
-

-
-
chain
-

- The buffer containing the certificate chain. The certificate chain - must use the PEM format. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate and SSL_CTX_add_extra_chain_cert. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file.html deleted file mode 100644 index 8200810..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::use_certificate_chain_file - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - a certificate chain from a file. -

-
void use_certificate_chain_file(
-    const std::string & filename);
-  » more...
-
-void use_certificate_chain_file(
-    const std::string & filename,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload1.html deleted file mode 100644 index 67efacc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::context::use_certificate_chain_file (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a certificate chain from a file. -

-
void use_certificate_chain_file(
-    const std::string & filename);
-
-

- This function is used to load a certificate chain into the context from - a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the certificate. The file must - use the PEM format. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate_chain_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload2.html deleted file mode 100644 index ae96cc6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::context::use_certificate_chain_file (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a certificate chain from a file. -

-
void use_certificate_chain_file(
-    const std::string & filename,
-    asio::error_code & ec);
-
-

- This function is used to load a certificate chain into the context from - a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the certificate. The file must - use the PEM format. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate_chain_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file.html deleted file mode 100644 index 72fb0ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::context::use_certificate_file - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - a certificate from a file. -

-
void use_certificate_file(
-    const std::string & filename,
-    file_format format);
-  » more...
-
-void use_certificate_file(
-    const std::string & filename,
-    file_format format,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file/overload1.html deleted file mode 100644 index 139475c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file/overload1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -ssl::context::use_certificate_file (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a certificate from a file. -

-
void use_certificate_file(
-    const std::string & filename,
-    file_format format);
-
-

- This function is used to load a certificate into the context from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the certificate. -

-
format
-

- The file format (ASN.1 or PEM). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file/overload2.html deleted file mode 100644 index 80db98e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file/overload2.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -ssl::context::use_certificate_file (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a certificate from a file. -

-
void use_certificate_file(
-    const std::string & filename,
-    file_format format,
-    asio::error_code & ec);
-
-

- This function is used to load a certificate into the context from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the certificate. -

-
format
-

- The file format (ASN.1 or PEM). -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key.html deleted file mode 100644 index 3c2a797..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::context::use_private_key - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - a private key from a memory buffer. -

-
void use_private_key(
-    const const_buffer & private_key,
-    file_format format);
-  » more...
-
-void use_private_key(
-    const const_buffer & private_key,
-    file_format format,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key/overload1.html deleted file mode 100644 index 8d01270..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key/overload1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -ssl::context::use_private_key (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- 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. -

-
- - Parameters -
-
-

-
-
private_key
-

- The buffer containing the private key. -

-
format
-

- The private key format (ASN.1 or PEM). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_PrivateKey or SSL_CTX_use_PrivateKey_ASN1. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key/overload2.html deleted file mode 100644 index 7e0a744..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key/overload2.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -ssl::context::use_private_key (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a private key from a memory buffer. -

-
void use_private_key(
-    const const_buffer & private_key,
-    file_format format,
-    asio::error_code & ec);
-
-

- This function is used to load a private key into the context from a buffer. -

-
- - Parameters -
-
-

-
-
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. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_PrivateKey or SSL_CTX_use_PrivateKey_ASN1. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file.html deleted file mode 100644 index cde9333..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::context::use_private_key_file - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - a private key from a file. -

-
void use_private_key_file(
-    const std::string & filename,
-    file_format format);
-  » more...
-
-void use_private_key_file(
-    const std::string & filename,
-    file_format format,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file/overload1.html deleted file mode 100644 index b848535..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file/overload1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -ssl::context::use_private_key_file (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a private key from a file. -

-
void use_private_key_file(
-    const std::string & filename,
-    file_format format);
-
-

- This function is used to load a private key into the context from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the private key. -

-
format
-

- The file format (ASN.1 or PEM). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_PrivateKey_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file/overload2.html deleted file mode 100644 index 29d5e7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file/overload2.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -ssl::context::use_private_key_file (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a private key from a file. -

-
void use_private_key_file(
-    const std::string & filename,
-    file_format format,
-    asio::error_code & ec);
-
-

- This function is used to load a private key into the context from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the private key. -

-
format
-

- The file format (ASN.1 or PEM). -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_PrivateKey_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key.html deleted file mode 100644 index 1fd27ac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::context::use_rsa_private_key - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - an RSA private key from a memory buffer. -

-
void use_rsa_private_key(
-    const const_buffer & private_key,
-    file_format format);
-  » more...
-
-void use_rsa_private_key(
-    const const_buffer & private_key,
-    file_format format,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload1.html deleted file mode 100644 index 12e4531..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload1.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -ssl::context::use_rsa_private_key (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- 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. -

-
- - Parameters -
-
-

-
-
private_key
-

- The buffer containing the RSA private key. -

-
format
-

- The private key format (ASN.1 or PEM). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_RSAPrivateKey or SSL_CTX_use_RSAPrivateKey_ASN1. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload2.html deleted file mode 100644 index b35b7e5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload2.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -ssl::context::use_rsa_private_key (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use an RSA private key from a memory buffer. -

-
void use_rsa_private_key(
-    const const_buffer & private_key,
-    file_format format,
-    asio::error_code & ec);
-
-

- This function is used to load an RSA private key into the context from - a buffer. -

-
- - Parameters -
-
-

-
-
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. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_RSAPrivateKey or SSL_CTX_use_RSAPrivateKey_ASN1. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file.html deleted file mode 100644 index 23ab2e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::context::use_rsa_private_key_file - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - an RSA private key from a file. -

-
void use_rsa_private_key_file(
-    const std::string & filename,
-    file_format format);
-  » more...
-
-void use_rsa_private_key_file(
-    const std::string & filename,
-    file_format format,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload1.html deleted file mode 100644 index 85223b6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload1.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -ssl::context::use_rsa_private_key_file (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use an RSA private key from a file. -

-
void use_rsa_private_key_file(
-    const std::string & filename,
-    file_format format);
-
-

- This function is used to load an RSA private key into the context from - a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the RSA private key. -

-
format
-

- The file format (ASN.1 or PEM). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_RSAPrivateKey_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload2.html deleted file mode 100644 index 3607eec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload2.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -ssl::context::use_rsa_private_key_file (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use an RSA private key from a file. -

-
void use_rsa_private_key_file(
-    const std::string & filename,
-    file_format format,
-    asio::error_code & ec);
-
-

- This function is used to load an RSA private key into the context from - a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the RSA private key. -

-
format
-

- The file format (ASN.1 or PEM). -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_RSAPrivateKey_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh.html deleted file mode 100644 index eedf17f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::use_tmp_dh - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use the specified - memory buffer to obtain the temporary Diffie-Hellman parameters. -

-
void use_tmp_dh(
-    const const_buffer & dh);
-  » more...
-
-void use_tmp_dh(
-    const const_buffer & dh,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload1.html deleted file mode 100644 index e1f6dac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -ssl::context::use_tmp_dh (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- 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. -

-
- - Parameters -
-
-

-
-
dh
-

- The memory buffer containing the Diffie-Hellman parameters. The - buffer must use the PEM format. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_tmp_dh. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload2.html deleted file mode 100644 index c40cd75..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -ssl::context::use_tmp_dh (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use the specified memory buffer to obtain the temporary Diffie-Hellman - parameters. -

-
void use_tmp_dh(
-    const const_buffer & dh,
-    asio::error_code & ec);
-
-

- This function is used to load Diffie-Hellman parameters into the context - from a buffer. -

-
- - Parameters -
-
-

-
-
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. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_tmp_dh. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file.html deleted file mode 100644 index b295cbb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::use_tmp_dh_file - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - the specified file to obtain the temporary Diffie-Hellman parameters. -

-
void use_tmp_dh_file(
-    const std::string & filename);
-  » more...
-
-void use_tmp_dh_file(
-    const std::string & filename,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload1.html deleted file mode 100644 index d263112..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::context::use_tmp_dh_file (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use the specified file to obtain the temporary Diffie-Hellman parameters. -

-
void use_tmp_dh_file(
-    const std::string & filename);
-
-

- This function is used to load Diffie-Hellman parameters into the context - from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the Diffie-Hellman parameters. - The file must use the PEM format. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_tmp_dh. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload2.html deleted file mode 100644 index 2e7be46..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::context::use_tmp_dh_file (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use the specified file to obtain the temporary Diffie-Hellman parameters. -

-
void use_tmp_dh_file(
-    const std::string & filename,
-    asio::error_code & ec);
-
-

- This function is used to load Diffie-Hellman parameters into the context - from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the Diffie-Hellman parameters. - The file must use the PEM format. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_tmp_dh. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base.html deleted file mode 100644 index 91662df..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base.html +++ /dev/null @@ -1,293 +0,0 @@ - - - -ssl::context_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The ssl::context_base - class is used as a base for the basic_context class template so that we have - a common place to define various enums. -

-
class context_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- file_format -

-
-

- File format types. -

-
-

- method -

-
-

- Different methods supported by a context. -

-
-

- options -

-
-

- Bitmask type for SSL options. -

-
-

- password_purpose -

-
-

- Purpose of PEM password. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~context_base -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- default_workarounds -

-
-

- Implement various bug workarounds. -

-
-

- no_compression -

-
-

- Disable compression. Compression is disabled by default. -

-
-

- no_sslv2 -

-
-

- Disable SSL v2. -

-
-

- no_sslv3 -

-
-

- Disable SSL v3. -

-
-

- no_tlsv1 -

-
-

- Disable TLS v1. -

-
-

- no_tlsv1_1 -

-
-

- Disable TLS v1.1. -

-
-

- no_tlsv1_2 -

-
-

- Disable TLS v1.2. -

-
-

- no_tlsv1_3 -

-
-

- Disable TLS v1.3. -

-
-

- single_dh_use -

-
-

- Always create a new key when using tmp_dh parameters. -

-
-
- - Requirements -
-

- Header: asio/ssl/context_base.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/_context_base.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/_context_base.html deleted file mode 100644 index a8d157c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/_context_base.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::~context_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~context_base();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/default_workarounds.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/default_workarounds.html deleted file mode 100644 index e7d6d7d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/default_workarounds.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::default_workarounds - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Implement - various bug workarounds. -

-
static const long default_workarounds = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/file_format.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/file_format.html deleted file mode 100644 index 58a331b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/file_format.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ssl::context_base::file_format - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -File - format types. -

-
enum file_format
-
-

- - -

-
- - Values -
-
-

-
-
asn1
-

- ASN.1 file. -

-
pem
-

- PEM file. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/method.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/method.html deleted file mode 100644 index 01bbdb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/method.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -ssl::context_base::method - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Different - methods supported by a context. -

-
enum method
-
-

- - - - - - - - - - - - - - - - - - - - - - - - -

-
- - Values -
-
-

-
-
sslv2
-

- Generic SSL version 2. -

-
sslv2_client
-

- SSL version 2 client. -

-
sslv2_server
-

- SSL version 2 server. -

-
sslv3
-

- Generic SSL version 3. -

-
sslv3_client
-

- SSL version 3 client. -

-
sslv3_server
-

- SSL version 3 server. -

-
tlsv1
-

- Generic TLS version 1. -

-
tlsv1_client
-

- TLS version 1 client. -

-
tlsv1_server
-

- TLS version 1 server. -

-
sslv23
-

- Generic SSL/TLS. -

-
sslv23_client
-

- SSL/TLS client. -

-
sslv23_server
-

- 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. -

-
tlsv13
-

- Generic TLS version 1.3. -

-
tlsv13_client
-

- TLS version 1.3 client. -

-
tlsv13_server
-

- TLS version 1.3 server. -

-
tls
-

- Generic TLS. -

-
tls_client
-

- TLS client. -

-
tls_server
-

- TLS server. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_compression.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_compression.html deleted file mode 100644 index 67e5824..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_compression.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::no_compression - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - compression. Compression is disabled by default. -

-
static const long no_compression = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_sslv2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_sslv2.html deleted file mode 100644 index cc17d32..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_sslv2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::no_sslv2 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - SSL v2. -

-
static const long no_sslv2 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_sslv3.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_sslv3.html deleted file mode 100644 index 4919e7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_sslv3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::no_sslv3 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - SSL v3. -

-
static const long no_sslv3 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1.html deleted file mode 100644 index 33583bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::no_tlsv1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - TLS v1. -

-
static const long no_tlsv1 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_1.html deleted file mode 100644 index 659020c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::no_tlsv1_1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - TLS v1.1. -

-
static const long no_tlsv1_1 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_2.html deleted file mode 100644 index e3ffdbf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::no_tlsv1_2 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - TLS v1.2. -

-
static const long no_tlsv1_2 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_3.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_3.html deleted file mode 100644 index fd73388..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::no_tlsv1_3 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - TLS v1.3. -

-
static const long no_tlsv1_3 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/options.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/options.html deleted file mode 100644 index a9f63cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/options.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::context_base::options - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bitmask - type for SSL options. -

-
typedef long options;
-
-
- - Requirements -
-

- Header: asio/ssl/context_base.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/password_purpose.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/password_purpose.html deleted file mode 100644 index ac02d4b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/password_purpose.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ssl::context_base::password_purpose - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Purpose - of PEM password. -

-
enum password_purpose
-
-

- - -

-
- - Values -
-
-

-
-
for_reading
-

- The password is needed for reading/decryption. -

-
for_writing
-

- The password is needed for writing/encryption. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/single_dh_use.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/single_dh_use.html deleted file mode 100644 index 81062ff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/single_dh_use.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::single_dh_use - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Always - create a new key when using tmp_dh parameters. -

-
static const long single_dh_use = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__error__get_stream_category.html b/Sources/Vendor/asio/doc/asio/reference/ssl__error__get_stream_category.html deleted file mode 100644 index ae3638c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__error__get_stream_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ssl::error::get_stream_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const asio::error_category & get_stream_category();
-
-
- - Requirements -
-

- Header: asio/ssl/error.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__error__make_error_code.html b/Sources/Vendor/asio/doc/asio/reference/ssl__error__make_error_code.html deleted file mode 100644 index a48cb02..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__error__make_error_code.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::error::make_error_code - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
asio::error_code make_error_code(
-    stream_errors e);
-
-
- - Requirements -
-

- Header: asio/ssl/error.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__error__stream_category.html b/Sources/Vendor/asio/doc/asio/reference/ssl__error__stream_category.html deleted file mode 100644 index 4739c9d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__error__stream_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ssl::error::stream_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static const asio::error_category & stream_category = asio::ssl::error::get_stream_category();
-
-
- - Requirements -
-

- Header: asio/ssl/error.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__error__stream_errors.html b/Sources/Vendor/asio/doc/asio/reference/ssl__error__stream_errors.html deleted file mode 100644 index fe0d89c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__error__stream_errors.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -ssl::error::stream_errors - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum stream_errors
-
-

- -

-
- - Values -
-
-

-
-
stream_truncated
-

- The underlying stream closed before the ssl stream gracefully shut - down. -

-
-
-
- - Requirements -
-

- Header: asio/ssl/error.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification.html b/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification.html deleted file mode 100644 index d77c9a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification.html +++ /dev/null @@ -1,166 +0,0 @@ - - - -ssl::rfc2818_verification - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Verifies a certificate against a hostname according to the rules described - in RFC 2818. -

-
class rfc2818_verification
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- result_type -

-
-

- The type of the function object's result. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator() -

-
-

- Perform certificate verification. -

-
-

- rfc2818_verification -

-
-

- Constructor. -

-
-
- - Example -
-

- The following example shows how to synchronously open a secure connection - to a given host name: -

-
using asio::ip::tcp;
-namespace ssl = asio::ssl;
-typedef ssl::stream<tcp::socket> ssl_socket;
-
-// Create a context that uses the default paths for finding CA certificates.
-ssl::context ctx(ssl::context::sslv23);
-ctx.set_default_verify_paths();
-
-// Open a socket and connect it to the remote host.
-asio::io_context io_context;
-ssl_socket sock(io_context, ctx);
-tcp::resolver resolver(io_context);
-tcp::resolver::query query("host.name", "https");
-asio::connect(sock.lowest_layer(), resolver.resolve(query));
-sock.lowest_layer().set_option(tcp::no_delay(true));
-
-// Perform SSL handshake and verify the remote host's certificate.
-sock.set_verify_mode(ssl::verify_peer);
-sock.set_verify_callback(ssl::rfc2818_verification("host.name"));
-sock.handshake(ssl_socket::client);
-
-// ... read and write as normal ...
-
-
- - Requirements -
-

- Header: asio/ssl/rfc2818_verification.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/operator_lp__rp_.html b/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/operator_lp__rp_.html deleted file mode 100644 index e5e5e88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/operator_lp__rp_.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ssl::rfc2818_verification::operator() - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - certificate verification. -

-
bool operator()(
-    bool preverified,
-    verify_context & ctx) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/result_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/result_type.html deleted file mode 100644 index 05eda4b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/result_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::rfc2818_verification::result_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the function object's result. -

-
typedef bool result_type;
-
-
- - Requirements -
-

- Header: asio/ssl/rfc2818_verification.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/rfc2818_verification.html b/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/rfc2818_verification.html deleted file mode 100644 index 82f70ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/rfc2818_verification.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::rfc2818_verification::rfc2818_verification - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
rfc2818_verification(
-    const std::string & host);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream.html deleted file mode 100644 index efe13bb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream.html +++ /dev/null @@ -1,435 +0,0 @@ - - - -ssl::stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides stream-oriented functionality using SSL. -

-
template<
-    typename Stream>
-class stream :
-  public ssl::stream_base,
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- impl_struct -

-
-

- Structure for use with deprecated impl_type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- handshake_type -

-
-

- Different handshake types. -

-
-

- lowest_layer_type -

-
-

- The type of the lowest layer. -

-
-

- native_handle_type -

-
-

- The native handle type of the SSL stream. -

-
-

- next_layer_type -

-
-

- The type of the next layer. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_handshake -

-
-

- Start an asynchronous SSL handshake. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_shutdown -

-
-

- Asynchronously shut down SSL on the stream. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- handshake -

-
-

- Perform SSL handshaking. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the underlying implementation in the native type. -

-
-

- next_layer -

-
-

- Get a reference to the next layer. -

-
-

- read_some -

-
-

- Read some data from the stream. -

-
-

- set_verify_callback -

-
-

- Set the callback used to verify peer certificates. -

-
-

- set_verify_depth -

-
-

- Set the peer verification depth. -

-
-

- set_verify_mode -

-
-

- Set the peer verification mode. -

-
-

- shutdown -

-
-

- Shut down SSL on the stream. -

-
-

- stream -

-
-

- Construct a stream. -

-
-

- write_some -

-
-

- Write some data to the stream. -

-
-

- ~stream -

-
-

- Destructor. -

-
-

- The stream class template provides asynchronous and blocking stream-oriented - functionality using SSL. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. The application - must also ensure that all asynchronous operations are performed within the - same implicit or explicit strand. -

-
- - Example -
-

- To use the SSL stream template with an ip::tcp::socket, you - would write: -

-
asio::io_context io_context;
-asio::ssl::context ctx(asio::ssl::context::sslv23);
-asio::ssl::stream<asio:ip::tcp::socket> sock(io_context, ctx);
-
-
- - Requirements -
-

- Header: asio/ssl/stream.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/_stream.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/_stream.html deleted file mode 100644 index 7cef612..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/_stream.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::stream::~stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~stream();
-
-
- - Remarks -
-

- A stream object must not be destroyed while there are pending - asynchronous operations associated with it. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake.html deleted file mode 100644 index 9ccb01e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -ssl::stream::async_handshake - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous SSL handshake. -

-
template<
-    typename HandshakeHandler>
-DEDUCED async_handshake(
-    handshake_type type,
-    HandshakeHandler && handler);
-  » more...
-
-template<
-    typename ConstBufferSequence,
-    typename BufferedHandshakeHandler>
-DEDUCED async_handshake(
-    handshake_type type,
-    const ConstBufferSequence & buffers,
-    BufferedHandshakeHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake/overload1.html deleted file mode 100644 index 81b6162..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake/overload1.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -ssl::stream::async_handshake (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous SSL handshake. -

-
template<
-    typename HandshakeHandler>
-DEDUCED async_handshake(
-    handshake_type type,
-    HandshakeHandler && handler);
-
-

- This function is used to asynchronously perform an SSL handshake on the - stream. This function call always returns immediately. -

-
- - Parameters -
-
-

-
-
type
-

- The type of handshaking to be performed, i.e. as a client or as - a server. -

-
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 asio::error_code& error // Result of operation.
-);
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake/overload2.html deleted file mode 100644 index 8354893..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake/overload2.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -ssl::stream::async_handshake (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous SSL handshake. -

-
template<
-    typename ConstBufferSequence,
-    typename BufferedHandshakeHandler>
-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. -

-
- - Parameters -
-
-

-
-
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 asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred // Amount of buffers used in handshake.
-);
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_read_some.html deleted file mode 100644 index 8f38be0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_read_some.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -ssl::stream::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read one or more bytes of data - from the stream. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- The buffers into which the data will be read. 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 read operation completes. Copies - will be made of the handler as required. The equivalent function - signature of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes read.
-);
-
-

-

-
-
-
-
- - Remarks -
-

- The async_read_some operation may not read all of the requested number - of bytes. Consider using the async_read - function if you need to ensure that the requested amount of data is read - before the asynchronous operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_shutdown.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_shutdown.html deleted file mode 100644 index e964369..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_shutdown.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::stream::async_shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Asynchronously - shut down SSL on the stream. -

-
template<
-    typename ShutdownHandler>
-DEDUCED async_shutdown(
-    ShutdownHandler && handler);
-
-

- This function is used to asynchronously shut down SSL on the stream. This - function call always returns immediately. -

-
- - Parameters -
-
-

-
-
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 asio::error_code& error // Result of operation.
-);
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_write_some.html deleted file mode 100644 index 54e5549..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_write_some.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -ssl::stream::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write one or more bytes of data - to the stream. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- The data to be written to the stream. 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 write operation completes. Copies - will be made of the handler as required. The equivalent function - signature of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes written.
-);
-
-

-

-
-
-
-
- - Remarks -
-

- The async_write_some operation may not transmit all of the data to the - peer. Consider using the async_write - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/executor_type.html deleted file mode 100644 index aec9593..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::stream::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - of the executor associated with the object. -

-
typedef lowest_layer_type::executor_type executor_type;
-
-
- - Requirements -
-

- Header: asio/ssl/stream.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_executor.html deleted file mode 100644 index e5f9b43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_executor.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::stream::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the executor - associated with the object. -

-
executor_type get_executor();
-
-

- This function may be used to obtain the executor object that the stream - uses to dispatch handlers for asynchronous operations. -

-
- - Return Value -
-

- A copy of the executor that stream will use to dispatch handlers. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_io_context.html deleted file mode 100644 index 20b84b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_io_context.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ssl::stream::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_io_service.html deleted file mode 100644 index edba506..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_io_service.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ssl::stream::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake.html deleted file mode 100644 index 92785e6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ssl::stream::handshake - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform SSL handshaking. -

-
void handshake(
-    handshake_type type);
-  » more...
-
-void handshake(
-    handshake_type type,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-void handshake(
-    handshake_type type,
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-void handshake(
-    handshake_type type,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload1.html deleted file mode 100644 index 461cf2f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload1.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -ssl::stream::handshake (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform SSL handshaking. -

-
void handshake(
-    handshake_type type);
-
-

- This function is used to perform SSL handshaking on the stream. The function - call will block until handshaking is complete or an error occurs. -

-
- - Parameters -
-
-

-
-
type
-

- The type of handshaking to be performed, i.e. as a client or as - a server. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload2.html deleted file mode 100644 index f06ea40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload2.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -ssl::stream::handshake (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform SSL handshaking. -

-
void handshake(
-    handshake_type type,
-    asio::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. -

-
- - Parameters -
-
-

-
-
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. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload3.html deleted file mode 100644 index 2b6358b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload3.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::stream::handshake (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform SSL handshaking. -

-
template<
-    typename 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. -

-
- - Parameters -
-
-

-
-
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. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload4.html deleted file mode 100644 index fe478bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload4.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::stream::handshake (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform SSL handshaking. -

-
template<
-    typename ConstBufferSequence>
-void handshake(
-    handshake_type type,
-    const ConstBufferSequence & buffers,
-    asio::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. -

-
- - Parameters -
-
-

-
-
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. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake_type.html deleted file mode 100644 index 3e7ad0e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake_type.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ssl::stream::handshake_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Different - handshake types. -

-
enum handshake_type
-
-

- - -

-
- - Values -
-
-

-
-
client
-

- Perform handshaking as a client. -

-
server
-

- Perform handshaking as a server. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer.html deleted file mode 100644 index 735a74e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ssl::stream::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a reference - to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer/overload1.html deleted file mode 100644 index 66ed2a2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer/overload1.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ssl::stream::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of stream - layers. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of stream layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer/overload2.html deleted file mode 100644 index 6c24d77..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer/overload2.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ssl::stream::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a reference to the lowest layer in a stack of stream - layers. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of stream layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer_type.html deleted file mode 100644 index 322bcd1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::stream::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the lowest layer. -

-
typedef next_layer_type::lowest_layer_type lowest_layer_type;
-
-
- - Requirements -
-

- Header: asio/ssl/stream.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/native_handle.html deleted file mode 100644 index 9078738..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/native_handle.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -ssl::stream::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - underlying implementation in the native type. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying implementation of the - context. This is intended to allow access to context functionality that - is not otherwise provided. -

-
- - Example -
-

- The native_handle() function returns a pointer of type SSL* - that is suitable for passing to functions such as SSL_get_verify_result - and SSL_get_peer_certificate: -

-
asio::ssl::stream<asio:ip::tcp::socket> sock(io_context, ctx);
-
-// ... establish connection and perform handshake ...
-
-if (X509* cert = SSL_get_peer_certificate(sock.native_handle()))
-{
-  if (SSL_get_verify_result(sock.native_handle()) == X509_V_OK)
-  {
-    // ...
-  }
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/native_handle_type.html deleted file mode 100644 index 96d38a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::stream::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native handle type of the SSL stream. -

-
typedef SSL * native_handle_type;
-
-
- - Requirements -
-

- Header: asio/ssl/stream.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer.html deleted file mode 100644 index d9f1e66..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ssl::stream::next_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a reference - to the next layer. -

-
const next_layer_type & next_layer() const;
-  » more...
-
-next_layer_type & next_layer();
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer/overload1.html deleted file mode 100644 index 8b3d822..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer/overload1.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ssl::stream::next_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the next layer. -

-
const next_layer_type & next_layer() const;
-
-

- This function returns a reference to the next layer in a stack of stream - layers. -

-
- - Return - Value -
-

- A reference to the next layer in the stack of stream layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer/overload2.html deleted file mode 100644 index a9c379d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer/overload2.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ssl::stream::next_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the next layer. -

-
next_layer_type & next_layer();
-
-

- This function returns a reference to the next layer in a stack of stream - layers. -

-
- - Return - Value -
-

- A reference to the next layer in the stack of stream layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer_type.html deleted file mode 100644 index d559df9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::stream::next_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the next layer. -

-
typedef remove_reference< Stream >::type next_layer_type;
-
-
- - Requirements -
-

- Header: asio/ssl/stream.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some.html deleted file mode 100644 index abf97b6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::stream::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read some data - from the stream. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some/overload1.html deleted file mode 100644 index ec3472f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some/overload1.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -ssl::stream::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to read data from the stream. The function call - will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- The buffers into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes read. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some/overload2.html deleted file mode 100644 index 8a9f2c7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -ssl::stream::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to read data from the stream. The function call - will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- The buffers into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback.html deleted file mode 100644 index 92a59f3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::stream::set_verify_callback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the callback used to verify peer certificates. -

-
template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback);
-  » more...
-
-template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload1.html deleted file mode 100644 index 59b7109..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload1.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -ssl::stream::set_verify_callback (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the callback used to verify peer certificates. -

-
template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback);
-
-

- This function is used to specify a callback function that will be called - by the implementation when it needs to verify a peer certificate. -

-
- - Parameters -
-
-

-
-
callback
-
-

- The function object to be used for verifying a certificate. The - function signature of the handler must be: -

-
bool verify_callback(
-  bool preverified, // True if the certificate passed pre-verification.
-  verify_context& ctx // The peer certificate and other context.
-);
-
-

- The return value of the callback is true if the certificate has - passed verification, false otherwise. -

-
-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload2.html deleted file mode 100644 index eb7ae8b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -ssl::stream::set_verify_callback (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the callback used to verify peer certificates. -

-
template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback,
-    asio::error_code & ec);
-
-

- This function is used to specify a callback function that will be called - by the implementation when it needs to verify a peer certificate. -

-
- - Parameters -
-
-

-
-
callback
-
-

- The function object to be used for verifying a certificate. The - function signature of the handler must be: -

-
bool verify_callback(
-  bool preverified, // True if the certificate passed pre-verification.
-  verify_context& ctx // The peer certificate and other context.
-);
-
-

- The return value of the callback is true if the certificate has - passed verification, false otherwise. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth.html deleted file mode 100644 index bbc1388..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::stream::set_verify_depth - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the peer verification depth. -

-
void set_verify_depth(
-    int depth);
-  » more...
-
-void set_verify_depth(
-    int depth,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload1.html deleted file mode 100644 index b0a511f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::stream::set_verify_depth (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- 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. -

-
- - Parameters -
-
-

-
-
depth
-

- Maximum depth for the certificate chain verification that shall - be allowed. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_set_verify_depth. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload2.html deleted file mode 100644 index d2a78aa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::stream::set_verify_depth (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the peer verification depth. -

-
void set_verify_depth(
-    int depth,
-    asio::error_code & ec);
-
-

- This function may be used to configure the maximum verification depth - allowed by the stream. -

-
- - Parameters -
-
-

-
-
depth
-

- Maximum depth for the certificate chain verification that shall - be allowed. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_set_verify_depth. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode.html deleted file mode 100644 index 60f614d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::stream::set_verify_mode - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the peer verification mode. -

-
void set_verify_mode(
-    verify_mode v);
-  » more...
-
-void set_verify_mode(
-    verify_mode v,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload1.html deleted file mode 100644 index 1b95d39..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -ssl::stream::set_verify_mode (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the peer verification mode. -

-
void set_verify_mode(
-    verify_mode v);
-
-

- This function may be used to configure the peer verification mode used - by the stream. The new mode will override the mode inherited from the - context. -

-
- - Parameters -
-
-

-
-
v
-

- A bitmask of peer verification modes. See ssl::verify_mode - for available values. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload2.html deleted file mode 100644 index bdca5d0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -ssl::stream::set_verify_mode (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the peer verification mode. -

-
void set_verify_mode(
-    verify_mode v,
-    asio::error_code & ec);
-
-

- This function may be used to configure the peer verification mode used - by the stream. The new mode will override the mode inherited from the - context. -

-
- - Parameters -
-
-

-
-
v
-

- A bitmask of peer verification modes. See ssl::verify_mode - for available values. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown.html deleted file mode 100644 index 75e1bb6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ssl::stream::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Shut down SSL on - the stream. -

-
void shutdown();
-  » more...
-
-void shutdown(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown/overload1.html deleted file mode 100644 index c4b101f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -ssl::stream::shutdown (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Shut down SSL on the stream. -

-
void shutdown();
-
-

- This function is used to shut down SSL on the stream. The function call - will block until SSL has been shut down or an error occurs. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown/overload2.html deleted file mode 100644 index ec7eeaf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown/overload2.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ssl::stream::shutdown (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Shut down SSL on the stream. -

-
void shutdown(
-    asio::error_code & ec);
-
-

- This function is used to shut down SSL on the stream. The function call - will block until SSL has been shut down or an error occurs. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/stream.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/stream.html deleted file mode 100644 index f324d8a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/stream.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -ssl::stream::stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct a stream. -

-
template<
-    typename Arg>
-stream(
-    Arg && arg,
-    context & ctx);
-
-

- This constructor creates a stream and initialises the underlying stream - object. -

-
- - Parameters -
-
-

-
-
arg
-

- The argument to be passed to initialise the underlying stream. -

-
ctx
-

- The SSL context to be used for the stream. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some.html deleted file mode 100644 index 3096723..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::stream::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write some data - to the stream. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some/overload1.html deleted file mode 100644 index 973ff33..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some/overload1.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -ssl::stream::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the stream. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to write data on the stream. The function call - will block until one or more bytes of data has been written successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- The data to be written. -

-
-
-
- - Return - Value -
-

- The number of bytes written. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some/overload2.html deleted file mode 100644 index 5c2c26e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -ssl::stream::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the stream. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to write data on the stream. The function call - will block until one or more bytes of data has been written successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- The data to be written to the stream. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream__impl_struct.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream__impl_struct.html deleted file mode 100644 index 0b67665..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream__impl_struct.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -ssl::stream::impl_struct - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Structure for use with deprecated impl_type. -

-
struct impl_struct
-
-
- - Data Members -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ssl -

-
-
-
- - Requirements -
-

- Header: asio/ssl/stream.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream__impl_struct/ssl.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream__impl_struct/ssl.html deleted file mode 100644 index 8d0ad7f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream__impl_struct/ssl.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -ssl::stream::impl_struct::ssl - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
SSL * ssl;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base.html deleted file mode 100644 index cfe28ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base.html +++ /dev/null @@ -1,122 +0,0 @@ - - - -ssl::stream_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The ssl::stream_base - class is used as a base for the ssl::stream - class template so that we have a common place to define various enums. -

-
class stream_base
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- handshake_type -

-
-

- Different handshake types. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~stream_base -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Requirements -
-

- Header: asio/ssl/stream_base.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base/_stream_base.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base/_stream_base.html deleted file mode 100644 index a5cbf6e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base/_stream_base.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::stream_base::~stream_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~stream_base();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base/handshake_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base/handshake_type.html deleted file mode 100644 index 7df9259..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base/handshake_type.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ssl::stream_base::handshake_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Different - handshake types. -

-
enum handshake_type
-
-

- - -

-
- - Values -
-
-

-
-
client
-

- Perform handshaking as a client. -

-
server
-

- Perform handshaking as a server. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_client_once.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_client_once.html deleted file mode 100644 index 5dbb133..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_client_once.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::verify_client_once - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Do not request - client certificate on renegotiation. Ignored unless ssl::verify_peer - is set. -

-
const int verify_client_once = implementation_defined;
-
-
- - Requirements -
-

- Header: asio/ssl/verify_mode.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context.html deleted file mode 100644 index 8183615..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -ssl::verify_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A simple wrapper around the X509_STORE_CTX type, used during verification - of a peer certificate. -

-
class verify_context :
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- native_handle_type -

-
-

- The native handle type of the verification context. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- native_handle -

-
-

- Get the underlying implementation in the native type. -

-
-

- verify_context -

-
-

- Constructor. -

-
-
- - Remarks -
-

- The ssl::verify_context - does not own the underlying X509_STORE_CTX object. -

-
- - Requirements -
-

- Header: asio/ssl/verify_context.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/native_handle.html deleted file mode 100644 index 73682b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ssl::verify_context::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the underlying implementation in the native type. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying implementation of the - context. This is intended to allow access to context functionality that - is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/native_handle_type.html deleted file mode 100644 index 5d741ff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::verify_context::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native handle type of the verification context. -

-
typedef X509_STORE_CTX * native_handle_type;
-
-
- - Requirements -
-

- Header: asio/ssl/verify_context.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/verify_context.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/verify_context.html deleted file mode 100644 index 7e835c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/verify_context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::verify_context::verify_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
verify_context(
-    native_handle_type handle);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_fail_if_no_peer_cert.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_fail_if_no_peer_cert.html deleted file mode 100644 index 4204114..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_fail_if_no_peer_cert.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::verify_fail_if_no_peer_cert - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Fail - verification if the peer has no certificate. Ignored unless ssl::verify_peer - is set. -

-
const int verify_fail_if_no_peer_cert = implementation_defined;
-
-
- - Requirements -
-

- Header: asio/ssl/verify_mode.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_mode.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_mode.html deleted file mode 100644 index a8906fb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_mode.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -ssl::verify_mode - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bitmask type for peer verification. -

-
typedef int verify_mode;
-
-

- Possible values are: -

- -
- - Requirements -
-

- Header: asio/ssl/verify_mode.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_none.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_none.html deleted file mode 100644 index a5ca5d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_none.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::verify_none - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -No verification. -

-
const int verify_none = implementation_defined;
-
-
- - Requirements -
-

- Header: asio/ssl/verify_mode.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_peer.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_peer.html deleted file mode 100644 index 57ef37d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_peer.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::verify_peer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Verify the peer. -

-
const int verify_peer = implementation_defined;
-
-
- - Requirements -
-

- Header: asio/ssl/verify_mode.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/steady_timer.html b/Sources/Vendor/asio/doc/asio/reference/steady_timer.html deleted file mode 100644 index a7228f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/steady_timer.html +++ /dev/null @@ -1,468 +0,0 @@ - - - -steady_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Typedef for a timer based on the steady - clock. -

-
typedef basic_waitable_timer< chrono::steady_clock > steady_timer;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type of the clock. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- time_point -

-
-

- The time point type of the clock. -

-
-

- traits_type -

-
-

- The wait traits type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the timer. -

-
-

- basic_waitable_timer -

-
-

- Constructor.

Constructor to set a particular expiry - time as an absolute time.

Constructor to set a particular - expiry time relative to now.

Move-construct a basic_waitable_timer - from another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancel - any asynchronous operations that are waiting on the timer. -

-
-

- cancel_one -

-
-

- Cancels one asynchronous operation that is waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancels - one asynchronous operation that is waiting on the timer. -

-
-

- expires_after -

-
-

- Set the timer's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time as an absolute - time.

Set the timer's expiry time as an absolute - time.

(Deprecated: Use non-error_code overload.) - Set the timer's expiry time as an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time relative - to now.

(Deprecated: Use expires_after().) Set the - timer's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the timer's expiry time as an absolute time. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_waitable_timer from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the timer. -

-
-

- ~basic_waitable_timer -

-
-

- Destroys the timer. -

-
-

- The basic_waitable_timer - class template provides the ability to perform a blocking or asynchronous - wait for a timer to expire. -

-

- 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 one of the steady_timer, - system_timer - or high_resolution_timer - typedefs. -

-
- - Remarks -
-

- This waitable timer functionality is for use with the C++11 standard library's - <chrono> facility, or with the Boost.Chrono library. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Examples -
-

- Performing a blocking wait (C++11): -

-
// Construct a timer without setting an expiry time.
-asio::steady_timer timer(io_context);
-
-// Set an expiry time relative to now.
-timer.expires_after(std::chrono::seconds(5));
-
-// Wait for the timer to expire.
-timer.wait();
-
-

- Performing an asynchronous wait (C++11): -

-
void handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Timer expired.
-  }
-}
-
-...
-
-// Construct a timer with an absolute expiry time.
-asio::steady_timer timer(io_context,
-    std::chrono::steady_clock::now() + std::chrono::seconds(60));
-
-// Start an asynchronous wait.
-timer.async_wait(handler);
-
-
- - Changing - an active waitable timer's expiry time -
-

- Changing the expiry time of a timer while there are pending asynchronous - waits causes those wait operations to be cancelled. To ensure that the action - associated with the timer is performed only once, use something like this: - used: -

-
void on_some_event()
-{
-  if (my_timer.expires_after(seconds(5)) > 0)
-  {
-    // We managed to cancel the timer. Start new asynchronous wait.
-    my_timer.async_wait(on_timeout);
-  }
-  else
-  {
-    // Too late, timer has already expired!
-  }
-}
-
-void on_timeout(const asio::error_code& e)
-{
-  if (e != asio::error::operation_aborted)
-  {
-    // Timer was not cancelled, take necessary action.
-  }
-}
-
-
    -
  • - The asio::basic_waitable_timer::expires_after() function - cancels any pending asynchronous waits, and returns the number of asynchronous - waits that were cancelled. If it returns 0 then you were too late and - the wait handler has already been executed, or will soon be executed. - If it returns 1 then the wait handler was successfully cancelled. -
  • -
  • - If a wait handler is cancelled, the error_code - passed to it contains the value asio::error::operation_aborted. -
  • -
-

- This typedef uses the C++11 <chrono> standard library - facility, if available. Otherwise, it may use the Boost.Chrono library. To - explicitly utilise Boost.Chrono, use the basic_waitable_timer - template directly: -

-
typedef basic_waitable_timer<boost::chrono::steady_clock> timer;
-
-
- - Requirements -
-

- Header: asio/steady_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand.html b/Sources/Vendor/asio/doc/asio/reference/strand.html deleted file mode 100644 index bfe12fe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand.html +++ /dev/null @@ -1,297 +0,0 @@ - - - -strand - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-strand -

-

- Provides serialised function invocation for any executor type. -

-
template<
-    typename Executor>
-class strand
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- inner_executor_type -

-
-

- The type of the underlying executor. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the strand to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the strand to invoke the given function object. -

-
-

- get_inner_executor -

-
-

- Obtain the underlying executor. -

-
-

- on_work_finished -

-
-

- Inform the strand that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the strand that it has some outstanding work to do. -

-
-

- operator= -

-
-

- Assignment operator.

Converting assignment operator. -

Move assignment operator.

Converting - move assignment operator. -

-
-

- post -

-
-

- Request the strand to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the strand is running in the current thread. -

-
-

- strand -

-
-

- Default constructor.

Construct a strand for the specified - executor.

Copy constructor.

Converting - constructor.

Move constructor.

Converting - move constructor. -

-
-

- ~strand -

-
-

- Destructor. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two strands for inequality. -

-
-

- operator== -

-
-

- Compare two strands for equality. -

-
-
- - Requirements -
-

- Header: asio/strand.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/_strand.html b/Sources/Vendor/asio/doc/asio/reference/strand/_strand.html deleted file mode 100644 index 107058d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/_strand.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -strand::~strand - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~strand();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/context.html b/Sources/Vendor/asio/doc/asio/reference/strand/context.html deleted file mode 100644 index 5e41212..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -strand::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the underlying execution - context. -

-
execution_context & context() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/defer.html b/Sources/Vendor/asio/doc/asio/reference/strand/defer.html deleted file mode 100644 index adfeeba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/defer.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -strand::defer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the strand to invoke the - given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void defer(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object will never be executed inside this function. - Instead, it will be scheduled by the underlying executor's defer function. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/strand/dispatch.html deleted file mode 100644 index f90cccc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/dispatch.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -strand::dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the strand to invoke - the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void dispatch(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the strand to execute the given function object - on its underlying executor. The function object will be executed inside - this function if the strand is not otherwise busy and if the underlying - executor's dispatch() function is also able to execute the - function before returning. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/get_inner_executor.html b/Sources/Vendor/asio/doc/asio/reference/strand/get_inner_executor.html deleted file mode 100644 index e2ce7ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/get_inner_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -strand::get_inner_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the underlying executor. -

-
inner_executor_type get_inner_executor() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/inner_executor_type.html b/Sources/Vendor/asio/doc/asio/reference/strand/inner_executor_type.html deleted file mode 100644 index 9a22a63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/inner_executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -strand::inner_executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - of the underlying executor. -

-
typedef Executor inner_executor_type;
-
-
- - Requirements -
-

- Header: asio/strand.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/on_work_finished.html b/Sources/Vendor/asio/doc/asio/reference/strand/on_work_finished.html deleted file mode 100644 index 94fe4c6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/on_work_finished.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -strand::on_work_finished - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform the - strand that some work is no longer outstanding. -

-
void on_work_finished() const;
-
-

- The strand delegates this call to its underlying executor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/on_work_started.html b/Sources/Vendor/asio/doc/asio/reference/strand/on_work_started.html deleted file mode 100644 index b00d5cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/on_work_started.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -strand::on_work_started - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform the strand - that it has some outstanding work to do. -

-
void on_work_started() const;
-
-

- The strand delegates this call to its underlying executor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_.html deleted file mode 100644 index 1f27c49..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -strand::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment operator. -

-
strand & operator=(
-    const strand & other);
-  » more...
-
-

- Converting assignment operator. -

-
template<
-    class OtherExecutor>
-strand & operator=(
-    const strand< OtherExecutor > & other);
-  » more...
-
-

- Move assignment operator. -

-
strand & operator=(
-    strand && other);
-  » more...
-
-

- Converting move assignment operator. -

-
template<
-    class OtherExecutor>
-strand & operator=(
-    const strand< OtherExecutor > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload1.html deleted file mode 100644 index ac814f8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -strand::operator= (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assignment operator. -

-
strand & operator=(
-    const strand & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload2.html deleted file mode 100644 index 9d076a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload2.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -strand::operator= (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Converting assignment operator. -

-
template<
-    class OtherExecutor>
-strand & operator=(
-    const strand< OtherExecutor > & other);
-
-

- This assignment operator is only valid if the OtherExecutor - type is convertible to Executor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload3.html b/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload3.html deleted file mode 100644 index 30b773a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -strand::operator= (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move assignment operator. -

-
strand & operator=(
-    strand && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload4.html b/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload4.html deleted file mode 100644 index 7ca6424..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload4.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -strand::operator= (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Converting move assignment operator. -

-
template<
-    class OtherExecutor>
-strand & operator=(
-    const strand< OtherExecutor > && other);
-
-

- This assignment operator is only valid if the OtherExecutor - type is convertible to Executor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq__eq_.html deleted file mode 100644 index 51c0929..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq__eq_.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -strand::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two strands - for equality. -

-
friend bool operator==(
-    const strand & a,
-    const strand & b);
-
-

- Two strands are equal if they refer to the same ordered, non-concurrent - state. -

-
- - Requirements -
-

- Header: asio/strand.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/strand/operator_not__eq_.html deleted file mode 100644 index 3a30b38..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/operator_not__eq_.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -strand::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two strands - for inequality. -

-
friend bool operator!=(
-    const strand & a,
-    const strand & b);
-
-

- Two strands are equal if they refer to the same ordered, non-concurrent - state. -

-
- - Requirements -
-

- Header: asio/strand.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/post.html b/Sources/Vendor/asio/doc/asio/reference/strand/post.html deleted file mode 100644 index 472dcbd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/post.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -strand::post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the strand to invoke the given - function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void post(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object will never be executed inside this function. - Instead, it will be scheduled by the underlying executor's defer function. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/running_in_this_thread.html b/Sources/Vendor/asio/doc/asio/reference/strand/running_in_this_thread.html deleted file mode 100644 index c00108b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/running_in_this_thread.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -strand::running_in_this_thread - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the strand is running in the current thread. -

-
bool running_in_this_thread() const;
-
-
- - Return - Value -
-

- true if the current thread is executing a function that was - submitted to the strand using post(), dispatch() - or defer(). Otherwise returns false. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/strand.html b/Sources/Vendor/asio/doc/asio/reference/strand/strand.html deleted file mode 100644 index 6a6c2c3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/strand.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -strand::strand - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default constructor. -

-
strand();
-  » more...
-
-

- Construct a strand for the specified executor. -

-
explicit strand(
-    const Executor & e);
-  » more...
-
-

- Copy constructor. -

-
strand(
-    const strand & other);
-  » more...
-
-

- Converting constructor. -

-
template<
-    class OtherExecutor>
-strand(
-    const strand< OtherExecutor > & other);
-  » more...
-
-

- Move constructor. -

-
strand(
-    strand && other);
-  » more...
-
-

- Converting move constructor. -

-
template<
-    class OtherExecutor>
-strand(
-    strand< OtherExecutor > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload1.html b/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload1.html deleted file mode 100644 index 0965d83..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -strand::strand (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
strand();
-
-

- This constructor is only valid if the underlying executor type is default - constructible. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload2.html b/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload2.html deleted file mode 100644 index 569debe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -strand::strand (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a strand for the specified executor. -

-
strand(
-    const Executor & e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload3.html b/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload3.html deleted file mode 100644 index 43a2739..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -strand::strand (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
strand(
-    const strand & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload4.html b/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload4.html deleted file mode 100644 index d79f96e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload4.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -strand::strand (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Converting constructor. -

-
template<
-    class OtherExecutor>
-strand(
-    const strand< OtherExecutor > & other);
-
-

- This constructor is only valid if the OtherExecutor type - is convertible to Executor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload5.html b/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload5.html deleted file mode 100644 index 36b48e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload5.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -strand::strand (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
strand(
-    strand && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload6.html b/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload6.html deleted file mode 100644 index e25ee63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload6.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -strand::strand (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Converting move constructor. -

-
template<
-    class OtherExecutor>
-strand(
-    strand< OtherExecutor > && other);
-
-

- This constructor is only valid if the OtherExecutor type - is convertible to Executor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/streambuf.html b/Sources/Vendor/asio/doc/asio/reference/streambuf.html deleted file mode 100644 index 9dacf95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/streambuf.html +++ /dev/null @@ -1,361 +0,0 @@ - - - -streambuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Typedef for the typical usage of basic_streambuf. -

-
typedef basic_streambuf streambuf;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffers_type -

-
-

- The type used to represent the input sequence as a list of buffers. -

-
-

- mutable_buffers_type -

-
-

- The type used to represent the output sequence as a list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_streambuf -

-
-

- Construct a basic_streambuf object. -

-
-

- capacity -

-
-

- Get the current capacity of the basic_streambuf. -

-
-

- commit -

-
-

- Move characters from the output sequence to the input sequence. -

-
-

- consume -

-
-

- Remove characters from the input sequence. -

-
-

- data -

-
-

- Get a list of buffers that represents the input sequence. -

-
-

- max_size -

-
-

- Get the maximum size of the basic_streambuf. -

-
-

- prepare -

-
-

- Get a list of buffers that represents the output sequence, with - the given size. -

-
-

- size -

-
-

- Get the size of the input sequence. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- overflow -

-
-

- Override std::streambuf behaviour. -

-
-

- reserve -

-
-
-

- underflow -

-
-

- Override std::streambuf behaviour. -

-
-

- The basic_streambuf class is derived from std::streambuf - to associate the streambuf's input and output sequences with one or more - character arrays. These character arrays are internal to the basic_streambuf - object, but direct access to the array elements is provided to permit them - to be used efficiently with I/O operations. Characters written to the output - sequence of a basic_streambuf object are appended to the input - sequence of the same object. -

-

- The basic_streambuf class's public interface is intended to - permit the following implementation strategies: -

-
    -
  • - A single contiguous character array, which is reallocated as necessary - to accommodate changes in the size of the character sequence. This is - the implementation approach currently used in Asio. -
  • -
  • - A sequence of one or more character arrays, where each array is of the - same size. Additional character array objects are appended to the sequence - to accommodate changes in the size of the character sequence. -
  • -
  • - A sequence of one or more character arrays of varying sizes. Additional - character array objects are appended to the sequence to accommodate changes - in the size of the character sequence. -
  • -
-

- The constructor for basic_streambuf - accepts a size_t argument specifying the maximum of the sum - of the sizes of the input sequence and output sequence. During the lifetime - of the basic_streambuf object, the following invariant holds: -

-
size() <= max_size()
-
-

- Any member function that would, if successful, cause the invariant to be - violated shall throw an exception of class std::length_error. -

-

- The constructor for basic_streambuf takes an Allocator argument. - A copy of this argument is used for any memory allocation performed, by the - constructor and by all member functions, during the lifetime of each basic_streambuf - object. -

-
- - Examples -
-

- Writing directly from an streambuf to a socket: -

-
asio::streambuf b;
-std::ostream os(&b);
-os << "Hello, World!\n";
-
-// try sending some data in input sequence
-size_t n = sock.send(b.data());
-
-b.consume(n); // sent data is removed from input sequence
-
-

- Reading from a socket directly into a streambuf: -

-
asio::streambuf b;
-
-// reserve 512 bytes in output sequence
-asio::streambuf::mutable_buffers_type bufs = b.prepare(512);
-
-size_t n = sock.receive(bufs);
-
-// received data is "committed" from output sequence to input sequence
-b.commit(n);
-
-std::istream is(&b);
-std::string s;
-is >> s;
-
-
- - Requirements -
-

- Header: asio/streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/synchronous_socket_operations.html b/Sources/Vendor/asio/doc/asio/reference/synchronous_socket_operations.html deleted file mode 100644 index af41960..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/synchronous_socket_operations.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Requirements on synchronous socket operations - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In this section, synchronous socket operations are those - member functions specified as two overloads, with and without an argument - of type error_code&: -

-
R f(A1 a1, A2 a2, ..., AN aN);
-R f(A1 a1, A2 a2, ..., AN aN, error_code& ec);
-
-

- For an object s, the conditions under which its synchronous - socket operations may block the calling thread (C++Std [defns.block]) are - determined as follows. -

-

- If: -

-

- — s.non_blocking() == true, -

-

- — the synchronous socket operation is specified in terms of a POSIX - function other than poll(), -

-

- — that POSIX function lists EWOULDBLOCK or - EAGAIN in its failure conditions, and -

-

- — the effects of the operation cannot be established immediately -

-

- then the synchronous socket operation shall not block the calling thread. - [Note: And the effects of the operation are not established. - —end note] -

-

- Otherwise, the synchronous socket operation shall block the calling thread - until the effects are established. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_category.html b/Sources/Vendor/asio/doc/asio/reference/system_category.html deleted file mode 100644 index a2c81e4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_category.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -system_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Returns the error category used - for the system errors produced by asio. -

-
const error_category & system_category();
-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context.html b/Sources/Vendor/asio/doc/asio/reference/system_context.html deleted file mode 100644 index c62ec5f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context.html +++ /dev/null @@ -1,319 +0,0 @@ - - - -system_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The executor context for the system executor. -

-
class system_context :
-  public execution_context
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The executor type associated with the context. -

-
-

- fork_event -

-
-

- Fork-related event notifications. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get_executor -

-
-

- Obtain an executor for the context. -

-
-

- join -

-
-

- Join all threads in the system thread pool. -

-
-

- notify_fork -

-
-

- Notify the execution_context of a fork-related event. -

-
-

- stop -

-
-

- Signal all threads in the system thread pool to stop. -

-
-

- stopped -

-
-

- Determine whether the system thread pool has been stopped. -

-
-

- ~system_context -

-
-

- Destructor shuts down all threads in the system thread pool. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- destroy -

-
-

- Destroys all services in the context. -

-
-

- shutdown -

-
-

- Shuts down all services in the context. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add_service -

-
-

- (Deprecated: Use make_service().) Add a service object to the execution_context. -

-
-

- has_service -

-
-

- Determine if an execution_context contains a specified service - type. -

-
-

- make_service -

-
-

- Creates a service object and adds it to the execution_context. -

-
-

- use_service -

-
-

- Obtain the service object corresponding to the given type. -

-
-
- - Requirements -
-

- Header: asio/system_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/_system_context.html b/Sources/Vendor/asio/doc/asio/reference/system_context/_system_context.html deleted file mode 100644 index 2595606..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/_system_context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_context::~system_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor - shuts down all threads in the system thread pool. -

-
~system_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/add_service.html b/Sources/Vendor/asio/doc/asio/reference/system_context/add_service.html deleted file mode 100644 index 143a30f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/add_service.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -system_context::add_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -(Deprecated: - Use make_service().) Add a service object to the execution_context. -

-
template<
-    typename Service>
-friend void add_service(
-    execution_context & e,
-    Service * svc);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
svc
-
-

- The service object. On success, ownership of the service object is - transferred to the execution_context. - When the execution_context - object is destroyed, it will destroy the service object by performing: -

-
delete static_cast<execution_context::service*>(svc)
-
-

-

-
-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
asio::invalid_service_owner
-

- Thrown if the service's owning execution_context - is not the execution_context - object specified by the e parameter. -

-
-
-
- - Requirements -
-

- Header: asio/system_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/destroy.html b/Sources/Vendor/asio/doc/asio/reference/system_context/destroy.html deleted file mode 100644 index e7a586d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/destroy.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -system_context::destroy - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Destroys all - services in the context. -

-
void destroy();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order * of the beginning of service object lifetime, - performs delete static_cast<execution_context::service*>(svc). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/system_context/executor_type.html deleted file mode 100644 index d07aad5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/executor_type.html +++ /dev/null @@ -1,204 +0,0 @@ - - - -system_context::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - executor type associated with the context. -

-
typedef system_executor executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the system executor to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the system executor to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the executor that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the executor that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the system executor to invoke the given function object. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-

- The system executor represents an execution context where functions are - permitted to run on arbitrary threads. The post() and defer() - functions schedule the function to run on an unspecified system thread - pool, and dispatch() invokes the function immediately. -

-
- - Requirements -
-

- Header: asio/system_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/fork_event.html b/Sources/Vendor/asio/doc/asio/reference/system_context/fork_event.html deleted file mode 100644 index 21fb2c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/fork_event.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -system_context::fork_event - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Fork-related - event notifications. -

-
enum fork_event
-
-

- - - -

-
- - Values -
-
-

-
-
fork_prepare
-

- Notify the context that the process is about to fork. -

-
fork_parent
-

- Notify the context that the process has forked and is the parent. -

-
fork_child
-

- Notify the context that the process has forked and is the child. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/system_context/get_executor.html deleted file mode 100644 index a916f30..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_context::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an executor for the context. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/has_service.html b/Sources/Vendor/asio/doc/asio/reference/system_context/has_service.html deleted file mode 100644 index df849fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/has_service.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -system_context::has_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Determine - if an execution_context - contains a specified service type. -

-
template<
-    typename Service>
-friend bool has_service(
-    execution_context & e);
-
-

- This function is used to determine whether the execution_context - contains a service object corresponding to the given service type. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- A boolean indicating whether the execution_context - contains the service. -

-
- - Requirements -
-

- Header: asio/system_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/join.html b/Sources/Vendor/asio/doc/asio/reference/system_context/join.html deleted file mode 100644 index f1e67a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/join.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_context::join - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Join all threads in - the system thread pool. -

-
void join();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/make_service.html b/Sources/Vendor/asio/doc/asio/reference/system_context/make_service.html deleted file mode 100644 index 2af1c07..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/make_service.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -system_context::make_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Creates - a service object and adds it to the execution_context. -

-
template<
-    typename Service,
-    typename... Args>
-friend Service & make_service(
-    execution_context & e,
-    Args &&... args);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
args
-

- Zero or more arguments to be passed to the service constructor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
-
-
- - Requirements -
-

- Header: asio/system_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/notify_fork.html b/Sources/Vendor/asio/doc/asio/reference/system_context/notify_fork.html deleted file mode 100644 index 3267568..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/notify_fork.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -system_context::notify_fork - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Notify - the execution_context - of a fork-related event. -

-
void notify_fork(
-    fork_event event);
-
-

- This function is used to inform the execution_context - that the process is about to fork, or has just forked. This allows the - execution_context, - and the services it contains, to perform any necessary housekeeping to - ensure correct operation following a fork. -

-

- This function must not be called while any other execution_context - function, or any function associated with the execution_context's derived - class, is being called in another thread. It is, however, safe to call - this function from within a completion handler, provided no other thread - is accessing the execution_context - or its derived class. -

-
- - Parameters -
-
-

-
-
event
-

- A fork-related event. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the notification fails the execution_context - object should no longer be used and should be destroyed. -

-
-
-
- - Example -
-

- The following code illustrates how to incorporate the notify_fork() - function: -

-
my_execution_context.notify_fork(execution_context::fork_prepare);
-if (fork() == 0)
-{
-  // This is the child process.
-  my_execution_context.notify_fork(execution_context::fork_child);
-}
-else
-{
-  // This is the parent process.
-  my_execution_context.notify_fork(execution_context::fork_parent);
-}
-
-
- - Remarks -
-

- For each service object svc in the execution_context - set, performs svc->notify_fork();. When processing the - fork_prepare event, services are visited in reverse order of the beginning - of service object lifetime. Otherwise, services are visited in order of - the beginning of service object lifetime. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/system_context/shutdown.html deleted file mode 100644 index 8e81e62..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/shutdown.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -system_context::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Shuts down - all services in the context. -

-
void shutdown();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order of the beginning of service object lifetime, - performs svc->shutdown(). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/stop.html b/Sources/Vendor/asio/doc/asio/reference/system_context/stop.html deleted file mode 100644 index 4b33132..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/stop.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_context::stop - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Signal all threads - in the system thread pool to stop. -

-
void stop();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/stopped.html b/Sources/Vendor/asio/doc/asio/reference/system_context/stopped.html deleted file mode 100644 index 3aaca4c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/stopped.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_context::stopped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether - the system thread pool has been stopped. -

-
bool stopped() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/use_service.html b/Sources/Vendor/asio/doc/asio/reference/system_context/use_service.html deleted file mode 100644 index 1648034..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/use_service.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -system_context::use_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-  » more...
-
-template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/use_service/overload1.html b/Sources/Vendor/asio/doc/asio/reference/system_context/use_service/overload1.html deleted file mode 100644 index fa31276..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/use_service/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -system_context::use_service (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the execution_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Requirements -
-

- Header: asio/system_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/use_service/overload2.html b/Sources/Vendor/asio/doc/asio/reference/system_context/use_service/overload2.html deleted file mode 100644 index cd746c6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/use_service/overload2.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -system_context::use_service (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the io_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
ioc
-

- The io_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Remarks -
-

- This overload is preserved for backwards compatibility with services - that inherit from io_context::service. -

-
- - Requirements -
-

- Header: asio/system_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error.html b/Sources/Vendor/asio/doc/asio/reference/system_error.html deleted file mode 100644 index 1ca8c53..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error.html +++ /dev/null @@ -1,140 +0,0 @@ - - - -system_error - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The system_error - class is used to represent system conditions that prevent the library from - operating correctly. -

-
class system_error :
-  public std::exception
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- code -

-
-

- Get the error code associated with the exception. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-

- system_error -

-
-

- Construct with an error code.

Construct with an error - code and context.

Copy constructor. -

-
-

- what -

-
-

- Get a string representation of the exception. -

-
-

- ~system_error -

-
-

- Destructor. -

-
-
- - Requirements -
-

- Header: asio/system_error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/_system_error.html b/Sources/Vendor/asio/doc/asio/reference/system_error/_system_error.html deleted file mode 100644 index 7bf48b4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/_system_error.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -system_error::~system_error - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
virtual ~system_error();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/code.html b/Sources/Vendor/asio/doc/asio/reference/system_error/code.html deleted file mode 100644 index 9940009..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/code.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_error::code - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the error code associated - with the exception. -

-
error_code code() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/system_error/operator_eq_.html deleted file mode 100644 index 3eb96cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -system_error::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment - operator. -

-
system_error & operator=(
-    const system_error & e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error.html b/Sources/Vendor/asio/doc/asio/reference/system_error/system_error.html deleted file mode 100644 index b74123a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -system_error::system_error - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - with an error code. -

-
system_error(
-    const error_code & ec);
-  » more...
-
-

- Construct with an error code and context. -

-
system_error(
-    const error_code & ec,
-    const std::string & context);
-  » more...
-
-

- Copy constructor. -

-
system_error(
-    const system_error & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload1.html b/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload1.html deleted file mode 100644 index 31aea03..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_error::system_error (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with an error code. -

-
system_error(
-    const error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload2.html b/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload2.html deleted file mode 100644 index 1edac30..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -system_error::system_error (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with an error code and context. -

-
system_error(
-    const error_code & ec,
-    const std::string & context);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload3.html b/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload3.html deleted file mode 100644 index 4df9013..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_error::system_error (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
system_error(
-    const system_error & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/what.html b/Sources/Vendor/asio/doc/asio/reference/system_error/what.html deleted file mode 100644 index 6b8fe40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/what.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_error::what - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a string representation - of the exception. -

-
virtual const char * what() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor.html b/Sources/Vendor/asio/doc/asio/reference/system_executor.html deleted file mode 100644 index 4006c3a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor.html +++ /dev/null @@ -1,202 +0,0 @@ - - - -system_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An executor that uses arbitrary threads. -

-
class system_executor
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the system executor to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the system executor to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the executor that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the executor that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the system executor to invoke the given function object. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-

- The system executor represents an execution context where functions are permitted - to run on arbitrary threads. The post() and defer() - functions schedule the function to run on an unspecified system thread pool, - and dispatch() invokes the function immediately. -

-
- - Requirements -
-

- Header: asio/system_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/context.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/context.html deleted file mode 100644 index 8f0dbad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_executor::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the - underlying execution context. -

-
system_context & context() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/defer.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/defer.html deleted file mode 100644 index 82a7f1f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/defer.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -system_executor::defer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the system - executor to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void defer(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object will never be executed inside this function. - Instead, it will be scheduled to run on an unspecified system thread pool. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/dispatch.html deleted file mode 100644 index 9f869a9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/dispatch.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -system_executor::dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the - system executor to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void dispatch(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object will always be executed inside this function. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/on_work_finished.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/on_work_finished.html deleted file mode 100644 index bbabcd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/on_work_finished.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -system_executor::on_work_finished - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the executor that some work is no longer outstanding. -

-
void on_work_finished() const;
-
-

- For the system executor, this is a no-op. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/on_work_started.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/on_work_started.html deleted file mode 100644 index 91749e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/on_work_started.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -system_executor::on_work_started - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the executor that it has some outstanding work to do. -

-
void on_work_started() const;
-
-

- For the system executor, this is a no-op. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/operator_eq__eq_.html deleted file mode 100644 index bc4d553..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/operator_eq__eq_.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -system_executor::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two executors for equality. -

-
friend bool operator==(
-    const system_executor & ,
-    const system_executor & );
-
-

- System executors always compare equal. -

-
- - Requirements -
-

- Header: asio/system_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/operator_not__eq_.html deleted file mode 100644 index f281782..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/operator_not__eq_.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -system_executor::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two executors for inequality. -

-
friend bool operator!=(
-    const system_executor & ,
-    const system_executor & );
-
-

- System executors always compare equal. -

-
- - Requirements -
-

- Header: asio/system_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/post.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/post.html deleted file mode 100644 index 85c0b5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/post.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -system_executor::post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the system - executor to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void post(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object will never be executed inside this function. - Instead, it will be scheduled to run on an unspecified system thread pool. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_timer.html b/Sources/Vendor/asio/doc/asio/reference/system_timer.html deleted file mode 100644 index 10851fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_timer.html +++ /dev/null @@ -1,468 +0,0 @@ - - - -system_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Typedef for a timer based on the system - clock. -

-
typedef basic_waitable_timer< chrono::system_clock > system_timer;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type of the clock. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- time_point -

-
-

- The time point type of the clock. -

-
-

- traits_type -

-
-

- The wait traits type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the timer. -

-
-

- basic_waitable_timer -

-
-

- Constructor.

Constructor to set a particular expiry - time as an absolute time.

Constructor to set a particular - expiry time relative to now.

Move-construct a basic_waitable_timer - from another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancel - any asynchronous operations that are waiting on the timer. -

-
-

- cancel_one -

-
-

- Cancels one asynchronous operation that is waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancels - one asynchronous operation that is waiting on the timer. -

-
-

- expires_after -

-
-

- Set the timer's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time as an absolute - time.

Set the timer's expiry time as an absolute - time.

(Deprecated: Use non-error_code overload.) - Set the timer's expiry time as an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time relative - to now.

(Deprecated: Use expires_after().) Set the - timer's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the timer's expiry time as an absolute time. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_waitable_timer from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the timer. -

-
-

- ~basic_waitable_timer -

-
-

- Destroys the timer. -

-
-

- The basic_waitable_timer - class template provides the ability to perform a blocking or asynchronous - wait for a timer to expire. -

-

- 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 one of the steady_timer, - system_timer - or high_resolution_timer - typedefs. -

-
- - Remarks -
-

- This waitable timer functionality is for use with the C++11 standard library's - <chrono> facility, or with the Boost.Chrono library. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Examples -
-

- Performing a blocking wait (C++11): -

-
// Construct a timer without setting an expiry time.
-asio::steady_timer timer(io_context);
-
-// Set an expiry time relative to now.
-timer.expires_after(std::chrono::seconds(5));
-
-// Wait for the timer to expire.
-timer.wait();
-
-

- Performing an asynchronous wait (C++11): -

-
void handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Timer expired.
-  }
-}
-
-...
-
-// Construct a timer with an absolute expiry time.
-asio::steady_timer timer(io_context,
-    std::chrono::steady_clock::now() + std::chrono::seconds(60));
-
-// Start an asynchronous wait.
-timer.async_wait(handler);
-
-
- - Changing - an active waitable timer's expiry time -
-

- Changing the expiry time of a timer while there are pending asynchronous - waits causes those wait operations to be cancelled. To ensure that the action - associated with the timer is performed only once, use something like this: - used: -

-
void on_some_event()
-{
-  if (my_timer.expires_after(seconds(5)) > 0)
-  {
-    // We managed to cancel the timer. Start new asynchronous wait.
-    my_timer.async_wait(on_timeout);
-  }
-  else
-  {
-    // Too late, timer has already expired!
-  }
-}
-
-void on_timeout(const asio::error_code& e)
-{
-  if (e != asio::error::operation_aborted)
-  {
-    // Timer was not cancelled, take necessary action.
-  }
-}
-
-
    -
  • - The asio::basic_waitable_timer::expires_after() function - cancels any pending asynchronous waits, and returns the number of asynchronous - waits that were cancelled. If it returns 0 then you were too late and - the wait handler has already been executed, or will soon be executed. - If it returns 1 then the wait handler was successfully cancelled. -
  • -
  • - If a wait handler is cancelled, the error_code - passed to it contains the value asio::error::operation_aborted. -
  • -
-

- This typedef uses the C++11 <chrono> standard library - facility, if available. Otherwise, it may use the Boost.Chrono library. To - explicitly utilise Boost.Chrono, use the basic_waitable_timer - template directly: -

-
typedef basic_waitable_timer<boost::chrono::system_clock> timer;
-
-
- - Requirements -
-

- Header: asio/system_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread.html b/Sources/Vendor/asio/doc/asio/reference/thread.html deleted file mode 100644 index d9bb9b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread.html +++ /dev/null @@ -1,145 +0,0 @@ - - - -thread - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-thread -

-

- A simple abstraction for starting threads. -

-
class thread :
-  noncopyable
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- join -

-
-

- Wait for the thread to exit. -

-
-

- thread -

-
-

- Start a new thread that executes the supplied function. -

-
-

- ~thread -

-
-

- Destructor. -

-
-

- The thread class - implements the smallest possible subset of the functionality of boost::thread. - It is intended to be used only for starting a thread and waiting for it to - exit. If more extensive threading capabilities are required, you are strongly - advised to use something else. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Example -
-

- A typical use of thread - would be to launch a thread to run an io_context's event processing loop: -

-
asio::io_context io_context;
-// ...
-asio::thread t(boost::bind(&asio::io_context::run, &io_context));
-// ...
-t.join();
-
-
- - Requirements -
-

- Header: asio/thread.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread/_thread.html b/Sources/Vendor/asio/doc/asio/reference/thread/_thread.html deleted file mode 100644 index c1b7dfc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread/_thread.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -thread::~thread - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~thread();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread/join.html b/Sources/Vendor/asio/doc/asio/reference/thread/join.html deleted file mode 100644 index 423caa2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread/join.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -thread::join - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait for the thread to exit. -

-
void join();
-
-

- This function will block until the thread has exited. -

-

- If this function is not called before the thread object is destroyed, the - thread itself will continue to run until completion. You will, however, - no longer have the ability to wait for it to exit. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread/thread.html b/Sources/Vendor/asio/doc/asio/reference/thread/thread.html deleted file mode 100644 index 3b89e5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread/thread.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -thread::thread - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start a new thread that executes - the supplied function. -

-
template<
-    typename Function>
-thread(
-    Function f);
-
-

- This constructor creates a new thread that will execute the given function - or function object. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function or function object to be run in the thread. The function - signature must be: -

-
void f();
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool.html deleted file mode 100644 index ac44e9a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool.html +++ /dev/null @@ -1,361 +0,0 @@ - - - -thread_pool - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A simple fixed-size thread pool. -

-
class thread_pool :
-  public execution_context
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- Executor used to submit functions to a thread pool. -

-
-

- fork_event -

-
-

- Fork-related event notifications. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get_executor -

-
-

- Obtains the executor associated with the pool. -

-
-

- join -

-
-

- Joins the threads. -

-
-

- notify_fork -

-
-

- Notify the execution_context of a fork-related event. -

-
-

- stop -

-
-

- Stops the threads. -

-
-

- thread_pool -

-
-

- Constructs a pool with an automatically determined number of threads. -

Constructs a pool with a specified number of threads. -

-
-

- ~thread_pool -

-
-

- Destructor. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- destroy -

-
-

- Destroys all services in the context. -

-
-

- shutdown -

-
-

- Shuts down all services in the context. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add_service -

-
-

- (Deprecated: Use make_service().) Add a service object to the execution_context. -

-
-

- has_service -

-
-

- Determine if an execution_context contains a specified service - type. -

-
-

- make_service -

-
-

- Creates a service object and adds it to the execution_context. -

-
-

- use_service -

-
-

- Obtain the service object corresponding to the given type. -

-
-

- The thread pool class is an execution context where functions are permitted - to run on one of a fixed number of threads. -

-
- - Submitting - tasks to the pool -
-

- To submit functions to the thread_pool, - use the dispatch - , post or defer - free functions. -

-

- For example: -

-
void my_task()
-{
-  ...
-}
-
-...
-
-// Launch the pool with four threads.
-asio::thread_pool pool(4);
-
-// Submit a function to the pool.
-asio::post(pool, my_task);
-
-// Submit a lambda object to the pool.
-asio::post(pool,
-    []()
-    {
-      ...
-    });
-
-// Wait for all tasks in the pool to complete.
-pool.join();
-
-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/_thread_pool.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/_thread_pool.html deleted file mode 100644 index 0fc4ab4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/_thread_pool.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -thread_pool::~thread_pool - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~thread_pool();
-
-

- Automatically stops and joins the pool, if not explicitly done beforehand. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/add_service.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/add_service.html deleted file mode 100644 index 4cf5a80..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/add_service.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -thread_pool::add_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -(Deprecated: - Use make_service().) Add a service object to the execution_context. -

-
template<
-    typename Service>
-friend void add_service(
-    execution_context & e,
-    Service * svc);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
svc
-
-

- The service object. On success, ownership of the service object is - transferred to the execution_context. - When the execution_context - object is destroyed, it will destroy the service object by performing: -

-
delete static_cast<execution_context::service*>(svc)
-
-

-

-
-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
asio::invalid_service_owner
-

- Thrown if the service's owning execution_context - is not the execution_context - object specified by the e parameter. -

-
-
-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/destroy.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/destroy.html deleted file mode 100644 index 4249505..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/destroy.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -thread_pool::destroy - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Destroys all services - in the context. -

-
void destroy();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order * of the beginning of service object lifetime, - performs delete static_cast<execution_context::service*>(svc). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/fork_event.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/fork_event.html deleted file mode 100644 index b4eed74..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/fork_event.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -thread_pool::fork_event - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Fork-related - event notifications. -

-
enum fork_event
-
-

- - - -

-
- - Values -
-
-

-
-
fork_prepare
-

- Notify the context that the process is about to fork. -

-
fork_parent
-

- Notify the context that the process has forked and is the parent. -

-
fork_child
-

- Notify the context that the process has forked and is the child. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/get_executor.html deleted file mode 100644 index 328dc4b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -thread_pool::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtains the - executor associated with the pool. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/has_service.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/has_service.html deleted file mode 100644 index 605c07b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/has_service.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -thread_pool::has_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Determine if - an execution_context - contains a specified service type. -

-
template<
-    typename Service>
-friend bool has_service(
-    execution_context & e);
-
-

- This function is used to determine whether the execution_context - contains a service object corresponding to the given service type. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return Value -
-

- A boolean indicating whether the execution_context - contains the service. -

-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/join.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/join.html deleted file mode 100644 index df8f9ac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/join.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -thread_pool::join - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Joins the threads. -

-
void join();
-
-

- This function blocks until the threads in the pool have completed. If - stop() is not called prior to join(), the join() - call will wait until the pool has no more outstanding work. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/make_service.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/make_service.html deleted file mode 100644 index 59b8c1f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/make_service.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -thread_pool::make_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Creates a - service object and adds it to the execution_context. -

-
template<
-    typename Service,
-    typename... Args>
-friend Service & make_service(
-    execution_context & e,
-    Args &&... args);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
args
-

- Zero or more arguments to be passed to the service constructor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
-
-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/notify_fork.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/notify_fork.html deleted file mode 100644 index 403e033..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/notify_fork.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -thread_pool::notify_fork - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Notify the - execution_context - of a fork-related event. -

-
void notify_fork(
-    fork_event event);
-
-

- This function is used to inform the execution_context - that the process is about to fork, or has just forked. This allows the - execution_context, - and the services it contains, to perform any necessary housekeeping to - ensure correct operation following a fork. -

-

- This function must not be called while any other execution_context - function, or any function associated with the execution_context's derived - class, is being called in another thread. It is, however, safe to call - this function from within a completion handler, provided no other thread - is accessing the execution_context - or its derived class. -

-
- - Parameters -
-
-

-
-
event
-

- A fork-related event. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the notification fails the execution_context - object should no longer be used and should be destroyed. -

-
-
-
- - Example -
-

- The following code illustrates how to incorporate the notify_fork() - function: -

-
my_execution_context.notify_fork(execution_context::fork_prepare);
-if (fork() == 0)
-{
-  // This is the child process.
-  my_execution_context.notify_fork(execution_context::fork_child);
-}
-else
-{
-  // This is the parent process.
-  my_execution_context.notify_fork(execution_context::fork_parent);
-}
-
-
- - Remarks -
-

- For each service object svc in the execution_context - set, performs svc->notify_fork();. When processing the - fork_prepare event, services are visited in reverse order of the beginning - of service object lifetime. Otherwise, services are visited in order of - the beginning of service object lifetime. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/shutdown.html deleted file mode 100644 index faa41bd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/shutdown.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -thread_pool::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Shuts down all services - in the context. -

-
void shutdown();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order of the beginning of service object lifetime, - performs svc->shutdown(). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/stop.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/stop.html deleted file mode 100644 index e620aeb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/stop.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -thread_pool::stop - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Stops the threads. -

-
void stop();
-
-

- This function stops the threads as soon as possible. As a result of calling - stop(), pending function objects may be never be invoked. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool.html deleted file mode 100644 index 26d8b69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -thread_pool::thread_pool - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructs - a pool with an automatically determined number of threads. -

-
thread_pool();
-  » more...
-
-

- Constructs a pool with a specified number of threads. -

-
thread_pool(
-    std::size_t num_threads);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool/overload1.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool/overload1.html deleted file mode 100644 index 1ef665a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -thread_pool::thread_pool (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructs a pool with an automatically determined number of threads. -

-
thread_pool();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool/overload2.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool/overload2.html deleted file mode 100644 index 9e13f23..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -thread_pool::thread_pool (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructs a pool with a specified number of threads. -

-
thread_pool(
-    std::size_t num_threads);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service.html deleted file mode 100644 index 022c902..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -thread_pool::use_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the - service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-  » more...
-
-template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service/overload1.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service/overload1.html deleted file mode 100644 index ec6e2b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -thread_pool::use_service (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the execution_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service/overload2.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service/overload2.html deleted file mode 100644 index 3a272c7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service/overload2.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -thread_pool::use_service (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the io_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
ioc
-

- The io_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Remarks -
-

- This overload is preserved for backwards compatibility with services - that inherit from io_context::service. -

-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type.html deleted file mode 100644 index 87aced9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type.html +++ /dev/null @@ -1,208 +0,0 @@ - - - -thread_pool::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Executor used to submit functions to a thread pool. -

-
class executor_type
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the thread pool to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the thread pool to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the thread pool that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the thread pool that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the thread pool to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the thread pool is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/context.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/context.html deleted file mode 100644 index 0fd0bed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -thread_pool::executor_type::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the underlying execution context. -

-
thread_pool & context() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/defer.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/defer.html deleted file mode 100644 index b7fa000..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/defer.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -thread_pool::executor_type::defer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request - the thread pool to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void defer(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the thread pool to execute the given function - object. The function object will never be executed inside defer(). - Instead, it will be scheduled to run on the thread pool. -

-

- If the current thread belongs to the thread pool, defer() - will delay scheduling the function object until the current thread returns - control to the pool. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/dispatch.html deleted file mode 100644 index efbae46..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/dispatch.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -thread_pool::executor_type::dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request - the thread pool to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void dispatch(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the thread pool to execute the given function - object. If the current thread belongs to the pool, dispatch() - executes the function before returning. Otherwise, the function will be - scheduled to run on the thread pool. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/on_work_finished.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/on_work_finished.html deleted file mode 100644 index 07533be..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/on_work_finished.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -thread_pool::executor_type::on_work_finished - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the thread pool that some work is no longer outstanding. -

-
void on_work_finished() const;
-
-

- This function is used to inform the thread pool that some work has finished. - Once the count of unfinished work reaches zero, the thread pool's join() - function is permitted to exit. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/on_work_started.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/on_work_started.html deleted file mode 100644 index a3df817..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/on_work_started.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -thread_pool::executor_type::on_work_started - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the thread pool that it has some outstanding work to do. -

-
void on_work_started() const;
-
-

- This function is used to inform the thread pool that some work has begun. - This ensures that the thread pool's join() function will not - return while the work is underway. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/operator_eq__eq_.html deleted file mode 100644 index d4b5955..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/operator_eq__eq_.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -thread_pool::executor_type::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two executors for equality. -

-
friend bool operator==(
-    const executor_type & a,
-    const executor_type & b);
-
-

- Two executors are equal if they refer to the same underlying thread pool. -

-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/operator_not__eq_.html deleted file mode 100644 index 8e38ab2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/operator_not__eq_.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -thread_pool::executor_type::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two executors for inequality. -

-
friend bool operator!=(
-    const executor_type & a,
-    const executor_type & b);
-
-

- Two executors are equal if they refer to the same underlying thread pool. -

-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/post.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/post.html deleted file mode 100644 index 2bb42ad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/post.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -thread_pool::executor_type::post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request - the thread pool to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void post(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the thread pool to execute the given function - object. The function object will never be executed inside post(). - Instead, it will be scheduled to run on the thread pool. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/running_in_this_thread.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/running_in_this_thread.html deleted file mode 100644 index e211a8f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/running_in_this_thread.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -thread_pool::executor_type::running_in_this_thread - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the thread pool is running in the current thread. -

-
bool running_in_this_thread() const;
-
-
- - Return - Value -
-

- true if the current thread belongs to the pool. Otherwise - returns false. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_.html deleted file mode 100644 index 3daf626..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_.html +++ /dev/null @@ -1,186 +0,0 @@ - - - -time_traits< boost::posix_time::ptime > - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Time traits specialised for posix_time. -

-
template<>
-struct time_traits< boost::posix_time::ptime >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- duration_type -

-
-

- The duration type. -

-
-

- time_type -

-
-

- The time type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add -

-
-

- Add a duration to a time. -

-
-

- less_than -

-
-

- Test whether one time is less than another. -

-
-

- now -

-
-

- Get the current time. -

-
-

- subtract -

-
-

- Subtract one time from another. -

-
-

- to_posix_duration -

-
-

- Convert to POSIX duration type. -

-
-
- - Requirements -
-

- Header: asio/time_traits.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/add.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/add.html deleted file mode 100644 index 62626fa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/add.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -time_traits< boost::posix_time::ptime >::add - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Add a duration to a time. -

-
static time_type add(
-    const time_type & t,
-    const duration_type & d);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/duration_type.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/duration_type.html deleted file mode 100644 index 6acebd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/duration_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -time_traits< boost::posix_time::ptime >::duration_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The duration type. -

-
typedef boost::posix_time::time_duration duration_type;
-
-
- - Requirements -
-

- Header: asio/time_traits.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/less_than.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/less_than.html deleted file mode 100644 index c879ec9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/less_than.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -time_traits< boost::posix_time::ptime >::less_than - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test whether one time is less than another. -

-
static bool less_than(
-    const time_type & t1,
-    const time_type & t2);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/now.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/now.html deleted file mode 100644 index 6e46ed8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/now.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -time_traits< boost::posix_time::ptime >::now - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the current time. -

-
static time_type now();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/subtract.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/subtract.html deleted file mode 100644 index 3f5dc7b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/subtract.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -time_traits< boost::posix_time::ptime >::subtract - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Subtract one time from another. -

-
static duration_type subtract(
-    const time_type & t1,
-    const time_type & t2);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/time_type.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/time_type.html deleted file mode 100644 index 20cd7c6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/time_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -time_traits< boost::posix_time::ptime >::time_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The time type. -

-
typedef boost::posix_time::ptime time_type;
-
-
- - Requirements -
-

- Header: asio/time_traits.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/to_posix_duration.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/to_posix_duration.html deleted file mode 100644 index 3162214..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/to_posix_duration.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -time_traits< boost::posix_time::ptime >::to_posix_duration - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Convert to POSIX duration type. -

-
static boost::posix_time::time_duration to_posix_duration(
-    const duration_type & d);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/transfer_all.html b/Sources/Vendor/asio/doc/asio/reference/transfer_all.html deleted file mode 100644 index b5b2163..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/transfer_all.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -transfer_all - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Return a completion condition function - object that indicates that a read or write operation should continue until - all of the data has been transferred, or until an error occurs. -

-
unspecified transfer_all();
-
-

- This function is used to create an object, of unspecified type, that meets - CompletionCondition requirements. -

-
- - Example -
-

- Reading until a buffer is full: -

-
boost::array<char, 128> buf;
-asio::error_code ec;
-std::size_t n = asio::read(
-    sock, asio::buffer(buf),
-    asio::transfer_all(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-else
-{
-  // n == 128
-}
-
-
- - Requirements -
-

- Header: asio/completion_condition.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/transfer_at_least.html b/Sources/Vendor/asio/doc/asio/reference/transfer_at_least.html deleted file mode 100644 index c077303..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/transfer_at_least.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -transfer_at_least - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Return a completion condition - function object that indicates that a read or write operation should continue - until a minimum number of bytes has been transferred, or until an error occurs. -

-
unspecified transfer_at_least(
-    std::size_t minimum);
-
-

- This function is used to create an object, of unspecified type, that meets - CompletionCondition requirements. -

-
- - Example -
-

- Reading until a buffer is full or contains at least 64 bytes: -

-
boost::array<char, 128> buf;
-asio::error_code ec;
-std::size_t n = asio::read(
-    sock, asio::buffer(buf),
-    asio::transfer_at_least(64), ec);
-if (ec)
-{
-  // An error occurred.
-}
-else
-{
-  // n >= 64 && n <= 128
-}
-
-
- - Requirements -
-

- Header: asio/completion_condition.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/transfer_exactly.html b/Sources/Vendor/asio/doc/asio/reference/transfer_exactly.html deleted file mode 100644 index 73c6e43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/transfer_exactly.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -transfer_exactly - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Return a completion condition - function object that indicates that a read or write operation should continue - until an exact number of bytes has been transferred, or until an error occurs. -

-
unspecified transfer_exactly(
-    std::size_t size);
-
-

- This function is used to create an object, of unspecified type, that meets - CompletionCondition requirements. -

-
- - Example -
-

- Reading until a buffer is full or contains exactly 64 bytes: -

-
boost::array<char, 128> buf;
-asio::error_code ec;
-std::size_t n = asio::read(
-    sock, asio::buffer(buf),
-    asio::transfer_exactly(64), ec);
-if (ec)
-{
-  // An error occurred.
-}
-else
-{
-  // n == 64
-}
-
-
- - Requirements -
-

- Header: asio/completion_condition.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future.html b/Sources/Vendor/asio/doc/asio/reference/use_future.html deleted file mode 100644 index 43f5735..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -use_future - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A special value, similar to std::nothrow. -

-
constexpr use_future_t use_future;
-
-

- See the documentation for use_future_t - for a usage example. -

-
- - Requirements -
-

- Header: asio/use_future.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t.html deleted file mode 100644 index 25cf691..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t.html +++ /dev/null @@ -1,191 +0,0 @@ - - - -use_future_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Class used to specify that an asynchronous operation should return a future. -

-
template<
-    typename Allocator = std::allocator<void>>
-class use_future_t
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- allocator_type -

-
-

- The allocator type. The allocator is used when constructing the - std::promise object for a given asynchronous operation. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get_allocator -

-
-

- Obtain allocator. -

-
-

- operator() -

-
-

- Wrap a function object in a packaged task. -

-
-

- operator[] -

-
-

- (Deprecated: Use rebind().) Specify an alternate allocator. -

-
-

- rebind -

-
-

- Specify an alternate allocator. -

-
-

- use_future_t -

-
-

- Construct using default-constructed allocator.

Construct - using specified allocator. -

-
-

- The use_future_t - class is used to indicate that an asynchronous operation should return a - std::future object. A use_future_t - object may be passed as a handler to an asynchronous operation, typically - using the special value asio::use_future. For example: -

-
std::future<std::size_t> my_future
-  = my_socket.async_read_some(my_buffer, 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. -

-
- - Requirements -
-

- Header: asio/use_future.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/allocator_type.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/allocator_type.html deleted file mode 100644 index e368300..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/allocator_type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -use_future_t::allocator_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - allocator type. The allocator is used when constructing the std::promise - object for a given asynchronous operation. -

-
typedef Allocator allocator_type;
-
-
- - Requirements -
-

- Header: asio/use_future.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/get_allocator.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/get_allocator.html deleted file mode 100644 index a467d6b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/get_allocator.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -use_future_t::get_allocator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - allocator. -

-
allocator_type get_allocator() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/operator_lb__rb_.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/operator_lb__rb_.html deleted file mode 100644 index b19bbca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/operator_lb__rb_.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -use_future_t::operator[] - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use rebind().) Specify an alternate allocator. -

-
template<
-    typename OtherAllocator>
-use_future_t< OtherAllocator > operator[](
-    const OtherAllocator & allocator) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/operator_lp__rp_.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/operator_lp__rp_.html deleted file mode 100644 index 0efa51f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/operator_lp__rp_.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -use_future_t::operator() - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wrap - a function object in a packaged task. -

-
template<
-    typename Function>
-unspecified operator()(
-    Function && f) const;
-
-

- The package function is used to adapt a function object as - a packaged task. When this adapter is passed as a completion token to an - asynchronous operation, the result of the function object is retuned via - a std::future. -

-
- - Example -
-
std::future<std::size_t> fut =
-  my_socket.async_read_some(buffer,
-    use_future([](asio::error_code ec, std::size_t n)
-      {
-        return ec ? 0 : n;
-      }));
-...
-std::size_t n = fut.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/rebind.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/rebind.html deleted file mode 100644 index 7d56eb9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/rebind.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -use_future_t::rebind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Specify an alternate - allocator. -

-
template<
-    typename OtherAllocator>
-use_future_t< OtherAllocator > rebind(
-    const OtherAllocator & allocator) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t.html deleted file mode 100644 index 5ab7fa7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -use_future_t::use_future_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - using default-constructed allocator. -

-
constexpr use_future_t();
-  » more...
-
-

- Construct using specified allocator. -

-
explicit use_future_t(
-    const Allocator & allocator);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t/overload1.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t/overload1.html deleted file mode 100644 index 450a452..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -use_future_t::use_future_t (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct using default-constructed allocator. -

-
constexpr use_future_t();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t/overload2.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t/overload2.html deleted file mode 100644 index cb98c52..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -use_future_t::use_future_t (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct using specified allocator. -

-
use_future_t(
-    const Allocator & allocator);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_service.html b/Sources/Vendor/asio/doc/asio/reference/use_service.html deleted file mode 100644 index 21b94c4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_service.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -use_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- - template< typename -

-
[link asio.reference.Service Service]
-

- > Service & -

-
[link asio.reference.use_service.overload1 use_service]
-

- ( execution_context & e); -

-
[''''&raquo;''' [link asio.reference.use_service.overload1 more...]]
-

-

-
template<
-    typename Service>
-Service & use_service(
-    io_context & ioc);
-  » more...
-
-
- - Requirements -
-

- Header: asio/impl/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_service/overload1.html b/Sources/Vendor/asio/doc/asio/reference/use_service/overload1.html deleted file mode 100644 index 4c30ee4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_service/overload1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -use_service (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
template<
-    typename Service>
-Service & use_service(
-    execution_context & e);
-
-

- This function is used to locate a service object that corresponds to the - given service type. If there is no existing implementation of the service, - then the execution_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_service/overload2.html b/Sources/Vendor/asio/doc/asio/reference/use_service/overload2.html deleted file mode 100644 index 8725f8c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_service/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -use_service (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
template<
-    typename Service>
-Service & use_service(
-    io_context & ioc);
-
-

- This function is used to locate a service object that corresponds to the - given service type. If there is no existing implementation of the service, - then the io_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
ioc
-

- The io_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Remarks -
-

- This overload is preserved for backwards compatibility with services that - inherit from io_context::service. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/uses_executor.html b/Sources/Vendor/asio/doc/asio/reference/uses_executor.html deleted file mode 100644 index 1087bdf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/uses_executor.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -uses_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The uses_executor - trait detects whether a type T has an associated executor that is convertible - from type Executor. -

-
template<
-    typename T,
-    typename Executor>
-struct uses_executor
-
-

- Meets the BinaryTypeTrait requirements. The Asio library provides a definition - that is derived from false_type. A program may specialize this template to - derive from true_type for a user-defined type T that can be constructed with - an executor, where the first argument of a constructor has type executor_arg_t - and the second argument is convertible from type Executor. -

-
- - Requirements -
-

- Header: asio/uses_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/wait_traits.html b/Sources/Vendor/asio/doc/asio/reference/wait_traits.html deleted file mode 100644 index a3a1237..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/wait_traits.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -wait_traits - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wait traits suitable for use with the basic_waitable_timer - class template. -

-
template<
-    typename Clock>
-struct wait_traits
-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- to_wait_duration -

-
-

- Convert a clock duration into a duration used for waiting. -

-
-
- - Requirements -
-

- Header: asio/wait_traits.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration.html b/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration.html deleted file mode 100644 index 337f774..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -wait_traits::to_wait_duration - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Convert - a clock duration into a duration used for waiting. -

-
static Clock::duration to_wait_duration(
-    const typename Clock::duration & d);
-  » more...
-
-static Clock::duration to_wait_duration(
-    const typename Clock::time_point & t);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration/overload1.html b/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration/overload1.html deleted file mode 100644 index 7e3f601..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration/overload1.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -wait_traits::to_wait_duration (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Convert a clock duration into a duration used for waiting. -

-
static Clock::duration to_wait_duration(
-    const typename Clock::duration & d);
-
-
- - Return - Value -
-

- d. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration/overload2.html b/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration/overload2.html deleted file mode 100644 index 74b1b7b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration/overload2.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -wait_traits::to_wait_duration (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Convert a clock duration into a duration used for waiting. -

-
static Clock::duration to_wait_duration(
-    const typename Clock::time_point & t);
-
-
- - Return - Value -
-

- d. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle.html deleted file mode 100644 index 7b9ed26..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle.html +++ /dev/null @@ -1,311 +0,0 @@ - - - -windows::object_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides object-oriented handle functionality. -

-
class object_handle
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An object_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the object handle. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- object_handle -

-
-

- Construct an object_handle without opening it.

Construct - an object_handle on an existing native handle.

Move-construct - an object_handle from another. -

-
-

- operator= -

-
-

- Move-assign an object_handle from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the object handle. -

-
-

- The windows::object_handle - class provides asynchronous and blocking object-oriented handle functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/object_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign.html deleted file mode 100644 index c131aa0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::object_handle::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-  » more...
-
-void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign/overload1.html deleted file mode 100644 index 567751e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::object_handle::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign/overload2.html deleted file mode 100644 index f814bc7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -windows::object_handle::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/async_wait.html deleted file mode 100644 index 33fa66a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/async_wait.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -windows::object_handle::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous wait on the object handle. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    WaitHandler && handler);
-
-

- This function is be used to initiate an asynchronous wait against the object - handle. It always returns immediately. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called when the object handle is set to the signalled - state. Copies will be made of the handler as required. The function - signature of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel.html deleted file mode 100644 index c538fad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::object_handle::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the handle. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel/overload1.html deleted file mode 100644 index c016d11..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -windows::object_handle::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the handle. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel/overload2.html deleted file mode 100644 index 90cd24b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::object_handle::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the handle. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close.html deleted file mode 100644 index b73dd96..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::object_handle::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the handle. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close/overload1.html deleted file mode 100644 index 5e41228..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -windows::object_handle::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the handle. -

-
void close();
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close/overload2.html deleted file mode 100644 index e41e7dc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::object_handle::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the handle. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/executor_type.html deleted file mode 100644 index be8718b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -windows::object_handle::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/windows/object_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_executor.html deleted file mode 100644 index e19aa1d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::object_handle::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_io_context.html deleted file mode 100644 index 04d838c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -windows::object_handle::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_io_service.html deleted file mode 100644 index 62da3c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -windows::object_handle::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/is_open.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/is_open.html deleted file mode 100644 index 5219560..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/is_open.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::object_handle::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the handle is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer.html deleted file mode 100644 index 27e3729..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::object_handle::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer/overload1.html deleted file mode 100644 index 011fd07..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer/overload1.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::object_handle::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since an windows::object_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer/overload2.html deleted file mode 100644 index bc091a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::object_handle::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since an windows::object_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer_type.html deleted file mode 100644 index e2d2f5e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer_type.html +++ /dev/null @@ -1,315 +0,0 @@ - - - -windows::object_handle::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An - windows::object_handle - is always the lowest layer. -

-
typedef object_handle lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An object_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the object handle. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- object_handle -

-
-

- Construct an object_handle without opening it.

- Construct an object_handle on an existing native handle.
-
Move-construct an object_handle from another. -

-
-

- operator= -

-
-

- Move-assign an object_handle from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the object handle. -

-
-

- The windows::object_handle - class provides asynchronous and blocking object-oriented handle functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/object_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/native_handle.html deleted file mode 100644 index 4d1e095..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::object_handle::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the native handle representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - handle. This is intended to allow access to native handle functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/native_handle_type.html deleted file mode 100644 index 839fed2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -windows::object_handle::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a handle. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/windows/object_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle.html deleted file mode 100644 index 3fb0dd4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::object_handle::object_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an windows::object_handle - without opening it. -

-
explicit object_handle(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct an windows::object_handle - on an existing native handle. -

-
object_handle(
-    asio::io_context & io_context,
-    const native_handle_type & native_handle);
-  » more...
-
-

- Move-construct an windows::object_handle - from another. -

-
object_handle(
-    object_handle && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload1.html deleted file mode 100644 index df46f02..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload1.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -windows::object_handle::object_handle (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an windows::object_handle - without opening it. -

-
object_handle(
-    asio::io_context & io_context);
-
-

- This constructor creates an object handle without opening it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the object handle will use to dispatch handlers for - any asynchronous operations performed on the handle. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload2.html deleted file mode 100644 index 3c55abd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -windows::object_handle::object_handle (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an windows::object_handle - on an existing native handle. -

-
object_handle(
-    asio::io_context & io_context,
-    const native_handle_type & native_handle);
-
-

- This constructor creates an object handle object to hold an existing - native handle. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the object handle will use to dispatch handlers for - any asynchronous operations performed on the handle. -

-
native_handle
-

- The new underlying handle implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload3.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload3.html deleted file mode 100644 index bc3dd8e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload3.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -windows::object_handle::object_handle (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct an windows::object_handle - from another. -

-
object_handle(
-    object_handle && other);
-
-

- This constructor moves an object handle from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::object_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the object_handle(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/operator_eq_.html deleted file mode 100644 index 6cc26a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/operator_eq_.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -windows::object_handle::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - an windows::object_handle - from another. -

-
object_handle & operator=(
-    object_handle && other);
-
-

- This assignment operator moves an object handle from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::object_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the object_handle(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait.html deleted file mode 100644 index c3f6e1e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::object_handle::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - a blocking wait on the object handle. -

-
void wait();
-  » more...
-
-void wait(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait/overload1.html deleted file mode 100644 index 4edd898..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -windows::object_handle::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform a blocking wait on the object handle. -

-
void wait();
-
-

- This function is used to wait for the object handle to be set to the - signalled state. This function blocks and does not return until the object - handle has been set to the signalled state. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait/overload2.html deleted file mode 100644 index d664dec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::object_handle::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform a blocking wait on the object handle. -

-
void wait(
-    asio::error_code & ec);
-
-

- This function is used to wait for the object handle to be set to the - signalled state. This function blocks and does not return until the object - handle has been set to the signalled state. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle.html deleted file mode 100644 index 1b384dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle.html +++ /dev/null @@ -1,325 +0,0 @@ - - - -windows::overlapped_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides Windows handle functionality for objects that support overlapped - I/O. -

-
class overlapped_handle
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An overlapped_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- operator= -

-
-

- Move-assign an overlapped_handle from another. -

-
-

- overlapped_handle -

-
-

- Construct an overlapped_handle without opening it.

- Construct an overlapped_handle on an existing native handle.
-
Move-construct an overlapped_handle from another. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~overlapped_handle -

-
-

- Protected destructor to prevent deletion through this type. -

-
-

- The windows::overlapped_handle - class provides the ability to wrap a Windows handle. The underlying object - referred to by the handle must support overlapped I/O. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/overlapped_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/_overlapped_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/_overlapped_handle.html deleted file mode 100644 index e6b3c6b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/_overlapped_handle.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -windows::overlapped_handle::~overlapped_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~overlapped_handle();
-
-

- This function destroys the handle, cancelling any outstanding asynchronous - wait operations associated with the handle as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign.html deleted file mode 100644 index 0019f59..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::overlapped_handle::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-  » more...
-
-void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign/overload1.html deleted file mode 100644 index 7dc93ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::overlapped_handle::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign/overload2.html deleted file mode 100644 index 206171c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -windows::overlapped_handle::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel.html deleted file mode 100644 index 322f025..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::overlapped_handle::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the handle. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel/overload1.html deleted file mode 100644 index 0eb7c6c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -windows::overlapped_handle::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the handle. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel/overload2.html deleted file mode 100644 index 3cc0d4b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::overlapped_handle::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the handle. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close.html deleted file mode 100644 index 0ee732b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::overlapped_handle::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the handle. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close/overload1.html deleted file mode 100644 index 37f1229..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -windows::overlapped_handle::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the handle. -

-
void close();
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close/overload2.html deleted file mode 100644 index be3701d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::overlapped_handle::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the handle. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/executor_type.html deleted file mode 100644 index 7111ef2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -windows::overlapped_handle::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/windows/overlapped_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_executor.html deleted file mode 100644 index f3acf92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::overlapped_handle::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_io_context.html deleted file mode 100644 index 3947a3e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -windows::overlapped_handle::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_io_service.html deleted file mode 100644 index 47e2d5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -windows::overlapped_handle::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/is_open.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/is_open.html deleted file mode 100644 index 48df51e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/is_open.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::overlapped_handle::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the handle is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer.html deleted file mode 100644 index f2642b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::overlapped_handle::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer/overload1.html deleted file mode 100644 index 0cd1f59..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer/overload1.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::overlapped_handle::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since an windows::overlapped_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer/overload2.html deleted file mode 100644 index 33bd12f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::overlapped_handle::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since an windows::overlapped_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer_type.html deleted file mode 100644 index 64eee2b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer_type.html +++ /dev/null @@ -1,327 +0,0 @@ - - - -windows::overlapped_handle::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An - windows::overlapped_handle - is always the lowest layer. -

-
typedef overlapped_handle lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An overlapped_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- operator= -

-
-

- Move-assign an overlapped_handle from another. -

-
-

- overlapped_handle -

-
-

- Construct an overlapped_handle without opening it.

- Construct an overlapped_handle on an existing native handle. -

Move-construct an overlapped_handle from another. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~overlapped_handle -

-
-

- Protected destructor to prevent deletion through this type. -

-
-

- The windows::overlapped_handle - class provides the ability to wrap a Windows handle. The underlying object - referred to by the handle must support overlapped I/O. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/overlapped_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/native_handle.html deleted file mode 100644 index d9f9ec0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::overlapped_handle::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the native handle representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - handle. This is intended to allow access to native handle functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/native_handle_type.html deleted file mode 100644 index 91f2ea9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -windows::overlapped_handle::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a handle. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/windows/overlapped_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/operator_eq_.html deleted file mode 100644 index e635c2c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/operator_eq_.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -windows::overlapped_handle::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - an windows::overlapped_handle - from another. -

-
overlapped_handle & operator=(
-    overlapped_handle && other);
-
-

- This assignment operator moves a handle from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::overlapped_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the overlapped_handle(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle.html deleted file mode 100644 index dfdcd50..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::overlapped_handle::overlapped_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an windows::overlapped_handle - without opening it. -

-
explicit overlapped_handle(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct an windows::overlapped_handle - on an existing native handle. -

-
overlapped_handle(
-    asio::io_context & io_context,
-    const native_handle_type & handle);
-  » more...
-
-

- Move-construct an windows::overlapped_handle - from another. -

-
overlapped_handle(
-    overlapped_handle && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload1.html deleted file mode 100644 index f509327..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload1.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -windows::overlapped_handle::overlapped_handle (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an windows::overlapped_handle - without opening it. -

-
overlapped_handle(
-    asio::io_context & io_context);
-
-

- This constructor creates a handle without opening it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the handle will use to dispatch handlers for any asynchronous - operations performed on the handle. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload2.html deleted file mode 100644 index a72b1f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -windows::overlapped_handle::overlapped_handle (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an windows::overlapped_handle - on an existing native handle. -

-
overlapped_handle(
-    asio::io_context & io_context,
-    const native_handle_type & handle);
-
-

- This constructor creates a handle object to hold an existing native handle. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the handle will use to dispatch handlers for any asynchronous - operations performed on the handle. -

-
handle
-

- A native handle. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload3.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload3.html deleted file mode 100644 index 8dd161f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload3.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -windows::overlapped_handle::overlapped_handle (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct an windows::overlapped_handle - from another. -

-
overlapped_handle(
-    overlapped_handle && other);
-
-

- This constructor moves a handle from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::overlapped_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the overlapped_handle(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr.html deleted file mode 100644 index 17e8e0a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr.html +++ /dev/null @@ -1,166 +0,0 @@ - - - -windows::overlapped_ptr - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wraps a handler to create an OVERLAPPED object for use with overlapped I/O. -

-
class overlapped_ptr :
-  noncopyable
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- complete -

-
-

- Post completion notification for overlapped operation. Releases - ownership. -

-
-

- get -

-
-

- Get the contained OVERLAPPED object. -

-
-

- overlapped_ptr -

-
-

- Construct an empty overlapped_ptr.

Construct an overlapped_ptr - to contain the specified handler. -

-
-

- release -

-
-

- Release ownership of the OVERLAPPED object. -

-
-

- reset -

-
-

- Reset to empty.

Reset to contain the specified handler, - freeing any current OVERLAPPED object. -

-
-

- ~overlapped_ptr -

-
-

- Destructor automatically frees the OVERLAPPED object unless released. -

-
-

- A special-purpose smart pointer used to wrap an application handler so that - it can be passed as the LPOVERLAPPED argument to overlapped I/O functions. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/overlapped_ptr.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/_overlapped_ptr.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/_overlapped_ptr.html deleted file mode 100644 index fb16950..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/_overlapped_ptr.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::overlapped_ptr::~overlapped_ptr - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor - automatically frees the OVERLAPPED object unless released. -

-
~overlapped_ptr();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/complete.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/complete.html deleted file mode 100644 index 1a912f8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/complete.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -windows::overlapped_ptr::complete - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Post - completion notification for overlapped operation. Releases ownership. -

-
void complete(
-    const asio::error_code & ec,
-    std::size_t bytes_transferred);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get.html deleted file mode 100644 index f498d79..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -windows::overlapped_ptr::get - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the contained OVERLAPPED object. -

-
OVERLAPPED * get();
-  » more...
-
-const OVERLAPPED * get() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get/overload1.html deleted file mode 100644 index 6463a5d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -windows::overlapped_ptr::get (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the contained OVERLAPPED object. -

-
OVERLAPPED * get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get/overload2.html deleted file mode 100644 index 73d5720..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -windows::overlapped_ptr::get (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the contained OVERLAPPED object. -

-
const OVERLAPPED * get() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr.html deleted file mode 100644 index 8017821..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -windows::overlapped_ptr::overlapped_ptr - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an empty windows::overlapped_ptr. -

-
overlapped_ptr();
-  » more...
-
-

- Construct an windows::overlapped_ptr - to contain the specified handler. -

-
template<
-    typename Handler>
-explicit overlapped_ptr(
-    asio::io_context & io_context,
-    Handler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload1.html deleted file mode 100644 index 08b3b52..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -windows::overlapped_ptr::overlapped_ptr (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an empty windows::overlapped_ptr. -

-
overlapped_ptr();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload2.html deleted file mode 100644 index e68c56b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -windows::overlapped_ptr::overlapped_ptr (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an windows::overlapped_ptr - to contain the specified handler. -

-
template<
-    typename Handler>
-overlapped_ptr(
-    asio::io_context & io_context,
-    Handler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/release.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/release.html deleted file mode 100644 index 5bfb362..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/release.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::overlapped_ptr::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release - ownership of the OVERLAPPED object. -

-
OVERLAPPED * release();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset.html deleted file mode 100644 index ca42c7c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -windows::overlapped_ptr::reset - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Reset - to empty. -

-
void reset();
-  » more...
-
-

- Reset to contain the specified handler, freeing any current OVERLAPPED - object. -

-
template<
-    typename Handler>
-void reset(
-    asio::io_context & io_context,
-    Handler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload1.html deleted file mode 100644 index 969ac6a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -windows::overlapped_ptr::reset (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Reset to empty. -

-
void reset();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload2.html deleted file mode 100644 index 9432b8a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -windows::overlapped_ptr::reset (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Reset to contain the specified handler, freeing any current OVERLAPPED - object. -

-
template<
-    typename Handler>
-void reset(
-    asio::io_context & io_context,
-    Handler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle.html deleted file mode 100644 index 8b54b99..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle.html +++ /dev/null @@ -1,337 +0,0 @@ - - - -windows::random_access_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides random-access handle functionality. -

-
class random_access_handle :
-  public windows::overlapped_handle
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An overlapped_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- async_read_some_at -

-
-

- Start an asynchronous read at the specified offset. -

-
-

- async_write_some_at -

-
-

- Start an asynchronous write at the specified offset. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- operator= -

-
-

- Move-assign a random_access_handle from another. -

-
-

- random_access_handle -

-
-

- Construct a random_access_handle without opening it.

- Construct a random_access_handle on an existing native handle. -

Move-construct a random_access_handle from another. -

-
-

- read_some_at -

-
-

- Read some data from the handle at the specified offset. -

-
-

- write_some_at -

-
-

- Write some data to the handle at the specified offset. -

-
-

- The windows::random_access_handle - class provides asynchronous and blocking random-access handle functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/random_access_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign.html deleted file mode 100644 index 6d4530a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::random_access_handle::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-  » more...
-
-void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign/overload1.html deleted file mode 100644 index 94911e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -windows::random_access_handle::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign/overload2.html deleted file mode 100644 index 740cb41..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -windows::random_access_handle::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/async_read_some_at.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/async_read_some_at.html deleted file mode 100644 index eae23b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/async_read_some_at.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -windows::random_access_handle::async_read_some_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read at the specified offset. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some_at(
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data from the random-access - handle. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes read.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The read operation may not read all of the requested number of bytes. Consider - using the async_read_at - function if you need to ensure that the requested amount of data is read - before the asynchronous operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
handle.async_read_some_at(42, asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/async_write_some_at.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/async_write_some_at.html deleted file mode 100644 index ff1b306..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/async_write_some_at.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -windows::random_access_handle::async_write_some_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write at the specified offset. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some_at(
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write data to the random-access - handle. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more data buffers to be written to the handle. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes written.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The write operation may not transmit all of the data to the peer. Consider - using the async_write_at - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
handle.async_write_some_at(42, asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel.html deleted file mode 100644 index 8c2e7a0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::random_access_handle::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the handle. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel/overload1.html deleted file mode 100644 index 485d2c4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::random_access_handle::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Cancel all asynchronous operations associated with the handle. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel/overload2.html deleted file mode 100644 index 7fdb710..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel/overload2.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -windows::random_access_handle::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Cancel all asynchronous operations associated with the handle. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close.html deleted file mode 100644 index d32dfc2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::random_access_handle::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the handle. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close/overload1.html deleted file mode 100644 index 1b5beff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::random_access_handle::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Close the handle. -

-
void close();
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close/overload2.html deleted file mode 100644 index 933f639..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close/overload2.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -windows::random_access_handle::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Close the handle. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/executor_type.html deleted file mode 100644 index 7358d0e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/executor_type.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -windows::random_access_handle::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/windows/random_access_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_executor.html deleted file mode 100644 index ec84e0a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_executor.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -windows::random_access_handle::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_io_context.html deleted file mode 100644 index b5eacc6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_io_context.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::random_access_handle::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_io_service.html deleted file mode 100644 index cb75bb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_io_service.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::random_access_handle::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/is_open.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/is_open.html deleted file mode 100644 index dbf8194..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/is_open.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -windows::random_access_handle::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -Determine - whether the handle is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer.html deleted file mode 100644 index 9f9fc65..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::random_access_handle::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer/overload1.html deleted file mode 100644 index 3d0c611..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -windows::random_access_handle::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since an windows::overlapped_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer/overload2.html deleted file mode 100644 index e2bc799..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -windows::random_access_handle::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since an windows::overlapped_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer_type.html deleted file mode 100644 index 82780f0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer_type.html +++ /dev/null @@ -1,330 +0,0 @@ - - - -windows::random_access_handle::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -An - windows::overlapped_handle - is always the lowest layer. -

-
typedef overlapped_handle lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An overlapped_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- operator= -

-
-

- Move-assign an overlapped_handle from another. -

-
-

- overlapped_handle -

-
-

- Construct an overlapped_handle without opening it.

- Construct an overlapped_handle on an existing native handle. -

Move-construct an overlapped_handle from another. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~overlapped_handle -

-
-

- Protected destructor to prevent deletion through this type. -

-
-

- The windows::overlapped_handle - class provides the ability to wrap a Windows handle. The underlying object - referred to by the handle must support overlapped I/O. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/random_access_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/native_handle.html deleted file mode 100644 index 1386e99..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/native_handle.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -windows::random_access_handle::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -Get - the native handle representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - handle. This is intended to allow access to native handle functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/native_handle_type.html deleted file mode 100644 index 0ebb9b5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/native_handle_type.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::random_access_handle::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -The - native representation of a handle. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/windows/random_access_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/operator_eq_.html deleted file mode 100644 index aacba88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/operator_eq_.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -windows::random_access_handle::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a windows::random_access_handle - from another. -

-
random_access_handle & operator=(
-    random_access_handle && other);
-
-

- This assignment operator moves a random-access handle from one object to - another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::random_access_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the random_access_handle(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle.html deleted file mode 100644 index 03dac6a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::random_access_handle::random_access_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a windows::random_access_handle - without opening it. -

-
explicit random_access_handle(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct a windows::random_access_handle - on an existing native handle. -

-
random_access_handle(
-    asio::io_context & io_context,
-    const native_handle_type & handle);
-  » more...
-
-

- Move-construct a windows::random_access_handle - from another. -

-
random_access_handle(
-    random_access_handle && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload1.html deleted file mode 100644 index 5134e0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -windows::random_access_handle::random_access_handle (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a windows::random_access_handle - without opening it. -

-
random_access_handle(
-    asio::io_context & io_context);
-
-

- 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. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the random-access handle will use to dispatch handlers - for any asynchronous operations performed on the handle. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload2.html deleted file mode 100644 index 70eddd9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -windows::random_access_handle::random_access_handle (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a windows::random_access_handle - on an existing native handle. -

-
random_access_handle(
-    asio::io_context & io_context,
-    const native_handle_type & handle);
-
-

- This constructor creates a random-access handle object to hold an existing - native handle. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the random-access handle will use to dispatch handlers - for any asynchronous operations performed on the handle. -

-
handle
-

- The new underlying handle implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload3.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload3.html deleted file mode 100644 index 0d9cb86..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload3.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -windows::random_access_handle::random_access_handle (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a windows::random_access_handle - from another. -

-
random_access_handle(
-    random_access_handle && other);
-
-

- This constructor moves a random-access handle from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::random_access_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the random_access_handle(io_context&) - constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at.html deleted file mode 100644 index aa1776f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::random_access_handle::read_some_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read - some data from the handle at the specified offset. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some_at(
-    uint64_t offset,
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t read_some_at(
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at/overload1.html deleted file mode 100644 index 56b08be..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at/overload1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -windows::random_access_handle::read_some_at (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the handle at the specified offset. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some_at(
-    uint64_t offset,
-    const MutableBufferSequence & buffers);
-
-

- This function is used to read data from the random-access handle. The - function call will block until one or more bytes of data has been read - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes read. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read_at - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
handle.read_some_at(42, asio::buffer(data, size));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at/overload2.html deleted file mode 100644 index 2f79328..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at/overload2.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -windows::random_access_handle::read_some_at (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the handle at the specified offset. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some_at(
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to read data from the random-access handle. The - function call will block until one or more bytes of data has been read - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read_at - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at.html deleted file mode 100644 index 5808ad3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::random_access_handle::write_some_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write - some data to the handle at the specified offset. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some_at(
-    uint64_t offset,
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t write_some_at(
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at/overload1.html deleted file mode 100644 index 8e6b894..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at/overload1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -windows::random_access_handle::write_some_at (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the handle at the specified offset. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some_at(
-    uint64_t offset,
-    const ConstBufferSequence & buffers);
-
-

- This function is used to write data to the random-access handle. The - function call will block until one or more bytes of the data has been - written successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more data buffers to be written to the handle. -

-
-
-
- - Return - Value -
-

- The number of bytes written. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The write_some_at operation may not write all of the data. Consider using - the write_at - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
handle.write_some_at(42, asio::buffer(data, size));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at/overload2.html deleted file mode 100644 index 9e185ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at/overload2.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -windows::random_access_handle::write_some_at (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the handle at the specified offset. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some_at(
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to write data to the random-access handle. The - function call will block until one or more bytes of the data has been - written successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more data buffers to be written to the handle. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write_at - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle.html deleted file mode 100644 index fdb3a98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle.html +++ /dev/null @@ -1,336 +0,0 @@ - - - -windows::stream_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides stream-oriented handle functionality. -

-
class stream_handle :
-  public windows::overlapped_handle
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An overlapped_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- operator= -

-
-

- Move-assign a stream_handle from another. -

-
-

- read_some -

-
-

- Read some data from the handle. -

-
-

- stream_handle -

-
-

- Construct a stream_handle without opening it.

Construct - a stream_handle on an existing native handle.

Move-construct - a stream_handle from another. -

-
-

- write_some -

-
-

- Write some data to the handle. -

-
-

- The windows::stream_handle - class provides asynchronous and blocking stream-oriented handle functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/stream_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign.html deleted file mode 100644 index ef72bde..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::stream_handle::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-  » more...
-
-void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign/overload1.html deleted file mode 100644 index 2b0c2b6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -windows::stream_handle::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign/overload2.html deleted file mode 100644 index 68b408b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -windows::stream_handle::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/async_read_some.html deleted file mode 100644 index 360a82a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/async_read_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -windows::stream_handle::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data from the stream handle. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes read.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The read operation may not read all of the requested number of bytes. Consider - using the async_read - function if you need to ensure that the requested amount of data is read - before the asynchronous operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
handle.async_read_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/async_write_some.html deleted file mode 100644 index c6fda1d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/async_write_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -windows::stream_handle::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write data to the stream handle. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the handle. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks 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 write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes written.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The write operation may not transmit all of the data to the peer. Consider - using the async_write - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
handle.async_write_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel.html deleted file mode 100644 index e87f1af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::stream_handle::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the handle. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel/overload1.html deleted file mode 100644 index fdb71f5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::stream_handle::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Cancel all asynchronous operations associated with the handle. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel/overload2.html deleted file mode 100644 index 93ded82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel/overload2.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -windows::stream_handle::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Cancel all asynchronous operations associated with the handle. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close.html deleted file mode 100644 index 2cd6300..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::stream_handle::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the handle. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close/overload1.html deleted file mode 100644 index 6a2d6c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::stream_handle::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Close the handle. -

-
void close();
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close/overload2.html deleted file mode 100644 index a4e9f3c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close/overload2.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -windows::stream_handle::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Close the handle. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/executor_type.html deleted file mode 100644 index 960ded4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/executor_type.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -windows::stream_handle::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/windows/stream_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_executor.html deleted file mode 100644 index 088e720..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_executor.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -windows::stream_handle::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_io_context.html deleted file mode 100644 index 3f13c26..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_io_context.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::stream_handle::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_io_service.html deleted file mode 100644 index ee654d2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_io_service.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::stream_handle::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/is_open.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/is_open.html deleted file mode 100644 index 50e8f6a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/is_open.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -windows::stream_handle::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -Determine - whether the handle is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer.html deleted file mode 100644 index 474c14e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::stream_handle::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer/overload1.html deleted file mode 100644 index 21abe77..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -windows::stream_handle::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since an windows::overlapped_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer/overload2.html deleted file mode 100644 index 023daf6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -windows::stream_handle::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since an windows::overlapped_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer_type.html deleted file mode 100644 index 99dcc8b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer_type.html +++ /dev/null @@ -1,330 +0,0 @@ - - - -windows::stream_handle::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -An - windows::overlapped_handle - is always the lowest layer. -

-
typedef overlapped_handle lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An overlapped_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- operator= -

-
-

- Move-assign an overlapped_handle from another. -

-
-

- overlapped_handle -

-
-

- Construct an overlapped_handle without opening it.

- Construct an overlapped_handle on an existing native handle. -

Move-construct an overlapped_handle from another. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~overlapped_handle -

-
-

- Protected destructor to prevent deletion through this type. -

-
-

- The windows::overlapped_handle - class provides the ability to wrap a Windows handle. The underlying object - referred to by the handle must support overlapped I/O. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/stream_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/native_handle.html deleted file mode 100644 index 0b86acd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/native_handle.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -windows::stream_handle::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -Get - the native handle representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - handle. This is intended to allow access to native handle functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/native_handle_type.html deleted file mode 100644 index c119cea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/native_handle_type.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::stream_handle::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -The - native representation of a handle. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/windows/stream_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/operator_eq_.html deleted file mode 100644 index a845a61..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/operator_eq_.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -windows::stream_handle::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a windows::stream_handle - from another. -

-
stream_handle & operator=(
-    stream_handle && other);
-
-

- This assignment operator moves a stream handle from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::stream_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the stream_handle(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some.html deleted file mode 100644 index bae27b7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -windows::stream_handle::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read - some data from the handle. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some/overload1.html deleted file mode 100644 index a87506a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -windows::stream_handle::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the handle. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to read data from the stream handle. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes read. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
handle.read_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some/overload2.html deleted file mode 100644 index 0267b72..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -windows::stream_handle::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the handle. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to read data from the stream handle. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle.html deleted file mode 100644 index adacd2b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::stream_handle::stream_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a windows::stream_handle - without opening it. -

-
explicit stream_handle(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct a windows::stream_handle - on an existing native handle. -

-
stream_handle(
-    asio::io_context & io_context,
-    const native_handle_type & handle);
-  » more...
-
-

- Move-construct a windows::stream_handle - from another. -

-
stream_handle(
-    stream_handle && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload1.html deleted file mode 100644 index 6e04f6e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -windows::stream_handle::stream_handle (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a windows::stream_handle - without opening it. -

-
stream_handle(
-    asio::io_context & io_context);
-
-

- This constructor creates a stream handle without opening it. The handle - needs to be opened and then connected or accepted before data can be - sent or received on it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream handle will use to dispatch handlers for - any asynchronous operations performed on the handle. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload2.html deleted file mode 100644 index cfe9ae8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -windows::stream_handle::stream_handle (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a windows::stream_handle - on an existing native handle. -

-
stream_handle(
-    asio::io_context & io_context,
-    const native_handle_type & handle);
-
-

- This constructor creates a stream handle object to hold an existing native - handle. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream handle will use to dispatch handlers for - any asynchronous operations performed on the handle. -

-
handle
-

- The new underlying handle implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload3.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload3.html deleted file mode 100644 index ba389fb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload3.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -windows::stream_handle::stream_handle (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a windows::stream_handle - from another. -

-
stream_handle(
-    stream_handle && other);
-
-

- This constructor moves a stream handle from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::stream_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the stream_handle(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some.html deleted file mode 100644 index be432f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -windows::stream_handle::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write - some data to the handle. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some/overload1.html deleted file mode 100644 index b9abaf9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -windows::stream_handle::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the handle. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to write data to the stream handle. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the handle. -

-
-
-
- - Return - Value -
-

- The number of bytes written. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
handle.write_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some/overload2.html deleted file mode 100644 index 40fca59..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -windows::stream_handle::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the handle. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to write data to the stream handle. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the handle. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write.html b/Sources/Vendor/asio/doc/asio/reference/write.html deleted file mode 100644 index 2294f3b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write.html +++ /dev/null @@ -1,191 +0,0 @@ - - - -write - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-write -

-

- -The write function is a composed operation - that writes a certain amount of data to a stream before returning. -

-

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-  » more...
-
-

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-  » more...
-
-

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename DynamicBuffer>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncWriteStream,
-    typename DynamicBuffer>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncWriteStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename Allocator>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b);
-  » more...
-
-template<
-    typename SyncWriteStream,
-    typename Allocator>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-  » more...
-
-

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-  » more...
-
-template<
-    typename SyncWriteStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-  » more...
-
-
- - Requirements -
-

- Header: asio/write.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload1.html b/Sources/Vendor/asio/doc/asio/reference/write/overload1.html deleted file mode 100644 index 1b1361d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload1.html +++ /dev/null @@ -1,131 +0,0 @@ - - - -write (1 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the stream. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::write(s, asio::buffer(data, size));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write(
-    s, buffers,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload10.html b/Sources/Vendor/asio/doc/asio/reference/write/overload10.html deleted file mode 100644 index 2d4b5bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload10.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -write (10 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename Allocator>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write(
-    s, b,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload11.html b/Sources/Vendor/asio/doc/asio/reference/write/overload11.html deleted file mode 100644 index 6d02990..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload11.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -write (11 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's write_some function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload12.html b/Sources/Vendor/asio/doc/asio/reference/write/overload12.html deleted file mode 100644 index 79e2fff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload12.html +++ /dev/null @@ -1,118 +0,0 @@ - - - -write (12 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's write_some function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload2.html b/Sources/Vendor/asio/doc/asio/reference/write/overload2.html deleted file mode 100644 index 6dca3d6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload2.html +++ /dev/null @@ -1,123 +0,0 @@ - - - -write (2 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the stream. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::write(s, asio::buffer(data, size), ec);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write(
-    s, buffers,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload3.html b/Sources/Vendor/asio/doc/asio/reference/write/overload3.html deleted file mode 100644 index f0ab842..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload3.html +++ /dev/null @@ -1,143 +0,0 @@ - - - -write (3 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the stream. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's write_some function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::write(s, asio::buffer(data, size),
-    asio::transfer_at_least(32));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload4.html b/Sources/Vendor/asio/doc/asio/reference/write/overload4.html deleted file mode 100644 index ee63a6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload4.html +++ /dev/null @@ -1,120 +0,0 @@ - - - -write (4 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the stream. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's write_some function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload5.html b/Sources/Vendor/asio/doc/asio/reference/write/overload5.html deleted file mode 100644 index 2f2892d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload5.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -write (5 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename DynamicBuffer>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied dynamic buffer sequence has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- The dynamic buffer sequence from which data will be written. Successfully - written data is automatically consumed from the buffers. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write(
-    s, buffers,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload6.html b/Sources/Vendor/asio/doc/asio/reference/write/overload6.html deleted file mode 100644 index 86ca650..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload6.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -write (6 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename DynamicBuffer>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied dynamic buffer sequence has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- The dynamic buffer sequence from which data will be written. Successfully - written data is automatically consumed from the buffers. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write(
-    s, buffers,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload7.html b/Sources/Vendor/asio/doc/asio/reference/write/overload7.html deleted file mode 100644 index de84d98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload7.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -write (7 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied dynamic buffer sequence has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- The dynamic buffer sequence from which data will be written. Successfully - written data is automatically consumed from the buffers. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's write_some function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload8.html b/Sources/Vendor/asio/doc/asio/reference/write/overload8.html deleted file mode 100644 index e88be3f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload8.html +++ /dev/null @@ -1,118 +0,0 @@ - - - -write (8 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied dynamic buffer sequence has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- The dynamic buffer sequence from which data will be written. Successfully - written data is automatically consumed from the buffers. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's write_some function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload9.html b/Sources/Vendor/asio/doc/asio/reference/write/overload9.html deleted file mode 100644 index 69f7fe8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload9.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -write (9 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename Allocator>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write(
-    s, b,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at.html b/Sources/Vendor/asio/doc/asio/reference/write_at.html deleted file mode 100644 index 5266654..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at.html +++ /dev/null @@ -1,148 +0,0 @@ - - - -write_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The write_at function is a composed - operation that writes a certain amount of data at a specified offset before - returning. -

-

- Write all of the supplied data at the specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-

- Write a certain amount of data at a specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition);
-  » more...
-
-template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-  » more...
-
-

- Write all of the supplied data at the specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b);
-  » more...
-
-template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-  » more...
-
-

- Write a certain amount of data at a specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-  » more...
-
-template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-  » more...
-
-
- - Requirements -
-

- Header: asio/write_at.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload1.html deleted file mode 100644 index e5125b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload1.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -write_at (1 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data at the specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the device. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::write_at(d, 42, asio::buffer(data, size));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write_at(
-    d, offset, buffers,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload2.html deleted file mode 100644 index 6a51cab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload2.html +++ /dev/null @@ -1,130 +0,0 @@ - - - -write_at (2 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data at the specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the device. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::write_at(d, 42,
-    asio::buffer(data, size), ec);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write_at(
-    d, offset, buffers,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload3.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload3.html deleted file mode 100644 index 2b49ad6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload3.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -write_at (3 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data at a specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the device. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the device's write_some_at function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::write_at(d, 42, asio::buffer(data, size),
-    asio::transfer_at_least(32));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload4.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload4.html deleted file mode 100644 index a40b9a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload4.html +++ /dev/null @@ -1,126 +0,0 @@ - - - -write_at (4 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data at a specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the device. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the device's write_some_at function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload5.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload5.html deleted file mode 100644 index 571a5a0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload5.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -write_at (5 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data at the specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write_at(
-    d, 42, b,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload6.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload6.html deleted file mode 100644 index 1fabec5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload6.html +++ /dev/null @@ -1,113 +0,0 @@ - - - -write_at (6 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data at the specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write_at(
-    d, 42, b,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload7.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload7.html deleted file mode 100644 index 945323e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload7.html +++ /dev/null @@ -1,132 +0,0 @@ - - - -write_at (7 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data at a specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the device's write_some_at function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload8.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload8.html deleted file mode 100644 index 62585bd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload8.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -write_at (8 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data at a specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the device's write_some_at function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/yield_context.html b/Sources/Vendor/asio/doc/asio/reference/yield_context.html deleted file mode 100644 index 6000438..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/yield_context.html +++ /dev/null @@ -1,171 +0,0 @@ - - - -yield_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Context object that represents the - currently executing coroutine. -

-
typedef basic_yield_context< unspecified > yield_context;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- callee_type -

-
-

- The coroutine callee type, used by the implementation. -

-
-

- caller_type -

-
-

- The coroutine caller type, used by the implementation. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_yield_context -

-
-

- Construct a yield context to represent the specified coroutine. -

Construct a yield context from another yield context - type. -

-
-

- operator[] -

-
-

- Return a yield context that sets the specified error_code. -

-
-

- The basic_yield_context - class is used to represent the currently executing stackful coroutine. A - 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. -

-
- - Requirements -
-

- Header: asio/spawn.hpp -

-

- Convenience header: None -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial.html b/Sources/Vendor/asio/doc/asio/tutorial.html deleted file mode 100644 index 941b450..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial.html +++ /dev/null @@ -1,119 +0,0 @@ - - - -Tutorial - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- - Basic - Skills -

-

- The tutorial programs in this first section introduce the fundamental concepts - required to use the asio toolkit. Before plunging into the complex world of - network programming, these tutorial programs illustrate the basic skills using - simple asynchronous timers. -

- -

- - Introduction - to Sockets -

-

- The tutorial programs in this section show how to use asio to develop simple - client and server programs. These tutorial programs are based around the daytime protocol, which supports - both TCP and UDP. -

-

- The first three tutorial programs implement the daytime protocol using TCP. -

- -

- The next three tutorial programs implement the daytime protocol using UDP. -

- -

- The last tutorial program in this section demonstrates how asio allows the - TCP and UDP servers to be easily combined into a single program. -

- -
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/boost_bind.html b/Sources/Vendor/asio/doc/asio/tutorial/boost_bind.html deleted file mode 100644 index 39865b6..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/boost_bind.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -boost::bind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- See the Boost: bind.hpp - documentation for more information on how to use boost::bind. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime1.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime1.html deleted file mode 100644 index 2571505..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime1.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -Daytime.1 - A synchronous TCP daytime client - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial program shows how to use asio to implement a client application - with TCP. -

-

- We start by including the necessary header files. -

-
#include <iostream>
-#include <boost/array.hpp>
-#include <asio.hpp>
-
-

- The purpose of this application is to access a daytime service, so we need - the user to specify the server. -

-
using asio::ip::tcp;
-
-int main(int argc, char* argv[])
-{
-  try
-  {
-    if (argc != 2)
-    {
-      std::cerr << "Usage: client <host>" << std::endl;
-      return 1;
-    }
-
-

- All programs that use asio need to have at least one io_context - object. -

-
    asio::io_context io_context;
-
-

- We need to turn the server name that was specified as a parameter to the - application, into a TCP endpoint. To do this we use an ip::tcp::resolver - object. -

-
    tcp::resolver resolver(io_context);
-
-

- A resolver takes a query object and turns it into a list of endpoints. We - construct a query using the name of the server, specified in argv[1], - and the name of the service, in this case "daytime". -

-

- The list of endpoints is returned using an iterator of type ip::tcp::resolver::iterator. - (Note that a default constructed ip::tcp::resolver::iterator - object can be used as an end iterator.) -

-

- Now we create and connect the socket. The list of endpoints obtained above - may contain both IPv4 and IPv6 endpoints, so we need to try each of them - until we find one that works. This keeps the client program independent of - a specific IP version. The asio::connect() function does this for us automatically. -

-

- The connection is open. All we need to do now is read the response from the - daytime service. -

-

- We use a boost::array to hold the received data. The asio::buffer() - function automatically determines the size of the array to help prevent buffer - overruns. Instead of a boost::array, we could have used a char - [] or std::vector. -

-

- When the server closes the connection, the ip::tcp::socket::read_some() - function will exit with the asio::error::eof error, which is how we know - to exit the loop. -

-

- Finally, handle any exceptions that may have been thrown. -

-

- See the full source listing -

-

- Return to the tutorial index -

-

- Next: Daytime.2 - A synchronous - TCP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime1/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime1/src.html deleted file mode 100644 index 6903487..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime1/src.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -Source listing for Daytime.1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// client.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the 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 <boost/array.hpp>
-#include <asio.hpp>
-
-using asio::ip::tcp;
-
-int main(int argc, char* argv[])
-{
-  try
-  {
-    if (argc != 2)
-    {
-      std::cerr << "Usage: client <host>" << std::endl;
-      return 1;
-    }
-
-    asio::io_context io_context;
-
-    tcp::resolver resolver(io_context);
-    tcp::resolver::results_type endpoints =
-      resolver.resolve(argv[1], "daytime");
-
-    tcp::socket socket(io_context);
-    asio::connect(socket, endpoints);
-
-    for (;;)
-    {
-      boost::array<char, 128> buf;
-      asio::error_code error;
-
-      size_t len = socket.read_some(asio::buffer(buf), error);
-
-      if (error == asio::error::eof)
-        break; // Connection closed cleanly by peer.
-      else if (error)
-        throw asio::system_error(error); // Some other error.
-
-      std::cout.write(buf.data(), len);
-    }
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- Return to Daytime.1 - A synchronous - TCP daytime client -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime2.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime2.html deleted file mode 100644 index e6053a4..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime2.html +++ /dev/null @@ -1,119 +0,0 @@ - - - -Daytime.2 - A synchronous TCP daytime server - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial program shows how to use asio to implement a server application - with TCP. -

-
#include <ctime>
-#include <iostream>
-#include <string>
-#include <asio.hpp>
-
-using asio::ip::tcp;
-
-

- We define the function make_daytime_string() to create the string - to be sent back to the client. This function will be reused in all of our - daytime server applications. -

-
std::string make_daytime_string()
-{
-  using namespace std; // For time_t, time and ctime;
-  time_t now = time(0);
-  return ctime(&now);
-}
-
-int main()
-{
-  try
-  {
-    asio::io_context io_context;
-
-

- A ip::tcp::acceptor - object needs to be created to listen for new connections. It is initialised - to listen on TCP port 13, for IP version 4. -

-
    tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4(), 13));
-
-

- This is an iterative server, which means that it will handle one connection - at a time. Create a socket that will represent the connection to the client, - and then wait for a connection. -

-
    for (;;)
-    {
-      tcp::socket socket(io_context);
-      acceptor.accept(socket);
-
-

- A client is accessing our service. Determine the current time and transfer - this information to the client. -

-
      std::string message = make_daytime_string();
-
-      asio::error_code ignored_error;
-      asio::write(socket, asio::buffer(message), ignored_error);
-    }
-  }
-
-

- Finally, handle any exceptions. -

-
  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Daytime.1 - A synchronous - TCP daytime client -

-

- Next: Daytime.3 - An asynchronous - TCP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime2/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime2/src.html deleted file mode 100644 index c8ae53b..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime2/src.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -Source listing for Daytime.2 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// server.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the 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 <ctime>
-#include <iostream>
-#include <string>
-#include <asio.hpp>
-
-using asio::ip::tcp;
-
-std::string make_daytime_string()
-{
-  using namespace std; // For time_t, time and ctime;
-  time_t now = time(0);
-  return ctime(&now);
-}
-
-int main()
-{
-  try
-  {
-    asio::io_context io_context;
-
-    tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4(), 13));
-
-    for (;;)
-    {
-      tcp::socket socket(io_context);
-      acceptor.accept(socket);
-
-      std::string message = make_daytime_string();
-
-      asio::error_code ignored_error;
-      asio::write(socket, asio::buffer(message), ignored_error);
-    }
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- Return to Daytime.2 - A synchronous - TCP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime3.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime3.html deleted file mode 100644 index 3b62f0a..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime3.html +++ /dev/null @@ -1,230 +0,0 @@ - - - -Daytime.3 - An asynchronous TCP daytime server - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
- - The - main() function -
-
int main()
-{
-  try
-  {
-
-

- We need to create a server object to accept incoming client connections. - The io_context object provides - I/O services, such as sockets, that the server object will use. -

-
    asio::io_context io_context;
-    tcp_server server(io_context);
-
-

- Run the io_context object - so that it will perform asynchronous operations on your behalf. -

-
    io_context.run();
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-
- - The - tcp_server class -
-
class tcp_server
-{
-public:
-
-

- The constructor initialises an acceptor to listen on TCP port 13. -

-
  tcp_server(asio::io_context& io_context)
-    : acceptor_(io_context, tcp::endpoint(tcp::v4(), 13))
-  {
-    start_accept();
-  }
-
-private:
-
-

- The function start_accept() creates a socket and initiates an - asynchronous accept operation to wait for a new connection. -

-
  void start_accept()
-  {
-    tcp_connection::pointer new_connection =
-      tcp_connection::create(acceptor_.get_executor().context());
-
-    acceptor_.async_accept(new_connection->socket(),
-        boost::bind(&tcp_server::handle_accept, this, new_connection,
-          asio::placeholders::error));
-  }
-
-

- The function handle_accept() is called when the asynchronous - accept operation initiated by start_accept() finishes. It services - the client request, and then calls start_accept() to initiate - the next accept operation. -

-
  void handle_accept(tcp_connection::pointer new_connection,
-      const asio::error_code& error)
-  {
-    if (!error)
-    {
-      new_connection->start();
-    }
-
-    start_accept();
-  }
-
-
- - The - tcp_connection class -
-

- We will use shared_ptr and enable_shared_from_this - because we want to keep the tcp_connection object alive as long - as there is an operation that refers to it. -

-
class tcp_connection
-  : public boost::enable_shared_from_this<tcp_connection>
-{
-public:
-  typedef boost::shared_ptr<tcp_connection> pointer;
-
-  static pointer create(asio::io_context& io_context)
-  {
-    return pointer(new tcp_connection(io_context));
-  }
-
-  tcp::socket& socket()
-  {
-    return socket_;
-  }
-
-

- In the function start(), we call asio::async_write() to serve - the data to the client. Note that we are using asio::async_write(), rather - than ip::tcp::socket::async_write_some(), - to ensure that the entire block of data is sent. -

-
  void start()
-  {
-
-

- The data to be sent is stored in the class member message_ as - we need to keep the data valid until the asynchronous operation is complete. -

-
    message_ = make_daytime_string();
-
-

- When initiating the asynchronous operation, and if using boost::bind - , you must specify only the arguments that match the handler's parameter - list. In this program, both of the argument placeholders (asio::placeholders::error - and asio::placeholders::bytes_transferred) could potentially have been removed, - since they are not being used in handle_write(). -

-
    asio::async_write(socket_, asio::buffer(message_),
-        boost::bind(&tcp_connection::handle_write, shared_from_this(),
-          asio::placeholders::error,
-          asio::placeholders::bytes_transferred));
-
-

- Any further actions for this client connection are now the responsibility - of handle_write(). -

-
  }
-
-private:
-  tcp_connection(asio::io_context& io_context)
-    : socket_(io_context)
-  {
-  }
-
-  void handle_write(const asio::error_code& /*error*/,
-      size_t /*bytes_transferred*/)
-  {
-  }
-
-  tcp::socket socket_;
-  std::string message_;
-};
-
-
- - Removing - unused handler parameters -
-

- You may have noticed that the error, and bytes_transferred - parameters are not used in the body of the handle_write() function. - If parameters are not needed, it is possible to remove them from the function - so that it looks like: -

-
  void handle_write()
-  {
-  }
-
-

- The asio::async_write() call used to initiate the call can then be changed - to just: -

-
  asio::async_write(socket_, asio::buffer(message_),
-      boost::bind(&tcp_connection::handle_write, shared_from_this()));
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Daytime.2 - A synchronous - TCP daytime server -

-

- Next: Daytime.4 - A synchronous - UDP daytime client -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime3/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime3/src.html deleted file mode 100644 index 8abd8ab..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime3/src.html +++ /dev/null @@ -1,158 +0,0 @@ - - - -Source listing for Daytime.3 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// server.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the 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 <ctime>
-#include <iostream>
-#include <string>
-#include <boost/bind.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/enable_shared_from_this.hpp>
-#include <asio.hpp>
-
-using asio::ip::tcp;
-
-std::string make_daytime_string()
-{
-  using namespace std; // For time_t, time and ctime;
-  time_t now = time(0);
-  return ctime(&now);
-}
-
-class tcp_connection
-  : public boost::enable_shared_from_this<tcp_connection>
-{
-public:
-  typedef boost::shared_ptr<tcp_connection> pointer;
-
-  static pointer create(asio::io_context& io_context)
-  {
-    return pointer(new tcp_connection(io_context));
-  }
-
-  tcp::socket& socket()
-  {
-    return socket_;
-  }
-
-  void start()
-  {
-    message_ = make_daytime_string();
-
-    asio::async_write(socket_, asio::buffer(message_),
-        boost::bind(&tcp_connection::handle_write, shared_from_this(),
-          asio::placeholders::error,
-          asio::placeholders::bytes_transferred));
-  }
-
-private:
-  tcp_connection(asio::io_context& io_context)
-    : socket_(io_context)
-  {
-  }
-
-  void handle_write(const asio::error_code& /*error*/,
-      size_t /*bytes_transferred*/)
-  {
-  }
-
-  tcp::socket socket_;
-  std::string message_;
-};
-
-class tcp_server
-{
-public:
-  tcp_server(asio::io_context& io_context)
-    : acceptor_(io_context, tcp::endpoint(tcp::v4(), 13))
-  {
-    start_accept();
-  }
-
-private:
-  void start_accept()
-  {
-    tcp_connection::pointer new_connection =
-      tcp_connection::create(acceptor_.get_executor().context());
-
-    acceptor_.async_accept(new_connection->socket(),
-        boost::bind(&tcp_server::handle_accept, this, new_connection,
-          asio::placeholders::error));
-  }
-
-  void handle_accept(tcp_connection::pointer new_connection,
-      const asio::error_code& error)
-  {
-    if (!error)
-    {
-      new_connection->start();
-    }
-
-    start_accept();
-  }
-
-  tcp::acceptor acceptor_;
-};
-
-int main()
-{
-  try
-  {
-    asio::io_context io_context;
-    tcp_server server(io_context);
-    io_context.run();
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- Return to Daytime.3 - An asynchronous - TCP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime4.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime4.html deleted file mode 100644 index 23e7243..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime4.html +++ /dev/null @@ -1,113 +0,0 @@ - - - -Daytime.4 - A synchronous UDP daytime client - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial program shows how to use asio to implement a client application - with UDP. -

-
#include <iostream>
-#include <boost/array.hpp>
-#include <asio.hpp>
-
-using asio::ip::udp;
-
-

- The start of the application is essentially the same as for the TCP daytime - client. -

-
int main(int argc, char* argv[])
-{
-  try
-  {
-    if (argc != 2)
-    {
-      std::cerr << "Usage: client <host>" << std::endl;
-      return 1;
-    }
-
-    asio::io_context io_context;
-
-

- We use an ip::udp::resolver - object to find the correct remote endpoint to use based on the host and service - names. The query is restricted to return only IPv4 endpoints by the ip::udp::v4() argument. -

-
    udp::resolver resolver(io_context);
-    udp::endpoint receiver_endpoint =
-      *resolver.resolve(udp::v4(), argv[1], "daytime").begin();
-
-

- The ip::udp::resolver::resolve() - function is guaranteed to return at least one endpoint in the list if it - does not fail. This means it is safe to dereference the return value directly. -

-
    udp::socket socket(io_context);
-    socket.open(udp::v4());
-
-    boost::array<char, 1> send_buf  = {{ 0 }};
-    socket.send_to(asio::buffer(send_buf), receiver_endpoint);
-
-    boost::array<char, 128> recv_buf;
-    udp::endpoint sender_endpoint;
-
-

- Since UDP is datagram-oriented, we will not be using a stream socket. Create - an ip::udp::socket and - initiate contact with the remote endpoint. -

-

- Now we need to be ready to accept whatever the server sends back to us. The - endpoint on our side that receives the server's response will be initialised - by ip::udp::socket::receive_from(). -

-

- Finally, handle any exceptions that may have been thrown. -

-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Daytime.3 - An asynchronous - TCP daytime server -

-

- Next: Daytime.5 - A synchronous - UDP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime4/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime4/src.html deleted file mode 100644 index c32beaf..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime4/src.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -Source listing for Daytime.4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// client.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the 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 <boost/array.hpp>
-#include <asio.hpp>
-
-using asio::ip::udp;
-
-int main(int argc, char* argv[])
-{
-  try
-  {
-    if (argc != 2)
-    {
-      std::cerr << "Usage: client <host>" << std::endl;
-      return 1;
-    }
-
-    asio::io_context io_context;
-
-    udp::resolver resolver(io_context);
-    udp::endpoint receiver_endpoint =
-      *resolver.resolve(udp::v4(), argv[1], "daytime").begin();
-
-    udp::socket socket(io_context);
-    socket.open(udp::v4());
-
-    boost::array<char, 1> send_buf  = {{ 0 }};
-    socket.send_to(asio::buffer(send_buf), receiver_endpoint);
-
-    boost::array<char, 128> recv_buf;
-    udp::endpoint sender_endpoint;
-    size_t len = socket.receive_from(
-        asio::buffer(recv_buf), sender_endpoint);
-
-    std::cout.write(recv_buf.data(), len);
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- Return to Daytime.4 - A synchronous - UDP daytime client -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime5.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime5.html deleted file mode 100644 index e5ed0bd..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime5.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Daytime.5 - A synchronous UDP daytime server - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial program shows how to use asio to implement a server application - with UDP. -

-
int main()
-{
-  try
-  {
-    asio::io_context io_context;
-
-

- Create an ip::udp::socket - object to receive requests on UDP port 13. -

-
    udp::socket socket(io_context, udp::endpoint(udp::v4(), 13));
-
-

- Wait for a client to initiate contact with us. The remote_endpoint object - will be populated by ip::udp::socket::receive_from(). -

-

- Determine what we are going to send back to the client. -

-

- Send the response to the remote_endpoint. -

-

- Finally, handle any exceptions. -

-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Daytime.4 - A synchronous - UDP daytime client -

-

- Next: Daytime.6 - An asynchronous - UDP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime5/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime5/src.html deleted file mode 100644 index b722d96..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime5/src.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -Source listing for Daytime.5 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// server.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the 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 <ctime>
-#include <iostream>
-#include <string>
-#include <boost/array.hpp>
-#include <asio.hpp>
-
-using asio::ip::udp;
-
-std::string make_daytime_string()
-{
-  using namespace std; // For time_t, time and ctime;
-  time_t now = time(0);
-  return ctime(&now);
-}
-
-int main()
-{
-  try
-  {
-    asio::io_context io_context;
-
-    udp::socket socket(io_context, udp::endpoint(udp::v4(), 13));
-
-    for (;;)
-    {
-      boost::array<char, 1> recv_buf;
-      udp::endpoint remote_endpoint;
-      asio::error_code error;
-      socket.receive_from(asio::buffer(recv_buf), remote_endpoint);
-
-      std::string message = make_daytime_string();
-
-      asio::error_code ignored_error;
-      socket.send_to(asio::buffer(message),
-          remote_endpoint, 0, ignored_error);
-    }
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- Return to Daytime.5 - A synchronous - UDP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime6.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime6.html deleted file mode 100644 index 2249729..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime6.html +++ /dev/null @@ -1,179 +0,0 @@ - - - -Daytime.6 - An asynchronous UDP daytime server - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
- - The - main() function -
-
int main()
-{
-  try
-  {
-
-

- Create a server object to accept incoming client requests, and run the io_context object. -

-
    asio::io_context io_context;
-    udp_server server(io_context);
-    io_context.run();
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-
- - The - udp_server class -
-
class udp_server
-{
-public:
-
-

- The constructor initialises a socket to listen on UDP port 13. -

-
  udp_server(asio::io_context& io_context)
-    : socket_(io_context, udp::endpoint(udp::v4(), 13))
-  {
-    start_receive();
-  }
-
-private:
-  void start_receive()
-  {
-
-

- The function ip::udp::socket::async_receive_from() - will cause the application to listen in the background for a new request. - When such a request is received, the io_context - object will invoke the handle_receive() function with two arguments: - a value of type error_code - indicating whether the operation succeeded or failed, and a size_t - value bytes_transferred specifying the number of bytes received. -

-
    socket_.async_receive_from(
-        asio::buffer(recv_buffer_), remote_endpoint_,
-        boost::bind(&udp_server::handle_receive, this,
-          asio::placeholders::error,
-          asio::placeholders::bytes_transferred));
-  }
-
-

- The function handle_receive() will service the client request. -

-
  void handle_receive(const asio::error_code& error,
-      std::size_t /*bytes_transferred*/)
-  {
-
-

- The error parameter contains the result of the asynchronous - operation. Since we only provide the 1-byte recv_buffer_ to - contain the client's request, the io_context - object would return an error if the client sent anything larger. We can ignore - such an error if it comes up. -

-
    if (!error)
-    {
-
-

- Determine what we are going to send. -

-
      boost::shared_ptr<std::string> message(
-          new std::string(make_daytime_string()));
-
-

- We now call ip::udp::socket::async_send_to() - to serve the data to the client. -

-
      socket_.async_send_to(asio::buffer(*message), remote_endpoint_,
-          boost::bind(&udp_server::handle_send, this, message,
-            asio::placeholders::error,
-            asio::placeholders::bytes_transferred));
-
-

- When initiating the asynchronous operation, and if using boost::bind - , you must specify only the arguments that match the handler's parameter - list. In this program, both of the argument placeholders (asio::placeholders::error - and asio::placeholders::bytes_transferred) could potentially have been removed. -

-

- Start listening for the next client request. -

-
      start_receive();
-
-

- Any further actions for this client request are now the responsibility of - handle_send(). -

-
    }
-  }
-
-

- The function handle_send() is invoked after the service request - has been completed. -

-
  void handle_send(boost::shared_ptr<std::string> /*message*/,
-      const asio::error_code& /*error*/,
-      std::size_t /*bytes_transferred*/)
-  {
-  }
-
-  udp::socket socket_;
-  udp::endpoint remote_endpoint_;
-  boost::array<char, 1> recv_buffer_;
-};
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Daytime.5 - A synchronous - UDP daytime server -

-

- Next: Daytime.7 - A combined TCP/UDP - asynchronous server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime6/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime6/src.html deleted file mode 100644 index e7aefdc..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime6/src.html +++ /dev/null @@ -1,130 +0,0 @@ - - - -Source listing for Daytime.6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// server.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the 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 <ctime>
-#include <iostream>
-#include <string>
-#include <boost/array.hpp>
-#include <boost/bind.hpp>
-#include <boost/shared_ptr.hpp>
-#include <asio.hpp>
-
-using asio::ip::udp;
-
-std::string make_daytime_string()
-{
-  using namespace std; // For time_t, time and ctime;
-  time_t now = time(0);
-  return ctime(&now);
-}
-
-class udp_server
-{
-public:
-  udp_server(asio::io_context& io_context)
-    : socket_(io_context, udp::endpoint(udp::v4(), 13))
-  {
-    start_receive();
-  }
-
-private:
-  void start_receive()
-  {
-    socket_.async_receive_from(
-        asio::buffer(recv_buffer_), remote_endpoint_,
-        boost::bind(&udp_server::handle_receive, this,
-          asio::placeholders::error,
-          asio::placeholders::bytes_transferred));
-  }
-
-  void handle_receive(const asio::error_code& error,
-      std::size_t /*bytes_transferred*/)
-  {
-    if (!error)
-    {
-      boost::shared_ptr<std::string> message(
-          new std::string(make_daytime_string()));
-
-      socket_.async_send_to(asio::buffer(*message), remote_endpoint_,
-          boost::bind(&udp_server::handle_send, this, message,
-            asio::placeholders::error,
-            asio::placeholders::bytes_transferred));
-
-      start_receive();
-    }
-  }
-
-  void handle_send(boost::shared_ptr<std::string> /*message*/,
-      const asio::error_code& /*error*/,
-      std::size_t /*bytes_transferred*/)
-  {
-  }
-
-  udp::socket socket_;
-  udp::endpoint remote_endpoint_;
-  boost::array<char, 1> recv_buffer_;
-};
-
-int main()
-{
-  try
-  {
-    asio::io_context io_context;
-    udp_server server(io_context);
-    io_context.run();
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- Return to Daytime.6 - An asynchronous - UDP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime7.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime7.html deleted file mode 100644 index 67e8541..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime7.html +++ /dev/null @@ -1,217 +0,0 @@ - - - -Daytime.7 - A combined TCP/UDP asynchronous server - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial program shows how to combine the two asynchronous servers that - we have just written, into a single server application. -

-
- - The - main() function -
-
int main()
-{
-  try
-  {
-    asio::io_context io_context;
-
-

- We will begin by creating a server object to accept a TCP client connection. -

-
    tcp_server server1(io_context);
-
-

- We also need a server object to accept a UDP client request. -

-
    udp_server server2(io_context);
-
-

- We have created two lots of work for the io_context - object to do. -

-
    io_context.run();
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-
- - The - tcp_connection and tcp_server classes -
-

- The following two classes are taken from Daytime.3 - . -

-
class tcp_connection
-  : public boost::enable_shared_from_this<tcp_connection>
-{
-public:
-  typedef boost::shared_ptr<tcp_connection> pointer;
-
-  static pointer create(asio::io_context& io_context)
-  {
-    return pointer(new tcp_connection(io_context));
-  }
-
-  tcp::socket& socket()
-  {
-    return socket_;
-  }
-
-  void start()
-  {
-    message_ = make_daytime_string();
-
-    asio::async_write(socket_, asio::buffer(message_),
-        boost::bind(&tcp_connection::handle_write, shared_from_this()));
-  }
-
-private:
-  tcp_connection(asio::io_context& io_context)
-    : socket_(io_context)
-  {
-  }
-
-  void handle_write()
-  {
-  }
-
-  tcp::socket socket_;
-  std::string message_;
-};
-
-class tcp_server
-{
-public:
-  tcp_server(asio::io_context& io_context)
-    : acceptor_(io_context, tcp::endpoint(tcp::v4(), 13))
-  {
-    start_accept();
-  }
-
-private:
-  void start_accept()
-  {
-    tcp_connection::pointer new_connection =
-      tcp_connection::create(acceptor_.get_executor().context());
-
-    acceptor_.async_accept(new_connection->socket(),
-        boost::bind(&tcp_server::handle_accept, this, new_connection,
-          asio::placeholders::error));
-  }
-
-  void handle_accept(tcp_connection::pointer new_connection,
-      const asio::error_code& error)
-  {
-    if (!error)
-    {
-      new_connection->start();
-    }
-
-    start_accept();
-  }
-
-  tcp::acceptor acceptor_;
-};
-
-
- - The - udp_server class -
-

- Similarly, this next class is taken from the previous - tutorial step . -

-
class udp_server
-{
-public:
-  udp_server(asio::io_context& io_context)
-    : socket_(io_context, udp::endpoint(udp::v4(), 13))
-  {
-    start_receive();
-  }
-
-private:
-  void start_receive()
-  {
-    socket_.async_receive_from(
-        asio::buffer(recv_buffer_), remote_endpoint_,
-        boost::bind(&udp_server::handle_receive, this,
-          asio::placeholders::error));
-  }
-
-  void handle_receive(const asio::error_code& error)
-  {
-    if (!error)
-    {
-      boost::shared_ptr<std::string> message(
-          new std::string(make_daytime_string()));
-
-      socket_.async_send_to(asio::buffer(*message), remote_endpoint_,
-          boost::bind(&udp_server::handle_send, this, message));
-
-      start_receive();
-    }
-  }
-
-  void handle_send(boost::shared_ptr<std::string> /*message*/)
-  {
-  }
-
-  udp::socket socket_;
-  udp::endpoint remote_endpoint_;
-  boost::array<char, 1> recv_buffer_;
-};
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Daytime.6 - An asynchronous - UDP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime7/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime7/src.html deleted file mode 100644 index 8eebee4..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime7/src.html +++ /dev/null @@ -1,199 +0,0 @@ - - - -Source listing for Daytime.7 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// server.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the 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 <ctime>
-#include <iostream>
-#include <string>
-#include <boost/array.hpp>
-#include <boost/bind.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/enable_shared_from_this.hpp>
-#include <asio.hpp>
-
-using asio::ip::tcp;
-using asio::ip::udp;
-
-std::string make_daytime_string()
-{
-  using namespace std; // For time_t, time and ctime;
-  time_t now = time(0);
-  return ctime(&now);
-}
-
-class tcp_connection
-  : public boost::enable_shared_from_this<tcp_connection>
-{
-public:
-  typedef boost::shared_ptr<tcp_connection> pointer;
-
-  static pointer create(asio::io_context& io_context)
-  {
-    return pointer(new tcp_connection(io_context));
-  }
-
-  tcp::socket& socket()
-  {
-    return socket_;
-  }
-
-  void start()
-  {
-    message_ = make_daytime_string();
-
-    asio::async_write(socket_, asio::buffer(message_),
-        boost::bind(&tcp_connection::handle_write, shared_from_this()));
-  }
-
-private:
-  tcp_connection(asio::io_context& io_context)
-    : socket_(io_context)
-  {
-  }
-
-  void handle_write()
-  {
-  }
-
-  tcp::socket socket_;
-  std::string message_;
-};
-
-class tcp_server
-{
-public:
-  tcp_server(asio::io_context& io_context)
-    : acceptor_(io_context, tcp::endpoint(tcp::v4(), 13))
-  {
-    start_accept();
-  }
-
-private:
-  void start_accept()
-  {
-    tcp_connection::pointer new_connection =
-      tcp_connection::create(acceptor_.get_executor().context());
-
-    acceptor_.async_accept(new_connection->socket(),
-        boost::bind(&tcp_server::handle_accept, this, new_connection,
-          asio::placeholders::error));
-  }
-
-  void handle_accept(tcp_connection::pointer new_connection,
-      const asio::error_code& error)
-  {
-    if (!error)
-    {
-      new_connection->start();
-    }
-
-    start_accept();
-  }
-
-  tcp::acceptor acceptor_;
-};
-
-class udp_server
-{
-public:
-  udp_server(asio::io_context& io_context)
-    : socket_(io_context, udp::endpoint(udp::v4(), 13))
-  {
-    start_receive();
-  }
-
-private:
-  void start_receive()
-  {
-    socket_.async_receive_from(
-        asio::buffer(recv_buffer_), remote_endpoint_,
-        boost::bind(&udp_server::handle_receive, this,
-          asio::placeholders::error));
-  }
-
-  void handle_receive(const asio::error_code& error)
-  {
-    if (!error)
-    {
-      boost::shared_ptr<std::string> message(
-          new std::string(make_daytime_string()));
-
-      socket_.async_send_to(asio::buffer(*message), remote_endpoint_,
-          boost::bind(&udp_server::handle_send, this, message));
-
-      start_receive();
-    }
-  }
-
-  void handle_send(boost::shared_ptr<std::string> /*message*/)
-  {
-  }
-
-  udp::socket socket_;
-  udp::endpoint remote_endpoint_;
-  boost::array<char, 1> recv_buffer_;
-};
-
-int main()
-{
-  try
-  {
-    asio::io_context io_context;
-    tcp_server server1(io_context);
-    udp_server server2(io_context);
-    io_context.run();
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- Return to Daytime.7 - A combined - TCP/UDP asynchronous server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer1.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer1.html deleted file mode 100644 index ce9968b..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer1.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -Timer.1 - Using a timer synchronously - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial program introduces asio by showing how to perform a blocking - wait on a timer. -

-

- We start by including the necessary header files. -

-

- All of the asio classes can be used by simply including the "asio.hpp" - header file. -

-
#include <iostream>
-#include <asio.hpp>
-
-

- All programs that use asio need to have at least one io_context - object. This class provides access to I/O functionality. We declare an object - of this type first thing in the main function. -

-
int main()
-{
-  asio::io_context io;
-
-

- Next we declare an object of type asio::steady_timer. The core asio classes - that provide I/O functionality (or as in this case timer functionality) always - take a reference to an io_context as their first constructor argument. The - second argument to the constructor sets the timer to expire 5 seconds from - now. -

-
  asio::steady_timer t(io, asio::chrono::seconds(5));
-
-

- In this simple example we perform a blocking wait on the timer. That is, - the call to steady_timer::wait() - will not return until the timer has expired, 5 seconds after it was created - (i.e. not from when the wait starts). -

-

- A timer is always in one of two states: "expired" or "not - expired". If the steady_timer::wait() - function is called on an expired timer, it will return immediately. -

-
  t.wait();
-
-

- Finally we print the obligatory "Hello, world!" message - to show when the timer has expired. -

-
  std::cout << "Hello, world!" << std::endl;
-
-  return 0;
-}
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Next: Timer.2 - Using a timer asynchronously -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer1/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer1/src.html deleted file mode 100644 index 773ade9..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer1/src.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -Source listing for Timer.1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// timer.cpp
-// ~~~~~~~~~
-//
-// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the 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 <asio.hpp>
-
-int main()
-{
-  asio::io_context io;
-
-  asio::steady_timer t(io, asio::chrono::seconds(5));
-  t.wait();
-
-  std::cout << "Hello, world!" << std::endl;
-
-  return 0;
-}
-
-

- Return to Timer.1 - Using a timer - synchronously -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer2.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer2.html deleted file mode 100644 index 0182c41..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer2.html +++ /dev/null @@ -1,113 +0,0 @@ - - - -Timer.2 - Using a timer asynchronously - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial program demonstrates how to use asio's asynchronous callback - functionality by modifying the program from tutorial Timer.1 to perform an - asynchronous wait on the timer. -

-
#include <iostream>
-#include <asio.hpp>
-
-

- Using asio's asynchronous functionality means having a callback function - that will be called when an asynchronous operation completes. In this program - we define a function called print to be called when the asynchronous - wait finishes. -

-
void print(const asio::error_code& /*e*/)
-{
-  std::cout << "Hello, world!" << std::endl;
-}
-
-int main()
-{
-  asio::io_context io;
-
-  asio::steady_timer t(io, asio::chrono::seconds(5));
-
-

- Next, instead of doing a blocking wait as in tutorial Timer.1, we call the - steady_timer::async_wait() - function to perform an asynchronous wait. When calling this function we pass - the print callback handler that was defined above. -

-
  t.async_wait(&print);
-
-

- Finally, we must call the io_context::run() - member function on the io_context object. -

-

- The asio library provides a guarantee that callback handlers will only be - called from threads that are currently calling io_context::run(). - Therefore unless the io_context::run() - function is called the callback for the asynchronous wait completion will - never be invoked. -

-

- The io_context::run() - function will also continue to run while there is still "work" - to do. In this example, the work is the asynchronous wait on the timer, so - the call will not return until the timer has expired and the callback has - completed. -

-

- It is important to remember to give the io_context some work to do before - calling io_context::run(). - For example, if we had omitted the above call to steady_timer::async_wait(), - the io_context would not have had any work to do, and consequently io_context::run() would have - returned immediately. -

-
  io.run();
-
-  return 0;
-}
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Timer.1 - Using a timer - synchronously -

-

- Next: Timer.3 - Binding arguments - to a handler -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer2/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer2/src.html deleted file mode 100644 index 352cccd..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer2/src.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -Source listing for Timer.2 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// timer.cpp
-// ~~~~~~~~~
-//
-// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the 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 <asio.hpp>
-
-void print(const asio::error_code& /*e*/)
-{
-  std::cout << "Hello, world!" << std::endl;
-}
-
-int main()
-{
-  asio::io_context io;
-
-  asio::steady_timer t(io, asio::chrono::seconds(5));
-  t.async_wait(&print);
-
-  io.run();
-
-  return 0;
-}
-
-

- Return to Timer.2 - Using a timer - asynchronously -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer3.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer3.html deleted file mode 100644 index b57d883..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer3.html +++ /dev/null @@ -1,159 +0,0 @@ - - - -Timer.3 - Binding arguments to a handler - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In this tutorial we will modify the program from tutorial Timer.2 so that - the timer fires once a second. This will show how to pass additional parameters - to your handler function. -

-
#include <iostream>
-#include <asio.hpp>
-#include <boost/bind.hpp>
-
-

- To implement a repeating timer using asio you need to change the timer's - expiry time in your callback function, and to then start a new asynchronous - wait. Obviously this means that the callback function will need to be able - to access the timer object. To this end we add two new parameters to the - print function: -

-
    -
  • - A pointer to a timer object. -
  • -
  • - A counter so that we can stop the program when the timer fires for the - sixth time. -
  • -
-
void print(const asio::error_code& /*e*/,
-    asio::steady_timer* t, int* count)
-{
-
-

- As mentioned above, this tutorial program uses a counter to stop running - when the timer fires for the sixth time. However you will observe that there - is no explicit call to ask the io_context to stop. Recall that in tutorial - Timer.2 we learnt that the io_context::run() - function completes when there is no more "work" to do. By not starting - a new asynchronous wait on the timer when count reaches 5, the - io_context will run out of work and stop running. -

-
  if (*count < 5)
-  {
-    std::cout << *count << std::endl;
-    ++(*count);
-
-

- Next we move the expiry time for the timer along by one second from the previous - expiry time. By calculating the new expiry time relative to the old, we can - ensure that the timer does not drift away from the whole-second mark due - to any delays in processing the handler. -

-
    t->expires_at(t->expiry() + asio::chrono::seconds(1));
-
-

- Then we start a new asynchronous wait on the timer. As you can see, the - boost::bind function is used - to associate the extra parameters with your callback handler. The steady_timer::async_wait() - function expects a handler function (or function object) with the signature - void(const asio::error_code&). Binding the additional parameters - converts your print function into a function object that matches - the signature correctly. -

-

- See the Boost.Bind - documentation for more information on how to use boost::bind - . -

-

- In this example, the asio::placeholders::error argument to boost::bind - is a named placeholder for the error object passed to the handler. When initiating - the asynchronous operation, and if using boost::bind - , you must specify only the arguments that match the handler's parameter - list. In tutorial Timer.4 you will see that this placeholder may be elided - if the parameter is not needed by the callback handler. -

-
    t->async_wait(boost::bind(print,
-          asio::placeholders::error, t, count));
-  }
-}
-
-int main()
-{
-  asio::io_context io;
-
-

- A new count variable is added so that we can stop the program - when the timer fires for the sixth time. -

-
  int count = 0;
-  asio::steady_timer t(io, asio::chrono::seconds(1));
-
-

- As in Step 4, when making the call to steady_timer::async_wait() - from main we bind the additional parameters needed for the - print function. -

-
  t.async_wait(boost::bind(print,
-        asio::placeholders::error, &t, &count));
-
-  io.run();
-
-

- Finally, just to prove that the count variable was being used - in the print handler function, we will print out its new value. -

-
  std::cout << "Final count is " << count << std::endl;
-
-  return 0;
-}
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Timer.2 - Using a timer - asynchronously -

-

- Next: Timer.4 - Using a member function - as a handler -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer3/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer3/src.html deleted file mode 100644 index 9049591..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer3/src.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -Source listing for Timer.3 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// timer.cpp
-// ~~~~~~~~~
-//
-// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the 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 <asio.hpp>
-#include <boost/bind.hpp>
-
-void print(const asio::error_code& /*e*/,
-    asio::steady_timer* t, int* count)
-{
-  if (*count < 5)
-  {
-    std::cout << *count << std::endl;
-    ++(*count);
-
-    t->expires_at(t->expiry() + asio::chrono::seconds(1));
-    t->async_wait(boost::bind(print,
-          asio::placeholders::error, t, count));
-  }
-}
-
-int main()
-{
-  asio::io_context io;
-
-  int count = 0;
-  asio::steady_timer t(io, asio::chrono::seconds(1));
-  t.async_wait(boost::bind(print,
-        asio::placeholders::error, &t, &count));
-
-  io.run();
-
-  std::cout << "Final count is " << count << std::endl;
-
-  return 0;
-}
-
-

- Return to Timer.3 - Binding arguments - to a handler -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer4.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer4.html deleted file mode 100644 index 1f9b0a2..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer4.html +++ /dev/null @@ -1,139 +0,0 @@ - - - -Timer.4 - Using a member function as a handler - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In this tutorial we will see how to use a class member function as a callback - handler. The program should execute identically to the tutorial program from - tutorial Timer.3. -

-
#include <iostream>
-#include <asio.hpp>
-#include <boost/bind.hpp>
-
-

- Instead of defining a free function print as the callback handler, - as we did in the earlier tutorial programs, we now define a class called - printer. -

-
class printer
-{
-public:
-
-

- The constructor of this class will take a reference to the io_context object - and use it when initialising the timer_ member. The counter - used to shut down the program is now also a member of the class. -

-
  printer(asio::io_context& io)
-    : timer_(io, asio::chrono::seconds(1)),
-      count_(0)
-  {
-
-

- The boost::bind function - works just as well with class member functions as with free functions. Since - all non-static class member functions have an implicit this - parameter, we need to bind this to the function. As in tutorial - Timer.3, boost::bind converts - our callback handler (now a member function) into a function object that - can be invoked as though it has the signature void(const asio::error_code&). -

-

- You will note that the asio::placeholders::error placeholder is not specified - here, as the print member function does not accept an error - object as a parameter. -

-
    timer_.async_wait(boost::bind(&printer::print, this));
-  }
-
-

- In the class destructor we will print out the final value of the counter. -

-
  ~printer()
-  {
-    std::cout << "Final count is " << count_ << std::endl;
-  }
-
-

- The print member function is very similar to the print - function from tutorial Timer.3, except that it now operates on the class - data members instead of having the timer and counter passed in as parameters. -

-
  void print()
-  {
-    if (count_ < 5)
-    {
-      std::cout << count_ << std::endl;
-      ++count_;
-
-      timer_.expires_at(timer_.expiry() + asio::chrono::seconds(1));
-      timer_.async_wait(boost::bind(&printer::print, this));
-    }
-  }
-
-private:
-  asio::steady_timer timer_;
-  int count_;
-};
-
-

- The main function is much simpler than before, as it now declares - a local printer object before running the io_context as normal. -

-
int main()
-{
-  asio::io_context io;
-  printer p(io);
-  io.run();
-
-  return 0;
-}
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Timer.3 - Binding arguments - to a handler -

-

- Next: Timer.5 - Synchronising handlers - in multithreaded programs -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer4/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer4/src.html deleted file mode 100644 index 22bdd9f..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer4/src.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -Source listing for Timer.4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// timer.cpp
-// ~~~~~~~~~
-//
-// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the 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 <asio.hpp>
-#include <boost/bind.hpp>
-
-class printer
-{
-public:
-  printer(asio::io_context& io)
-    : timer_(io, asio::chrono::seconds(1)),
-      count_(0)
-  {
-    timer_.async_wait(boost::bind(&printer::print, this));
-  }
-
-  ~printer()
-  {
-    std::cout << "Final count is " << count_ << std::endl;
-  }
-
-  void print()
-  {
-    if (count_ < 5)
-    {
-      std::cout << count_ << std::endl;
-      ++count_;
-
-      timer_.expires_at(timer_.expiry() + asio::chrono::seconds(1));
-      timer_.async_wait(boost::bind(&printer::print, this));
-    }
-  }
-
-private:
-  asio::steady_timer timer_;
-  int count_;
-};
-
-int main()
-{
-  asio::io_context io;
-  printer p(io);
-  io.run();
-
-  return 0;
-}
-
-

- Return to Timer.4 - Using a member - function as a handler -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer5.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer5.html deleted file mode 100644 index 0dfa8e9..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer5.html +++ /dev/null @@ -1,199 +0,0 @@ - - - -Timer.5 - Synchronising handlers in multithreaded programs - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial demonstrates the use of the io_context::strand - class to synchronise callback handlers in a multithreaded program. -

-

- The previous four tutorials avoided the issue of handler synchronisation - by calling the io_context::run() - function from one thread only. As you already know, the asio library provides - a guarantee that callback handlers will only be called from threads that - are currently calling io_context::run(). - Consequently, calling io_context::run() - from only one thread ensures that callback handlers cannot run concurrently. -

-

- The single threaded approach is usually the best place to start when developing - applications using asio. The downside is the limitations it places on programs, - particularly servers, including: -

-
    -
  • - Poor responsiveness when handlers can take a long time to complete. -
  • -
  • - An inability to scale on multiprocessor systems. -
  • -
-

- If you find yourself running into these limitations, an alternative approach - is to have a pool of threads calling io_context::run(). - However, as this allows handlers to execute concurrently, we need a method - of synchronisation when handlers might be accessing a shared, thread-unsafe - resource. -

-
#include <iostream>
-#include <asio.hpp>
-#include <boost/bind.hpp>
-
-

- We start by defining a class called printer, similar to the - class in the previous tutorial. This class will extend the previous tutorial - by running two timers in parallel. -

-
class printer
-{
-public:
-
-

- In addition to initialising a pair of asio::steady_timer members, the constructor - initialises the strand_ member, an object of type io_context::strand. -

-

- An io_context::strand - is an executor that guarantees that, for those handlers that are dispatched - through it, an executing handler will be allowed to complete before the next - one is started. This is guaranteed irrespective of the number of threads - that are calling io_context::run(). - Of course, the handlers may still execute concurrently with other handlers - that were not dispatched through an io_context::strand, - or were dispatched through a different io_context::strand - object. -

-
  printer(asio::io_context& io)
-    : strand_(io),
-      timer1_(io, asio::chrono::seconds(1)),
-      timer2_(io, asio::chrono::seconds(1)),
-      count_(0)
-  {
-
-

- When initiating the asynchronous operations, each callback handler is "bound" - to an io_context::strand - object. The asio::io_context::strand::bind_executor() function returns a - new handler that automatically dispatches its contained handler through the - io_context::strand - object. By binding the handlers to the same io_context::strand, - we are ensuring that they cannot execute concurrently. -

-
    timer1_.async_wait(asio::bind_executor(strand_,
-          boost::bind(&printer::print1, this)));
-
-    timer2_.async_wait(asio::bind_executor(strand_,
-          boost::bind(&printer::print2, this)));
-  }
-
-  ~printer()
-  {
-    std::cout << "Final count is " << count_ << std::endl;
-  }
-
-

- In a multithreaded program, the handlers for asynchronous operations should - be synchronised if they access shared resources. In this tutorial, the shared - resources used by the handlers (print1 and print2) - are std::cout and the count_ data member. -

-
  void print1()
-  {
-    if (count_ < 10)
-    {
-      std::cout << "Timer 1: " << count_ << std::endl;
-      ++count_;
-
-      timer1_.expires_at(timer1_.expiry() + asio::chrono::seconds(1));
-
-      timer1_.async_wait(asio::bind_executor(strand_,
-            boost::bind(&printer::print1, this)));
-    }
-  }
-
-  void print2()
-  {
-    if (count_ < 10)
-    {
-      std::cout << "Timer 2: " << count_ << std::endl;
-      ++count_;
-
-      timer2_.expires_at(timer2_.expiry() + asio::chrono::seconds(1));
-
-      timer2_.async_wait(asio::bind_executor(strand_,
-            boost::bind(&printer::print2, this)));
-    }
-  }
-
-private:
-  asio::io_context::strand strand_;
-  asio::steady_timer timer1_;
-  asio::steady_timer timer2_;
-  int count_;
-};
-
-

- The main function now causes io_context::run() - to be called from two threads: the main thread and one additional thread. - This is accomplished using an thread - object. -

-

- Just as it would with a call from a single thread, concurrent calls to io_context::run() will continue - to execute while there is "work" left to do. The background thread - will not exit until all asynchronous operations have completed. -

-
int main()
-{
-  asio::io_context io;
-  printer p(io);
-  asio::thread t(boost::bind(&asio::io_context::run, &io));
-  io.run();
-  t.join();
-
-  return 0;
-}
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Timer.4 - Using a member - function as a handler -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer5/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer5/src.html deleted file mode 100644 index 8f9a233..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer5/src.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -Source listing for Timer.5 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// timer.cpp
-// ~~~~~~~~~
-//
-// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the 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 <asio.hpp>
-#include <boost/bind.hpp>
-
-class printer
-{
-public:
-  printer(asio::io_context& io)
-    : strand_(io),
-      timer1_(io, asio::chrono::seconds(1)),
-      timer2_(io, asio::chrono::seconds(1)),
-      count_(0)
-  {
-    timer1_.async_wait(asio::bind_executor(strand_,
-          boost::bind(&printer::print1, this)));
-
-    timer2_.async_wait(asio::bind_executor(strand_,
-          boost::bind(&printer::print2, this)));
-  }
-
-  ~printer()
-  {
-    std::cout << "Final count is " << count_ << std::endl;
-  }
-
-  void print1()
-  {
-    if (count_ < 10)
-    {
-      std::cout << "Timer 1: " << count_ << std::endl;
-      ++count_;
-
-      timer1_.expires_at(timer1_.expiry() + asio::chrono::seconds(1));
-
-      timer1_.async_wait(asio::bind_executor(strand_,
-            boost::bind(&printer::print1, this)));
-    }
-  }
-
-  void print2()
-  {
-    if (count_ < 10)
-    {
-      std::cout << "Timer 2: " << count_ << std::endl;
-      ++count_;
-
-      timer2_.expires_at(timer2_.expiry() + asio::chrono::seconds(1));
-
-      timer2_.async_wait(asio::bind_executor(strand_,
-            boost::bind(&printer::print2, this)));
-    }
-  }
-
-private:
-  asio::io_context::strand strand_;
-  asio::steady_timer timer1_;
-  asio::steady_timer timer2_;
-  int count_;
-};
-
-int main()
-{
-  asio::io_context io;
-  printer p(io);
-  asio::thread t(boost::bind(&asio::io_context::run, &io));
-  io.run();
-  t.join();
-
-  return 0;
-}
-
-

- Return to Timer.5 - Synchronising - handlers in multithreaded programs -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/using.html b/Sources/Vendor/asio/doc/asio/using.html deleted file mode 100644 index 2e83b25..0000000 --- a/Sources/Vendor/asio/doc/asio/using.html +++ /dev/null @@ -1,564 +0,0 @@ - - - -Using Asio - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- - Supported - Platforms -

-

- The following platform and compiler combinations are regularly tested: -

-
    -
  • - Linux using g++ 4.1 or later -
  • -
  • - Linux using clang 3.2 or later -
  • -
  • - FreeBSD using g++ 4.1 or later -
  • -
  • - macOS using Xcode 8 or later -
  • -
  • - Win32 using Visual C++ 9.0 or later -
  • -
  • - Win32 using g++ 4.1 or later (MinGW) -
  • -
  • - Win64 using Visual C++ 9.0 or later -
  • -
-

- The following platforms may also work: -

-
    -
  • - AIX -
  • -
  • - Android -
  • -
  • - HP-UX -
  • -
  • - iOS -
  • -
  • - NetBSD -
  • -
  • - OpenBSD -
  • -
  • - QNX Neutrino -
  • -
  • - Solaris -
  • -
  • - Tru64 -
  • -
  • - Win32 using Cygwin. (__USE_W32_SOCKETS must be defined.) -
  • -
-

- - Dependencies -

-

- The following libraries must be available in order to link programs that use - Asio: -

-
    -
  • - Boost.Coroutine (optional) if you use spawn() - to launch coroutines. -
  • -
  • - Boost.Regex (optional) if you use any of the read_until() - or async_read_until() - overloads that take a boost::regex parameter. -
  • -
  • - OpenSSL (optional) if you use - Asio's SSL support. -
  • -
-

- Furthermore, some of the examples also require Boost.Date_Time or Boost.Serialization - libraries. -

-
- - - - - -
[Note]Note

- With MSVC or Borland C++ you may want to add -DBOOST_DATE_TIME_NO_LIB - and -DBOOST_REGEX_NO_LIB to your project settings to disable - autolinking of the Boost.Date_Time and Boost.Regex libraries respectively. - Alternatively, you may choose to build these libraries and link to them. -

-

- - Optional - separate compilation -

-

- By default, Asio is a header-only library. However, some developers may prefer - to build Asio using separately compiled source code. To do this, add #include - <asio/impl/src.hpp> to one (and only one) source file in a program, - then build the program with ASIO_SEPARATE_COMPILATION defined - in the project/compiler settings. Alternatively, ASIO_DYN_LINK - may be defined to build a separately-compiled Asio as part of a shared library. -

-

- If using Asio's SSL support, you will also need to add #include <asio/ssl/impl/src.hpp>. -

-

- - Building - the tests and examples on Linux or UNIX -

-

- If the boost directory (e.g. the directory called boost_1_34_1) - is in the same directory as the asio source kit, then you may configure asio - by simply going: -

-
./configure
-
-

- in the root directory of the asio source kit. Note that configure will always - use the most recent boost version it knows about (i.e. 1.34.1) in preference - to earlier versions, if there is more than one version present. -

-

- If the boost directory is in some other location, then you need to specify - this directory when running configure: -

-
./configure --with-boost=path_to_boost
-
-

- When specifying the boost directory in this way you should ensure that you - use an absolute path. -

-

- To build the examples, simply run make in the root directory of - the asio source kit. To also build and run the unit tests, to confirm that - asio is working correctly, run make check. -

-

- - Building - the tests and examples with MSVC -

-

- To build using the MSVC 9.0 (or later) command line compiler, perform the following - steps in a Command Prompt window: -

-
    -
  • - If you are using a version of boost other than 1.34.1, or if the boost - directory (i.e. the directory called boost_1_34_1) is not - in the same directory as the asio source kit, then specify the location - of boost by running a command similar to set BOOSTDIR=path_to_boost. - Ensure that you specify an absolute path. -
  • -
  • - Change to the asio src directory. -
  • -
  • - Execute the command nmake -f Makefile.msc. -
  • -
  • - Execute the command nmake -f Makefile.msc check to run a suite - of tests to confirm that asio is working correctly. -
  • -
-

- - Building - the tests and examples with MinGW -

-

- To build using the MinGW g++ compiler from the command line, perform the following - steps in a Command Prompt window: -

-
    -
  • - If you are using a version of boost other than 1.34.1, or if the boost - directory (i.e. the directory called boost_1_34_1) is not - in the same directory as the asio source kit, then specify the location - of boost by running a command similar to set BOOSTDIR=path_to_boost. - Ensure that you specify an absolute path using forward slashes - (i.e. c:/projects/boost_1_34_1 rather than c:\projects\boost_1_34_1). -
  • -
  • - Change to the asio src directory. -
  • -
  • - Execute the command make -f Makefile.mgw. -
  • -
  • - Execute the command make -f Makefile.mgw check to run a suite - of tests to confirm that asio is working correctly. -
  • -
-
- - - - - -
[Note]Note

- The above instructions do not work when building inside MSYS. If you want - to build using MSYS, you should use export rather than - set to specify the location of boost. -

-

- - Macros -

-

- The macros listed in the table below may be used to control the behaviour of - Asio. -

-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Macro -

-
-

- Description -

-
-

- ASIO_ENABLE_BUFFER_DEBUGGING -

-
-

- Enables Asio's buffer debugging support, which can help identify - when invalid buffers are used in read or write operations (e.g. if - a std::string object being written is destroyed before the write - operation completes). -

-

- When using Microsoft Visual C++ 11.0 or later, this macro is defined - automatically if the compiler's iterator debugging support is enabled, - unless ASIO_DISABLE_BUFFER_DEBUGGING has been defined. -

-

- When using g++, this macro is defined automatically if standard library - debugging is enabled (_GLIBCXX_DEBUG is defined), unless - ASIO_DISABLE_BUFFER_DEBUGGING has been defined. -

-
-

- ASIO_DISABLE_BUFFER_DEBUGGING -

-
-

- Explictly disables Asio's buffer debugging support. -

-
-

- ASIO_DISABLE_DEV_POLL -

-
-

- Explicitly disables /dev/poll support on Solaris, - forcing the use of a select-based implementation. -

-
-

- ASIO_DISABLE_EPOLL -

-
-

- Explicitly disables epoll support on Linux, forcing - the use of a select-based implementation. -

-
-

- ASIO_DISABLE_EVENTFD -

-
-

- Explicitly disables eventfd support on Linux, forcing - the use of a pipe to interrupt blocked epoll/select system calls. -

-
-

- ASIO_DISABLE_KQUEUE -

-
-

- Explicitly disables kqueue support on macOS and BSD - variants, forcing the use of a select-based implementation. -

-
-

- ASIO_DISABLE_IOCP -

-
-

- Explicitly disables I/O completion ports support on Windows, forcing - the use of a select-based implementation. -

-
-

- ASIO_DISABLE_THREADS -

-
-

- Explicitly disables Asio's threading support, independent of whether - or not Boost supports threads. -

-
-

- ASIO_NO_WIN32_LEAN_AND_MEAN -

-
-

- By default, Asio will automatically define WIN32_LEAN_AND_MEAN - when compiling for Windows, to minimise the number of Windows SDK - header files and features that are included. The presence of ASIO_NO_WIN32_LEAN_AND_MEAN - prevents WIN32_LEAN_AND_MEAN from being defined. -

-
-

- ASIO_NO_NOMINMAX -

-
-

- By default, Asio will automatically define NOMINMAX - when compiling for Windows, to suppress the definition of the min() - and max() macros. The presence of ASIO_NO_NOMINMAX - prevents NOMINMAX from being defined. -

-
-

- ASIO_NO_DEFAULT_LINKED_LIBS -

-
-

- When compiling for Windows using Microsoft Visual C++ or Borland - C++, Asio will automatically link in the necessary Windows SDK libraries - for sockets support (i.e. ws2_32.lib and mswsock.lib, - or ws2.lib when building for Windows CE). The - ASIO_NO_DEFAULT_LINKED_LIBS macro prevents these libraries - from being linked. -

-
-

- ASIO_ENABLE_CANCELIO -

-
-

- Enables use of the CancelIo function on older versions - of Windows. If not enabled, calls to cancel() on a socket - object will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions - of Windows. When running on Windows Vista, Windows Server 2008, and - later, the CancelIoEx function is always used. -

-

- The CancelIo function has two issues that should be - considered before enabling its use: -

-

- * It will only cancel asynchronous operations that were initiated - in the current thread. -

-

- * It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -

-

- For portable cancellation, consider using one of the following alternatives: -

-

- * Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -

-

- * Use the socket object's close() function to simultaneously cancel - the outstanding operations and close the socket. -

-
-

- ASIO_NO_TYPEID -

-
-

- Disables uses of the typeid operator in asio. Defined - automatically if BOOST_NO_TYPEID is defined. -

-
-

- ASIO_HASH_MAP_BUCKETS -

-
-

- Determines the number of buckets in asio's internal hash_map - objects. The value should be a comma separated list of prime numbers, - in ascending order. The hash_map implementation will - automatically increase the number of buckets as the number of elements - in the map increases. -

-

- Some examples: -

-

- * Defining ASIO_HASH_MAP_BUCKETS to 1021 - means that the hash_map objects will always contain - 1021 buckets, irrespective of the number of elements in the map. -

-

- * Defining ASIO_HASH_MAP_BUCKETS to 53,389,1543 - means that the hash_map objects will initially contain - 53 buckets. The number of buckets will be increased to 389 and then - 1543 as elements are added to the map. -

-
-

- ASIO_ENABLE_OLD_SERVICES -

-
-

- The service template parameters, and the corresponding classes, are - disabled by default. For example, instead of basic_socket<Protocol, - SocketService> we now have simply basic_socket<Protocol>. - The old interface can be enabled by defining the ASIO_ENABLE_OLD_SERVICES - macro. -

-
-

- - Mailing - List -

-

- A mailing list specifically for Asio may be found on SourceForge.net. - Newsgroup access is provided via Gmane. -

-

- - Wiki -

-

- Users are encouraged to share examples, tips and FAQs on the Asio wiki, which - is located at http://think-async.com/Asio/. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/async_op1.png b/Sources/Vendor/asio/doc/async_op1.png deleted file mode 100644 index 464bc90e68398c9d135863e97661310623200681..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24260 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 UrGqxHnhO5TYhO55qGccYf5X|4)&Kwi diff --git a/Sources/Vendor/asio/doc/blank.png b/Sources/Vendor/asio/doc/blank.png deleted file mode 100644 index 764bf4f0c3bb4a09960b04b6fa9c9024bca703bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1SEZ8zRdwrEa{HEjtmSN`?>!lvNA9*>Uz33 zhE&XXd(lylL4oIh!GZnHecj|txT>yO8>^qY%(y?B;Tppl#t7yOYze#vq#8^aMzDZb YLK^d5CO(feU_df>y85}Sb4q9e0Be *:first-child, - table td > *:first-child - { - margin-top: 0; - } - - table th > *:last-child, - table td > *:last-child - { - margin-bottom: 0; - } - -/*============================================================================= -Blurbs -=============================================================================*/ - - div.note, - div.tip, - div.important, - div.caution, - div.warning, - div.blurb, - p.blurb - { - font-size: 9pt; /* A little bit smaller than the main text */ - line-height: 1.2; - display: block; - margin: 1pc 4% 0pc 4%; - padding: 0.5pc 0.5pc 0.5pc 0.5pc; - } - - div.blurb img, - p.blurb img - { - padding: 1pt; - } - -/*============================================================================= -Variable Lists -=============================================================================*/ - - div.variablelist - { - margin: 1em 0; - } - - /* Make the terms in definition lists bold */ - div.variablelist dl dt, - span.term - { - font-weight: bold; - font-size: 10pt; - } - - div.variablelist table tbody tr td - { - text-align: left; - vertical-align: top; - padding: 0em 2em 0em 0em; - font-size: 10pt; - margin: 0em 0em 0.5em 0em; - line-height: 1; - } - - div.variablelist dl dt - { - margin-bottom: 0.2em; - } - - div.variablelist dl dd - { - margin: 0em 0em 0.5em 2em; - font-size: 10pt; - } - - div.variablelist table tbody tr td p, - div.variablelist dl dd p - { - margin: 0em 0em 0.5em 0em; - line-height: 1; - } - -/*============================================================================= -Misc -=============================================================================*/ - - /* Title of books and articles in bibliographies */ - span.title - { - font-style: italic; - } - - span.underline - { - text-decoration: underline; - } - - span.strikethrough - { - text-decoration: line-through; - } - - /* Copyright, Legal Notice */ - div div.legalnotice p - { - text-align: left - } - -/*============================================================================= -Colors -=============================================================================*/ - - @media screen - { - body { - background-color: #FFFFFF; - color: #000000; - } - - /* Syntax Highlighting */ - .property, - .highlight .k, - .highlight .kc, - .highlight .kd, - .highlight .kn, - .highlight .kp, - .highlight .kr, - .highlight .kt, - .keyword { color: #0000AA; } - - .highlight .n, - .highlight .na, - .highlight .nb, - .highlight .bp, - .highlight .nc, - .highlight .no, - .highlight .nd, - .highlight .ni, - .highlight .ne, - .highlight .nf, - .highlight .py, - .highlight .nl, - .highlight .nn, - .highlight .nx, - .highlight .nt, - .highlight .nv, - .highlight .vc, - .highlight .vg, - .highlight .vi, - .identifier { color: #000000; } - - .special { color: #707070; } - - .highlight .cp, - .preprocessor { color: #402080; } - - .highlight .sc - .char { color: teal; } - - .highlight .c, - .highlight .ch, - .highlight .cm, - .highlight .cp, - .highlight .cpf, - .highlight .c1, - .highlight .cs, - .highlight .sd, - .highlight .sh, - .comment { color: #800000; } - - .highlight .s, - .highlight .sa, - .highlight .sb, - .highlight .dl, - .highlight .s2, - .highlight .se, - .highlight .si, - .highlight .sx, - .highlight .sr, - .highlight .s1, - .highlight .ss, - .string { color: teal; } - - .highlight .m, - .highlight .mf, - .highlight .mh, - .highlight .mi, - .highlight .mo, - .number { color: teal; } - - .highlight, - .white_bkd { background-color: #FFFFFF; } - - .highlight .hll, - .dk_grey_bkd { background-color: #999999; } - - /* Links */ - a, a .keyword, a .identifier, a .special, a .preprocessor - a .char, a .comment, a .string, a .number - { - color: #005a9c; - } - - a:visited, a:visited .keyword, a:visited .identifier, - a:visited .special, a:visited .preprocessor a:visited .char, - a:visited .comment, a:visited .string, a:visited .number - { - color: #9c5a9c; - } - - h1 a, h2 a, h3 a, h4 a, h5 a, h6 a, - h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover, - h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited - { - text-decoration: none; /* no underline */ - color: #000000; - } - - /* Copyright, Legal Notice */ - .copyright - { - color: #666666; - font-size: small; - } - - div div.legalnotice p - { - color: #666666; - } - - /* Program listing */ - pre.synopsis - { - border: 1px solid #DCDCDC; - } - - div.highlight, - .programlisting, - .screen - { - border: 1px solid #DCDCDC; - } - - td .programlisting, - td .screen - { - border: 0px solid #DCDCDC; - } - - /* Blurbs */ - div.note, - div.tip, - div.important, - div.caution, - div.warning, - div.blurb, - p.blurb - { - border: 1px solid #DCDCDC; - } - - /* Table of contents */ - div.toc - { - border: 1px solid #DCDCDC; - } - - /* Tables */ - div.informaltable table tr td, - div.table table tr td - { - border: 1px solid #DCDCDC; - } - - div.informaltable table tr th, - div.table table tr th - { - background-color: #F0F0F0; - border: 1px solid #DCDCDC; - } - - .copyright-footer - { - color: #8F8F8F; - } - - /* Misc */ - span.highlight - { - color: #00A000; - } - } - - @media print - { - /* Links */ - a - { - color: black; - } - - a:visited - { - color: black; - } - - .spirit-nav - { - display: none; - } - - /* Program listing */ - pre.synopsis - { - border: 1px solid gray; - } - - div.highlight, - .programlisting, - .screen - { - border: 1px solid gray; - } - - td .programlisting, - td .screen - { - border: 0px solid #DCDCDC; - } - - /* Table of contents */ - div.toc - { - border: 1px solid gray; - } - - .informaltable table, - .table table - { - border: 1px solid gray; - border-collapse: collapse; - } - - /* Tables */ - div.informaltable table tr td, - div.table table tr td - { - border: 1px solid gray; - } - - div.informaltable table tr th, - div.table table tr th - { - border: 1px solid gray; - } - - table.simplelist tr td - { - border: none !important; - } - - /* Misc */ - span.highlight - { - font-weight: bold; - } - } - -/*============================================================================= -Images -=============================================================================*/ - - span.inlinemediaobject img - { - vertical-align: middle; - } - -/*============================================================================== -Super and Subscript: style so that line spacing isn't effected, see -http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=1&postId=5341 -==============================================================================*/ - -sup, -sub { -height: 0; -line-height: 1; -vertical-align: baseline; -position: relative; - -} - -/* For internet explorer: */ - -* html sup, -* html sub { -vertical-align: bottom; -} - -sup { -bottom: 1ex; -} - -sub { -top: .5ex; -} - -/*============================================================================== -Indexes: pretty much the same as the TOC. -==============================================================================*/ - - .index - { - font-size: 80%; - padding-top: 0px; - padding-bottom: 0px; - margin-top: 0px; - margin-bottom: 0px; - margin-left: 0px; - } - - .index ul - { - padding-left: 3em; - } - - .index p - { - padding: 2px; - margin: 2px; - } - - .index-entry-level-0 - { - font-weight: bold; - } - - .index em - { - font-weight: bold; - } - - -/*============================================================================== -Alignment and coloring use 'role' feature, available from Quickbook 1.6 up. -Added from Niall Douglas for role color and alignment. -http://article.gmane.org/gmane.comp.lib.boost.devel/243318 -*/ - -/* Add text alignment (see http://www.w3schools.com/cssref/pr_text_text-align.asp) */ -span.aligncenter -{ - display: inline-block; width: 100%; text-align: center; -} -span.alignright -{ - display: inline-block; width: 100%; text-align: right; -} -/* alignleft is the default. */ -span.alignleft -{ - display: inline-block; width: 100%; text-align: left; -} - -/* alignjustify stretches the word spacing so that each line has equal width -within a chosen fraction of page width (here arbitrarily 20%). -*Not* useful inside table items as the column width remains the total string width. -Nor very useful, except to temporarily restrict the width. -*/ -span.alignjustify -{ - display: inline-block; width: 20%; text-align: justify; -} - -/* Text colors. -Names at http://www.w3.org/TR/2002/WD-css3-color-20020219/ 4.3. X11 color keywords. -Quickbook Usage: [role red Some red text] - -*/ -span.red { inline-block; color: red; } -span.green { color: green; } -span.lime { color: #00FF00; } -span.blue { color: blue; } -span.navy { color: navy; } -span.yellow { color: yellow; } -span.magenta { color: magenta; } -span.indigo { color: #4B0082; } -span.cyan { color: cyan; } -span.purple { color: purple; } -span.gold { color: gold; } -span.silver { color: silver; } /* lighter gray */ -span.gray { color: #808080; } /* light gray */ diff --git a/Sources/Vendor/asio/doc/caution.png b/Sources/Vendor/asio/doc/caution.png deleted file mode 100644 index 5b7809ca4a9c8d778087522e5ce04b6e90099595..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1250 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbQ|Pftew|C&U%V<=|it5MYpyU{F+K zFf?Rva$<;zVn|MA$j)XcE@r5%W@u>vqT-$&hMpcE*)wGd!;~q-Q>IkUnZqz=PVt;M zK*p3gbLK2v%CK~4^3tV1#?q}@8MbbX+PXD)>(;G%_cH9=n|$sZ!?|yxmE{-7;w@N47?rU=3X_NkV zU|o{PnRTZ;lXp4>+)hZU_|Lw%*va*6=<@jI@BP^`_OsZ?pZg-2AaGf|;i2L0<>du@ zeRrO4er03}pLSxdREd>pap^;~&E+}=JYKy#vHnLI=Z$}pPyA_`zG;G~<$`Br2do;7 z$Heivv0AeyJYVI({@6?X6r+V~XS2Cs!|bddDqJz@2lKf$~4dA1c%lfOT+5KMUSWi#X5(9ePxx_W1Bsf2+N)z4*}Q$iB}K{RAP diff --git a/Sources/Vendor/asio/doc/draft.png b/Sources/Vendor/asio/doc/draft.png deleted file mode 100644 index 0084708c9b8287c51efa6b40b8d492854191455e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17454 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 diff --git a/Sources/Vendor/asio/doc/examples/diffs/allocation/server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/allocation/server.cpp.html deleted file mode 100644 index 37783cb..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/allocation/server.cpp.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - - HTML Diff allocation/server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​allocation/​server.​cppsrc/​examples/​cpp11/​allocation/​server.​cpp
1 /​/​1 /​/​
2 /​/​·​server.​cpp2 /​/​·​server.​cpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<array>
11 #include·​<cstdlib>12 #include·​<cstdlib>
12 #include·​<iostream>13 #include·​<iostream>
13 #include·​<boost/​aligned_storage.​hpp>14 #include·​<memory>
14 #include·​<boost/​array.​hpp>15 #include·​<type_traits>
15 #include·​<boost/​bind.​hpp>16 #include·​<utility>
16 #include·<boost/​enable_shared_from_th​is.​hpp>
17 #include·<boost/​noncopyable.​hpp>
18 #include·<boost/​shared_ptr.​hpp>
19 #include·​"asio.​hpp"17 #include·​"asio.​hpp"
20 18
21 using·​asio:​:​ip:​:​tcp;​19 using·​asio:​:​ip:​:​tcp;​
22 20
23 /​/​·​Class·​to·​manage·​the·​memory·​to·​be·​used·​for·​handler-​based·​custom·​allocation.​21 /​/​·​Class·​to·​manage·​the·​memory·​to·​be·​used·​for·​handler-​based·​custom·​allocation.​
24 /​/​·​It·​contains·​a·​single·​block·​of·​memory·​which·​may·​be·​returned·​for·​allocation22 /​/​·​It·​contains·​a·​single·​block·​of·​memory·​which·​may·​be·​returned·​for·​allocation
25 /​/​·​requests.​·​If·​the·​memory·​is·​in·​use·​when·​an·​allocation·​request·​is·​made,​·​the23 /​/​·​requests.​·​If·​the·​memory·​is·​in·​use·​when·​an·​allocation·​request·​is·​made,​·​the
26 /​/​·​allocator·​delegates·​allocation·​to·​the·​global·​heap.​24 /​/​·​allocator·​delegates·​allocation·​to·​the·​global·​heap.​
27 class·​handler_memory25 class·​handler_memory
28 ··​:​·​private·​boost:​:​noncopyable
29 {26 {
30 public:​27 public:​
31 ··​handler_memory()​28 ··​handler_memory()​
32 ····​:​·​in_use_(false)​29 ····​:​·​in_use_(false)​
33 ··​{30 ··​{
34 ··​}31 ··​}
35 32
33 ··​handler_memory(const·​handler_memory&)​·​=·​delete;​
34 ··​handler_memory&·​operator=(const·​handler_memory&)​·​=·​delete;​
35
36 ··​void*·​allocate(std:​:​size_t·​size)​36 ··​void*·​allocate(std:​:​size_t·​size)​
37 ··​{37 ··​{
38 ····​if·​(!in_use_·​&&·​size·​<·​storage_.​size)​38 ····​if·​(!in_use_·​&&·​size·​<·sizeof(storage_)​)​
39 ····​{39 ····​{
40 ······​in_use_·​=·​true;​40 ······​in_use_·​=·​true;​
41 ······​return·​storage_.​address()​;​41 ······​return·&storage_;​
42 ····​}42 ····​}
43 ····​else43 ····​else
44 ····​{44 ····​{
45 ······​return·​:​:​operator·​new(size)​;​45 ······​return·​:​:​operator·​new(size)​;​
46 ····​}46 ····​}
47 ··​}47 ··​}
48 48
49 ··​void·​deallocate(void*·​pointer)​49 ··​void·​deallocate(void*·​pointer)​
50 ··​{50 ··​{
51 ····​if·​(pointer·​==·​storage_.​address()​)​51 ····​if·​(pointer·​==·&storage_)​
52 ····​{52 ····​{
53 ······​in_use_·​=·​false;​53 ······​in_use_·​=·​false;​
54 ····​}54 ····​}
55 ····​else55 ····​else
56 ····​{56 ····​{
57 ······​:​:​operator·​delete(pointer)​;​57 ······​:​:​operator·​delete(pointer)​;​
58 ····​}58 ····​}
59 ··​}59 ··​}
60 60
61 private:​61 private:​
62 ··​/​/​·​Storage·​space·​used·​for·​handler-​based·​custom·​memory·​allocation.​62 ··​/​/​·​Storage·​space·​used·​for·​handler-​based·​custom·​memory·​allocation.​
63 ··boost:​:​aligned_storage<1024>​·​storage_;​63 ··typename·std:​:​aligned_storage<1024>​:​:​type·​storage_;​
64 64
65 ··​/​/​·​Whether·​the·​handler-​based·​custom·​allocation·​storage·​has·​been·​used.​65 ··​/​/​·​Whether·​the·​handler-​based·​custom·​allocation·​storage·​has·​been·​used.​
66 ··​bool·​in_use_;​66 ··​bool·​in_use_;​
67 };​67 };​
68 68
69 /​/​·​The·​allocator·​to·​be·​associated·​with·​the·​handler·​objects.​·​This·​allocator·​only69 /​/​·​The·​allocator·​to·​be·​associated·​with·​the·​handler·​objects.​·​This·​allocator·​only
70 /​/​·​needs·​to·​satisfy·​the·​C++11·​minimal·​allocator·​requirements,​·plus·rebind·when70 /​/​·​needs·​to·​satisfy·​the·​C++11·​minimal·​allocator·​requirements.​
71 /​/​·targeting·C++03.​
72 template·​<typename·​T>71 template·​<typename·​T>
73 class·​handler_allocator72 class·​handler_allocator
74 {73 {
75 public:​74 public:​
76 ··typedef·T·​value_type;​75 ··using·​value_type·=·T;​
77 76
78 ··​explicit·​handler_allocator(han​dler_memory&·​mem)​77 ··​explicit·​handler_allocator(han​dler_memory&·​mem)​
79 ····​:​·​memory_(mem)​78 ····​:​·​memory_(mem)​
80 ··​{79 ··​{
81 ··​}80 ··​}
82 81
83 ··​template·​<typename·​U>82 ··​template·​<typename·​U>
84 ··​handler_allocator(con​st·​handler_allocator<U>&​·​other)​83 ··​handler_allocator(con​st·​handler_allocator<U>&​·​other)​·noexcept
85 ····​:​·​memory_(other.​memory_)​84 ····​:​·​memory_(other.​memory_)​
86 ··​{85 ··​{
87 ··​}86 ··​}
88 87
89 ··​template·<typename·U>88 ··bool·operator==(const·handler_allocator&·other)​·const·noexcept
90 ··struct·rebind
91 ··{
92 ····typedef·handler_allocator<U>·other;​
93 ··};​
94
95 ··bool·operator==(const·handler_allocator&·other)​·const
96 ··​{89 ··​{
97 ····​return·​&memory_·​==·​&other.​memory_;​90 ····​return·​&memory_·​==·​&other.​memory_;​
98 ··​}91 ··​}
99 92
100 ··​bool·​operator!=(const·​handler_allocator&·​other)​·​const93 ··​bool·​operator!=(const·​handler_allocator&·​other)​·​const·noexcept
101 ··​{94 ··​{
102 ····​return·​&memory_·​!=·​&other.​memory_;​95 ····​return·​&memory_·​!=·​&other.​memory_;​
103 ··​}96 ··​}
104 97
105 ··​T*·​allocate(std:​:​size_t·​n)​·​const98 ··​T*·​allocate(std:​:​size_t·​n)​·​const
106 ··​{99 ··​{
107 ····​return·​static_cast<T*>(memor​y_.​allocate(sizeof(T)​·​*·​n)​)​;​100 ····​return·​static_cast<T*>(memor​y_.​allocate(sizeof(T)​·​*·​n)​)​;​
108 ··​}101 ··​}
109 102
110 ··​void·​deallocate(T*·​p,​·​std:​:​size_t·​/​*n*/​)​·​const103 ··​void·​deallocate(T*·​p,​·​std:​:​size_t·​/​*n*/​)​·​const
111 ··​{104 ··​{
112 ····​return·​memory_.​deallocate(p)​;​105 ····​return·​memory_.​deallocate(p)​;​
113 ··​}106 ··​}
114 107
115 /​/​private:​108 private:​
109 ··​template·​<typename>·​friend·​class·​handler_allocator;​
110
116 ··​/​/​·​The·​underlying·​memory.​111 ··​/​/​·​The·​underlying·​memory.​
117 ··​handler_memory&·​memory_;​112 ··​handler_memory&·​memory_;​
118 };​113 };​
119 114
120 /​/​·​Wrapper·​class·​template·​for·​handler·​objects·​to·​allow·​handler·​memory115 /​/​·​Wrapper·​class·​template·​for·​handler·​objects·​to·​allow·​handler·​memory
121 /​/​·​allocation·​to·​be·​customised.​·​The·​allocator_type·​typedef·​and·​get_allocator()​116 /​/​·​allocation·​to·​be·​customised.​·​The·​allocator_type·​type·​and·​get_allocator()​
122 /​/​·​member·​function·​are·​used·​by·​the·​asynchronous·​operations·​to·​obtain·​the117 /​/​·​member·​function·​are·​used·​by·​the·​asynchronous·​operations·​to·​obtain·​the
123 /​/​·​allocator.​·​Calls·​to·​operator()​·​are·​forwarded·​to·​the·​encapsulated·​handler.​118 /​/​·​allocator.​·​Calls·​to·​operator()​·​are·​forwarded·​to·​the·​encapsulated·​handler.​
124 template·​<typename·​Handler>119 template·​<typename·​Handler>
125 class·​custom_alloc_handler120 class·​custom_alloc_handler
126 {121 {
127 public:​122 public:​
128 ··​typedef·​handler_allocator<Han​dler>·allocator_type;​123 ··using·allocator_type·=·​handler_allocator<Han​dler>;​
129 124
130 ··​custom_alloc_handler(​handler_memory&·​m,​·​Handler·​h)​125 ··​custom_alloc_handler(​handler_memory&·​m,​·​Handler·​h)​
131 ····​:​·​memory_(m)​,​126 ····​:​·​memory_(m)​,​
132 ······​handler_(h)​127 ······​handler_(h)​
133 ··​{128 ··​{
134 ··​}129 ··​}
135 130
136 ··​allocator_type·​get_allocator()​·​const131 ··​allocator_type·​get_allocator()​·​const·noexcept
137 ··​{132 ··​{
138 ····​return·​allocator_type(memory​_)​;​133 ····​return·​allocator_type(memory​_)​;​
139 ··​}134 ··​}
140 135
141 ··​template·​<typename·​Arg1>136 ··​template·​<typename·.​.​.​Args>
142 ··​void·​operator()​(Arg1·​arg1)​137 ··​void·​operator()​(Args&&.​.​.​·​args)​
143 ··{
144 ····handler_(arg1)​;​
145 ··}
146
147 ··template·<typename·Arg1,​·typename·Arg2>
148 ··void·operator()​(Arg1·arg1,​·Arg2·arg2)​
149 ··​{138 ··​{
150 ····​handler_(arg1,​·arg2)​;​139 ····​handler_(std:​:​forward<Args>(args)​.​.​.​)​;​
151 ··​}140 ··​}
152 141
153 private:​142 private:​
154 ··​handler_memory&·​memory_;​143 ··​handler_memory&·​memory_;​
155 ··​Handler·​handler_;​144 ··​Handler·​handler_;​
156 };​145 };​
157 146
158 /​/​·​Helper·​function·​to·​wrap·​a·​handler·​object·​to·​add·​custom·​allocation.​147 /​/​·​Helper·​function·​to·​wrap·​a·​handler·​object·​to·​add·​custom·​allocation.​
159 template·​<typename·​Handler>148 template·​<typename·​Handler>
160 inline·​custom_alloc_handler<​Handler>·​make_custom_alloc_han​dler(149 inline·​custom_alloc_handler<​Handler>·​make_custom_alloc_han​dler(
161 ····​handler_memory&·​m,​·​Handler·​h)​150 ····​handler_memory&·​m,​·​Handler·​h)​
162 {151 {
163 ··​return·​custom_alloc_handler<​Handler>(m,​·​h)​;​152 ··​return·​custom_alloc_handler<​Handler>(m,​·​h)​;​
164 }153 }
165 154
166 class·​session155 class·​session
167 ··​:​·​public·boost:​:​enable_shared_from_th​is<session>156 ··​:​·​public·​std:​:​enable_shared_from_th​is<session>
168 {157 {
169 public:​158 public:​
170 ··​session(asio:​:​io_context&·io_context)​159 ··​session(tcp:​:​socket·socket)​
171 ····​:​·​socket_(io_context)​160 ····​:​·​socket_(std:​:​move(socket)​)​
172 ··​{161 ··​{
173 ··​}162 ··​}
174 163
175 ··tcp:​:​socket&·​socket()​164 ··void·​start()​
176 ··​{165 ··​{
177 ····return·socket_;​166 ····do_read()​;​
178 ··​}167 ··​}
179 168
180 ··void·start()​169 private:​
170 ··​void·​do_read()​
181 ··​{171 ··​{
172 ····​auto·​self(shared_from_this​()​)​;​
182 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​173 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​
183 ········​make_custom_alloc_han​dler(handler_memory_,​174 ········​make_custom_alloc_han​dler(handler_memory_,​
184 ··········boost:​:​bind(&session:​:​handle_read,​175 ··········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·length)​
185 ············shared_from_this()​,​176 ··········{
186 ············asio:​:​placeholders:​:​error,​177 ············​if·(!ec)​
187 ············asio:​:​placeholders:​:​bytes_transferred)​)​)​;​178 ············{
188 ··}179 ··············do_write(length)​;​
189 180 ············}
190 ··void·handle_read(const·asio:​:​error_code&·error,​181 ··········})​)​;​
191 ······size_t·bytes_transferred)​
192 ··{
193 ····if·(!error)​
194 ····{
195 ······asio:​:​async_write(socket_,​
196 ··········asio:​:​buffer(data_,​·bytes_transferred)​,​
197 ··········make_custom_alloc_han​dler(handler_memory_,​
198 ············boost:​:​bind(&session:​:​handle_write,​
199 ··············shared_from_this()​,​
200 ··············asio:​:​placeholders:​:​error)​)​)​;​
201 ····}
202 ··​}182 ··​}
203 183
204 ··​void·handle_write(const·asio:​:​error_code&·error)​184 ··​void·​do_write(std:​:​size_t·length)​
205 ··​{185 ··​{
206 ····if·​(!error)​186 ····auto·self(shared_from_this​()​)​;​
207 ····{187 ····asio:​:​async_write(socket_,​·asio:​:​buffer(data_,​·length)​,​
208 ······socket_.​async_read_some(asio:​:​buffer(data_)​,​188 ········make_custom_alloc_han​dler(handler_memory_,​
209 ··········make_custom_alloc_han​dler(handler_memory_,​189 ··········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
210 ············boost:​:​bind(&session:​:​handle_read,​190 ··········{
211 ··············shared_from_this()​,​191 ············if·(!ec)​
212 ··············asio:​:​placeholders:​:​error,​192 ············{
213 ··············asio:​:​placeholders:​:​bytes_transferred)​)​)​;​193 ··············​do_read()​;​
214 ····​}194 ············​}
195 ··········​})​)​;​
215 ··​}196 ··​}
216 197
217 private:​
218 ··​/​/​·​The·​socket·​used·​to·​communicate·​with·​the·​client.​198 ··​/​/​·​The·​socket·​used·​to·​communicate·​with·​the·​client.​
219 ··​tcp:​:​socket·​socket_;​199 ··​tcp:​:​socket·​socket_;​
220 200
221 ··​/​/​·​Buffer·​used·​to·​store·​data·​received·​from·​the·​client.​201 ··​/​/​·​Buffer·​used·​to·​store·​data·​received·​from·​the·​client.​
222 ··boost:​:​array<char,​·​1024>·​data_;​202 ··​std:​:​array<char,​·​1024>·​data_;​
223 203
224 ··​/​/​·​The·​memory·​to·​use·​for·​handler-​based·​custom·​memory·​allocation.​204 ··​/​/​·​The·​memory·​to·​use·​for·​handler-​based·​custom·​memory·​allocation.​
225 ··​handler_memory·​handler_memory_;​205 ··​handler_memory·​handler_memory_;​
226 };​206 };​
227 207
228 typedef·​boost:​:​shared_ptr<session>·​session_ptr;​
229
230 class·​server208 class·​server
231 {209 {
232 public:​210 public:​
233 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​211 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​
234 ····​:​·​io_context_(io_contex​t)​,​212 ····​:​·acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​
235 ······acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​
236 ··​{213 ··​{
237 ····session_ptr·new_session(new·session(io_context_)​)​;​214 ····do_accept()​;​
238 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​
239 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​
240 ··········asio:​:​placeholders:​:​error)​)​;​
241 ··​}215 ··​}
242 216
243 ··void·handle_accept(session​_ptr·new_session,​217 private:​
244 ······const·asio:​:​error_code&·error)​218 ··void·do_accept()​
245 ··​{219 ··​{
246 ····if·(!error)​220 ····acceptor_.​async_accept(
247 ····{221 ········[this](std:​:​error_code·ec,​·tcp:​:​socket·socket)​
248 ······new_session-​>start()​;​222 ········{
249 ····}223 ··········if·(!ec)​
224 ··········​{
225 ············​std:​:​make_shared<session>(​std:​:​move(socket)​)​-​>start()​;​
226 ··········​}
250 227
251 ····new_session.​reset(new·session(io_context_)​)​;​228 ··········do_accept()​;​
252 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​229 ········})​;​
253 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​
254 ··········asio:​:​placeholders:​:​error)​)​;​
255 ··​}230 ··​}
256 231
257 private:​
258 ··​asio:​:​io_context&·​io_context_;​
259 ··​tcp:​:​acceptor·​acceptor_;​232 ··​tcp:​:​acceptor·​acceptor_;​
260 };​233 };​
261 234
262 int·​main(int·​argc,​·​char*·​argv[])​235 int·​main(int·​argc,​·​char*·​argv[])​
263 {236 {
264 ··​try237 ··​try
265 ··​{238 ··​{
266 ····​if·​(argc·​!=·​2)​239 ····​if·​(argc·​!=·​2)​
267 ····​{240 ····​{
268 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<port>\n";​241 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<port>\n";​
269 ······​return·​1;​242 ······​return·​1;​
270 ····​}243 ····​}
271 244
272 ····​asio:​:​io_context·​io_context;​245 ····​asio:​:​io_context·​io_context;​
273 246 ····server·s(io_context,​·std:​:​atoi(argv[1])​)​;​
274 ····using·namespace·std;​·/​/​·For·atoi.​
275 ····server·s(io_context,​·atoi(argv[1])​)​;​
276
277 ····​io_context.​run()​;​247 ····​io_context.​run()​;​
278 ··​}248 ··​}
279 ··​catch·​(std:​:​exception&·​e)​249 ··​catch·​(std:​:​exception&·​e)​
280 ··​{250 ··​{
281 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​251 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
282 ··​}252 ··​}
283 253
284 ··​return·​0;​254 ··​return·​0;​
285 }255 }
- -
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/buffers/reference_counted.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/buffers/reference_counted.cpp.html deleted file mode 100644 index 820cd54..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/buffers/reference_counted.cpp.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - HTML Diff buffers/reference_counted.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​buffers/​reference_counted.​cppsrc/​examples/​cpp11/​buffers/​reference_counted.​cpp
1 /​/​1 /​/​
2 /​/​·​reference_counted.​cpp2 /​/​·​reference_counted.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<asio.​hpp>11 #include·​<asio.​hpp>
12 #include·​<boost/​bind.​hpp>
13 #include·​<boost/​enable_shared_from_th​is.​hpp>
14 #include·​<boost/​shared_ptr.​hpp>
15 #include·​<iostream>12 #include·​<iostream>
13 #include·​<memory>
14 #include·​<utility>
16 #include·​<vector>15 #include·​<vector>
16 #include·​<ctime>
17 17
18 using·​asio:​:​ip:​:​tcp;​18 using·​asio:​:​ip:​:​tcp;​
19 19
20 /​/​·​A·​reference-​counted·​non-​modifiable·​buffer·​class.​20 /​/​·​A·​reference-​counted·​non-​modifiable·​buffer·​class.​
21 class·​shared_const_buffer21 class·​shared_const_buffer
22 {22 {
23 public:​23 public:​
24 ··​/​/​·​Construct·​from·​a·​std:​:​string.​24 ··​/​/​·​Construct·​from·​a·​std:​:​string.​
25 ··​explicit·​shared_const_buffer(c​onst·​std:​:​string&·​data)​25 ··​explicit·​shared_const_buffer(c​onst·​std:​:​string&·​data)​
26 ····​:​·​data_(new·​std:​:​vector<char>(data.​begin()​,​·​data.​end()​)​)​,​26 ····​:​·​data_(new·​std:​:​vector<char>(data.​begin()​,​·​data.​end()​)​)​,​
27 ······​buffer_(asio:​:​buffer(*data_)​)​27 ······​buffer_(asio:​:​buffer(*data_)​)​
28 ··​{28 ··​{
29 ··​}29 ··​}
30 30
31 ··​/​/​·​Implement·​the·​ConstBufferSequence·​requirements.​31 ··​/​/​·​Implement·​the·​ConstBufferSequence·​requirements.​
32 ··​typedef·​asio:​:​const_buffer·​value_type;​32 ··​typedef·​asio:​:​const_buffer·​value_type;​
33 ··​typedef·​const·​asio:​:​const_buffer*·​const_iterator;​33 ··​typedef·​const·​asio:​:​const_buffer*·​const_iterator;​
34 ··​const·​asio:​:​const_buffer*·​begin()​·​const·​{·​return·​&buffer_;​·​}34 ··​const·​asio:​:​const_buffer*·​begin()​·​const·​{·​return·​&buffer_;​·​}
35 ··​const·​asio:​:​const_buffer*·​end()​·​const·​{·​return·​&buffer_·​+·​1;​·​}35 ··​const·​asio:​:​const_buffer*·​end()​·​const·​{·​return·​&buffer_·​+·​1;​·​}
36 36
37 private:​37 private:​
38 ··boost:​:​shared_ptr<std:​:​vector<char>·​>·​data_;​38 ··​std:​:​shared_ptr<std:​:​vector<char>·​>·​data_;​
39 ··​asio:​:​const_buffer·​buffer_;​39 ··​asio:​:​const_buffer·​buffer_;​
40 };​40 };​
41 41
42 class·​session42 class·​session
43 ··​:​·​public·boost:​:​enable_shared_from_th​is<session>43 ··​:​·​public·​std:​:​enable_shared_from_th​is<session>
44 {44 {
45 public:​45 public:​
46 ··​session(asio:​:​io_context&·io_context)​46 ··​session(tcp:​:​socket·socket)​
47 ····​:​·​socket_(io_context)​47 ····​:​·​socket_(std:​:​move(socket)​)​
48 ··​{48 ··​{
49 ··​}49 ··​}
50 50
51 ··​tcp:​:​socket&·​socket()​
52 ··​{
53 ····​return·​socket_;​
54 ··​}
55
56 ··​void·​start()​51 ··​void·​start()​
57 ··​{52 ··​{
58 ····using·namespace·std;​·/​/​·For·time_t,​·time·and·ctime.​53 ····​do_write()​;​
59 ····time_t·now·=·time(0)​;​
60 ····shared_const_buffer·buffer(ctime(&now)​)​;​
61 ····asio:​:​async_write(socket_,​·buffer,​
62 ········boost:​:​bind(&session:​:​handle_write,​·shared_from_this()​)​)​;​
63 ··​}54 ··​}
64 55
65 ··void·handle_write()​56 private:​
57 ··​void·​do_write()​
66 ··​{58 ··​{
59 ····​std:​:​time_t·​now·​=·​std:​:​time(0)​;​
60 ····​shared_const_buffer·​buffer(std:​:​ctime(&now)​)​;​
61
62 ····​auto·​self(shared_from_this​()​)​;​
63 ····​asio:​:​async_write(socket_,​·​buffer,​
64 ········​[this,​·​self](std:​:​error_code·​/​*ec*/​,​·​std:​:​size_t·​/​*length*/​)​
65 ········​{
66 ········​})​;​
67 ··​}67 ··​}
68 68
69 private:​
70 ··​/​/​·​The·​socket·​used·​to·​communicate·​with·​the·​client.​69 ··​/​/​·​The·​socket·​used·​to·​communicate·​with·​the·​client.​
71 ··​tcp:​:​socket·​socket_;​70 ··​tcp:​:​socket·​socket_;​
72 };​71 };​
73 72
74 typedef·​boost:​:​shared_ptr<session>·​session_ptr;​
75
76 class·​server73 class·​server
77 {74 {
78 public:​75 public:​
79 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​76 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​
80 ····​:​·​io_context_(io_contex​t)​,​77 ····​:​·acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​
81 ······acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​
82 ··​{78 ··​{
83 ····session_ptr·new_session(new·session(io_context_)​)​;​79 ····do_accept()​;​
84 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​
85 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​
86 ··········asio:​:​placeholders:​:​error)​)​;​
87 ··​}80 ··​}
88 81
89 ··void·handle_accept(session​_ptr·new_session,​82 private:​
90 ······const·asio:​:​error_code&·error)​83 ··void·do_accept()​
91 ··​{84 ··​{
92 ····if·(!error)​85 ····acceptor_.​async_accept(
93 ····{86 ········[this](std:​:​error_code·ec,​·tcp:​:​socket·socket)​
94 ······new_session-​>start()​;​87 ········{
95 ····}88 ··········if·(!ec)​
89 ··········​{
90 ············​std:​:​make_shared<session>(​std:​:​move(socket)​)​-​>start()​;​
91 ··········​}
96 92
97 ····new_session.​reset(new·session(io_context_)​)​;​93 ··········do_accept()​;​
98 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​94 ········})​;​
99 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​
100 ··········asio:​:​placeholders:​:​error)​)​;​
101 ··​}95 ··​}
102 96
103 private:​
104 ··​asio:​:​io_context&·​io_context_;​
105 ··​tcp:​:​acceptor·​acceptor_;​97 ··​tcp:​:​acceptor·​acceptor_;​
106 };​98 };​
107 99
108 int·​main(int·​argc,​·​char*·​argv[])​100 int·​main(int·​argc,​·​char*·​argv[])​
109 {101 {
110 ··​try102 ··​try
111 ··​{103 ··​{
112 ····​if·​(argc·​!=·​2)​104 ····​if·​(argc·​!=·​2)​
113 ····​{105 ····​{
114 ······​std:​:​cerr·​<<·​"Usage:​·​reference_counted·​<port>\n";​106 ······​std:​:​cerr·​<<·​"Usage:​·​reference_counted·​<port>\n";​
115 ······​return·​1;​107 ······​return·​1;​
116 ····​}108 ····​}
117 109
118 ····​asio:​:​io_context·​io_context;​110 ····​asio:​:​io_context·​io_context;​
119 111
120 ····using·namespace·​std;​·/​/​·For·atoi.​112 ····server·s(io_context,​·​std:​:​atoi(argv[1])​)​;​
121 ····server·s(io_context,​·atoi(argv[1])​)​;​
122 113
123 ····​io_context.​run()​;​114 ····​io_context.​run()​;​
124 ··​}115 ··​}
125 ··​catch·​(std:​:​exception&·​e)​116 ··​catch·​(std:​:​exception&·​e)​
126 ··​{117 ··​{
127 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​118 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
128 ··​}119 ··​}
129 120
130 ··​return·​0;​121 ··​return·​0;​
131 }122 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/chat/chat_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/chat/chat_client.cpp.html deleted file mode 100644 index c23de1d..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/chat/chat_client.cpp.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - - HTML Diff chat/chat_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​chat/​chat_client.​cppsrc/​examples/​cpp11/​chat/​chat_client.​cpp
1 /​/​1 /​/​
2 /​/​·​chat_client.​cpp2 /​/​·​chat_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<deque>12 #include·​<deque>
13 #include·​<iostream>13 #include·​<iostream>
14 #include·​<boost/​bind.​hpp>14 #include·​<thread>
15 #include·​"asio.​hpp"15 #include·​"asio.​hpp"
16 #include·​"chat_message.​hpp"16 #include·​"chat_message.​hpp"
17 17
18 using·​asio:​:​ip:​:​tcp;​18 using·​asio:​:​ip:​:​tcp;​
19 19
20 typedef·​std:​:​deque<chat_message>·​chat_message_queue;​20 typedef·​std:​:​deque<chat_message>·​chat_message_queue;​
21 21
22 class·​chat_client22 class·​chat_client
23 {23 {
24 public:​24 public:​
25 ··​chat_client(asio:​:​io_context&·​io_context,​25 ··​chat_client(asio:​:​io_context&·​io_context,​
26 ······​const·​tcp:​:​resolver:​:​results_type&·​endpoints)​26 ······​const·​tcp:​:​resolver:​:​results_type&·​endpoints)​
27 ····​:​·​io_context_(io_contex​t)​,​27 ····​:​·​io_context_(io_contex​t)​,​
28 ······​socket_(io_context)​28 ······​socket_(io_context)​
29 ··​{29 ··​{
30 ····asio:​:​async_connect(socket_​,​·endpoints,​30 ····do_connect(endpoints)​;​
31 ········boost:​:​bind(&chat_client:​:​handle_connect,​·this,​
32 ··········asio:​:​placeholders:​:​error)​)​;​
33 ··​}31 ··​}
34 32
35 ··​void·​write(const·​chat_message&·​msg)​33 ··​void·​write(const·​chat_message&·​msg)​
36 ··​{34 ··​{
37 ····​asio:​:​post(io_context_,​35 ····​asio:​:​post(io_context_,​
38 ········boost:​:​bind(&chat_client:​:​do_write,​·this,​·​msg)​)​;​36 ········[this,​·​msg]()​
37 ········​{
38 ··········​bool·​write_in_progress·​=·​!write_msgs_.​empty()​;​
39 ··········​write_msgs_.​push_back(msg)​;​
40 ··········​if·​(!write_in_progress)​
41 ··········​{
42 ············​do_write()​;​
43 ··········​}
44 ········​})​;​
39 ··​}45 ··​}
40 46
41 ··​void·​close()​47 ··​void·​close()​
42 ··​{48 ··​{
43 ····​asio:​:​post(io_context_,​49 ····​asio:​:​post(io_context_,​·[this]()​·{·socket_.​close()​;​·})​;​
44 ········boost:​:​bind(&chat_client:​:​do_close,​·this)​)​;​
45 ··​}50 ··​}
46 51
47 private:​52 private:​
48 53 ··void·do_connect(const·tcp:​:​resolver:​:​results_type&·endpoints)​
49 ··void·handle_connect(const·asio:​:​error_code&·error)​
50 ··{
51 ····if·(!error)​
52 ····{
53 ······asio:​:​async_read(socket_,​
54 ··········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​
55 ··········boost:​:​bind(&chat_client:​:​handle_read_header,​·this,​
56 ············asio:​:​placeholders:​:​error)​)​;​
57 ····}
58 ··}
59
60 ··void·handle_read_header(co​nst·asio:​:​error_code&·error)​
61 ··{
62 ····if·(!error·&&·read_msg_.​decode_header()​)​
63 ····{
64 ······asio:​:​async_read(socket_,​
65 ··········asio:​:​buffer(read_msg_.​body()​,​·read_msg_.​body_length()​)​,​
66 ··········boost:​:​bind(&chat_client:​:​handle_read_body,​·this,​
67 ············asio:​:​placeholders:​:​error)​)​;​
68 ····}
69 ····else
70 ····{
71 ······do_close()​;​
72 ····}
73 ··}
74
75 ··void·handle_read_body(cons​t·asio:​:​error_code&·error)​
76 ··{
77 ····if·(!error)​
78 ····{
79 ······std:​:​cout.​write(read_msg_.​body()​,​·read_msg_.​body_length()​)​;​
80 ······std:​:​cout·<<·"\n";​
81 ······asio:​:​async_read(socket_,​
82 ··········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​
83 ··········boost:​:​bind(&chat_client:​:​handle_read_header,​·this,​
84 ············asio:​:​placeholders:​:​error)​)​;​
85 ····}
86 ····else
87 ····{
88 ······do_close()​;​
89 ····}
90 ··}
91
92 ··void·do_write(chat_message​·msg)​
93 ··{
94 ····bool·write_in_progress·=·!write_msgs_.​empty()​;​
95 ····write_msgs_.​push_back(msg)​;​
96 ····if·(!write_in_progress)​
97 ····{
98 ······asio:​:​async_write(socket_,​
99 ··········asio:​:​buffer(write_msgs_.​front()​.​data()​,​
100 ············write_msgs_.​front()​.​length()​)​,​
101 ··········boost:​:​bind(&chat_client:​:​handle_write,​·this,​
102 ············asio:​:​placeholders:​:​error)​)​;​
103 ····}
104 ··}
105
106 ··void·handle_write(const·asio:​:​error_code&·error)​
107 ··​{54 ··​{
108 ····​if·(!error)​55 ····asio:​:​async_connect(socket_​,​·endpoints,​
109 ····{56 ········[this](std:​:​error_code·ec,​·tcp:​:​endpoint)​
110 ······write_msgs_.​pop_front()​;​57 ········{
111 ······if·(!write_msgs_.​empty()​)​58 ··········if·(!ec)​
112 ······​{59 ··········​{
113 ········asio:​:​async_write(socket_,​60 ············do_read_header()​;​
114 ············asio:​:​buffer(write_msgs_.​front()​.​data()​,​61 ··········}
115 ··············write_msgs_.​front()​.​length()​)​,​62 ········})​;​
116 ············boost:​:​bind(&chat_client:​:​handle_write,​·this,​63 ··}
117 ··············asio:​:​placeholders:​:​error)​)​;​64
118 ······}65 ··void·do_read_header()​
119 ····}66 ··{
120 ····​else67 ····asio:​:​async_read(socket_,​
121 ····{68 ········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​
122 ······​do_close()​;​69 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
123 ····}70 ········{
124 ··}71 ··········if·(!ec·&&·read_msg_.​decode_header()​)​
125 72 ··········{
126 ··void·​do_close()​73 ············​do_read_body()​;​
127 ··{74 ··········}
128 ····socket_.​close()​;​75 ··········else
76 ··········​{
77 ············​socket_.​close()​;​
78 ··········​}
79 ········​})​;​
80 ··​}
81
82 ··​void·​do_read_body()​
83 ··​{
84 ····​asio:​:​async_read(socket_,​
85 ········​asio:​:​buffer(read_msg_.​body()​,​·​read_msg_.​body_length()​)​,​
86 ········​[this](std:​:​error_code·​ec,​·​std:​:​size_t·​/​*length*/​)​
87 ········​{
88 ··········​if·​(!ec)​
89 ··········​{
90 ············​std:​:​cout.​write(read_msg_.​body()​,​·​read_msg_.​body_length()​)​;​
91 ············​std:​:​cout·​<<·​"\n";​
92 ············​do_read_header()​;​
93 ··········​}
94 ··········​else
95 ··········​{
96 ············​socket_.​close()​;​
97 ··········​}
98 ········​})​;​
99 ··​}
100
101 ··​void·​do_write()​
102 ··​{
103 ····​asio:​:​async_write(socket_,​
104 ········​asio:​:​buffer(write_msgs_.​front()​.​data()​,​
105 ··········​write_msgs_.​front()​.​length()​)​,​
106 ········​[this](std:​:​error_code·​ec,​·​std:​:​size_t·​/​*length*/​)​
107 ········​{
108 ··········​if·​(!ec)​
109 ··········​{
110 ············​write_msgs_.​pop_front()​;​
111 ············​if·​(!write_msgs_.​empty()​)​
112 ············​{
113 ··············​do_write()​;​
114 ············​}
115 ··········​}
116 ··········​else
117 ··········​{
118 ············​socket_.​close()​;​
119 ··········​}
120 ········​})​;​
129 ··​}121 ··​}
130 122
131 private:​123 private:​
132 ··​asio:​:​io_context&·​io_context_;​124 ··​asio:​:​io_context&·​io_context_;​
133 ··​tcp:​:​socket·​socket_;​125 ··​tcp:​:​socket·​socket_;​
134 ··​chat_message·​read_msg_;​126 ··​chat_message·​read_msg_;​
135 ··​chat_message_queue·​write_msgs_;​127 ··​chat_message_queue·​write_msgs_;​
136 };​128 };​
137 129
138 int·​main(int·​argc,​·​char*·​argv[])​130 int·​main(int·​argc,​·​char*·​argv[])​
139 {131 {
140 ··​try132 ··​try
141 ··​{133 ··​{
142 ····​if·​(argc·​!=·​3)​134 ····​if·​(argc·​!=·​3)​
143 ····​{135 ····​{
144 ······​std:​:​cerr·​<<·​"Usage:​·​chat_client·​<host>·​<port>\n";​136 ······​std:​:​cerr·​<<·​"Usage:​·​chat_client·​<host>·​<port>\n";​
145 ······​return·​1;​137 ······​return·​1;​
146 ····​}138 ····​}
147 139
148 ····​asio:​:​io_context·​io_context;​140 ····​asio:​:​io_context·​io_context;​
149 141
150 ····​tcp:​:​resolver·​resolver(io_context)​;​142 ····​tcp:​:​resolver·​resolver(io_context)​;​
151 ····tcp:​:​resolver:​:​results_type·​endpoints·​=·​resolver.​resolve(argv[1],​·​argv[2])​;​143 ····auto·​endpoints·​=·​resolver.​resolve(argv[1],​·​argv[2])​;​
152
153 ····​chat_client·​c(io_context,​·​endpoints)​;​144 ····​chat_client·​c(io_context,​·​endpoints)​;​
154 145
155 ····asio:​:​thread·​t(boost:​:​bind(&asio:​:​io_context:​:​run,​·&io_context)​)​;​146 ····​std:​:​thread·​t([&io_context]()​{·​io_context.​run()​;​·})​;​
156 147
157 ····​char·​line[chat_message:​:​max_body_length·​+·​1];​148 ····​char·​line[chat_message:​:​max_body_length·​+·​1];​
158 ····​while·​(std:​:​cin.​getline(line,​·​chat_message:​:​max_body_length·​+·​1)​)​149 ····​while·​(std:​:​cin.​getline(line,​·​chat_message:​:​max_body_length·​+·​1)​)​
159 ····​{150 ····​{
160 ······​using·​namespace·​std;​·​/​/​·​For·​strlen·​and·​memcpy.​
161 ······​chat_message·​msg;​151 ······​chat_message·​msg;​
162 ······​msg.​body_length(strlen(li​ne)​)​;​152 ······​msg.​body_length(std:​:​strlen(line)​)​;​
163 ······​memcpy(msg.​body()​,​·​line,​·​msg.​body_length()​)​;​153 ······std:​:​memcpy(msg.​body()​,​·​line,​·​msg.​body_length()​)​;​
164 ······​msg.​encode_header()​;​154 ······​msg.​encode_header()​;​
165 ······​c.​write(msg)​;​155 ······​c.​write(msg)​;​
166 ····​}156 ····​}
167 157
168 ····​c.​close()​;​158 ····​c.​close()​;​
169 ····​t.​join()​;​159 ····​t.​join()​;​
170 ··​}160 ··​}
171 ··​catch·​(std:​:​exception&·​e)​161 ··​catch·​(std:​:​exception&·​e)​
172 ··​{162 ··​{
173 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​163 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
174 ··​}164 ··​}
175 165
176 ··​return·​0;​166 ··​return·​0;​
177 }167 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/chat/chat_message.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/chat/chat_message.hpp.html deleted file mode 100644 index 6aa2922..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/chat/chat_message.hpp.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - HTML Diff chat/chat_message.hpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​chat/​chat_message.​hppsrc/​examples/​cpp11/​chat/​chat_message.​hpp
1 /​/​1 /​/​
2 /​/​·​chat_message.​hpp2 /​/​·​chat_message.​hpp
3 /​/​·​~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #ifndef·​CHAT_MESSAGE_HPP11 #ifndef·​CHAT_MESSAGE_HPP
12 #define·​CHAT_MESSAGE_HPP12 #define·​CHAT_MESSAGE_HPP
13 13
14 #include·​<cstdio>14 #include·​<cstdio>
15 #include·​<cstdlib>15 #include·​<cstdlib>
16 #include·​<cstring>16 #include·​<cstring>
17 17
18 class·​chat_message18 class·​chat_message
19 {19 {
20 public:​20 public:​
21 ··​enum·​{·​header_length·​=·​4·​};​21 ··​enum·​{·​header_length·​=·​4·​};​
22 ··​enum·​{·​max_body_length·​=·​512·​};​22 ··​enum·​{·​max_body_length·​=·​512·​};​
23 23
24 ··​chat_message()​24 ··​chat_message()​
25 ····​:​·​body_length_(0)​25 ····​:​·​body_length_(0)​
26 ··​{26 ··​{
27 ··​}27 ··​}
28 28
29 ··​const·​char*·​data()​·​const29 ··​const·​char*·​data()​·​const
30 ··​{30 ··​{
31 ····​return·​data_;​31 ····​return·​data_;​
32 ··​}32 ··​}
33 33
34 ··​char*·​data()​34 ··​char*·​data()​
35 ··​{35 ··​{
36 ····​return·​data_;​36 ····​return·​data_;​
37 ··​}37 ··​}
38 38
39 ··​size_t·​length()​·​const39 ··std:​:​size_t·​length()​·​const
40 ··​{40 ··​{
41 ····​return·​header_length·​+·​body_length_;​41 ····​return·​header_length·​+·​body_length_;​
42 ··​}42 ··​}
43 43
44 ··​const·​char*·​body()​·​const44 ··​const·​char*·​body()​·​const
45 ··​{45 ··​{
46 ····​return·​data_·​+·​header_length;​46 ····​return·​data_·​+·​header_length;​
47 ··​}47 ··​}
48 48
49 ··​char*·​body()​49 ··​char*·​body()​
50 ··​{50 ··​{
51 ····​return·​data_·​+·​header_length;​51 ····​return·​data_·​+·​header_length;​
52 ··​}52 ··​}
53 53
54 ··​size_t·​body_length()​·​const54 ··std:​:​size_t·​body_length()​·​const
55 ··​{55 ··​{
56 ····​return·​body_length_;​56 ····​return·​body_length_;​
57 ··​}57 ··​}
58 58
59 ··​void·​body_length(size_t·​new_length)​59 ··​void·​body_length(std:​:​size_t·​new_length)​
60 ··​{60 ··​{
61 ····​body_length_·​=·​new_length;​61 ····​body_length_·​=·​new_length;​
62 ····​if·​(body_length_·​>·​max_body_length)​62 ····​if·​(body_length_·​>·​max_body_length)​
63 ······​body_length_·​=·​max_body_length;​63 ······​body_length_·​=·​max_body_length;​
64 ··​}64 ··​}
65 65
66 ··​bool·​decode_header()​66 ··​bool·​decode_header()​
67 ··​{67 ··​{
68 ····​using·​namespace·​std;​·​/​/​·​For·​strncat·​and·​atoi.​
69 ····​char·​header[header_length·​+·​1]·​=·​"";​68 ····​char·​header[header_length·​+·​1]·​=·​"";​
70 ····​strncat(header,​·​data_,​·​header_length)​;​69 ····std:​:​strncat(header,​·​data_,​·​header_length)​;​
71 ····​body_length_·​=·​atoi(header)​;​70 ····​body_length_·​=·std:​:​atoi(header)​;​
72 ····​if·​(body_length_·​>·​max_body_length)​71 ····​if·​(body_length_·​>·​max_body_length)​
73 ····​{72 ····​{
74 ······​body_length_·​=·​0;​73 ······​body_length_·​=·​0;​
75 ······​return·​false;​74 ······​return·​false;​
76 ····​}75 ····​}
77 ····​return·​true;​76 ····​return·​true;​
78 ··​}77 ··​}
79 78
80 ··​void·​encode_header()​79 ··​void·​encode_header()​
81 ··​{80 ··​{
82 ····​using·​namespace·​std;​·​/​/​·​For·​sprintf·​and·​memcpy.​
83 ····​char·​header[header_length·​+·​1]·​=·​"";​81 ····​char·​header[header_length·​+·​1]·​=·​"";​
84 ····​sprintf(header,​·​"%4d",​·​static_cast<int>(body​_length_)​)​;​82 ····std:​:​sprintf(header,​·​"%4d",​·​static_cast<int>(body​_length_)​)​;​
85 ····​memcpy(data_,​·​header,​·​header_length)​;​83 ····std:​:​memcpy(data_,​·​header,​·​header_length)​;​
86 ··​}84 ··​}
87 85
88 private:​86 private:​
89 ··​char·​data_[header_length·​+·​max_body_length];​87 ··​char·​data_[header_length·​+·​max_body_length];​
90 ··​size_t·​body_length_;​88 ··std:​:​size_t·​body_length_;​
91 };​89 };​
92 90
93 #endif·​/​/​·​CHAT_MESSAGE_HPP91 #endif·​/​/​·​CHAT_MESSAGE_HPP
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/chat/chat_server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/chat/chat_server.cpp.html deleted file mode 100644 index dd5d947..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/chat/chat_server.cpp.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - - - HTML Diff chat/chat_server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​chat/​chat_server.​cppsrc/​examples/​cpp11/​chat/​chat_server.​cpp
1 /​/​1 /​/​
2 /​/​·​chat_server.​cpp2 /​/​·​chat_server.​cpp
3 /​/​·​~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<algorithm>
12 #include·​<cstdlib>11 #include·​<cstdlib>
13 #include·​<deque>12 #include·​<deque>
14 #include·​<iostream>13 #include·​<iostream>
15 #include·​<list>14 #include·​<list>
15 #include·​<memory>
16 #include·​<set>16 #include·​<set>
17 #include·​<boost/​bind.​hpp>17 #include·​<utility>
18 #include·<boost/​shared_ptr.​hpp>
19 #include·<boost/​enable_shared_from_th​is.​hpp>
20 #include·​"asio.​hpp"18 #include·​"asio.​hpp"
21 #include·​"chat_message.​hpp"19 #include·​"chat_message.​hpp"
22 20
23 using·​asio:​:​ip:​:​tcp;​21 using·​asio:​:​ip:​:​tcp;​
24 22
25 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​23 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
26 24
27 typedef·​std:​:​deque<chat_message>·​chat_message_queue;​25 typedef·​std:​:​deque<chat_message>·​chat_message_queue;​
28 26
29 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​27 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
30 28
31 class·​chat_participant29 class·​chat_participant
32 {30 {
33 public:​31 public:​
34 ··​virtual·​~chat_participant()​·​{}32 ··​virtual·​~chat_participant()​·​{}
35 ··​virtual·​void·​deliver(const·​chat_message&·​msg)​·​=·​0;​33 ··​virtual·​void·​deliver(const·​chat_message&·​msg)​·​=·​0;​
36 };​34 };​
37 35
38 typedef·boost:​:​shared_ptr<chat_parti​cipant>·​chat_participant_ptr;​36 typedef·​std:​:​shared_ptr<chat_parti​cipant>·​chat_participant_ptr;​
39 37
40 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​38 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
41 39
42 class·​chat_room40 class·​chat_room
43 {41 {
44 public:​42 public:​
45 ··​void·​join(chat_participant​_ptr·​participant)​43 ··​void·​join(chat_participant​_ptr·​participant)​
46 ··​{44 ··​{
47 ····​participants_.​insert(participant)​;​45 ····​participants_.​insert(participant)​;​
48 ····std:​:​for_each(recent_msgs_​.​begin()​,​·​recent_msgs_.​end()​,​46 ····​for·(auto·msg:​·​recent_msgs_)​
49 ········boost:​:​bind(&chat_participan​t:​:​deliver,​·participant,​·_1)​)​;​47 ······​participant-​>deliver(msg)​;​
50 ··​}48 ··​}
51 49
52 ··​void·​leave(chat_participan​t_ptr·​participant)​50 ··​void·​leave(chat_participan​t_ptr·​participant)​
53 ··​{51 ··​{
54 ····​participants_.​erase(participant)​;​52 ····​participants_.​erase(participant)​;​
55 ··​}53 ··​}
56 54
57 ··​void·​deliver(const·​chat_message&·​msg)​55 ··​void·​deliver(const·​chat_message&·​msg)​
58 ··​{56 ··​{
59 ····​recent_msgs_.​push_back(msg)​;​57 ····​recent_msgs_.​push_back(msg)​;​
60 ····​while·​(recent_msgs_.​size()​·​>·​max_recent_msgs)​58 ····​while·​(recent_msgs_.​size()​·​>·​max_recent_msgs)​
61 ······​recent_msgs_.​pop_front()​;​59 ······​recent_msgs_.​pop_front()​;​
62 60
63 ····std:​:​for_each(participants​_.​begin()​,​·​participants_.​end()​,​61 ····​for·(auto·participant:​·​participants_)​
64 ········boost:​:​bind(&chat_participan​t:​:​deliver,​·_1,​·boost:​:​ref(msg)​)​)​;​62 ······​participant-​>deliver(msg)​;​
65 ··​}63 ··​}
66 64
67 private:​65 private:​
68 ··​std:​:​set<chat_participant_​ptr>·​participants_;​66 ··​std:​:​set<chat_participant_​ptr>·​participants_;​
69 ··​enum·​{·​max_recent_msgs·​=·​100·​};​67 ··​enum·​{·​max_recent_msgs·​=·​100·​};​
70 ··​chat_message_queue·​recent_msgs_;​68 ··​chat_message_queue·​recent_msgs_;​
71 };​69 };​
72 70
73 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​71 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
74 72
75 class·​chat_session73 class·​chat_session
76 ··​:​·​public·​chat_participant,​74 ··​:​·​public·​chat_participant,​
77 ····​public·boost:​:​enable_shared_from_th​is<chat_session>75 ····​public·​std:​:​enable_shared_from_th​is<chat_session>
78 {76 {
79 public:​77 public:​
80 ··​chat_session(asio:​:​io_context&·io_context,​·​chat_room&·​room)​78 ··​chat_session(tcp:​:​socket·socket,​·​chat_room&·​room)​
81 ····​:​·​socket_(io_context)​,​79 ····​:​·​socket_(std:​:​move(socket)​)​,​
82 ······​room_(room)​80 ······​room_(room)​
83 ··​{81 ··​{
84 ··​}82 ··​}
85 83
86 ··​tcp:​:​socket&·​socket()​
87 ··​{
88 ····​return·​socket_;​
89 ··​}
90
91 ··​void·​start()​84 ··​void·​start()​
92 ··​{85 ··​{
93 ····​room_.​join(shared_from_this​()​)​;​86 ····​room_.​join(shared_from_this​()​)​;​
94 ····asio:​:​async_read(socket_,​87 ····do_read_header()​;​
95 ········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​
96 ········boost:​:​bind(
97 ··········&chat_session:​:​handle_read_header,​·shared_from_this()​,​
98 ··········asio:​:​placeholders:​:​error)​)​;​
99 ··​}88 ··​}
100 89
101 ··​void·​deliver(const·​chat_message&·​msg)​90 ··​void·​deliver(const·​chat_message&·​msg)​
102 ··​{91 ··​{
103 ····​bool·​write_in_progress·​=·​!write_msgs_.​empty()​;​92 ····​bool·​write_in_progress·​=·​!write_msgs_.​empty()​;​
104 ····​write_msgs_.​push_back(msg)​;​93 ····​write_msgs_.​push_back(msg)​;​
105 ····​if·​(!write_in_progress)​94 ····​if·​(!write_in_progress)​
106 ····​{95 ····​{
107 ······asio:​:​async_write(socket_,​96 ······do_write()​;​
108 ··········asio:​:​buffer(write_msgs_.​front()​.​data()​,​
109 ············write_msgs_.​front()​.​length()​)​,​
110 ··········boost:​:​bind(&chat_session:​:​handle_write,​·shared_from_this()​,​
111 ············asio:​:​placeholders:​:​error)​)​;​
112 ····​}97 ····​}
113 ··​}98 ··​}
114 99
115 ··void·handle_read_header(co​nst·asio:​:​error_code&·error)​100 private:​
116 ··{101 ··void·do_read_header()​
117 ····if·(!error·&&·read_msg_.​decode_header()​)​
118 ····{
119 ······asio:​:​async_read(socket_,​
120 ··········asio:​:​buffer(read_msg_.​body()​,​·read_msg_.​body_length()​)​,​
121 ··········boost:​:​bind(&chat_session:​:​handle_read_body,​·shared_from_this()​,​
122 ············asio:​:​placeholders:​:​error)​)​;​
123 ····}
124 ····else
125 ····{
126 ······room_.​leave(shared_from_thi​s()​)​;​
127 ····}
128 ··}
129
130 ··void·handle_read_body(cons​t·asio:​:​error_code&·error)​
131 ··​{102 ··​{
132 ····if·​(!error)​103 ····auto·self(shared_from_this​()​)​;​
133 ····{104 ····asio:​:​async_read(socket_,​
134 ······​room_.​deliver(read_msg_)​;​105 ········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​
135 ······asio:​:​async_read(socket_,​106 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
136 ··········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​107 ········{
137 ··········boost:​:​bind(&chat_session:​:​handle_read_header,​·shared_from_this()​,​108 ··········​if·(!ec·&&·read_msg_.​decode_header()​)​
138 ············asio:​:​placeholders:​:​error)​)​;​109 ··········{
139 ····}110 ············do_read_body()​;​
140 ····else111 ··········}
141 ····{112 ··········else
142 ······room_.​leave(shared_from_thi​s()​)​;​113 ··········{
143 ····}114 ············room_.​leave(shared_from_thi​s()​)​;​
115 ··········​}
116 ········​})​;​
144 ··​}117 ··​}
145 118
146 ··​void·handle_write(const·asio:​:​error_code&·error)​119 ··​void·​do_read_body()​
147 ··​{120 ··​{
148 ····if·​(!error)​121 ····auto·self(shared_from_this​()​)​;​
149 ····{122 ····asio:​:​async_read(socket_,​
150 ······write_msgs_.​pop_front()​;​123 ········asio:​:​buffer(read_msg_.​body()​,​·read_msg_.​body_length()​)​,​
151 ······​if·(!write_msgs_.​empty()​)​124 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
152 ······​{125 ········​{
153 ········asio:​:​async_write(socket_,​126 ··········if·(!ec)​
154 ············asio:​:​buffer(write_msgs_.​front()​.​data()​,​127 ··········{
155 ··············write_msgs_.​front()​.​length()​)​,​128 ············​room_.​deliver(read_msg_)​;​
156 ············boost:​:​bind(&chat_session:​:​handle_write,​·shared_from_this()​,​129 ············​do_read_header()​;​
157 ··············asio:​:​placeholders:​:​error)​)​;​130 ··········}
158 ······}131 ··········else
159 ····}132 ··········{
160 ····​else133 ············room_.​leave(shared_from_thi​s()​)​;​
161 ····{134 ··········}
162 ······room_.​leave(shared_from_thi​s()​)​;​135 ········})​;​
163 ····​}136 ··​}
137
138 ··​void·​do_write()​
139 ··​{
140 ····​auto·​self(shared_from_this​()​)​;​
141 ····​asio:​:​async_write(socket_,​
142 ········​asio:​:​buffer(write_msgs_.​front()​.​data()​,​
143 ··········​write_msgs_.​front()​.​length()​)​,​
144 ········​[this,​·​self](std:​:​error_code·​ec,​·​std:​:​size_t·​/​*length*/​)​
145 ········​{
146 ··········​if·​(!ec)​
147 ··········​{
148 ············​write_msgs_.​pop_front()​;​
149 ············​if·​(!write_msgs_.​empty()​)​
150 ············​{
151 ··············​do_write()​;​
152 ············​}
153 ··········​}
154 ··········​else
155 ··········​{
156 ············​room_.​leave(shared_from_thi​s()​)​;​
157 ··········​}
158 ········​})​;​
164 ··​}159 ··​}
165 160
166 private:​
167 ··​tcp:​:​socket·​socket_;​161 ··​tcp:​:​socket·​socket_;​
168 ··​chat_room&·​room_;​162 ··​chat_room&·​room_;​
169 ··​chat_message·​read_msg_;​163 ··​chat_message·​read_msg_;​
170 ··​chat_message_queue·​write_msgs_;​164 ··​chat_message_queue·​write_msgs_;​
171 };​165 };​
172 166
173 typedef·​boost:​:​shared_ptr<chat_sessi​on>·​chat_session_ptr;​
174
175 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​167 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
176 168
177 class·​chat_server169 class·​chat_server
178 {170 {
179 public:​171 public:​
180 ··​chat_server(asio:​:​io_context&·​io_context,​172 ··​chat_server(asio:​:​io_context&·​io_context,​
181 ······​const·​tcp:​:​endpoint&·​endpoint)​173 ······​const·​tcp:​:​endpoint&·​endpoint)​
182 ····​:​·io_context_(io_contex​t)​,​174 ····​:​·acceptor_(io_context,​·endpoint)​
183 ······acceptor_(io_context,​·endpoint)​
184 ··​{175 ··​{
185 ····start_accept()​;​176 ····do_accept()​;​
186 ··​}177 ··​}
187 178
188 ··void·start_accept()​179 private:​
189 ··{180 ··void·do_accept()​
190 ····chat_session_ptr·new_session(new·chat_session(io_conte​xt_,​·room_)​)​;​
191 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​
192 ········boost:​:​bind(&chat_server:​:​handle_accept,​·this,​·new_session,​
193 ··········asio:​:​placeholders:​:​error)​)​;​
194 ··}
195
196 ··void·handle_accept(chat_se​ssion_ptr·session,​
197 ······const·asio:​:​error_code&·error)​
198 ··​{181 ··​{
199 ····if·(!error)​182 ····acceptor_.​async_accept(
200 ····{183 ········[this](std:​:​error_code·ec,​·tcp:​:​socket·socket)​
201 ······session-​>start()​;​184 ········{
202 ····}185 ··········if·(!ec)​
186 ··········​{
187 ············​std:​:​make_shared<chat_sess​ion>(std:​:​move(socket)​,​·​room_)​-​>start()​;​
188 ··········​}
203 189
204 ····start_accept()​;​190 ··········do_accept()​;​
191 ········​})​;​
205 ··​}192 ··​}
206 193
207 private:​
208 ··​asio:​:​io_context&·​io_context_;​
209 ··​tcp:​:​acceptor·​acceptor_;​194 ··​tcp:​:​acceptor·​acceptor_;​
210 ··​chat_room·​room_;​195 ··​chat_room·​room_;​
211 };​196 };​
212 197
213 typedef·​boost:​:​shared_ptr<chat_serve​r>·​chat_server_ptr;​
214 typedef·​std:​:​list<chat_server_ptr>​·​chat_server_list;​
215
216 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​198 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
217 199
218 int·​main(int·​argc,​·​char*·​argv[])​200 int·​main(int·​argc,​·​char*·​argv[])​
219 {201 {
220 ··​try202 ··​try
221 ··​{203 ··​{
222 ····​if·​(argc·​<·​2)​204 ····​if·​(argc·​<·​2)​
223 ····​{205 ····​{
224 ······​std:​:​cerr·​<<·​"Usage:​·​chat_server·​<port>·​[<port>·​.​.​.​]\n";​206 ······​std:​:​cerr·​<<·​"Usage:​·​chat_server·​<port>·​[<port>·​.​.​.​]\n";​
225 ······​return·​1;​207 ······​return·​1;​
226 ····​}208 ····​}
227 209
228 ····​asio:​:​io_context·​io_context;​210 ····​asio:​:​io_context·​io_context;​
229 211
230 ····​chat_server_list·​servers;​212 ····std:​:​list<chat_server>·​servers;​
231 ····​for·​(int·​i·​=·​1;​·​i·​<·​argc;​·​++i)​213 ····​for·​(int·​i·​=·​1;​·​i·​<·​argc;​·​++i)​
232 ····​{214 ····​{
233 ······using·​namespace·​std;​·/​/​·For·atoi.​215 ······tcp:​:​endpoint·endpoint(tcp:​:​v4()​,​·​std:​:​atoi(argv[i])​)​;​
234 ······tcp:​:​endpoint·endpoint(tcp:​:​v4()​,​·atoi(argv[i])​)​;​216 ······servers.​emplace_back(io_conte​xt,​·endpoint)​;​
235 ······chat_server_ptr·server(new·chat_server(io_contex​t,​·endpoint)​)​;​
236 ······servers.​push_back(server)​;​
237 ····​}217 ····​}
238 218
239 ····​io_context.​run()​;​219 ····​io_context.​run()​;​
240 ··​}220 ··​}
241 ··​catch·​(std:​:​exception&·​e)​221 ··​catch·​(std:​:​exception&·​e)​
242 ··​{222 ··​{
243 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​223 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
244 ··​}224 ··​}
245 225
246 ··​return·​0;​226 ··​return·​0;​
247 }227 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/echo/async_tcp_echo_server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/echo/async_tcp_echo_server.cpp.html deleted file mode 100644 index 3e81be0..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/echo/async_tcp_echo_server.cpp.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - HTML Diff echo/async_tcp_echo_server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​echo/​async_tcp_echo_server​.​cppsrc/​examples/​cpp11/​echo/​async_tcp_echo_server​.​cpp
1 /​/​1 /​/​
2 /​/​·​async_tcp_echo_server​.​cpp2 /​/​·​async_tcp_echo_server​.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<iostream>12 #include·​<iostream>
13 #include·​<boost/​bind.​hpp>13 #include·​<memory>
14 #include·​<utility>
14 #include·​"asio.​hpp"15 #include·​"asio.​hpp"
15 16
16 using·​asio:​:​ip:​:​tcp;​17 using·​asio:​:​ip:​:​tcp;​
17 18
18 class·​session19 class·​session
20 ··​:​·​public·​std:​:​enable_shared_from_th​is<session>
19 {21 {
20 public:​22 public:​
21 ··​session(asio:​:​io_context&·io_context)​23 ··​session(tcp:​:​socket·socket)​
22 ····​:​·​socket_(io_context)​24 ····​:​·​socket_(std:​:​move(socket)​)​
23 ··​{25 ··​{
24 ··​}26 ··​}
25 27
26 ··​tcp:​:​socket&·​socket()​
27 ··​{
28 ····​return·​socket_;​
29 ··​}
30
31 ··​void·​start()​28 ··​void·​start()​
32 ··​{29 ··​{
33 ····socket_.​async_read_some(asio:​:​buffer(data_,​·max_length)​,​30 ····do_read()​;​
34 ········boost:​:​bind(&session:​:​handle_read,​·this,​
35 ··········asio:​:​placeholders:​:​error,​
36 ··········asio:​:​placeholders:​:​bytes_transferred)​)​;​
37 ··​}31 ··​}
38 32
39 private:​33 private:​
40 ··​void·handle_read(const·asio:​:​error_code&·error,​34 ··​void·​do_read()​
41 ······size_t·bytes_transferred)​
42 ··{
43 ····if·(!error)​
44 ····{
45 ······asio:​:​async_write(socket_,​
46 ··········asio:​:​buffer(data_,​·bytes_transferred)​,​
47 ··········boost:​:​bind(&session:​:​handle_write,​·this,​
48 ············asio:​:​placeholders:​:​error)​)​;​
49 ····}
50 ····else
51 ····{
52 ······delete·this;​
53 ····}
54 ··}
55
56 ··void·handle_write(const·asio:​:​error_code&·error)​
57 ··​{35 ··​{
58 ····if·​(!error)​36 ····auto·self(shared_from_this​()​)​;​
59 ····{37 ····socket_.​async_read_some(asio:​:​buffer(data_,​·max_length)​,​
60 ······socket_.​async_read_some(asio:​:​buffer(data_,​·max_length)​,​38 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·length)​
61 ··········boost:​:​bind(&session:​:​handle_read,​·this,​39 ········{
62 ············asio:​:​placeholders:​:​error,​40 ··········​if·(!ec)​
63 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​41 ··········{
64 ····}42 ············do_write(length)​;​
65 ····else43 ··········}
66 ····{44 ········})​;​
67 ······delete·this;​45 ··}
68 ····}46
47 ··​void·​do_write(std:​:​size_t·​length)​
48 ··​{
49 ····​auto·​self(shared_from_this​()​)​;​
50 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer(data_,​·​length)​,​
51 ········​[this,​·​self](std:​:​error_code·​ec,​·​std:​:​size_t·​/​*length*/​)​
52 ········​{
53 ··········​if·​(!ec)​
54 ··········​{
55 ············​do_read()​;​
56 ··········​}
57 ········​})​;​
69 ··​}58 ··​}
70 59
71 ··​tcp:​:​socket·​socket_;​60 ··​tcp:​:​socket·​socket_;​
72 ··​enum·​{·​max_length·​=·​1024·​};​61 ··​enum·​{·​max_length·​=·​1024·​};​
73 ··​char·​data_[max_length];​62 ··​char·​data_[max_length];​
74 };​63 };​
75 64
76 class·​server65 class·​server
77 {66 {
78 public:​67 public:​
79 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​68 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​
80 ····​:​·​io_context_(io_contex​t)​,​69 ····​:​·acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​
81 ······acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​
82 ··​{70 ··​{
83 ····start_accept()​;​71 ····do_accept()​;​
84 ··​}72 ··​}
85 73
86 private:​74 private:​
87 ··​void·start_accept()​75 ··​void·do_accept()​
88 ··​{76 ··​{
89 ····session*·new_session·=·new·session(io_context_)​;​77 ····acceptor_.​async_accept(
90 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​78 ········[this](std:​:​error_code·ec,​·tcp:​:​socket·socket)​
91 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​79 ········{
92 ··········asio:​:​placeholders:​:​error)​)​;​80 ··········​if·(!ec)​
93 ··}81 ··········{
94 82 ············std:​:​make_shared<session>(​std:​:​move(socket)​)​-​>start()​;​
95 ··void·handle_accept(session​*·new_session,​83 ··········}
96 ······const·asio:​:​error_code&·error)​
97 ··{
98 ····if·(!error)​
99 ····{
100 ······new_session-​>start()​;​
101 ····}
102 ····else
103 ····{
104 ······delete·new_session;​
105 ····}
106 84
107 ····start_accept()​;​85 ··········do_accept()​;​
86 ········​})​;​
108 ··​}87 ··​}
109 88
110 ··​asio:​:​io_context&·​io_context_;​
111 ··​tcp:​:​acceptor·​acceptor_;​89 ··​tcp:​:​acceptor·​acceptor_;​
112 };​90 };​
113 91
114 int·​main(int·​argc,​·​char*·​argv[])​92 int·​main(int·​argc,​·​char*·​argv[])​
115 {93 {
116 ··​try94 ··​try
117 ··​{95 ··​{
118 ····​if·​(argc·​!=·​2)​96 ····​if·​(argc·​!=·​2)​
119 ····​{97 ····​{
120 ······​std:​:​cerr·​<<·​"Usage:​·​async_tcp_echo_server​·​<port>\n";​98 ······​std:​:​cerr·​<<·​"Usage:​·​async_tcp_echo_server​·​<port>\n";​
121 ······​return·​1;​99 ······​return·​1;​
122 ····​}100 ····​}
123 101
124 ····​asio:​:​io_context·​io_context;​102 ····​asio:​:​io_context·​io_context;​
125 103
126 ····using·namespace·​std;​·/​/​·For·atoi.​104 ····server·s(io_context,​·​std:​:​atoi(argv[1])​)​;​
127 ····server·s(io_context,​·atoi(argv[1])​)​;​
128 105
129 ····​io_context.​run()​;​106 ····​io_context.​run()​;​
130 ··​}107 ··​}
131 ··​catch·​(std:​:​exception&·​e)​108 ··​catch·​(std:​:​exception&·​e)​
132 ··​{109 ··​{
133 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​110 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
134 ··​}111 ··​}
135 112
136 ··​return·​0;​113 ··​return·​0;​
137 }114 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/echo/async_udp_echo_server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/echo/async_udp_echo_server.cpp.html deleted file mode 100644 index 088a197..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/echo/async_udp_echo_server.cpp.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - HTML Diff echo/async_udp_echo_server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​echo/​async_udp_echo_server​.​cppsrc/​examples/​cpp11/​echo/​async_udp_echo_server​.​cpp
1 /​/​1 /​/​
2 /​/​·​async_udp_echo_server​.​cpp2 /​/​·​async_udp_echo_server​.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<iostream>12 #include·​<iostream>
13 #include·​<boost/​bind.​hpp>
14 #include·​"asio.​hpp"13 #include·​"asio.​hpp"
15 14
16 using·​asio:​:​ip:​:​udp;​15 using·​asio:​:​ip:​:​udp;​
17 16
18 class·​server17 class·​server
19 {18 {
20 public:​19 public:​
21 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​20 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​
22 ····​:​·​socket_(io_context,​·​udp:​:​endpoint(udp:​:​v4()​,​·​port)​)​21 ····​:​·​socket_(io_context,​·​udp:​:​endpoint(udp:​:​v4()​,​·​port)​)​
23 ··​{22 ··​{
24 ····socket_.​async_receive_from(23 ····do_receive()​;​
25 ········asio:​:​buffer(data_,​·max_length)​,​·sender_endpoint_,​
26 ········boost:​:​bind(&server:​:​handle_receive_from,​·this,​
27 ··········asio:​:​placeholders:​:​error,​
28 ··········asio:​:​placeholders:​:​bytes_transferred)​)​;​
29 ··​}24 ··​}
30 25
31 ··​void·handle_receive_from(c​onst·asio:​:​error_code&·error,​26 ··​void·​do_receive()​
32 ······size_t·bytes_recvd)​
33 ··​{27 ··​{
34 ····if·(!error·&&·bytes_recvd·>·0)​28 ····socket_.​async_receive_from(
35 ····{29 ········asio:​:​buffer(data_,​·max_length)​,​·sender_endpoint_,​
36 ······​socket_.​async_send_to(30 ········[this](std:​:​error_code·ec,​·std:​:​size_t·bytes_recvd)​
37 ··········asio:​:​buffer(data_,​·bytes_recvd)​,​·sender_endpoint_,​31 ········{
38 ··········boost:​:​bind(&server:​:​handle_send_to,​·this,​32 ··········​if·(!ec·&&·bytes_recvd·>·0)​
39 ············asio:​:​placeholders:​:​error,​33 ··········{
40 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​34 ············do_send(bytes_recvd)​;​
41 ····​}35 ··········​}
42 ····​else36 ··········​else
43 ····​{37 ··········​{
44 ······socket_.​async_receive_from(38 ············do_receive()​;​
45 ··········asio:​:​buffer(data_,​·max_length)​,​·sender_endpoint_,​39 ··········}
46 ··········boost:​:​bind(&server:​:​handle_receive_from,​·this,​40 ········})​;​
47 ············asio:​:​placeholders:​:​error,​
48 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​
49 ····}
50 ··​}41 ··​}
51 42
52 ··​void·handle_send_to(const·asio:​:​error_code&·/​*error*/​,​43 ··​void·​do_send(std:​:​size_t·length)​
53 ······size_t·/​*bytes_sent*/​)​
54 ··​{44 ··​{
55 ····​socket_.​async_receive_from(45 ····​socket_.​async_send_to(
56 ········​asio:​:​buffer(data_,​·max_length)​,​·​sender_endpoint_,​46 ········​asio:​:​buffer(data_,​·​length)​,​·​sender_endpoint_,​
57 ········boost:​:​bind(&server:​:​handle_receive_from,​·this,​47 ········[this](std:​:​error_code·/​*ec*/​,​·std:​:​size_t·/​*bytes_sent*/​)​
58 ··········asio:​:​placeholders:​:​error,​48 ········{
59 ··········asio:​:​placeholders:​:​bytes_transferred)​)​;​49 ··········​do_receive()​;​
50 ········​})​;​
60 ··​}51 ··​}
61 52
62 private:​53 private:​
63 ··​udp:​:​socket·​socket_;​54 ··​udp:​:​socket·​socket_;​
64 ··​udp:​:​endpoint·​sender_endpoint_;​55 ··​udp:​:​endpoint·​sender_endpoint_;​
65 ··​enum·​{·​max_length·​=·​1024·​};​56 ··​enum·​{·​max_length·​=·​1024·​};​
66 ··​char·​data_[max_length];​57 ··​char·​data_[max_length];​
67 };​58 };​
68 59
69 int·​main(int·​argc,​·​char*·​argv[])​60 int·​main(int·​argc,​·​char*·​argv[])​
70 {61 {
71 ··​try62 ··​try
72 ··​{63 ··​{
73 ····​if·​(argc·​!=·​2)​64 ····​if·​(argc·​!=·​2)​
74 ····​{65 ····​{
75 ······​std:​:​cerr·​<<·​"Usage:​·​async_udp_echo_server​·​<port>\n";​66 ······​std:​:​cerr·​<<·​"Usage:​·​async_udp_echo_server​·​<port>\n";​
76 ······​return·​1;​67 ······​return·​1;​
77 ····​}68 ····​}
78 69
79 ····​asio:​:​io_context·​io_context;​70 ····​asio:​:​io_context·​io_context;​
80 71
81 ····using·namespace·​std;​·/​/​·For·atoi.​72 ····server·s(io_context,​·​std:​:​atoi(argv[1])​)​;​
82 ····server·s(io_context,​·atoi(argv[1])​)​;​
83 73
84 ····​io_context.​run()​;​74 ····​io_context.​run()​;​
85 ··​}75 ··​}
86 ··​catch·​(std:​:​exception&·​e)​76 ··​catch·​(std:​:​exception&·​e)​
87 ··​{77 ··​{
88 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​78 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
89 ··​}79 ··​}
90 80
91 ··​return·​0;​81 ··​return·​0;​
92 }82 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_tcp_echo_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_tcp_echo_client.cpp.html deleted file mode 100644 index 63be7de..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_tcp_echo_client.cpp.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - HTML Diff echo/blocking_tcp_echo_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​echo/​blocking_tcp_echo_cli​ent.​cppsrc/​examples/​cpp11/​echo/​blocking_tcp_echo_cli​ent.​cpp
1 /​/​1 /​/​
2 /​/​·​blocking_tcp_echo_cli​ent.​cpp2 /​/​·​blocking_tcp_echo_cli​ent.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<cstring>12 #include·​<cstring>
13 #include·​<iostream>13 #include·​<iostream>
14 #include·​"asio.​hpp"14 #include·​"asio.​hpp"
15 15
16 using·​asio:​:​ip:​:​tcp;​16 using·​asio:​:​ip:​:​tcp;​
17 17
18 enum·​{·​max_length·​=·​1024·​};​18 enum·​{·​max_length·​=·​1024·​};​
19 19
20 int·​main(int·​argc,​·​char*·​argv[])​20 int·​main(int·​argc,​·​char*·​argv[])​
21 {21 {
22 ··​try22 ··​try
23 ··​{23 ··​{
24 ····​if·​(argc·​!=·​3)​24 ····​if·​(argc·​!=·​3)​
25 ····​{25 ····​{
26 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_echo_cli​ent·​<host>·​<port>\n";​26 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_echo_cli​ent·​<host>·​<port>\n";​
27 ······​return·​1;​27 ······​return·​1;​
28 ····​}28 ····​}
29 29
30 ····​asio:​:​io_context·​io_context;​30 ····​asio:​:​io_context·​io_context;​
31 31
32 ····​tcp:​:​resolver·​resolver(io_context)​;​
33 ····​tcp:​:​resolver:​:​results_type·​endpoints·​=
34 ······​resolver.​resolve(tcp:​:​v4()​,​·​argv[1],​·​argv[2])​;​
35
36 ····​tcp:​:​socket·​s(io_context)​;​32 ····​tcp:​:​socket·​s(io_context)​;​
37 ····asio:​:​connect(s,​·endpoints)​;​33 ····tcp:​:​resolver·resolver(io_context)​;​
34 ····​asio:​:​connect(s,​·​resolver.​resolve(argv[1],​·​argv[2])​)​;​
38 35
39 ····​using·​namespace·​std;​·​/​/​·​For·​strlen.​
40 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​36 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​
41 ····​char·​request[max_length];​37 ····​char·​request[max_length];​
42 ····​std:​:​cin.​getline(request,​·​max_length)​;​38 ····​std:​:​cin.​getline(request,​·​max_length)​;​
43 ····​size_t·​request_length·​=·​strlen(request)​;​39 ····​size_t·​request_length·​=·std:​:​strlen(request)​;​
44 ····​asio:​:​write(s,​·​asio:​:​buffer(request,​·​request_length)​)​;​40 ····​asio:​:​write(s,​·​asio:​:​buffer(request,​·​request_length)​)​;​
45 41
46 ····​char·​reply[max_length];​42 ····​char·​reply[max_length];​
47 ····​size_t·​reply_length·​=·​asio:​:​read(s,​43 ····​size_t·​reply_length·​=·​asio:​:​read(s,​
48 ········​asio:​:​buffer(reply,​·​request_length)​)​;​44 ········​asio:​:​buffer(reply,​·​request_length)​)​;​
49 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​45 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​
50 ····​std:​:​cout.​write(reply,​·​reply_length)​;​46 ····​std:​:​cout.​write(reply,​·​reply_length)​;​
51 ····​std:​:​cout·​<<·​"\n";​47 ····​std:​:​cout·​<<·​"\n";​
52 ··​}48 ··​}
53 ··​catch·​(std:​:​exception&·​e)​49 ··​catch·​(std:​:​exception&·​e)​
54 ··​{50 ··​{
55 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​51 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
56 ··​}52 ··​}
57 53
58 ··​return·​0;​54 ··​return·​0;​
59 }55 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_tcp_echo_server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_tcp_echo_server.cpp.html deleted file mode 100644 index e380dc8..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_tcp_echo_server.cpp.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - HTML Diff echo/blocking_tcp_echo_server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​echo/​blocking_tcp_echo_ser​ver.​cppsrc/​examples/​cpp11/​echo/​blocking_tcp_echo_ser​ver.​cpp
1 /​/​1 /​/​
2 /​/​·​blocking_tcp_echo_ser​ver.​cpp2 /​/​·​blocking_tcp_echo_ser​ver.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<iostream>12 #include·​<iostream>
13 #include·​<boost/​bind.​hpp>13 #include·​<thread>
14 #include·​<boost/​smart_ptr.​hpp>14 #include·​<utility>
15 #include·​"asio.​hpp"15 #include·​"asio.​hpp"
16 16
17 using·​asio:​:​ip:​:​tcp;​17 using·​asio:​:​ip:​:​tcp;​
18 18
19 const·​int·​max_length·​=·​1024;​19 const·​int·​max_length·​=·​1024;​
20 20
21 typedef·boost:​:​shared_ptr<tcp:​:​socket>·​socket_ptr;​21 void·​session(tcp:​:​socket·​sock)​
22
23 void·session(socket_ptr·sock)​
24 {22 {
25 ··​try23 ··​try
26 ··​{24 ··​{
27 ····​for·​(;​;​)​25 ····​for·​(;​;​)​
28 ····​{26 ····​{
29 ······​char·​data[max_length];​27 ······​char·​data[max_length];​
30 28
31 ······​asio:​:​error_code·​error;​29 ······​asio:​:​error_code·​error;​
32 ······​size_t·​length·​=·​sock-​>read_some(asio:​:​buffer(data)​,​·​error)​;​30 ······​size_t·​length·​=·​sock.​read_some(asio:​:​buffer(data)​,​·​error)​;​
33 ······​if·​(error·​==·​asio:​:​error:​:​eof)​31 ······​if·​(error·​==·​asio:​:​error:​:​eof)​
34 ········​break;​·​/​/​·​Connection·​closed·​cleanly·​by·​peer.​32 ········​break;​·​/​/​·​Connection·​closed·​cleanly·​by·​peer.​
35 ······​else·​if·​(error)​33 ······​else·​if·​(error)​
36 ········​throw·​asio:​:​system_error(error)​;​·​/​/​·​Some·​other·​error.​34 ········​throw·​asio:​:​system_error(error)​;​·​/​/​·​Some·​other·​error.​
37 35
38 ······​asio:​:​write(*sock,​·​asio:​:​buffer(data,​·​length)​)​;​36 ······​asio:​:​write(sock,​·​asio:​:​buffer(data,​·​length)​)​;​
39 ····​}37 ····​}
40 ··​}38 ··​}
41 ··​catch·​(std:​:​exception&·​e)​39 ··​catch·​(std:​:​exception&·​e)​
42 ··​{40 ··​{
43 ····​std:​:​cerr·​<<·​"Exception·​in·​thread:​·​"·​<<·​e.​what()​·​<<·​"\n";​41 ····​std:​:​cerr·​<<·​"Exception·​in·​thread:​·​"·​<<·​e.​what()​·​<<·​"\n";​
44 ··​}42 ··​}
45 }43 }
46 44
47 void·​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​45 void·​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​
48 {46 {
49 ··​tcp:​:​acceptor·​a(io_context,​·​tcp:​:​endpoint(tcp:​:​v4()​,​·​port)​)​;​47 ··​tcp:​:​acceptor·​a(io_context,​·​tcp:​:​endpoint(tcp:​:​v4()​,​·​port)​)​;​
50 ··​for·​(;​;​)​48 ··​for·​(;​;​)​
51 ··​{49 ··​{
52 ····​socket_ptr·sock(new·tcp:​:​socket(io_context)​)​;​50 ····​std:​:​thread(session,​·a.​accept()​)​.​detach()​;​
53 ····a.​accept(*sock)​;​
54 ····asio:​:​thread·t(boost:​:​bind(session,​·sock)​)​;​
55 ··​}51 ··​}
56 }52 }
57 53
58 int·​main(int·​argc,​·​char*·​argv[])​54 int·​main(int·​argc,​·​char*·​argv[])​
59 {55 {
60 ··​try56 ··​try
61 ··​{57 ··​{
62 ····​if·​(argc·​!=·​2)​58 ····​if·​(argc·​!=·​2)​
63 ····​{59 ····​{
64 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_echo_ser​ver·​<port>\n";​60 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_echo_ser​ver·​<port>\n";​
65 ······​return·​1;​61 ······​return·​1;​
66 ····​}62 ····​}
67 63
68 ····​asio:​:​io_context·​io_context;​64 ····​asio:​:​io_context·​io_context;​
69 65
70 ····using·namespace·​std;​·/​/​·For·atoi.​66 ····server(io_context,​·​std:​:​atoi(argv[1])​)​;​
71 ····server(io_context,​·atoi(argv[1])​)​;​
72 ··​}67 ··​}
73 ··​catch·​(std:​:​exception&·​e)​68 ··​catch·​(std:​:​exception&·​e)​
74 ··​{69 ··​{
75 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​70 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
76 ··​}71 ··​}
77 72
78 ··​return·​0;​73 ··​return·​0;​
79 }74 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_udp_echo_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_udp_echo_client.cpp.html deleted file mode 100644 index 05dcee9..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_udp_echo_client.cpp.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - HTML Diff echo/blocking_udp_echo_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​echo/​blocking_udp_echo_cli​ent.​cppsrc/​examples/​cpp11/​echo/​blocking_udp_echo_cli​ent.​cpp
1 /​/​1 /​/​
2 /​/​·​blocking_udp_echo_cli​ent.​cpp2 /​/​·​blocking_udp_echo_cli​ent.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<cstring>12 #include·​<cstring>
13 #include·​<iostream>13 #include·​<iostream>
14 #include·​"asio.​hpp"14 #include·​"asio.​hpp"
15 15
16 using·​asio:​:​ip:​:​udp;​16 using·​asio:​:​ip:​:​udp;​
17 17
18 enum·​{·​max_length·​=·​1024·​};​18 enum·​{·​max_length·​=·​1024·​};​
19 19
20 int·​main(int·​argc,​·​char*·​argv[])​20 int·​main(int·​argc,​·​char*·​argv[])​
21 {21 {
22 ··​try22 ··​try
23 ··​{23 ··​{
24 ····​if·​(argc·​!=·​3)​24 ····​if·​(argc·​!=·​3)​
25 ····​{25 ····​{
26 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_udp_echo_cli​ent·​<host>·​<port>\n";​26 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_udp_echo_cli​ent·​<host>·​<port>\n";​
27 ······​return·​1;​27 ······​return·​1;​
28 ····​}28 ····​}
29 29
30 ····​asio:​:​io_context·​io_context;​30 ····​asio:​:​io_context·​io_context;​
31 31
32 ····​udp:​:​socket·​s(io_context,​·​udp:​:​endpoint(udp:​:​v4()​,​·​0)​)​;​32 ····​udp:​:​socket·​s(io_context,​·​udp:​:​endpoint(udp:​:​v4()​,​·​0)​)​;​
33 33
34 ····​udp:​:​resolver·​resolver(io_context)​;​34 ····​udp:​:​resolver·​resolver(io_context)​;​
35 ····​udp:​:​resolver:​:​results_type·​endpoints·​=35 ····​udp:​:​resolver:​:​results_type·​endpoints·​=
36 ······​resolver.​resolve(udp:​:​v4()​,​·​argv[1],​·​argv[2])​;​36 ······​resolver.​resolve(udp:​:​v4()​,​·​argv[1],​·​argv[2])​;​
37 37
38 ····​using·​namespace·​std;​·​/​/​·​For·​strlen.​
39 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​38 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​
40 ····​char·​request[max_length];​39 ····​char·​request[max_length];​
41 ····​std:​:​cin.​getline(request,​·​max_length)​;​40 ····​std:​:​cin.​getline(request,​·​max_length)​;​
42 ····​size_t·​request_length·​=·​strlen(request)​;​41 ····​size_t·​request_length·​=·std:​:​strlen(request)​;​
43 ····​s.​send_to(asio:​:​buffer(request,​·​request_length)​,​·​*endpoints.​begin()​)​;​42 ····​s.​send_to(asio:​:​buffer(request,​·​request_length)​,​·​*endpoints.​begin()​)​;​
44 43
45 ····​char·​reply[max_length];​44 ····​char·​reply[max_length];​
46 ····​udp:​:​endpoint·​sender_endpoint;​45 ····​udp:​:​endpoint·​sender_endpoint;​
47 ····​size_t·​reply_length·​=·​s.​receive_from(46 ····​size_t·​reply_length·​=·​s.​receive_from(
48 ········​asio:​:​buffer(reply,​·​max_length)​,​·​sender_endpoint)​;​47 ········​asio:​:​buffer(reply,​·​max_length)​,​·​sender_endpoint)​;​
49 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​48 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​
50 ····​std:​:​cout.​write(reply,​·​reply_length)​;​49 ····​std:​:​cout.​write(reply,​·​reply_length)​;​
51 ····​std:​:​cout·​<<·​"\n";​50 ····​std:​:​cout·​<<·​"\n";​
52 ··​}51 ··​}
53 ··​catch·​(std:​:​exception&·​e)​52 ··​catch·​(std:​:​exception&·​e)​
54 ··​{53 ··​{
55 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​54 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
56 ··​}55 ··​}
57 56
58 ··​return·​0;​57 ··​return·​0;​
59 }58 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_udp_echo_server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_udp_echo_server.cpp.html deleted file mode 100644 index fd503f8..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_udp_echo_server.cpp.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - HTML Diff echo/blocking_udp_echo_server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​echo/​blocking_udp_echo_ser​ver.​cppsrc/​examples/​cpp11/​echo/​blocking_udp_echo_ser​ver.​cpp
1 /​/​1 /​/​
2 /​/​·​blocking_udp_echo_ser​ver.​cpp2 /​/​·​blocking_udp_echo_ser​ver.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<iostream>12 #include·​<iostream>
13 #include·​"asio.​hpp"13 #include·​"asio.​hpp"
14 14
15 using·​asio:​:​ip:​:​udp;​15 using·​asio:​:​ip:​:​udp;​
16 16
17 enum·​{·​max_length·​=·​1024·​};​17 enum·​{·​max_length·​=·​1024·​};​
18 18
19 void·​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​19 void·​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​
20 {20 {
21 ··​udp:​:​socket·​sock(io_context,​·​udp:​:​endpoint(udp:​:​v4()​,​·​port)​)​;​21 ··​udp:​:​socket·​sock(io_context,​·​udp:​:​endpoint(udp:​:​v4()​,​·​port)​)​;​
22 ··​for·​(;​;​)​22 ··​for·​(;​;​)​
23 ··​{23 ··​{
24 ····​char·​data[max_length];​24 ····​char·​data[max_length];​
25 ····​udp:​:​endpoint·​sender_endpoint;​25 ····​udp:​:​endpoint·​sender_endpoint;​
26 ····​size_t·​length·​=·​sock.​receive_from(26 ····​size_t·​length·​=·​sock.​receive_from(
27 ········​asio:​:​buffer(data,​·​max_length)​,​·​sender_endpoint)​;​27 ········​asio:​:​buffer(data,​·​max_length)​,​·​sender_endpoint)​;​
28 ····​sock.​send_to(asio:​:​buffer(data,​·​length)​,​·​sender_endpoint)​;​28 ····​sock.​send_to(asio:​:​buffer(data,​·​length)​,​·​sender_endpoint)​;​
29 ··​}29 ··​}
30 }30 }
31 31
32 int·​main(int·​argc,​·​char*·​argv[])​32 int·​main(int·​argc,​·​char*·​argv[])​
33 {33 {
34 ··​try34 ··​try
35 ··​{35 ··​{
36 ····​if·​(argc·​!=·​2)​36 ····​if·​(argc·​!=·​2)​
37 ····​{37 ····​{
38 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_udp_echo_ser​ver·​<port>\n";​38 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_udp_echo_ser​ver·​<port>\n";​
39 ······​return·​1;​39 ······​return·​1;​
40 ····​}40 ····​}
41 41
42 ····​asio:​:​io_context·​io_context;​42 ····​asio:​:​io_context·​io_context;​
43 43
44 ····using·namespace·​std;​·/​/​·For·atoi.​44 ····server(io_context,​·​std:​:​atoi(argv[1])​)​;​
45 ····server(io_context,​·atoi(argv[1])​)​;​
46 ··​}45 ··​}
47 ··​catch·​(std:​:​exception&·​e)​46 ··​catch·​(std:​:​exception&·​e)​
48 ··​{47 ··​{
49 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​48 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
50 ··​}49 ··​}
51 50
52 ··​return·​0;​51 ··​return·​0;​
53 }52 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/executors/actor.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/executors/actor.cpp.html deleted file mode 100644 index 5eff61e..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/executors/actor.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff executors/actor.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/executors/bank_account_1.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/executors/bank_account_1.cpp.html deleted file mode 100644 index 5d3b803..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/executors/bank_account_1.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff executors/bank_account_1.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/executors/bank_account_2.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/executors/bank_account_2.cpp.html deleted file mode 100644 index 4c74539..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/executors/bank_account_2.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff executors/bank_account_2.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/executors/fork_join.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/executors/fork_join.cpp.html deleted file mode 100644 index 2cdea5b..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/executors/fork_join.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff executors/fork_join.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/executors/pipeline.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/executors/pipeline.cpp.html deleted file mode 100644 index 185b617..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/executors/pipeline.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff executors/pipeline.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/executors/priority_scheduler.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/executors/priority_scheduler.cpp.html deleted file mode 100644 index 52c3ffa..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/executors/priority_scheduler.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff executors/priority_scheduler.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/fork/daemon.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/fork/daemon.cpp.html deleted file mode 100644 index a9a33d9..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/fork/daemon.cpp.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - - HTML Diff fork/daemon.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​fork/​daemon.​cppsrc/​examples/​cpp11/​fork/​daemon.​cpp
1 /​/​1 /​/​
2 /​/​·​daemon.​cpp2 /​/​·​daemon.​cpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<asio/​io_context.​hpp>11 #include·​<asio/​io_context.​hpp>
12 #include·​<asio/​ip/​udp.​hpp>12 #include·​<asio/​ip/​udp.​hpp>
13 #include·​<asio/​signal_set.​hpp>13 #include·​<asio/​signal_set.​hpp>
14 #include·​<boost/​array.​hpp>14 #include·​<array>
15 #include·<boost/​bind.​hpp>
16 #include·​<ctime>15 #include·​<ctime>
17 #include·​<iostream>16 #include·​<iostream>
18 #include·​<syslog.​h>17 #include·​<syslog.​h>
19 #include·​<unistd.​h>18 #include·​<unistd.​h>
20 19
21 using·​asio:​:​ip:​:​udp;​20 using·​asio:​:​ip:​:​udp;​
22 21
23 class·​udp_daytime_server22 class·​udp_daytime_server
24 {23 {
25 public:​24 public:​
26 ··​udp_daytime_server(as​io:​:​io_context&·​io_context)​25 ··​udp_daytime_server(as​io:​:​io_context&·​io_context)​
27 ····​:​·​socket_(io_context,​·udp:​:​endpoint(udp:​:​v4()​,​·​13)​)​26 ····​:​·​socket_(io_context,​·{udp:​:​v4()​,​·​13})​
28 ··​{27 ··​{
29 ····start_receive()​;​28 ····​receive()​;​
30 ··​}29 ··​}
31 30
32 private:​31 private:​
33 ··​void·start_receive()​32 ··​void·​receive()​
34 ··​{33 ··​{
35 ····​socket_.​async_receive_from(34 ····​socket_.​async_receive_from(
36 ········​asio:​:​buffer(recv_buffer_)​,​·​remote_endpoint_,​35 ········​asio:​:​buffer(recv_buffer_)​,​·​remote_endpoint_,​
37 ········boost:​:​bind(&udp_daytime_ser​ver:​:​handle_receive,​·this,​·_1)​)​;​36 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*n*/​)​
38 ··}37 ········{
39 38 ··········if·(!ec)​
40 ··void·handle_receive(const·asio:​:​error_code&·ec)​39 ··········{
41 ··{40 ············using·namespace·std;​·/​/​·For·time_t,​·time·and·ctime;​
42 ····​if·(!ec)​41 ············time_t·now·=·time(0)​;​
43 ····{42 ············std:​:​string·message·=·ctime(&now)​;​
44 ······using·namespace·std;​·/​/​·For·time_t,​·time·and·ctime;​43
45 ······​time_t·now·=·time(0)​;​44 ············std:​:​error_code·ignored_ec;​
46 ······std:​:​string·message·=·ctime(&now)​;​45 ············socket_.​send_to(asio:​:​buffer(message)​,​
47 46 ················remote_endpoint_,​·0,​·ignored_ec)​;​
48 ······asio:​:​error_code·ignored_ec;​47 ··········}
49 ······socket_.​send_to(asio:​:​buffer(message)​,​
50 ··········remote_endpoint_,​·0,​·ignored_ec)​;​
51 ····}
52 48
53 ····start_receive()​;​49 ··········receive()​;​
50 ········​})​;​
54 ··​}51 ··​}
55 52
56 ··​udp:​:​socket·​socket_;​53 ··​udp:​:​socket·​socket_;​
57 ··​udp:​:​endpoint·​remote_endpoint_;​54 ··​udp:​:​endpoint·​remote_endpoint_;​
58 ··boost:​:​array<char,​·​1>·​recv_buffer_;​55 ··​std:​:​array<char,​·​1>·​recv_buffer_;​
59 };​56 };​
60 57
61 int·​main()​58 int·​main()​
62 {59 {
63 ··​try60 ··​try
64 ··​{61 ··​{
65 ····​asio:​:​io_context·​io_context;​62 ····​asio:​:​io_context·​io_context;​
66 63
67 ····​/​/​·​Initialise·​the·​server·​before·​becoming·​a·​daemon.​·​If·​the·​process·​is64 ····​/​/​·​Initialise·​the·​server·​before·​becoming·​a·​daemon.​·​If·​the·​process·​is
68 ····​/​/​·​started·​from·​a·​shell,​·​this·​means·​any·​errors·​will·​be·​reported·​back·​to·​the65 ····​/​/​·​started·​from·​a·​shell,​·​this·​means·​any·​errors·​will·​be·​reported·​back·​to·​the
69 ····​/​/​·​user.​66 ····​/​/​·​user.​
70 ····​udp_daytime_server·​server(io_context)​;​67 ····​udp_daytime_server·​server(io_context)​;​
71 68
72 ····​/​/​·​Register·​signal·​handlers·​so·​that·​the·​daemon·​may·​be·​shut·​down.​·​You·​may69 ····​/​/​·​Register·​signal·​handlers·​so·​that·​the·​daemon·​may·​be·​shut·​down.​·​You·​may
73 ····​/​/​·​also·​want·​to·​register·​for·​other·​signals,​·​such·​as·​SIGHUP·​to·​trigger·​a70 ····​/​/​·​also·​want·​to·​register·​for·​other·​signals,​·​such·​as·​SIGHUP·​to·​trigger·​a
74 ····​/​/​·​re-​read·​of·​a·​configuration·​file.​71 ····​/​/​·​re-​read·​of·​a·​configuration·​file.​
75 ····​asio:​:​signal_set·​signals(io_context,​·​SIGINT,​·​SIGTERM)​;​72 ····​asio:​:​signal_set·​signals(io_context,​·​SIGINT,​·​SIGTERM)​;​
76 ····​signals.​async_wait(73 ····​signals.​async_wait(
77 ········boost:​:​bind(&asio:​:​io_context:​:​stop,​·&io_context)​)​;​74 ········[&](std:​:​error_code·/​*ec*/​,​·int·/​*signo*/​)​
75 ········​{
76 ··········​io_context.​stop()​;​
77 ········​})​;​
78 78
79 ····​/​/​·​Inform·​the·​io_context·​that·​we·​are·​about·​to·​become·​a·​daemon.​·​The79 ····​/​/​·​Inform·​the·​io_context·​that·​we·​are·​about·​to·​become·​a·​daemon.​·​The
80 ····​/​/​·​io_context·​cleans·​up·​any·​internal·​resources,​·​such·​as·​threads,​·​that·​may80 ····​/​/​·​io_context·​cleans·​up·​any·​internal·​resources,​·​such·​as·​threads,​·​that·​may
81 ····​/​/​·​interfere·​with·​forking.​81 ····​/​/​·​interfere·​with·​forking.​
82 ····​io_context.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​82 ····​io_context.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​
83 83
84 ····​/​/​·​Fork·​the·​process·​and·​have·​the·​parent·​exit.​·​If·​the·​process·​was·​started84 ····​/​/​·​Fork·​the·​process·​and·​have·​the·​parent·​exit.​·​If·​the·​process·​was·​started
85 ····​/​/​·​from·​a·​shell,​·​this·​returns·​control·​to·​the·​user.​·​Forking·​a·​new·​process·​is85 ····​/​/​·​from·​a·​shell,​·​this·​returns·​control·​to·​the·​user.​·​Forking·​a·​new·​process·​is
86 ····​/​/​·​also·​a·​prerequisite·​for·​the·​subsequent·​call·​to·​setsid()​.​86 ····​/​/​·​also·​a·​prerequisite·​for·​the·​subsequent·​call·​to·​setsid()​.​
87 ····​if·​(pid_t·​pid·​=·​fork()​)​87 ····​if·​(pid_t·​pid·​=·​fork()​)​
88 ····​{88 ····​{
89 ······​if·​(pid·​>·​0)​89 ······​if·​(pid·​>·​0)​
90 ······​{90 ······​{
91 ········​/​/​·​We're·​in·​the·​parent·​process·​and·​need·​to·​exit.​91 ········​/​/​·​We're·​in·​the·​parent·​process·​and·​need·​to·​exit.​
92 ········​/​/​92 ········​/​/​
93 ········​/​/​·​When·​the·​exit()​·​function·​is·​used,​·​the·​program·​terminates·​without93 ········​/​/​·​When·​the·​exit()​·​function·​is·​used,​·​the·​program·​terminates·​without
94 ········​/​/​·​invoking·​local·​variables'·​destructors.​·​Only·​global·​variables·​are94 ········​/​/​·​invoking·​local·​variables'·​destructors.​·​Only·​global·​variables·​are
95 ········​/​/​·​destroyed.​·​As·​the·​io_context·​object·​is·​a·​local·​variable,​·​this·​means95 ········​/​/​·​destroyed.​·​As·​the·​io_context·​object·​is·​a·​local·​variable,​·​this·​means
96 ········​/​/​·​we·​do·​not·​have·​to·​call:​96 ········​/​/​·​we·​do·​not·​have·​to·​call:​
97 ········​/​/​97 ········​/​/​
98 ········​/​/​···​io_context.​notify_fork(asio:​:​io_context:​:​fork_parent)​;​98 ········​/​/​···​io_context.​notify_fork(asio:​:​io_context:​:​fork_parent)​;​
99 ········​/​/​99 ········​/​/​
100 ········​/​/​·​However,​·​this·​line·​should·​be·​added·​before·​each·​call·​to·​exit()​·​if100 ········​/​/​·​However,​·​this·​line·​should·​be·​added·​before·​each·​call·​to·​exit()​·​if
101 ········​/​/​·​using·​a·​global·​io_context·​object.​·​An·​additional·​call:​101 ········​/​/​·​using·​a·​global·​io_context·​object.​·​An·​additional·​call:​
102 ········​/​/​102 ········​/​/​
103 ········​/​/​···​io_context.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​103 ········​/​/​···​io_context.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​
104 ········​/​/​104 ········​/​/​
105 ········​/​/​·​should·​also·​precede·​the·​second·​fork()​.​105 ········​/​/​·​should·​also·​precede·​the·​second·​fork()​.​
106 ········​exit(0)​;​106 ········​exit(0)​;​
107 ······​}107 ······​}
108 ······​else108 ······​else
109 ······​{109 ······​{
110 ········​syslog(LOG_ERR·​|·​LOG_USER,​·​"First·​fork·​failed:​·​%m")​;​110 ········​syslog(LOG_ERR·​|·​LOG_USER,​·​"First·​fork·​failed:​·​%m")​;​
111 ········​return·​1;​111 ········​return·​1;​
112 ······​}112 ······​}
113 ····​}113 ····​}
114 114
115 ····​/​/​·​Make·​the·​process·​a·​new·​session·​leader.​·​This·​detaches·​it·​from·​the115 ····​/​/​·​Make·​the·​process·​a·​new·​session·​leader.​·​This·​detaches·​it·​from·​the
116 ····​/​/​·​terminal.​116 ····​/​/​·​terminal.​
117 ····​setsid()​;​117 ····​setsid()​;​
118 118
119 ····​/​/​·​A·​process·​inherits·​its·​working·​directory·​from·​its·​parent.​·​This·​could·​be119 ····​/​/​·​A·​process·​inherits·​its·​working·​directory·​from·​its·​parent.​·​This·​could·​be
120 ····​/​/​·​on·​a·​mounted·​filesystem,​·​which·​means·​that·​the·​running·​daemon·​would120 ····​/​/​·​on·​a·​mounted·​filesystem,​·​which·​means·​that·​the·​running·​daemon·​would
121 ····​/​/​·​prevent·​this·​filesystem·​from·​being·​unmounted.​·​Changing·​to·​the·​root121 ····​/​/​·​prevent·​this·​filesystem·​from·​being·​unmounted.​·​Changing·​to·​the·​root
122 ····​/​/​·​directory·​avoids·​this·​problem.​122 ····​/​/​·​directory·​avoids·​this·​problem.​
123 ····​chdir("/​")​;​123 ····​chdir("/​")​;​
124 124
125 ····​/​/​·​The·​file·​mode·​creation·​mask·​is·​also·​inherited·​from·​the·​parent·​process.​125 ····​/​/​·​The·​file·​mode·​creation·​mask·​is·​also·​inherited·​from·​the·​parent·​process.​
126 ····​/​/​·​We·​don't·​want·​to·​restrict·​the·​permissions·​on·​files·​created·​by·​the126 ····​/​/​·​We·​don't·​want·​to·​restrict·​the·​permissions·​on·​files·​created·​by·​the
127 ····​/​/​·​daemon,​·​so·​the·​mask·​is·​cleared.​127 ····​/​/​·​daemon,​·​so·​the·​mask·​is·​cleared.​
128 ····​umask(0)​;​128 ····​umask(0)​;​
129 129
130 ····​/​/​·​A·​second·​fork·​ensures·​the·​process·​cannot·​acquire·​a·​controlling·​terminal.​130 ····​/​/​·​A·​second·​fork·​ensures·​the·​process·​cannot·​acquire·​a·​controlling·​terminal.​
131 ····​if·​(pid_t·​pid·​=·​fork()​)​131 ····​if·​(pid_t·​pid·​=·​fork()​)​
132 ····​{132 ····​{
133 ······​if·​(pid·​>·​0)​133 ······​if·​(pid·​>·​0)​
134 ······​{134 ······​{
135 ········​exit(0)​;​135 ········​exit(0)​;​
136 ······​}136 ······​}
137 ······​else137 ······​else
138 ······​{138 ······​{
139 ········​syslog(LOG_ERR·​|·​LOG_USER,​·​"Second·​fork·​failed:​·​%m")​;​139 ········​syslog(LOG_ERR·​|·​LOG_USER,​·​"Second·​fork·​failed:​·​%m")​;​
140 ········​return·​1;​140 ········​return·​1;​
141 ······​}141 ······​}
142 ····​}142 ····​}
143 143
144 ····​/​/​·​Close·​the·​standard·​streams.​·​This·​decouples·​the·​daemon·​from·​the·​terminal144 ····​/​/​·​Close·​the·​standard·​streams.​·​This·​decouples·​the·​daemon·​from·​the·​terminal
145 ····​/​/​·​that·​started·​it.​145 ····​/​/​·​that·​started·​it.​
146 ····​close(0)​;​146 ····​close(0)​;​
147 ····​close(1)​;​147 ····​close(1)​;​
148 ····​close(2)​;​148 ····​close(2)​;​
149 149
150 ····​/​/​·​We·​don't·​want·​the·​daemon·​to·​have·​any·​standard·​input.​150 ····​/​/​·​We·​don't·​want·​the·​daemon·​to·​have·​any·​standard·​input.​
151 ····​if·​(open("/​dev/​null",​·​O_RDONLY)​·​<·​0)​151 ····​if·​(open("/​dev/​null",​·​O_RDONLY)​·​<·​0)​
152 ····​{152 ····​{
153 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​open·​/​dev/​null:​·​%m")​;​153 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​open·​/​dev/​null:​·​%m")​;​
154 ······​return·​1;​154 ······​return·​1;​
155 ····​}155 ····​}
156 156
157 ····​/​/​·​Send·​standard·​output·​to·​a·​log·​file.​157 ····​/​/​·​Send·​standard·​output·​to·​a·​log·​file.​
158 ····​const·​char*·​output·​=·​"/​tmp/​asio.​daemon.​out";​158 ····​const·​char*·​output·​=·​"/​tmp/​asio.​daemon.​out";​
159 ····​const·​int·​flags·​=·​O_WRONLY·​|·​O_CREAT·​|·​O_APPEND;​159 ····​const·​int·​flags·​=·​O_WRONLY·​|·​O_CREAT·​|·​O_APPEND;​
160 ····​const·​mode_t·​mode·​=·​S_IRUSR·​|·​S_IWUSR·​|·​S_IRGRP·​|·​S_IROTH;​160 ····​const·​mode_t·​mode·​=·​S_IRUSR·​|·​S_IWUSR·​|·​S_IRGRP·​|·​S_IROTH;​
161 ····​if·​(open(output,​·​flags,​·​mode)​·​<·​0)​161 ····​if·​(open(output,​·​flags,​·​mode)​·​<·​0)​
162 ····​{162 ····​{
163 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​open·​output·​file·​%s:​·​%m",​·​output)​;​163 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​open·​output·​file·​%s:​·​%m",​·​output)​;​
164 ······​return·​1;​164 ······​return·​1;​
165 ····​}165 ····​}
166 166
167 ····​/​/​·​Also·​send·​standard·​error·​to·​the·​same·​log·​file.​167 ····​/​/​·​Also·​send·​standard·​error·​to·​the·​same·​log·​file.​
168 ····​if·​(dup(1)​·​<·​0)​168 ····​if·​(dup(1)​·​<·​0)​
169 ····​{169 ····​{
170 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​dup·​output·​descriptor:​·​%m")​;​170 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​dup·​output·​descriptor:​·​%m")​;​
171 ······​return·​1;​171 ······​return·​1;​
172 ····​}172 ····​}
173 173
174 ····​/​/​·​Inform·​the·​io_context·​that·​we·​have·​finished·​becoming·​a·​daemon.​·​The174 ····​/​/​·​Inform·​the·​io_context·​that·​we·​have·​finished·​becoming·​a·​daemon.​·​The
175 ····​/​/​·​io_context·​uses·​this·​opportunity·​to·​create·​any·​internal·​file·​descriptors175 ····​/​/​·​io_context·​uses·​this·​opportunity·​to·​create·​any·​internal·​file·​descriptors
176 ····​/​/​·​that·​need·​to·​be·​private·​to·​the·​new·​process.​176 ····​/​/​·​that·​need·​to·​be·​private·​to·​the·​new·​process.​
177 ····​io_context.​notify_fork(asio:​:​io_context:​:​fork_child)​;​177 ····​io_context.​notify_fork(asio:​:​io_context:​:​fork_child)​;​
178 178
179 ····​/​/​·​The·​io_context·​can·​now·​be·​used·​normally.​179 ····​/​/​·​The·​io_context·​can·​now·​be·​used·​normally.​
180 ····​syslog(LOG_INFO·​|·​LOG_USER,​·​"Daemon·​started")​;​180 ····​syslog(LOG_INFO·​|·​LOG_USER,​·​"Daemon·​started")​;​
181 ····​io_context.​run()​;​181 ····​io_context.​run()​;​
182 ····​syslog(LOG_INFO·​|·​LOG_USER,​·​"Daemon·​stopped")​;​182 ····​syslog(LOG_INFO·​|·​LOG_USER,​·​"Daemon·​stopped")​;​
183 ··​}183 ··​}
184 ··​catch·​(std:​:​exception&·​e)​184 ··​catch·​(std:​:​exception&·​e)​
185 ··​{185 ··​{
186 ····​syslog(LOG_ERR·​|·​LOG_USER,​·​"Exception:​·​%s",​·​e.​what()​)​;​186 ····​syslog(LOG_ERR·​|·​LOG_USER,​·​"Exception:​·​%s",​·​e.​what()​)​;​
187 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​std:​:​endl;​187 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​std:​:​endl;​
188 ··​}188 ··​}
189 }189 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/fork/process_per_connection.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/fork/process_per_connection.cpp.html deleted file mode 100644 index 7d96cb8..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/fork/process_per_connection.cpp.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - - - HTML Diff fork/process_per_connection.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​fork/​process_per_connectio​n.​cppsrc/​examples/​cpp11/​fork/​process_per_connectio​n.​cpp
1 /​/​1 /​/​
2 /​/​·​process_per_connectio​n.​cpp2 /​/​·​process_per_connectio​n.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<asio/​io_context.​hpp>11 #include·​<asio/​io_context.​hpp>
12 #include·​<asio/​ip/​tcp.​hpp>12 #include·​<asio/​ip/​tcp.​hpp>
13 #include·​<asio/​signal_set.​hpp>13 #include·​<asio/​signal_set.​hpp>
14 #include·​<asio/​write.​hpp>14 #include·​<asio/​write.​hpp>
15 #include·​<boost/​array.​hpp>
16 #include·​<boost/​bind.​hpp>
17 #include·​<cstdlib>15 #include·​<cstdlib>
18 #include·​<iostream>16 #include·​<iostream>
19 #include·​<sys/​types.​h>17 #include·​<sys/​types.​h>
20 #include·​<sys/​wait.​h>18 #include·​<sys/​wait.​h>
21 #include·​<unistd.​h>19 #include·​<unistd.​h>
22 20
23 using·​asio:​:​ip:​:​tcp;​21 using·​asio:​:​ip:​:​tcp;​
24 22
25 class·​server23 class·​server
26 {24 {
27 public:​25 public:​
28 ··​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​26 ··​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​
29 ····​:​·​io_context_(io_contex​t)​,​27 ····​:​·​io_context_(io_contex​t)​,​
30 ······​signal_(io_context,​·​SIGCHLD)​,​28 ······​signal_(io_context,​·​SIGCHLD)​,​
31 ······​acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·​port)​)​,​29 ······​acceptor_(io_context,​·{tcp:​:​v4()​,​·​port})​,​
32 ······​socket_(io_context)​30 ······​socket_(io_context)​
33 ··​{31 ··​{
34 ····start_signal_wait()​;​32 ····wait_for_signal()​;​
35 ····start_accept()​;​33 ····​accept()​;​
36 ··​}34 ··​}
37 35
38 private:​36 private:​
39 ··​void·start_signal_wait()​37 ··​void·wait_for_signal()​
40 ··​{38 ··​{
41 ····​signal_.​async_wait(boost:​:​bind(&server:​:​handle_signal_wait,​·this)​)​;​39 ····​signal_.​async_wait(
40 ········​[this](std:​:​error_code·​/​*ec*/​,​·​int·​/​*signo*/​)​
41 ········​{
42 ··········​/​/​·​Only·​the·​parent·​process·​should·​check·​for·​this·​signal.​·​We·​can
43 ··········​/​/​·​determine·​whether·​we·​are·​in·​the·​parent·​by·​checking·​if·​the·​acceptor
44 ··········​/​/​·​is·​still·​open.​
45 ··········​if·​(acceptor_.​is_open()​)​
46 ··········​{
47 ············​/​/​·​Reap·​completed·​child·​processes·​so·​that·​we·​don't·​end·​up·​with
48 ············​/​/​·​zombies.​
49 ············​int·​status·​=·​0;​
50 ············​while·​(waitpid(-​1,​·​&status,​·​WNOHANG)​·​>·​0)​·​{}
51
52 ············​wait_for_signal()​;​
53 ··········​}
54 ········​})​;​
55 ··​}
56
57 ··​void·​accept()​
58 ··​{
59 ····​acceptor_.​async_accept(
60 ········​[this](std:​:​error_code·​ec,​·​tcp:​:​socket·​new_socket)​
61 ········​{
62 ··········​if·​(!ec)​
63 ··········​{
64 ············​/​/​·​Take·​ownership·​of·​the·​newly·​accepted·​socket.​
65 ············​socket_·​=·​std:​:​move(new_socket)​;​
66
67 ············​/​/​·​Inform·​the·​io_context·​that·​we·​are·​about·​to·​fork.​·​The·​io_context
68 ············​/​/​·​cleans·​up·​any·​internal·​resources,​·​such·​as·​threads,​·​that·​may
69 ············​/​/​·​interfere·​with·​forking.​
70 ············​io_context_.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​
71
72 ············​if·​(fork()​·​==·​0)​
73 ············​{
74 ··············​/​/​·​Inform·​the·​io_context·​that·​the·​fork·​is·​finished·​and·​that·​this
75 ··············​/​/​·​is·​the·​child·​process.​·​The·​io_context·​uses·​this·​opportunity·​to
76 ··············​/​/​·​create·​any·​internal·​file·​descriptors·​that·​must·​be·​private·​to
77 ··············​/​/​·​the·​new·​process.​
78 ··············​io_context_.​notify_fork(asio:​:​io_context:​:​fork_child)​;​
79
80 ··············​/​/​·​The·​child·​won't·​be·​accepting·​new·​connections,​·​so·​we·​can·​close
81 ··············​/​/​·​the·​acceptor.​·​It·​remains·​open·​in·​the·​parent.​
82 ··············​acceptor_.​close()​;​
83
84 ··············​/​/​·​The·​child·​process·​is·​not·​interested·​in·​processing·​the·​SIGCHLD
85 ··············​/​/​·​signal.​
86 ··············​signal_.​cancel()​;​
87
88 ··············​read()​;​
89 ············​}
90 ············​else
91 ············​{
92
93 ··············​/​/​·​Inform·​the·​io_context·​that·​the·​fork·​is·​finished·​(or·​failed)​
94 ··············​/​/​·​and·​that·​this·​is·​the·​parent·​process.​·​The·​io_context·​uses·​this
95 ··············​/​/​·​opportunity·​to·​recreate·​any·​internal·​resources·​that·​were
96 ··············​/​/​·​cleaned·​up·​during·​preparation·​for·​the·​fork.​
97 ··············​io_context_.​notify_fork(asio:​:​io_context:​:​fork_parent)​;​
98
99 ··············​/​/​·​The·​parent·​process·​can·​now·​close·​the·​newly·​accepted·​socket.​·​It
100 ··············​/​/​·​remains·​open·​in·​the·​child.​
101 ··············​socket_.​close()​;​
102
103 ··············​accept()​;​
104 ············​}
105 ··········​}
106 ··········​else
107 ··········​{
108 ············​std:​:​cerr·​<<·​"Accept·​error:​·​"·​<<·​ec.​message()​·​<<·​std:​:​endl;​
109 ············​accept()​;​
110 ··········​}
111 ········​})​;​
42 ··​}112 ··​}
43 113
44 ··​void·handle_signal_wait()​114 ··​void·read()​
45 ··{
46 ····/​/​·Only·the·parent·process·should·check·for·this·signal.​·We·can·determine
47 ····/​/​·whether·we·are·in·the·parent·by·checking·if·the·acceptor·is·still·open.​
48 ····if·(acceptor_.​is_open()​)​
49 ····{
50 ······/​/​·Reap·completed·child·processes·so·that·we·don't·end·up·with·zombies.​
51 ······int·status·=·0;​
52 ······while·(waitpid(-​1,​·&status,​·WNOHANG)​·>·0)​·{}
53
54 ······start_signal_wait()​;​
55 ····}
56 ··}
57
58 ··void·start_accept()​
59 ··{
60 ····acceptor_.​async_accept(socket_,​
61 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·_1)​)​;​
62 ··}
63
64 ··void·handle_accept(const·asio:​:​error_code&·ec)​
65 ··{
66 ····if·(!ec)​
67 ····{
68 ······/​/​·Inform·the·io_context·that·we·are·about·to·fork.​·The·io_context·cleans
69 ······/​/​·up·any·internal·resources,​·such·as·threads,​·that·may·interfere·with
70 ······/​/​·forking.​
71 ······io_context_.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​
72
73 ······if·(fork()​·==·0)​
74 ······{
75 ········/​/​·Inform·the·io_context·that·the·fork·is·finished·and·that·this·is·the
76 ········/​/​·child·process.​·The·io_context·uses·this·opportunity·to·create·any
77 ········/​/​·internal·file·descriptors·that·must·be·private·to·the·new·process.​
78 ········io_context_.​notify_fork(asio:​:​io_context:​:​fork_child)​;​
79
80 ········/​/​·The·child·won't·be·accepting·new·connections,​·so·we·can·close·the
81 ········/​/​·acceptor.​·It·remains·open·in·the·parent.​
82 ········acceptor_.​close()​;​
83
84 ········/​/​·The·child·process·is·not·interested·in·processing·the·SIGCHLD·signal.​
85 ········signal_.​cancel()​;​
86
87 ········start_read()​;​
88 ······}
89 ······else
90 ······{
91 ········/​/​·Inform·the·io_context·that·the·fork·is·finished·(or·failed)​·and·that
92 ········/​/​·this·is·the·parent·process.​·The·io_context·uses·this·opportunity·to
93 ········/​/​·recreate·any·internal·resources·that·were·cleaned·up·during
94 ········/​/​·preparation·for·the·fork.​
95 ········io_context_.​notify_fork(asio:​:​io_context:​:​fork_parent)​;​
96
97 ········socket_.​close()​;​
98 ········start_accept()​;​
99 ······}
100 ····}
101 ····else
102 ····{
103 ······std:​:​cerr·<<·"Accept·error:​·"·<<·ec.​message()​·<<·std:​:​endl;​
104 ······start_accept()​;​
105 ····}
106 ··}
107
108 ··void·start_read()​
109 ··​{115 ··​{
110 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​116 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​
111 ········boost:​:​bind(&server:​:​handle_read,​·​this,​·_1,​·_2)​)​;​117 ········[this](std:​:​error_code·ec,​·std:​:​size_t·length)​
118 ········​{
119 ··········​if·​(!ec)​
120 ············​write(length)​;​
121 ········​})​;​
112 ··​}122 ··​}
113 123
114 ··​void·handle_read(const·asio:​:​error_code&·ec,​·std:​:​size_t·​length)​124 ··​void·write(std:​:​size_t·​length)​
115 ··{
116 ····if·(!ec)​
117 ······start_write(length)​;​
118 ··}
119
120 ··void·start_write(std:​:​size_t·length)​
121 ··​{125 ··​{
122 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer(data_,​·​length)​,​126 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer(data_,​·​length)​,​
123 ········boost:​:​bind(&server:​:​handle_write,​·this,​·_1)​)​;​127 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
124 ··}128 ········{
125 129 ··········if·(!ec)​
126 ··void·handle_write(const·asio:​:​error_code&·ec)​130 ············read()​;​
127 ··{131 ········})​;​
128 ····if·(!ec)​
129 ······start_read()​;​
130 ··​}132 ··​}
131 133
132 ··​asio:​:​io_context&·​io_context_;​134 ··​asio:​:​io_context&·​io_context_;​
133 ··​asio:​:​signal_set·​signal_;​135 ··​asio:​:​signal_set·​signal_;​
134 ··​tcp:​:​acceptor·​acceptor_;​136 ··​tcp:​:​acceptor·​acceptor_;​
135 ··​tcp:​:​socket·​socket_;​137 ··​tcp:​:​socket·​socket_;​
136 ··boost:​:​array<char,​·​1024>·​data_;​138 ··​std:​:​array<char,​·​1024>·​data_;​
137 };​139 };​
138 140
139 int·​main(int·​argc,​·​char*·​argv[])​141 int·​main(int·​argc,​·​char*·​argv[])​
140 {142 {
141 ··​try143 ··​try
142 ··​{144 ··​{
143 ····​if·​(argc·​!=·​2)​145 ····​if·​(argc·​!=·​2)​
144 ····​{146 ····​{
145 ······​std:​:​cerr·​<<·​"Usage:​·​process_per_connectio​n·​<port>\n";​147 ······​std:​:​cerr·​<<·​"Usage:​·​process_per_connectio​n·​<port>\n";​
146 ······​return·​1;​148 ······​return·​1;​
147 ····​}149 ····​}
148 150
149 ····​asio:​:​io_context·​io_context;​151 ····​asio:​:​io_context·​io_context;​
150 152
151 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​153 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​
152 ····​server·​s(io_context,​·​atoi(argv[1])​)​;​154 ····​server·​s(io_context,​·​atoi(argv[1])​)​;​
153 155
154 ····​io_context.​run()​;​156 ····​io_context.​run()​;​
155 ··​}157 ··​}
156 ··​catch·​(std:​:​exception&·​e)​158 ··​catch·​(std:​:​exception&·​e)​
157 ··​{159 ··​{
158 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​std:​:​endl;​160 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​std:​:​endl;​
159 ··​}161 ··​}
160 }162 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/futures/daytime_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/futures/daytime_client.cpp.html deleted file mode 100644 index aca0cc1..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/futures/daytime_client.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff futures/daytime_client.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/handler_tracking/custom_tracking.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/handler_tracking/custom_tracking.hpp.html deleted file mode 100644 index c004c9e..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/handler_tracking/custom_tracking.hpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff handler_tracking/custom_tracking.hpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/connection.cpp.html deleted file mode 100644 index 91ef68f..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection.cpp.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - HTML Diff http/server/connection.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​connection.​cppsrc/​examples/​cpp11/​http/​server/​connection.​cpp
1 /​/​1 /​/​
2 /​/​·​connection.​cpp2 /​/​·​connection.​cpp
3 /​/​·​~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"connection.​hpp"11 #include·​"connection.​hpp"
12 #include·​<utility>
12 #include·​<vector>13 #include·​<vector>
13 #include·​<boost/​bind.​hpp>
14 #include·​"connection_manager.​hpp"14 #include·​"connection_manager.​hpp"
15 #include·​"request_handler.​hpp"15 #include·​"request_handler.​hpp"
16 16
17 namespace·​http·​{17 namespace·​http·​{
18 namespace·​server·​{18 namespace·​server·​{
19 19
20 connection:​:​connection(asio:​:​io_context&·io_context,​20 connection:​:​connection(asio:​:​ip:​:​tcp:​:​socket·socket,​
21 ····​connection_manager&·​manager,​·​request_handler&·​handler)​21 ····​connection_manager&·​manager,​·​request_handler&·​handler)​
22 ··​:​·​socket_(io_context)​,​22 ··​:​·​socket_(std:​:​move(socket)​)​,​
23 ····​connection_manager_(m​anager)​,​23 ····​connection_manager_(m​anager)​,​
24 ····​request_handler_(hand​ler)​24 ····​request_handler_(hand​ler)​
25 {25 {
26 }26 }
27 27
28 asio:​:​ip:​:​tcp:​:​socket&·​connection:​:​socket()​
29 {
30 ··​return·​socket_;​
31 }
32
33 void·​connection:​:​start()​28 void·​connection:​:​start()​
34 {29 {
35 ··socket_.​async_read_some(asio:​:​buffer(buffer_)​,​30 ··do_read()​;​
36 ······boost:​:​bind(&connection:​:​handle_read,​·shared_from_this()​,​
37 ········asio:​:​placeholders:​:​error,​
38 ········asio:​:​placeholders:​:​bytes_transferred)​)​;​
39 }31 }
40 32
41 void·​connection:​:​stop()​33 void·​connection:​:​stop()​
42 {34 {
43 ··​socket_.​close()​;​35 ··​socket_.​close()​;​
44 }36 }
45 37
46 void·​connection:​:​handle_read(const·asio:​:​error_code&·e,​38 void·​connection:​:​do_read()​
47 ····std:​:​size_t·bytes_transferred)​
48 {39 {
49 ··if·​(!e)​40 ··auto·self(shared_from_this​()​)​;​
50 ··{41 ··socket_.​async_read_some(asio:​:​buffer(buffer_)​,​
51 ····boost:​:​tribool·result;​42 ······[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·bytes_transferred)​
52 ····boost:​:​tie(result,​·boost:​:​tuples:​:​ignore)​·=·request_parser_.​parse(43 ······{
53 ········request_,​·buffer_.​data()​,​·buffer_.​data()​·+·bytes_transferred)​;​44 ········if·​(!ec)​
54 45 ········{
55 ····if·(result)​46 ··········request_parser:​:​result_type·result;​
56 ····{47 ··········std:​:​tie(result,​·std:​:​ignore)​·=·request_parser_.​parse(
57 ······​request_handler_.​handle_request(reques​t_,​·reply_)​;​48 ··············​request_,​·buffer_.​data()​,​·buffer_.​data()​·+·bytes_transferred)​;​
58 ······asio:​:​async_write(socket_,​·reply_.​to_buffers()​,​49
59 ··········boost:​:​bind(&connection:​:​handle_write,​·shared_from_this()​,​50 ··········​if·(result·==·request_parser:​:​good)​
60 ············asio:​:​placeholders:​:​error)​)​;​51 ··········{
61 ····}52 ············request_handler_.​handle_request(reques​t_,​·reply_)​;​
62 ····else·if·(!result)​53 ············do_write()​;​
63 ····{54 ··········}
64 ······reply_·=·​reply:​:​stock_reply(reply:​:​bad_request)​;​55 ··········else·if·(result·==·request_parser:​:​bad)​
65 ······asio:​:​async_write(socket_,​·reply_.​to_buffers()​,​56 ··········{
66 ··········boost:​:​bind(&connection:​:​handle_write,​·shared_from_this()​,​57 ············reply_·=·reply:​:​stock_reply(reply:​:​bad_request)​;​
67 ············asio:​:​placeholders:​:​error)​)​;​58 ············do_write()​;​
68 ····​}59 ··········​}
69 ····​else60 ··········​else
70 ····​{61 ··········​{
71 ······socket_.​async_read_some(asio:​:​buffer(buffer_)​,​62 ············do_read()​;​
72 ··········boost:​:​bind(&connection:​:​handle_read,​·shared_from_this()​,​63 ··········}
73 ············asio:​:​placeholders:​:​error,​64 ········}
74 ············​asio:​:​placeholders:​:​bytes_transferred)​)​;​65 ········else·if·(ec·!=·​asio:​:​error:​:​operation_aborted)​
75 ····}66 ········{
76 ··}67 ··········connection_manager_.​stop(shared_from_this​()​)​;​
77 ··else·if·(e·!=·asio:​:​error:​:​operation_aborted)​68 ········}
78 ··{69 ······})​;​
79 ····connection_manager_.​stop(shared_from_this​()​)​;​70 }
80 ··}71
81 }72 void·connection:​:​do_write()​
82 73 {
83 void·connection:​:​handle_write(const·asio:​:​error_code&·e)​74 ··auto·self(shared_from_this​()​)​;​
84 {75 ··asio:​:​async_write(socket_,​·reply_.​to_buffers()​,​
85 ··​if·(!e)​76 ······[this,​·self](std:​:​error_code·ec,​·std:​:​size_t)​
86 ··​{77 ······​{
87 ····/​/​·Initiate·graceful·connection·closure.​78 ········if·(!ec)​
88 ····asio:​:​error_code·ignored_ec;​79 ········{
89 ····socket_.​shutdown(asio:​:​ip:​:​tcp:​:​socket:​:​shutdown_both,​·ignored_ec)​;​80 ··········/​/​·Initiate·graceful·connection·closure.​
90 ··}81 ··········asio:​:​error_code·ignored_ec;​
91 82 ··········socket_.​shutdown(asio:​:​ip:​:​tcp:​:​socket:​:​shutdown_both,​
92 ··if·(e·!=·asio:​:​error:​:​operation_aborted)​83 ············ignored_ec)​;​
93 ··{84 ········}
94 ····connection_manager_.​stop(shared_from_this​()​)​;​85
95 ··}86 ········if·(ec·!=·asio:​:​error:​:​operation_aborted)​
87 ········​{
88 ··········​connection_manager_.​stop(shared_from_this​()​)​;​
89 ········​}
90 ······​})​;​
96 }91 }
97 92
98 }·​/​/​·​namespace·​server93 }·​/​/​·​namespace·​server
99 }·​/​/​·​namespace·​http94 }·​/​/​·​namespace·​http
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/connection.hpp.html deleted file mode 100644 index 7d605aa..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection.hpp.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - HTML Diff http/server/connection.hpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​connection.​hppsrc/​examples/​cpp11/​http/​server/​connection.​hpp
1 /​/​1 /​/​
2 /​/​·​connection.​hpp2 /​/​·​connection.​hpp
3 /​/​·​~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #ifndef·​HTTP_CONNECTION_HPP11 #ifndef·​HTTP_CONNECTION_HPP
12 #define·​HTTP_CONNECTION_HPP12 #define·​HTTP_CONNECTION_HPP
13 13
14 #include·​<array>
15 #include·​<memory>
14 #include·​<asio.​hpp>16 #include·​<asio.​hpp>
15 #include·​<boost/​array.​hpp>
16 #include·​<boost/​noncopyable.​hpp>
17 #include·​<boost/​shared_ptr.​hpp>
18 #include·​<boost/​enable_shared_from_th​is.​hpp>
19 #include·​"reply.​hpp"17 #include·​"reply.​hpp"
20 #include·​"request.​hpp"18 #include·​"request.​hpp"
21 #include·​"request_handler.​hpp"19 #include·​"request_handler.​hpp"
22 #include·​"request_parser.​hpp"20 #include·​"request_parser.​hpp"
23 21
24 namespace·​http·​{22 namespace·​http·​{
25 namespace·​server·​{23 namespace·​server·​{
26 24
27 class·​connection_manager;​25 class·​connection_manager;​
28 26
29 /​/​/​·​Represents·​a·​single·​connection·​from·​a·​client.​27 /​/​/​·​Represents·​a·​single·​connection·​from·​a·​client.​
30 class·​connection28 class·​connection
31 ··​:​·​public·boost:​:​enable_shared_from_th​is<connection>,​29 ··​:​·​public·​std:​:​enable_shared_from_th​is<connection>
32 ····private·boost:​:​noncopyable
33 {30 {
34 public:​31 public:​
35 ··/​/​/​·Construct·a·​connection·with·the·given·io_context.​32 ··connection(const·​connection&)​·=·delete;​
36 ··explicit·connection(asio:​:​io_context&·io_context,​33 ··connection&·operator=(const·connection&)​·=·delete;​
37 ······connection_manager&·manager,​·request_handler&·handler)​;​
38 34
39 ··​/​/​/​·Get·the·socket·​associated·​with·​the·connection.​35 ··​/​/​/​·Construct·​a·connection·​with·​the·given·socket.​
40 ··​asio:​:​ip:​:​tcp:​:​socket&·​socket()​;​36 ··explicit·connection(asio:​:​ip:​:​tcp:​:​socket·​socket,​
37 ······​connection_manager&·​manager,​·​request_handler&·​handler)​;​
41 38
42 ··​/​/​/​·​Start·​the·​first·​asynchronous·​operation·​for·​the·​connection.​39 ··​/​/​/​·​Start·​the·​first·​asynchronous·​operation·​for·​the·​connection.​
43 ··​void·​start()​;​40 ··​void·​start()​;​
44 41
45 ··​/​/​/​·​Stop·​all·​asynchronous·​operations·​associated·​with·​the·​connection.​42 ··​/​/​/​·​Stop·​all·​asynchronous·​operations·​associated·​with·​the·​connection.​
46 ··​void·​stop()​;​43 ··​void·​stop()​;​
47 44
48 private:​45 private:​
49 ··​/​/​/​·Handle·completion·of·a·​read·​operation.​46 ··​/​/​/​·Perform·an·asynchronous·​read·​operation.​
50 ··​void·handle_read(const·asio:​:​error_code&·e,​47 ··​void·​do_read()​;​
51 ······std:​:​size_t·bytes_transferred)​;​
52 48
53 ··​/​/​/​·Handle·completion·of·a·​write·​operation.​49 ··​/​/​/​·Perform·an·asynchronous·​write·​operation.​
54 ··​void·handle_write(const·asio:​:​error_code&·e)​;​50 ··​void·​do_write()​;​
55 51
56 ··​/​/​/​·​Socket·​for·​the·​connection.​52 ··​/​/​/​·​Socket·​for·​the·​connection.​
57 ··​asio:​:​ip:​:​tcp:​:​socket·​socket_;​53 ··​asio:​:​ip:​:​tcp:​:​socket·​socket_;​
58 54
59 ··​/​/​/​·​The·​manager·​for·​this·​connection.​55 ··​/​/​/​·​The·​manager·​for·​this·​connection.​
60 ··​connection_manager&·​connection_manager_;​56 ··​connection_manager&·​connection_manager_;​
61 57
62 ··​/​/​/​·​The·​handler·​used·​to·​process·​the·​incoming·​request.​58 ··​/​/​/​·​The·​handler·​used·​to·​process·​the·​incoming·​request.​
63 ··​request_handler&·​request_handler_;​59 ··​request_handler&·​request_handler_;​
64 60
65 ··​/​/​/​·​Buffer·​for·​incoming·​data.​61 ··​/​/​/​·​Buffer·​for·​incoming·​data.​
66 ··boost:​:​array<char,​·​8192>·​buffer_;​62 ··​std:​:​array<char,​·​8192>·​buffer_;​
67 63
68 ··​/​/​/​·​The·​incoming·​request.​64 ··​/​/​/​·​The·​incoming·​request.​
69 ··​request·​request_;​65 ··​request·​request_;​
70 66
71 ··​/​/​/​·​The·​parser·​for·​the·​incoming·​request.​67 ··​/​/​/​·​The·​parser·​for·​the·​incoming·​request.​
72 ··​request_parser·​request_parser_;​68 ··​request_parser·​request_parser_;​
73 69
74 ··​/​/​/​·​The·​reply·​to·​be·​sent·​back·​to·​the·​client.​70 ··​/​/​/​·​The·​reply·​to·​be·​sent·​back·​to·​the·​client.​
75 ··​reply·​reply_;​71 ··​reply·​reply_;​
76 };​72 };​
77 73
78 typedef·boost:​:​shared_ptr<connection​>·​connection_ptr;​74 typedef·​std:​:​shared_ptr<connection​>·​connection_ptr;​
79 75
80 }·​/​/​·​namespace·​server76 }·​/​/​·​namespace·​server
81 }·​/​/​·​namespace·​http77 }·​/​/​·​namespace·​http
82 78
83 #endif·​/​/​·​HTTP_CONNECTION_HPP79 #endif·​/​/​·​HTTP_CONNECTION_HPP
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection_manager.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/connection_manager.cpp.html deleted file mode 100644 index 6755ab2..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection_manager.cpp.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - HTML Diff http/server/connection_manager.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​connection_manager.​cppsrc/​examples/​cpp11/​http/​server/​connection_manager.​cpp
1 /​/​1 /​/​
2 /​/​·​connection_manager.​cpp2 /​/​·​connection_manager.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"connection_manager.​hpp"11 #include·​"connection_manager.​hpp"
12 #include·​<algorithm>
13 #include·​<boost/​bind.​hpp>
14 12
15 namespace·​http·​{13 namespace·​http·​{
16 namespace·​server·​{14 namespace·​server·​{
17 15
16 connection_manager:​:​connection_manager()​
17 {
18 }
19
18 void·​connection_manager:​:​start(connection_ptr·​c)​20 void·​connection_manager:​:​start(connection_ptr·​c)​
19 {21 {
20 ··​connections_.​insert(c)​;​22 ··​connections_.​insert(c)​;​
21 ··​c-​>start()​;​23 ··​c-​>start()​;​
22 }24 }
23 25
24 void·​connection_manager:​:​stop(connection_ptr·​c)​26 void·​connection_manager:​:​stop(connection_ptr·​c)​
25 {27 {
26 ··​connections_.​erase(c)​;​28 ··​connections_.​erase(c)​;​
27 ··​c-​>stop()​;​29 ··​c-​>stop()​;​
28 }30 }
29 31
30 void·​connection_manager:​:​stop_all()​32 void·​connection_manager:​:​stop_all()​
31 {33 {
32 ··std:​:​for_each(connections_​.​begin()​,​·​connections_.​end()​,​34 ··​for·(auto·c:​·​connections_)​
33 ······boost:​:​bind(&connection:​:​stop,​·_1)​)​;​35 ····​c-​>stop()​;​
34 ··​connections_.​clear()​;​36 ··​connections_.​clear()​;​
35 }37 }
36 38
37 }·​/​/​·​namespace·​server39 }·​/​/​·​namespace·​server
38 }·​/​/​·​namespace·​http40 }·​/​/​·​namespace·​http
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection_manager.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/connection_manager.hpp.html deleted file mode 100644 index 02746ec..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection_manager.hpp.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - HTML Diff http/server/connection_manager.hpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​connection_manager.​hppsrc/​examples/​cpp11/​http/​server/​connection_manager.​hpp
1 /​/​1 /​/​
2 /​/​·​connection_manager.​hpp2 /​/​·​connection_manager.​hpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #ifndef·​HTTP_CONNECTION_MANAG​ER_HPP11 #ifndef·​HTTP_CONNECTION_MANAG​ER_HPP
12 #define·​HTTP_CONNECTION_MANAG​ER_HPP12 #define·​HTTP_CONNECTION_MANAG​ER_HPP
13 13
14 #include·​<set>14 #include·​<set>
15 #include·​<boost/​noncopyable.​hpp>
16 #include·​"connection.​hpp"15 #include·​"connection.​hpp"
17 16
18 namespace·​http·​{17 namespace·​http·​{
19 namespace·​server·​{18 namespace·​server·​{
20 19
21 /​/​/​·​Manages·​open·​connections·​so·​that·​they·​may·​be·​cleanly·​stopped·​when·​the·​server20 /​/​/​·​Manages·​open·​connections·​so·​that·​they·​may·​be·​cleanly·​stopped·​when·​the·​server
22 /​/​/​·​needs·​to·​shut·​down.​21 /​/​/​·​needs·​to·​shut·​down.​
23 class·​connection_manager22 class·​connection_manager
24 ··​:​·​private·​boost:​:​noncopyable
25 {23 {
26 public:​24 public:​
25 ··​connection_manager(co​nst·​connection_manager&)​·​=·​delete;​
26 ··​connection_manager&·​operator=(const·​connection_manager&)​·​=·​delete;​
27
28 ··​/​/​/​·​Construct·​a·​connection·​manager.​
29 ··​connection_manager()​;​
30
27 ··​/​/​/​·​Add·​the·​specified·​connection·​to·​the·​manager·​and·​start·​it.​31 ··​/​/​/​·​Add·​the·​specified·​connection·​to·​the·​manager·​and·​start·​it.​
28 ··​void·​start(connection_ptr·​c)​;​32 ··​void·​start(connection_ptr·​c)​;​
29 33
30 ··​/​/​/​·​Stop·​the·​specified·​connection.​34 ··​/​/​/​·​Stop·​the·​specified·​connection.​
31 ··​void·​stop(connection_ptr·​c)​;​35 ··​void·​stop(connection_ptr·​c)​;​
32 36
33 ··​/​/​/​·​Stop·​all·​connections.​37 ··​/​/​/​·​Stop·​all·​connections.​
34 ··​void·​stop_all()​;​38 ··​void·​stop_all()​;​
35 39
36 private:​40 private:​
37 ··​/​/​/​·​The·​managed·​connections.​41 ··​/​/​/​·​The·​managed·​connections.​
38 ··​std:​:​set<connection_ptr>·​connections_;​42 ··​std:​:​set<connection_ptr>·​connections_;​
39 };​43 };​
40 44
41 }·​/​/​·​namespace·​server45 }·​/​/​·​namespace·​server
42 }·​/​/​·​namespace·​http46 }·​/​/​·​namespace·​http
43 47
44 #endif·​/​/​·​HTTP_CONNECTION_MANAG​ER_HPP48 #endif·​/​/​·​HTTP_CONNECTION_MANAG​ER_HPP
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/header.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/header.hpp.html deleted file mode 100644 index 12e761a..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/header.hpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff http/server/header.hpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/main.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/main.cpp.html deleted file mode 100644 index 3a26fcf..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/main.cpp.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - HTML Diff http/server/main.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​main.​cppsrc/​examples/​cpp11/​http/​server/​main.​cpp
1 /​/​1 /​/​
2 /​/​·​main.​cpp2 /​/​·​main.​cpp
3 /​/​·​~~~~~~~~3 /​/​·​~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<iostream>11 #include·​<iostream>
12 #include·​<string>12 #include·​<string>
13 #include·​<asio.​hpp>13 #include·​<asio.​hpp>
14 #include·​<boost/​bind.​hpp>
15 #include·​"server.​hpp"14 #include·​"server.​hpp"
16 15
17 int·​main(int·​argc,​·​char*·​argv[])​16 int·​main(int·​argc,​·​char*·​argv[])​
18 {17 {
19 ··​try18 ··​try
20 ··​{19 ··​{
21 ····​/​/​·​Check·​command·​line·​arguments.​20 ····​/​/​·​Check·​command·​line·​arguments.​
22 ····​if·​(argc·​!=·​4)​21 ····​if·​(argc·​!=·​4)​
23 ····​{22 ····​{
24 ······​std:​:​cerr·​<<·​"Usage:​·​http_server·​<address>·​<port>·​<doc_root>\n";​23 ······​std:​:​cerr·​<<·​"Usage:​·​http_server·​<address>·​<port>·​<doc_root>\n";​
25 ······​std:​:​cerr·​<<·​"··​For·​IPv4,​·​try:​\n";​24 ······​std:​:​cerr·​<<·​"··​For·​IPv4,​·​try:​\n";​
26 ······​std:​:​cerr·​<<·​"····​receiver·​0.​0.​0.​0·​80·​.​\n";​25 ······​std:​:​cerr·​<<·​"····​receiver·​0.​0.​0.​0·​80·​.​\n";​
27 ······​std:​:​cerr·​<<·​"··​For·​IPv6,​·​try:​\n";​26 ······​std:​:​cerr·​<<·​"··​For·​IPv6,​·​try:​\n";​
28 ······​std:​:​cerr·​<<·​"····​receiver·​0:​:​0·​80·​.​\n";​27 ······​std:​:​cerr·​<<·​"····​receiver·​0:​:​0·​80·​.​\n";​
29 ······​return·​1;​28 ······​return·​1;​
30 ····​}29 ····​}
31 30
32 ····​/​/​·​Initialise·​the·​server.​31 ····​/​/​·​Initialise·​the·​server.​
33 ····​http:​:​server:​:​server·​s(argv[1],​·​argv[2],​·​argv[3])​;​32 ····​http:​:​server:​:​server·​s(argv[1],​·​argv[2],​·​argv[3])​;​
34 33
35 ····​/​/​·​Run·​the·​server·​until·​stopped.​34 ····​/​/​·​Run·​the·​server·​until·​stopped.​
36 ····​s.​run()​;​35 ····​s.​run()​;​
37 ··​}36 ··​}
38 ··​catch·​(std:​:​exception&·​e)​37 ··​catch·​(std:​:​exception&·​e)​
39 ··​{38 ··​{
40 ····​std:​:​cerr·​<<·​"exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​39 ····​std:​:​cerr·​<<·​"exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
41 ··​}40 ··​}
42 41
43 ··​return·​0;​42 ··​return·​0;​
44 }43 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/mime_types.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/mime_types.cpp.html deleted file mode 100644 index 4fd5e57..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/mime_types.cpp.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - HTML Diff http/server/mime_types.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​mime_types.​cppsrc/​examples/​cpp11/​http/​server/​mime_types.​cpp
1 /​/​1 /​/​
2 /​/​·​mime_types.​cpp2 /​/​·​mime_types.​cpp
3 /​/​·​~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"mime_types.​hpp"11 #include·​"mime_types.​hpp"
12 12
13 namespace·​http·​{13 namespace·​http·​{
14 namespace·​server·​{14 namespace·​server·​{
15 namespace·​mime_types·​{15 namespace·​mime_types·​{
16 16
17 struct·​mapping17 struct·​mapping
18 {18 {
19 ··​const·​char*·​extension;​19 ··​const·​char*·​extension;​
20 ··​const·​char*·​mime_type;​20 ··​const·​char*·​mime_type;​
21 }·​mappings[]·​=21 }·​mappings[]·​=
22 {22 {
23 ··​{·​"gif",​·​"image/​gif"·​},​23 ··​{·​"gif",​·​"image/​gif"·​},​
24 ··​{·​"htm",​·​"text/​html"·​},​24 ··​{·​"htm",​·​"text/​html"·​},​
25 ··​{·​"html",​·​"text/​html"·​},​25 ··​{·​"html",​·​"text/​html"·​},​
26 ··​{·​"jpg",​·​"image/​jpeg"·​},​26 ··​{·​"jpg",​·​"image/​jpeg"·​},​
27 ··​{·​"png",​·​"image/​png"·​},​27 ··​{·​"png",​·​"image/​png"·​}
28 ··{·0,​·0·}·/​/​·Marks·end·of·list.​
29 };​28 };​
30 29
31 std:​:​string·​extension_to_type(con​st·​std:​:​string&·​extension)​30 std:​:​string·​extension_to_type(con​st·​std:​:​string&·​extension)​
32 {31 {
33 ··​for·​(mapping*·​m·=·​mappings;​·m-​>extension;​·++m)​32 ··​for·​(mapping·​m:​·​mappings)​
34 ··​{33 ··​{
35 ····​if·​(m-​>extension·​==·​extension)​34 ····​if·​(m.​extension·​==·​extension)​
36 ····​{35 ····​{
37 ······​return·​m-​>mime_type;​36 ······​return·​m.​mime_type;​
38 ····​}37 ····​}
39 ··​}38 ··​}
40 39
41 ··​return·​"text/​plain";​40 ··​return·​"text/​plain";​
42 }41 }
43 42
44 }·​/​/​·​namespace·​mime_types43 }·​/​/​·​namespace·​mime_types
45 }·​/​/​·​namespace·​server44 }·​/​/​·​namespace·​server
46 }·​/​/​·​namespace·​http45 }·​/​/​·​namespace·​http
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/mime_types.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/mime_types.hpp.html deleted file mode 100644 index de3bdae..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/mime_types.hpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff http/server/mime_types.hpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/reply.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/reply.cpp.html deleted file mode 100644 index ade8330..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/reply.cpp.html +++ /dev/null @@ -1,296 +0,0 @@ - - - - - - - HTML Diff http/server/reply.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​reply.​cppsrc/​examples/​cpp11/​http/​server/​reply.​cpp
1 /​/​1 /​/​
2 /​/​·​reply.​cpp2 /​/​·​reply.​cpp
3 /​/​·​~~~~~~~~~3 /​/​·​~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"reply.​hpp"11 #include·​"reply.​hpp"
12 #include·​<string>12 #include·​<string>
13 #include·​<boost/​lexical_cast.​hpp>
14 13
15 namespace·​http·​{14 namespace·​http·​{
16 namespace·​server·​{15 namespace·​server·​{
17 16
18 namespace·​status_strings·​{17 namespace·​status_strings·​{
19 18
20 const·​std:​:​string·​ok·​=19 const·​std:​:​string·​ok·​=
21 ··​"HTTP/​1.​0·​200·​OK\r\n";​20 ··​"HTTP/​1.​0·​200·​OK\r\n";​
22 const·​std:​:​string·​created·​=21 const·​std:​:​string·​created·​=
23 ··​"HTTP/​1.​0·​201·​Created\r\n";​22 ··​"HTTP/​1.​0·​201·​Created\r\n";​
24 const·​std:​:​string·​accepted·​=23 const·​std:​:​string·​accepted·​=
25 ··​"HTTP/​1.​0·​202·​Accepted\r\n";​24 ··​"HTTP/​1.​0·​202·​Accepted\r\n";​
26 const·​std:​:​string·​no_content·​=25 const·​std:​:​string·​no_content·​=
27 ··​"HTTP/​1.​0·​204·​No·​Content\r\n";​26 ··​"HTTP/​1.​0·​204·​No·​Content\r\n";​
28 const·​std:​:​string·​multiple_choices·​=27 const·​std:​:​string·​multiple_choices·​=
29 ··​"HTTP/​1.​0·​300·​Multiple·​Choices\r\n";​28 ··​"HTTP/​1.​0·​300·​Multiple·​Choices\r\n";​
30 const·​std:​:​string·​moved_permanently·​=29 const·​std:​:​string·​moved_permanently·​=
31 ··​"HTTP/​1.​0·​301·​Moved·​Permanently\r\n";​30 ··​"HTTP/​1.​0·​301·​Moved·​Permanently\r\n";​
32 const·​std:​:​string·​moved_temporarily·​=31 const·​std:​:​string·​moved_temporarily·​=
33 ··​"HTTP/​1.​0·​302·​Moved·​Temporarily\r\n";​32 ··​"HTTP/​1.​0·​302·​Moved·​Temporarily\r\n";​
34 const·​std:​:​string·​not_modified·​=33 const·​std:​:​string·​not_modified·​=
35 ··​"HTTP/​1.​0·​304·​Not·​Modified\r\n";​34 ··​"HTTP/​1.​0·​304·​Not·​Modified\r\n";​
36 const·​std:​:​string·​bad_request·​=35 const·​std:​:​string·​bad_request·​=
37 ··​"HTTP/​1.​0·​400·​Bad·​Request\r\n";​36 ··​"HTTP/​1.​0·​400·​Bad·​Request\r\n";​
38 const·​std:​:​string·​unauthorized·​=37 const·​std:​:​string·​unauthorized·​=
39 ··​"HTTP/​1.​0·​401·​Unauthorized\r\n";​38 ··​"HTTP/​1.​0·​401·​Unauthorized\r\n";​
40 const·​std:​:​string·​forbidden·​=39 const·​std:​:​string·​forbidden·​=
41 ··​"HTTP/​1.​0·​403·​Forbidden\r\n";​40 ··​"HTTP/​1.​0·​403·​Forbidden\r\n";​
42 const·​std:​:​string·​not_found·​=41 const·​std:​:​string·​not_found·​=
43 ··​"HTTP/​1.​0·​404·​Not·​Found\r\n";​42 ··​"HTTP/​1.​0·​404·​Not·​Found\r\n";​
44 const·​std:​:​string·​internal_server_error​·​=43 const·​std:​:​string·​internal_server_error​·​=
45 ··​"HTTP/​1.​0·​500·​Internal·​Server·​Error\r\n";​44 ··​"HTTP/​1.​0·​500·​Internal·​Server·​Error\r\n";​
46 const·​std:​:​string·​not_implemented·​=45 const·​std:​:​string·​not_implemented·​=
47 ··​"HTTP/​1.​0·​501·​Not·​Implemented\r\n";​46 ··​"HTTP/​1.​0·​501·​Not·​Implemented\r\n";​
48 const·​std:​:​string·​bad_gateway·​=47 const·​std:​:​string·​bad_gateway·​=
49 ··​"HTTP/​1.​0·​502·​Bad·​Gateway\r\n";​48 ··​"HTTP/​1.​0·​502·​Bad·​Gateway\r\n";​
50 const·​std:​:​string·​service_unavailable·​=49 const·​std:​:​string·​service_unavailable·​=
51 ··​"HTTP/​1.​0·​503·​Service·​Unavailable\r\n";​50 ··​"HTTP/​1.​0·​503·​Service·​Unavailable\r\n";​
52 51
53 asio:​:​const_buffer·​to_buffer(reply:​:​status_type·​status)​52 asio:​:​const_buffer·​to_buffer(reply:​:​status_type·​status)​
54 {53 {
55 ··​switch·​(status)​54 ··​switch·​(status)​
56 ··​{55 ··​{
57 ··​case·​reply:​:​ok:​56 ··​case·​reply:​:​ok:​
58 ····​return·​asio:​:​buffer(ok)​;​57 ····​return·​asio:​:​buffer(ok)​;​
59 ··​case·​reply:​:​created:​58 ··​case·​reply:​:​created:​
60 ····​return·​asio:​:​buffer(created)​;​59 ····​return·​asio:​:​buffer(created)​;​
61 ··​case·​reply:​:​accepted:​60 ··​case·​reply:​:​accepted:​
62 ····​return·​asio:​:​buffer(accepted)​;​61 ····​return·​asio:​:​buffer(accepted)​;​
63 ··​case·​reply:​:​no_content:​62 ··​case·​reply:​:​no_content:​
64 ····​return·​asio:​:​buffer(no_content)​;​63 ····​return·​asio:​:​buffer(no_content)​;​
65 ··​case·​reply:​:​multiple_choices:​64 ··​case·​reply:​:​multiple_choices:​
66 ····​return·​asio:​:​buffer(multiple_choic​es)​;​65 ····​return·​asio:​:​buffer(multiple_choic​es)​;​
67 ··​case·​reply:​:​moved_permanently:​66 ··​case·​reply:​:​moved_permanently:​
68 ····​return·​asio:​:​buffer(moved_permanen​tly)​;​67 ····​return·​asio:​:​buffer(moved_permanen​tly)​;​
69 ··​case·​reply:​:​moved_temporarily:​68 ··​case·​reply:​:​moved_temporarily:​
70 ····​return·​asio:​:​buffer(moved_temporar​ily)​;​69 ····​return·​asio:​:​buffer(moved_temporar​ily)​;​
71 ··​case·​reply:​:​not_modified:​70 ··​case·​reply:​:​not_modified:​
72 ····​return·​asio:​:​buffer(not_modified)​;​71 ····​return·​asio:​:​buffer(not_modified)​;​
73 ··​case·​reply:​:​bad_request:​72 ··​case·​reply:​:​bad_request:​
74 ····​return·​asio:​:​buffer(bad_request)​;​73 ····​return·​asio:​:​buffer(bad_request)​;​
75 ··​case·​reply:​:​unauthorized:​74 ··​case·​reply:​:​unauthorized:​
76 ····​return·​asio:​:​buffer(unauthorized)​;​75 ····​return·​asio:​:​buffer(unauthorized)​;​
77 ··​case·​reply:​:​forbidden:​76 ··​case·​reply:​:​forbidden:​
78 ····​return·​asio:​:​buffer(forbidden)​;​77 ····​return·​asio:​:​buffer(forbidden)​;​
79 ··​case·​reply:​:​not_found:​78 ··​case·​reply:​:​not_found:​
80 ····​return·​asio:​:​buffer(not_found)​;​79 ····​return·​asio:​:​buffer(not_found)​;​
81 ··​case·​reply:​:​internal_server_error​:​80 ··​case·​reply:​:​internal_server_error​:​
82 ····​return·​asio:​:​buffer(internal_serve​r_error)​;​81 ····​return·​asio:​:​buffer(internal_serve​r_error)​;​
83 ··​case·​reply:​:​not_implemented:​82 ··​case·​reply:​:​not_implemented:​
84 ····​return·​asio:​:​buffer(not_implemente​d)​;​83 ····​return·​asio:​:​buffer(not_implemente​d)​;​
85 ··​case·​reply:​:​bad_gateway:​84 ··​case·​reply:​:​bad_gateway:​
86 ····​return·​asio:​:​buffer(bad_gateway)​;​85 ····​return·​asio:​:​buffer(bad_gateway)​;​
87 ··​case·​reply:​:​service_unavailable:​86 ··​case·​reply:​:​service_unavailable:​
88 ····​return·​asio:​:​buffer(service_unavai​lable)​;​87 ····​return·​asio:​:​buffer(service_unavai​lable)​;​
89 ··​default:​88 ··​default:​
90 ····​return·​asio:​:​buffer(internal_serve​r_error)​;​89 ····​return·​asio:​:​buffer(internal_serve​r_error)​;​
91 ··​}90 ··​}
92 }91 }
93 92
94 }·​/​/​·​namespace·​status_strings93 }·​/​/​·​namespace·​status_strings
95 94
96 namespace·​misc_strings·​{95 namespace·​misc_strings·​{
97 96
98 const·​char·​name_value_separator[​]·​=·​{·​':​',​·​'·​'·​};​97 const·​char·​name_value_separator[​]·​=·​{·​':​',​·​'·​'·​};​
99 const·​char·​crlf[]·​=·​{·​'\r',​·​'\n'·​};​98 const·​char·​crlf[]·​=·​{·​'\r',​·​'\n'·​};​
100 99
101 }·​/​/​·​namespace·​misc_strings100 }·​/​/​·​namespace·​misc_strings
102 101
103 std:​:​vector<asio:​:​const_buffer>·​reply:​:​to_buffers()​102 std:​:​vector<asio:​:​const_buffer>·​reply:​:​to_buffers()​
104 {103 {
105 ··​std:​:​vector<asio:​:​const_buffer>·​buffers;​104 ··​std:​:​vector<asio:​:​const_buffer>·​buffers;​
106 ··​buffers.​push_back(status_stri​ngs:​:​to_buffer(status)​)​;​105 ··​buffers.​push_back(status_stri​ngs:​:​to_buffer(status)​)​;​
107 ··​for·​(std:​:​size_t·​i·​=·​0;​·​i·​<·​headers.​size()​;​·​++i)​106 ··​for·​(std:​:​size_t·​i·​=·​0;​·​i·​<·​headers.​size()​;​·​++i)​
108 ··​{107 ··​{
109 ····​header&·​h·​=·​headers[i];​108 ····​header&·​h·​=·​headers[i];​
110 ····​buffers.​push_back(asio:​:​buffer(h.​name)​)​;​109 ····​buffers.​push_back(asio:​:​buffer(h.​name)​)​;​
111 ····​buffers.​push_back(asio:​:​buffer(misc_strings:​:​name_value_separator)​)​;​110 ····​buffers.​push_back(asio:​:​buffer(misc_strings:​:​name_value_separator)​)​;​
112 ····​buffers.​push_back(asio:​:​buffer(h.​value)​)​;​111 ····​buffers.​push_back(asio:​:​buffer(h.​value)​)​;​
113 ····​buffers.​push_back(asio:​:​buffer(misc_strings:​:​crlf)​)​;​112 ····​buffers.​push_back(asio:​:​buffer(misc_strings:​:​crlf)​)​;​
114 ··​}113 ··​}
115 ··​buffers.​push_back(asio:​:​buffer(misc_strings:​:​crlf)​)​;​114 ··​buffers.​push_back(asio:​:​buffer(misc_strings:​:​crlf)​)​;​
116 ··​buffers.​push_back(asio:​:​buffer(content)​)​;​115 ··​buffers.​push_back(asio:​:​buffer(content)​)​;​
117 ··​return·​buffers;​116 ··​return·​buffers;​
118 }117 }
119 118
120 namespace·​stock_replies·​{119 namespace·​stock_replies·​{
121 120
122 const·​char·​ok[]·​=·​"";​121 const·​char·​ok[]·​=·​"";​
123 const·​char·​created[]·​=122 const·​char·​created[]·​=
124 ··​"<html>"123 ··​"<html>"
125 ··​"<head><title>Created​</​title></​head>"124 ··​"<head><title>Created​</​title></​head>"
126 ··​"<body><h1>201·​Created</​h1></​body>"125 ··​"<body><h1>201·​Created</​h1></​body>"
127 ··​"</​html>";​126 ··​"</​html>";​
128 const·​char·​accepted[]·​=127 const·​char·​accepted[]·​=
129 ··​"<html>"128 ··​"<html>"
130 ··​"<head><title>Accepte​d</​title></​head>"129 ··​"<head><title>Accepte​d</​title></​head>"
131 ··​"<body><h1>202·​Accepted</​h1></​body>"130 ··​"<body><h1>202·​Accepted</​h1></​body>"
132 ··​"</​html>";​131 ··​"</​html>";​
133 const·​char·​no_content[]·​=132 const·​char·​no_content[]·​=
134 ··​"<html>"133 ··​"<html>"
135 ··​"<head><title>No·​Content</​title></​head>"134 ··​"<head><title>No·​Content</​title></​head>"
136 ··​"<body><h1>204·​Content</​h1></​body>"135 ··​"<body><h1>204·​Content</​h1></​body>"
137 ··​"</​html>";​136 ··​"</​html>";​
138 const·​char·​multiple_choices[]·​=137 const·​char·​multiple_choices[]·​=
139 ··​"<html>"138 ··​"<html>"
140 ··​"<head><title>Multipl​e·​Choices</​title></​head>"139 ··​"<head><title>Multipl​e·​Choices</​title></​head>"
141 ··​"<body><h1>300·​Multiple·​Choices</​h1></​body>"140 ··​"<body><h1>300·​Multiple·​Choices</​h1></​body>"
142 ··​"</​html>";​141 ··​"</​html>";​
143 const·​char·​moved_permanently[]·​=142 const·​char·​moved_permanently[]·​=
144 ··​"<html>"143 ··​"<html>"
145 ··​"<head><title>Moved·​Permanently</​title></​head>"144 ··​"<head><title>Moved·​Permanently</​title></​head>"
146 ··​"<body><h1>301·​Moved·​Permanently</​h1></​body>"145 ··​"<body><h1>301·​Moved·​Permanently</​h1></​body>"
147 ··​"</​html>";​146 ··​"</​html>";​
148 const·​char·​moved_temporarily[]·​=147 const·​char·​moved_temporarily[]·​=
149 ··​"<html>"148 ··​"<html>"
150 ··​"<head><title>Moved·​Temporarily</​title></​head>"149 ··​"<head><title>Moved·​Temporarily</​title></​head>"
151 ··​"<body><h1>302·​Moved·​Temporarily</​h1></​body>"150 ··​"<body><h1>302·​Moved·​Temporarily</​h1></​body>"
152 ··​"</​html>";​151 ··​"</​html>";​
153 const·​char·​not_modified[]·​=152 const·​char·​not_modified[]·​=
154 ··​"<html>"153 ··​"<html>"
155 ··​"<head><title>Not·​Modified</​title></​head>"154 ··​"<head><title>Not·​Modified</​title></​head>"
156 ··​"<body><h1>304·​Not·​Modified</​h1></​body>"155 ··​"<body><h1>304·​Not·​Modified</​h1></​body>"
157 ··​"</​html>";​156 ··​"</​html>";​
158 const·​char·​bad_request[]·​=157 const·​char·​bad_request[]·​=
159 ··​"<html>"158 ··​"<html>"
160 ··​"<head><title>Bad·​Request</​title></​head>"159 ··​"<head><title>Bad·​Request</​title></​head>"
161 ··​"<body><h1>400·​Bad·​Request</​h1></​body>"160 ··​"<body><h1>400·​Bad·​Request</​h1></​body>"
162 ··​"</​html>";​161 ··​"</​html>";​
163 const·​char·​unauthorized[]·​=162 const·​char·​unauthorized[]·​=
164 ··​"<html>"163 ··​"<html>"
165 ··​"<head><title>Unautho​rized</​title></​head>"164 ··​"<head><title>Unautho​rized</​title></​head>"
166 ··​"<body><h1>401·​Unauthorized</​h1></​body>"165 ··​"<body><h1>401·​Unauthorized</​h1></​body>"
167 ··​"</​html>";​166 ··​"</​html>";​
168 const·​char·​forbidden[]·​=167 const·​char·​forbidden[]·​=
169 ··​"<html>"168 ··​"<html>"
170 ··​"<head><title>Forbidd​en</​title></​head>"169 ··​"<head><title>Forbidd​en</​title></​head>"
171 ··​"<body><h1>403·​Forbidden</​h1></​body>"170 ··​"<body><h1>403·​Forbidden</​h1></​body>"
172 ··​"</​html>";​171 ··​"</​html>";​
173 const·​char·​not_found[]·​=172 const·​char·​not_found[]·​=
174 ··​"<html>"173 ··​"<html>"
175 ··​"<head><title>Not·​Found</​title></​head>"174 ··​"<head><title>Not·​Found</​title></​head>"
176 ··​"<body><h1>404·​Not·​Found</​h1></​body>"175 ··​"<body><h1>404·​Not·​Found</​h1></​body>"
177 ··​"</​html>";​176 ··​"</​html>";​
178 const·​char·​internal_server_error​[]·​=177 const·​char·​internal_server_error​[]·​=
179 ··​"<html>"178 ··​"<html>"
180 ··​"<head><title>Interna​l·​Server·​Error</​title></​head>"179 ··​"<head><title>Interna​l·​Server·​Error</​title></​head>"
181 ··​"<body><h1>500·​Internal·​Server·​Error</​h1></​body>"180 ··​"<body><h1>500·​Internal·​Server·​Error</​h1></​body>"
182 ··​"</​html>";​181 ··​"</​html>";​
183 const·​char·​not_implemented[]·​=182 const·​char·​not_implemented[]·​=
184 ··​"<html>"183 ··​"<html>"
185 ··​"<head><title>Not·​Implemented</​title></​head>"184 ··​"<head><title>Not·​Implemented</​title></​head>"
186 ··​"<body><h1>501·​Not·​Implemented</​h1></​body>"185 ··​"<body><h1>501·​Not·​Implemented</​h1></​body>"
187 ··​"</​html>";​186 ··​"</​html>";​
188 const·​char·​bad_gateway[]·​=187 const·​char·​bad_gateway[]·​=
189 ··​"<html>"188 ··​"<html>"
190 ··​"<head><title>Bad·​Gateway</​title></​head>"189 ··​"<head><title>Bad·​Gateway</​title></​head>"
191 ··​"<body><h1>502·​Bad·​Gateway</​h1></​body>"190 ··​"<body><h1>502·​Bad·​Gateway</​h1></​body>"
192 ··​"</​html>";​191 ··​"</​html>";​
193 const·​char·​service_unavailable[]​·​=192 const·​char·​service_unavailable[]​·​=
194 ··​"<html>"193 ··​"<html>"
195 ··​"<head><title>Service​·​Unavailable</​title></​head>"194 ··​"<head><title>Service​·​Unavailable</​title></​head>"
196 ··​"<body><h1>503·​Service·​Unavailable</​h1></​body>"195 ··​"<body><h1>503·​Service·​Unavailable</​h1></​body>"
197 ··​"</​html>";​196 ··​"</​html>";​
198 197
199 std:​:​string·​to_string(reply:​:​status_type·​status)​198 std:​:​string·​to_string(reply:​:​status_type·​status)​
200 {199 {
201 ··​switch·​(status)​200 ··​switch·​(status)​
202 ··​{201 ··​{
203 ··​case·​reply:​:​ok:​202 ··​case·​reply:​:​ok:​
204 ····​return·​ok;​203 ····​return·​ok;​
205 ··​case·​reply:​:​created:​204 ··​case·​reply:​:​created:​
206 ····​return·​created;​205 ····​return·​created;​
207 ··​case·​reply:​:​accepted:​206 ··​case·​reply:​:​accepted:​
208 ····​return·​accepted;​207 ····​return·​accepted;​
209 ··​case·​reply:​:​no_content:​208 ··​case·​reply:​:​no_content:​
210 ····​return·​no_content;​209 ····​return·​no_content;​
211 ··​case·​reply:​:​multiple_choices:​210 ··​case·​reply:​:​multiple_choices:​
212 ····​return·​multiple_choices;​211 ····​return·​multiple_choices;​
213 ··​case·​reply:​:​moved_permanently:​212 ··​case·​reply:​:​moved_permanently:​
214 ····​return·​moved_permanently;​213 ····​return·​moved_permanently;​
215 ··​case·​reply:​:​moved_temporarily:​214 ··​case·​reply:​:​moved_temporarily:​
216 ····​return·​moved_temporarily;​215 ····​return·​moved_temporarily;​
217 ··​case·​reply:​:​not_modified:​216 ··​case·​reply:​:​not_modified:​
218 ····​return·​not_modified;​217 ····​return·​not_modified;​
219 ··​case·​reply:​:​bad_request:​218 ··​case·​reply:​:​bad_request:​
220 ····​return·​bad_request;​219 ····​return·​bad_request;​
221 ··​case·​reply:​:​unauthorized:​220 ··​case·​reply:​:​unauthorized:​
222 ····​return·​unauthorized;​221 ····​return·​unauthorized;​
223 ··​case·​reply:​:​forbidden:​222 ··​case·​reply:​:​forbidden:​
224 ····​return·​forbidden;​223 ····​return·​forbidden;​
225 ··​case·​reply:​:​not_found:​224 ··​case·​reply:​:​not_found:​
226 ····​return·​not_found;​225 ····​return·​not_found;​
227 ··​case·​reply:​:​internal_server_error​:​226 ··​case·​reply:​:​internal_server_error​:​
228 ····​return·​internal_server_error​;​227 ····​return·​internal_server_error​;​
229 ··​case·​reply:​:​not_implemented:​228 ··​case·​reply:​:​not_implemented:​
230 ····​return·​not_implemented;​229 ····​return·​not_implemented;​
231 ··​case·​reply:​:​bad_gateway:​230 ··​case·​reply:​:​bad_gateway:​
232 ····​return·​bad_gateway;​231 ····​return·​bad_gateway;​
233 ··​case·​reply:​:​service_unavailable:​232 ··​case·​reply:​:​service_unavailable:​
234 ····​return·​service_unavailable;​233 ····​return·​service_unavailable;​
235 ··​default:​234 ··​default:​
236 ····​return·​internal_server_error​;​235 ····​return·​internal_server_error​;​
237 ··​}236 ··​}
238 }237 }
239 238
240 }·​/​/​·​namespace·​stock_replies239 }·​/​/​·​namespace·​stock_replies
241 240
242 reply·​reply:​:​stock_reply(reply:​:​status_type·​status)​241 reply·​reply:​:​stock_reply(reply:​:​status_type·​status)​
243 {242 {
244 ··​reply·​rep;​243 ··​reply·​rep;​
245 ··​rep.​status·​=·​status;​244 ··​rep.​status·​=·​status;​
246 ··​rep.​content·​=·​stock_replies:​:​to_string(status)​;​245 ··​rep.​content·​=·​stock_replies:​:​to_string(status)​;​
247 ··​rep.​headers.​resize(2)​;​246 ··​rep.​headers.​resize(2)​;​
248 ··​rep.​headers[0].​name·​=·​"Content-​Length";​247 ··​rep.​headers[0].​name·​=·​"Content-​Length";​
249 ··​rep.​headers[0].​value·​=·boost:​:​lexical_cast<std:​:​string>(rep.​content.​size()​)​;​248 ··​rep.​headers[0].​value·​=·​std:​:​to_string(rep.​content.​size()​)​;​
250 ··​rep.​headers[1].​name·​=·​"Content-​Type";​249 ··​rep.​headers[1].​name·​=·​"Content-​Type";​
251 ··​rep.​headers[1].​value·​=·​"text/​html";​250 ··​rep.​headers[1].​value·​=·​"text/​html";​
252 ··​return·​rep;​251 ··​return·​rep;​
253 }252 }
254 253
255 }·​/​/​·​namespace·​server254 }·​/​/​·​namespace·​server
256 }·​/​/​·​namespace·​http255 }·​/​/​·​namespace·​http
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/reply.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/reply.hpp.html deleted file mode 100644 index e8b28d5..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/reply.hpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff http/server/reply.hpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/request.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/request.hpp.html deleted file mode 100644 index e0c9296..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/request.hpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff http/server/request.hpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_handler.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/request_handler.cpp.html deleted file mode 100644 index b8fb26e..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_handler.cpp.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - HTML Diff http/server/request_handler.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​request_handler.​cppsrc/​examples/​cpp11/​http/​server/​request_handler.​cpp
1 /​/​1 /​/​
2 /​/​·​request_handler.​cpp2 /​/​·​request_handler.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"request_handler.​hpp"11 #include·​"request_handler.​hpp"
12 #include·​<fstream>12 #include·​<fstream>
13 #include·​<sstream>13 #include·​<sstream>
14 #include·​<string>14 #include·​<string>
15 #include·​<boost/​lexical_cast.​hpp>
16 #include·​"mime_types.​hpp"15 #include·​"mime_types.​hpp"
17 #include·​"reply.​hpp"16 #include·​"reply.​hpp"
18 #include·​"request.​hpp"17 #include·​"request.​hpp"
19 18
20 namespace·​http·​{19 namespace·​http·​{
21 namespace·​server·​{20 namespace·​server·​{
22 21
23 request_handler:​:​request_handler(const​·​std:​:​string&·​doc_root)​22 request_handler:​:​request_handler(const​·​std:​:​string&·​doc_root)​
24 ··​:​·​doc_root_(doc_root)​23 ··​:​·​doc_root_(doc_root)​
25 {24 {
26 }25 }
27 26
28 void·​request_handler:​:​handle_request(const·​request&·​req,​·​reply&·​rep)​27 void·​request_handler:​:​handle_request(const·​request&·​req,​·​reply&·​rep)​
29 {28 {
30 ··​/​/​·​Decode·​url·​to·​path.​29 ··​/​/​·​Decode·​url·​to·​path.​
31 ··​std:​:​string·​request_path;​30 ··​std:​:​string·​request_path;​
32 ··​if·​(!url_decode(req.​uri,​·​request_path)​)​31 ··​if·​(!url_decode(req.​uri,​·​request_path)​)​
33 ··​{32 ··​{
34 ····​rep·​=·​reply:​:​stock_reply(reply:​:​bad_request)​;​33 ····​rep·​=·​reply:​:​stock_reply(reply:​:​bad_request)​;​
35 ····​return;​34 ····​return;​
36 ··​}35 ··​}
37 36
38 ··​/​/​·​Request·​path·​must·​be·​absolute·​and·​not·​contain·​".​.​".​37 ··​/​/​·​Request·​path·​must·​be·​absolute·​and·​not·​contain·​".​.​".​
39 ··​if·​(request_path.​empty()​·​||·​request_path[0]·​!=·​'/​'38 ··​if·​(request_path.​empty()​·​||·​request_path[0]·​!=·​'/​'
40 ······​||·​request_path.​find(".​.​")​·​!=·​std:​:​string:​:​npos)​39 ······​||·​request_path.​find(".​.​")​·​!=·​std:​:​string:​:​npos)​
41 ··​{40 ··​{
42 ····​rep·​=·​reply:​:​stock_reply(reply:​:​bad_request)​;​41 ····​rep·​=·​reply:​:​stock_reply(reply:​:​bad_request)​;​
43 ····​return;​42 ····​return;​
44 ··​}43 ··​}
45 44
46 ··​/​/​·​If·​path·​ends·​in·​slash·​(i.​e.​·​is·​a·​directory)​·​then·​add·​"index.​html".​45 ··​/​/​·​If·​path·​ends·​in·​slash·​(i.​e.​·​is·​a·​directory)​·​then·​add·​"index.​html".​
47 ··​if·​(request_path[request​_path.​size()​·​-​·​1]·​==·​'/​')​46 ··​if·​(request_path[request​_path.​size()​·​-​·​1]·​==·​'/​')​
48 ··​{47 ··​{
49 ····​request_path·​+=·​"index.​html";​48 ····​request_path·​+=·​"index.​html";​
50 ··​}49 ··​}
51 50
52 ··​/​/​·​Determine·​the·​file·​extension.​51 ··​/​/​·​Determine·​the·​file·​extension.​
53 ··​std:​:​size_t·​last_slash_pos·​=·​request_path.​find_last_of("/​")​;​52 ··​std:​:​size_t·​last_slash_pos·​=·​request_path.​find_last_of("/​")​;​
54 ··​std:​:​size_t·​last_dot_pos·​=·​request_path.​find_last_of(".​")​;​53 ··​std:​:​size_t·​last_dot_pos·​=·​request_path.​find_last_of(".​")​;​
55 ··​std:​:​string·​extension;​54 ··​std:​:​string·​extension;​
56 ··​if·​(last_dot_pos·​!=·​std:​:​string:​:​npos·​&&·​last_dot_pos·​>·​last_slash_pos)​55 ··​if·​(last_dot_pos·​!=·​std:​:​string:​:​npos·​&&·​last_dot_pos·​>·​last_slash_pos)​
57 ··​{56 ··​{
58 ····​extension·​=·​request_path.​substr(last_dot_pos·​+·​1)​;​57 ····​extension·​=·​request_path.​substr(last_dot_pos·​+·​1)​;​
59 ··​}58 ··​}
60 59
61 ··​/​/​·​Open·​the·​file·​to·​send·​back.​60 ··​/​/​·​Open·​the·​file·​to·​send·​back.​
62 ··​std:​:​string·​full_path·​=·​doc_root_·​+·​request_path;​61 ··​std:​:​string·​full_path·​=·​doc_root_·​+·​request_path;​
63 ··​std:​:​ifstream·​is(full_path.​c_str()​,​·​std:​:​ios:​:​in·​|·​std:​:​ios:​:​binary)​;​62 ··​std:​:​ifstream·​is(full_path.​c_str()​,​·​std:​:​ios:​:​in·​|·​std:​:​ios:​:​binary)​;​
64 ··​if·​(!is)​63 ··​if·​(!is)​
65 ··​{64 ··​{
66 ····​rep·​=·​reply:​:​stock_reply(reply:​:​not_found)​;​65 ····​rep·​=·​reply:​:​stock_reply(reply:​:​not_found)​;​
67 ····​return;​66 ····​return;​
68 ··​}67 ··​}
69 68
70 ··​/​/​·​Fill·​out·​the·​reply·​to·​be·​sent·​to·​the·​client.​69 ··​/​/​·​Fill·​out·​the·​reply·​to·​be·​sent·​to·​the·​client.​
71 ··​rep.​status·​=·​reply:​:​ok;​70 ··​rep.​status·​=·​reply:​:​ok;​
72 ··​char·​buf[512];​71 ··​char·​buf[512];​
73 ··​while·​(is.​read(buf,​·​sizeof(buf)​)​.​gcount()​·​>·​0)​72 ··​while·​(is.​read(buf,​·​sizeof(buf)​)​.​gcount()​·​>·​0)​
74 ····​rep.​content.​append(buf,​·​is.​gcount()​)​;​73 ····​rep.​content.​append(buf,​·​is.​gcount()​)​;​
75 ··​rep.​headers.​resize(2)​;​74 ··​rep.​headers.​resize(2)​;​
76 ··​rep.​headers[0].​name·​=·​"Content-​Length";​75 ··​rep.​headers[0].​name·​=·​"Content-​Length";​
77 ··​rep.​headers[0].​value·​=·boost:​:​lexical_cast<std:​:​string>(rep.​content.​size()​)​;​76 ··​rep.​headers[0].​value·​=·​std:​:​to_string(rep.​content.​size()​)​;​
78 ··​rep.​headers[1].​name·​=·​"Content-​Type";​77 ··​rep.​headers[1].​name·​=·​"Content-​Type";​
79 ··​rep.​headers[1].​value·​=·​mime_types:​:​extension_to_type(ext​ension)​;​78 ··​rep.​headers[1].​value·​=·​mime_types:​:​extension_to_type(ext​ension)​;​
80 }79 }
81 80
82 bool·​request_handler:​:​url_decode(const·​std:​:​string&·​in,​·​std:​:​string&·​out)​81 bool·​request_handler:​:​url_decode(const·​std:​:​string&·​in,​·​std:​:​string&·​out)​
83 {82 {
84 ··​out.​clear()​;​83 ··​out.​clear()​;​
85 ··​out.​reserve(in.​size()​)​;​84 ··​out.​reserve(in.​size()​)​;​
86 ··​for·​(std:​:​size_t·​i·​=·​0;​·​i·​<·​in.​size()​;​·​++i)​85 ··​for·​(std:​:​size_t·​i·​=·​0;​·​i·​<·​in.​size()​;​·​++i)​
87 ··​{86 ··​{
88 ····​if·​(in[i]·​==·​'%')​87 ····​if·​(in[i]·​==·​'%')​
89 ····​{88 ····​{
90 ······​if·​(i·​+·​3·​<=·​in.​size()​)​89 ······​if·​(i·​+·​3·​<=·​in.​size()​)​
91 ······​{90 ······​{
92 ········​int·​value·​=·​0;​91 ········​int·​value·​=·​0;​
93 ········​std:​:​istringstream·​is(in.​substr(i·​+·​1,​·​2)​)​;​92 ········​std:​:​istringstream·​is(in.​substr(i·​+·​1,​·​2)​)​;​
94 ········​if·​(is·​>>·​std:​:​hex·​>>·​value)​93 ········​if·​(is·​>>·​std:​:​hex·​>>·​value)​
95 ········​{94 ········​{
96 ··········​out·​+=·​static_cast<char>(val​ue)​;​95 ··········​out·​+=·​static_cast<char>(val​ue)​;​
97 ··········​i·​+=·​2;​96 ··········​i·​+=·​2;​
98 ········​}97 ········​}
99 ········​else98 ········​else
100 ········​{99 ········​{
101 ··········​return·​false;​100 ··········​return·​false;​
102 ········​}101 ········​}
103 ······​}102 ······​}
104 ······​else103 ······​else
105 ······​{104 ······​{
106 ········​return·​false;​105 ········​return·​false;​
107 ······​}106 ······​}
108 ····​}107 ····​}
109 ····​else·​if·​(in[i]·​==·​'+')​108 ····​else·​if·​(in[i]·​==·​'+')​
110 ····​{109 ····​{
111 ······​out·​+=·​'·​';​110 ······​out·​+=·​'·​';​
112 ····​}111 ····​}
113 ····​else112 ····​else
114 ····​{113 ····​{
115 ······​out·​+=·​in[i];​114 ······​out·​+=·​in[i];​
116 ····​}115 ····​}
117 ··​}116 ··​}
118 ··​return·​true;​117 ··​return·​true;​
119 }118 }
120 119
121 }·​/​/​·​namespace·​server120 }·​/​/​·​namespace·​server
122 }·​/​/​·​namespace·​http121 }·​/​/​·​namespace·​http
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_handler.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/request_handler.hpp.html deleted file mode 100644 index 70a9741..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_handler.hpp.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - HTML Diff http/server/request_handler.hpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​request_handler.​hppsrc/​examples/​cpp11/​http/​server/​request_handler.​hpp
1 /​/​1 /​/​
2 /​/​·​request_handler.​hpp2 /​/​·​request_handler.​hpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #ifndef·​HTTP_REQUEST_HANDLER_​HPP11 #ifndef·​HTTP_REQUEST_HANDLER_​HPP
12 #define·​HTTP_REQUEST_HANDLER_​HPP12 #define·​HTTP_REQUEST_HANDLER_​HPP
13 13
14 #include·​<string>14 #include·​<string>
15 #include·​<boost/​noncopyable.​hpp>
16 15
17 namespace·​http·​{16 namespace·​http·​{
18 namespace·​server·​{17 namespace·​server·​{
19 18
20 struct·​reply;​19 struct·​reply;​
21 struct·​request;​20 struct·​request;​
22 21
23 /​/​/​·​The·​common·​handler·​for·​all·​incoming·​requests.​22 /​/​/​·​The·​common·​handler·​for·​all·​incoming·​requests.​
24 class·​request_handler23 class·​request_handler
25 ··​:​·​private·​boost:​:​noncopyable
26 {24 {
27 public:​25 public:​
26 ··​request_handler(const​·​request_handler&)​·​=·​delete;​
27 ··​request_handler&·​operator=(const·​request_handler&)​·​=·​delete;​
28
28 ··​/​/​/​·​Construct·​with·​a·​directory·​containing·​files·​to·​be·​served.​29 ··​/​/​/​·​Construct·​with·​a·​directory·​containing·​files·​to·​be·​served.​
29 ··​explicit·​request_handler(const​·​std:​:​string&·​doc_root)​;​30 ··​explicit·​request_handler(const​·​std:​:​string&·​doc_root)​;​
30 31
31 ··​/​/​/​·​Handle·​a·​request·​and·​produce·​a·​reply.​32 ··​/​/​/​·​Handle·​a·​request·​and·​produce·​a·​reply.​
32 ··​void·​handle_request(const·​request&·​req,​·​reply&·​rep)​;​33 ··​void·​handle_request(const·​request&·​req,​·​reply&·​rep)​;​
33 34
34 private:​35 private:​
35 ··​/​/​/​·​The·​directory·​containing·​the·​files·​to·​be·​served.​36 ··​/​/​/​·​The·​directory·​containing·​the·​files·​to·​be·​served.​
36 ··​std:​:​string·​doc_root_;​37 ··​std:​:​string·​doc_root_;​
37 38
38 ··​/​/​/​·​Perform·​URL-​decoding·​on·​a·​string.​·​Returns·​false·​if·​the·​encoding·​was39 ··​/​/​/​·​Perform·​URL-​decoding·​on·​a·​string.​·​Returns·​false·​if·​the·​encoding·​was
39 ··​/​/​/​·​invalid.​40 ··​/​/​/​·​invalid.​
40 ··​static·​bool·​url_decode(const·​std:​:​string&·​in,​·​std:​:​string&·​out)​;​41 ··​static·​bool·​url_decode(const·​std:​:​string&·​in,​·​std:​:​string&·​out)​;​
41 };​42 };​
42 43
43 }·​/​/​·​namespace·​server44 }·​/​/​·​namespace·​server
44 }·​/​/​·​namespace·​http45 }·​/​/​·​namespace·​http
45 46
46 #endif·​/​/​·​HTTP_REQUEST_HANDLER_​HPP47 #endif·​/​/​·​HTTP_REQUEST_HANDLER_​HPP
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_parser.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/request_parser.cpp.html deleted file mode 100644 index f7d6b92..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_parser.cpp.html +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - HTML Diff http/server/request_parser.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​request_parser.​cppsrc/​examples/​cpp11/​http/​server/​request_parser.​cpp
1 /​/​1 /​/​
2 /​/​·​request_parser.​cpp2 /​/​·​request_parser.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"request_parser.​hpp"11 #include·​"request_parser.​hpp"
12 #include·​"request.​hpp"12 #include·​"request.​hpp"
13 13
14 namespace·​http·​{14 namespace·​http·​{
15 namespace·​server·​{15 namespace·​server·​{
16 16
17 request_parser:​:​request_parser()​17 request_parser:​:​request_parser()​
18 ··​:​·​state_(method_start)​18 ··​:​·​state_(method_start)​
19 {19 {
20 }20 }
21 21
22 void·​request_parser:​:​reset()​22 void·​request_parser:​:​reset()​
23 {23 {
24 ··​state_·​=·​method_start;​24 ··​state_·​=·​method_start;​
25 }25 }
26 26
27 boost:​:​tribool·​request_parser:​:​consume(request&·​req,​·​char·​input)​27 request_parser:​:​result_type·​request_parser:​:​consume(request&·​req,​·​char·​input)​
28 {28 {
29 ··​switch·​(state_)​29 ··​switch·​(state_)​
30 ··​{30 ··​{
31 ··​case·​method_start:​31 ··​case·​method_start:​
32 ····​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​32 ····​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​
33 ····​{33 ····​{
34 ······​return·false;​34 ······​return·bad;​
35 ····​}35 ····​}
36 ····​else36 ····​else
37 ····​{37 ····​{
38 ······​state_·​=·​method;​38 ······​state_·​=·​method;​
39 ······​req.​method.​push_back(input)​;​39 ······​req.​method.​push_back(input)​;​
40 ······​return·boost:​:​indeterminate;​40 ······​return·​indeterminate;​
41 ····​}41 ····​}
42 ··​case·​method:​42 ··​case·​method:​
43 ····​if·​(input·​==·​'·​')​43 ····​if·​(input·​==·​'·​')​
44 ····​{44 ····​{
45 ······​state_·​=·​uri;​45 ······​state_·​=·​uri;​
46 ······​return·boost:​:​indeterminate;​46 ······​return·​indeterminate;​
47 ····​}47 ····​}
48 ····​else·​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​48 ····​else·​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​
49 ····​{49 ····​{
50 ······​return·false;​50 ······​return·bad;​
51 ····​}51 ····​}
52 ····​else52 ····​else
53 ····​{53 ····​{
54 ······​req.​method.​push_back(input)​;​54 ······​req.​method.​push_back(input)​;​
55 ······​return·boost:​:​indeterminate;​55 ······​return·​indeterminate;​
56 ····​}56 ····​}
57 ··​case·​uri:​57 ··​case·​uri:​
58 ····​if·​(input·​==·​'·​')​58 ····​if·​(input·​==·​'·​')​
59 ····​{59 ····​{
60 ······​state_·​=·​http_version_h;​60 ······​state_·​=·​http_version_h;​
61 ······​return·boost:​:​indeterminate;​61 ······​return·​indeterminate;​
62 ····​}62 ····​}
63 ····​else·​if·​(is_ctl(input)​)​63 ····​else·​if·​(is_ctl(input)​)​
64 ····​{64 ····​{
65 ······​return·false;​65 ······​return·bad;​
66 ····​}66 ····​}
67 ····​else67 ····​else
68 ····​{68 ····​{
69 ······​req.​uri.​push_back(input)​;​69 ······​req.​uri.​push_back(input)​;​
70 ······​return·boost:​:​indeterminate;​70 ······​return·​indeterminate;​
71 ····​}71 ····​}
72 ··​case·​http_version_h:​72 ··​case·​http_version_h:​
73 ····​if·​(input·​==·​'H')​73 ····​if·​(input·​==·​'H')​
74 ····​{74 ····​{
75 ······​state_·​=·​http_version_t_1;​75 ······​state_·​=·​http_version_t_1;​
76 ······​return·boost:​:​indeterminate;​76 ······​return·​indeterminate;​
77 ····​}77 ····​}
78 ····​else78 ····​else
79 ····​{79 ····​{
80 ······​return·false;​80 ······​return·bad;​
81 ····​}81 ····​}
82 ··​case·​http_version_t_1:​82 ··​case·​http_version_t_1:​
83 ····​if·​(input·​==·​'T')​83 ····​if·​(input·​==·​'T')​
84 ····​{84 ····​{
85 ······​state_·​=·​http_version_t_2;​85 ······​state_·​=·​http_version_t_2;​
86 ······​return·boost:​:​indeterminate;​86 ······​return·​indeterminate;​
87 ····​}87 ····​}
88 ····​else88 ····​else
89 ····​{89 ····​{
90 ······​return·false;​90 ······​return·bad;​
91 ····​}91 ····​}
92 ··​case·​http_version_t_2:​92 ··​case·​http_version_t_2:​
93 ····​if·​(input·​==·​'T')​93 ····​if·​(input·​==·​'T')​
94 ····​{94 ····​{
95 ······​state_·​=·​http_version_p;​95 ······​state_·​=·​http_version_p;​
96 ······​return·boost:​:​indeterminate;​96 ······​return·​indeterminate;​
97 ····​}97 ····​}
98 ····​else98 ····​else
99 ····​{99 ····​{
100 ······​return·false;​100 ······​return·bad;​
101 ····​}101 ····​}
102 ··​case·​http_version_p:​102 ··​case·​http_version_p:​
103 ····​if·​(input·​==·​'P')​103 ····​if·​(input·​==·​'P')​
104 ····​{104 ····​{
105 ······​state_·​=·​http_version_slash;​105 ······​state_·​=·​http_version_slash;​
106 ······​return·boost:​:​indeterminate;​106 ······​return·​indeterminate;​
107 ····​}107 ····​}
108 ····​else108 ····​else
109 ····​{109 ····​{
110 ······​return·false;​110 ······​return·bad;​
111 ····​}111 ····​}
112 ··​case·​http_version_slash:​112 ··​case·​http_version_slash:​
113 ····​if·​(input·​==·​'/​')​113 ····​if·​(input·​==·​'/​')​
114 ····​{114 ····​{
115 ······​req.​http_version_major·​=·​0;​115 ······​req.​http_version_major·​=·​0;​
116 ······​req.​http_version_minor·​=·​0;​116 ······​req.​http_version_minor·​=·​0;​
117 ······​state_·​=·​http_version_major_st​art;​117 ······​state_·​=·​http_version_major_st​art;​
118 ······​return·boost:​:​indeterminate;​118 ······​return·​indeterminate;​
119 ····​}119 ····​}
120 ····​else120 ····​else
121 ····​{121 ····​{
122 ······​return·false;​122 ······​return·bad;​
123 ····​}123 ····​}
124 ··​case·​http_version_major_st​art:​124 ··​case·​http_version_major_st​art:​
125 ····​if·​(is_digit(input)​)​125 ····​if·​(is_digit(input)​)​
126 ····​{126 ····​{
127 ······​req.​http_version_major·​=·​req.​http_version_major·​*·​10·​+·​input·​-​·​'0';​127 ······​req.​http_version_major·​=·​req.​http_version_major·​*·​10·​+·​input·​-​·​'0';​
128 ······​state_·​=·​http_version_major;​128 ······​state_·​=·​http_version_major;​
129 ······​return·boost:​:​indeterminate;​129 ······​return·​indeterminate;​
130 ····​}130 ····​}
131 ····​else131 ····​else
132 ····​{132 ····​{
133 ······​return·false;​133 ······​return·bad;​
134 ····​}134 ····​}
135 ··​case·​http_version_major:​135 ··​case·​http_version_major:​
136 ····​if·​(input·​==·​'.​')​136 ····​if·​(input·​==·​'.​')​
137 ····​{137 ····​{
138 ······​state_·​=·​http_version_minor_st​art;​138 ······​state_·​=·​http_version_minor_st​art;​
139 ······​return·boost:​:​indeterminate;​139 ······​return·​indeterminate;​
140 ····​}140 ····​}
141 ····​else·​if·​(is_digit(input)​)​141 ····​else·​if·​(is_digit(input)​)​
142 ····​{142 ····​{
143 ······​req.​http_version_major·​=·​req.​http_version_major·​*·​10·​+·​input·​-​·​'0';​143 ······​req.​http_version_major·​=·​req.​http_version_major·​*·​10·​+·​input·​-​·​'0';​
144 ······​return·boost:​:​indeterminate;​144 ······​return·​indeterminate;​
145 ····​}145 ····​}
146 ····​else146 ····​else
147 ····​{147 ····​{
148 ······​return·false;​148 ······​return·bad;​
149 ····​}149 ····​}
150 ··​case·​http_version_minor_st​art:​150 ··​case·​http_version_minor_st​art:​
151 ····​if·​(is_digit(input)​)​151 ····​if·​(is_digit(input)​)​
152 ····​{152 ····​{
153 ······​req.​http_version_minor·​=·​req.​http_version_minor·​*·​10·​+·​input·​-​·​'0';​153 ······​req.​http_version_minor·​=·​req.​http_version_minor·​*·​10·​+·​input·​-​·​'0';​
154 ······​state_·​=·​http_version_minor;​154 ······​state_·​=·​http_version_minor;​
155 ······​return·boost:​:​indeterminate;​155 ······​return·​indeterminate;​
156 ····​}156 ····​}
157 ····​else157 ····​else
158 ····​{158 ····​{
159 ······​return·false;​159 ······​return·bad;​
160 ····​}160 ····​}
161 ··​case·​http_version_minor:​161 ··​case·​http_version_minor:​
162 ····​if·​(input·​==·​'\r')​162 ····​if·​(input·​==·​'\r')​
163 ····​{163 ····​{
164 ······​state_·​=·​expecting_newline_1;​164 ······​state_·​=·​expecting_newline_1;​
165 ······​return·boost:​:​indeterminate;​165 ······​return·​indeterminate;​
166 ····​}166 ····​}
167 ····​else·​if·​(is_digit(input)​)​167 ····​else·​if·​(is_digit(input)​)​
168 ····​{168 ····​{
169 ······​req.​http_version_minor·​=·​req.​http_version_minor·​*·​10·​+·​input·​-​·​'0';​169 ······​req.​http_version_minor·​=·​req.​http_version_minor·​*·​10·​+·​input·​-​·​'0';​
170 ······​return·boost:​:​indeterminate;​170 ······​return·​indeterminate;​
171 ····​}171 ····​}
172 ····​else172 ····​else
173 ····​{173 ····​{
174 ······​return·false;​174 ······​return·bad;​
175 ····​}175 ····​}
176 ··​case·​expecting_newline_1:​176 ··​case·​expecting_newline_1:​
177 ····​if·​(input·​==·​'\n')​177 ····​if·​(input·​==·​'\n')​
178 ····​{178 ····​{
179 ······​state_·​=·​header_line_start;​179 ······​state_·​=·​header_line_start;​
180 ······​return·boost:​:​indeterminate;​180 ······​return·​indeterminate;​
181 ····​}181 ····​}
182 ····​else182 ····​else
183 ····​{183 ····​{
184 ······​return·false;​184 ······​return·bad;​
185 ····​}185 ····​}
186 ··​case·​header_line_start:​186 ··​case·​header_line_start:​
187 ····​if·​(input·​==·​'\r')​187 ····​if·​(input·​==·​'\r')​
188 ····​{188 ····​{
189 ······​state_·​=·​expecting_newline_3;​189 ······​state_·​=·​expecting_newline_3;​
190 ······​return·boost:​:​indeterminate;​190 ······​return·​indeterminate;​
191 ····​}191 ····​}
192 ····​else·​if·​(!req.​headers.​empty()​·​&&·​(input·​==·​'·​'·​||·​input·​==·​'\t')​)​192 ····​else·​if·​(!req.​headers.​empty()​·​&&·​(input·​==·​'·​'·​||·​input·​==·​'\t')​)​
193 ····​{193 ····​{
194 ······​state_·​=·​header_lws;​194 ······​state_·​=·​header_lws;​
195 ······​return·boost:​:​indeterminate;​195 ······​return·​indeterminate;​
196 ····​}196 ····​}
197 ····​else·​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​197 ····​else·​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​
198 ····​{198 ····​{
199 ······​return·false;​199 ······​return·bad;​
200 ····​}200 ····​}
201 ····​else201 ····​else
202 ····​{202 ····​{
203 ······​req.​headers.​push_back(header()​)​;​203 ······​req.​headers.​push_back(header()​)​;​
204 ······​req.​headers.​back()​.​name.​push_back(input)​;​204 ······​req.​headers.​back()​.​name.​push_back(input)​;​
205 ······​state_·​=·​header_name;​205 ······​state_·​=·​header_name;​
206 ······​return·boost:​:​indeterminate;​206 ······​return·​indeterminate;​
207 ····​}207 ····​}
208 ··​case·​header_lws:​208 ··​case·​header_lws:​
209 ····​if·​(input·​==·​'\r')​209 ····​if·​(input·​==·​'\r')​
210 ····​{210 ····​{
211 ······​state_·​=·​expecting_newline_2;​211 ······​state_·​=·​expecting_newline_2;​
212 ······​return·boost:​:​indeterminate;​212 ······​return·​indeterminate;​
213 ····​}213 ····​}
214 ····​else·​if·​(input·​==·​'·​'·​||·​input·​==·​'\t')​214 ····​else·​if·​(input·​==·​'·​'·​||·​input·​==·​'\t')​
215 ····​{215 ····​{
216 ······​return·boost:​:​indeterminate;​216 ······​return·​indeterminate;​
217 ····​}217 ····​}
218 ····​else·​if·​(is_ctl(input)​)​218 ····​else·​if·​(is_ctl(input)​)​
219 ····​{219 ····​{
220 ······​return·false;​220 ······​return·bad;​
221 ····​}221 ····​}
222 ····​else222 ····​else
223 ····​{223 ····​{
224 ······​state_·​=·​header_value;​224 ······​state_·​=·​header_value;​
225 ······​req.​headers.​back()​.​value.​push_back(input)​;​225 ······​req.​headers.​back()​.​value.​push_back(input)​;​
226 ······​return·boost:​:​indeterminate;​226 ······​return·​indeterminate;​
227 ····​}227 ····​}
228 ··​case·​header_name:​228 ··​case·​header_name:​
229 ····​if·​(input·​==·​':​')​229 ····​if·​(input·​==·​':​')​
230 ····​{230 ····​{
231 ······​state_·​=·​space_before_header_v​alue;​231 ······​state_·​=·​space_before_header_v​alue;​
232 ······​return·boost:​:​indeterminate;​232 ······​return·​indeterminate;​
233 ····​}233 ····​}
234 ····​else·​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​234 ····​else·​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​
235 ····​{235 ····​{
236 ······​return·false;​236 ······​return·bad;​
237 ····​}237 ····​}
238 ····​else238 ····​else
239 ····​{239 ····​{
240 ······​req.​headers.​back()​.​name.​push_back(input)​;​240 ······​req.​headers.​back()​.​name.​push_back(input)​;​
241 ······​return·boost:​:​indeterminate;​241 ······​return·​indeterminate;​
242 ····​}242 ····​}
243 ··​case·​space_before_header_v​alue:​243 ··​case·​space_before_header_v​alue:​
244 ····​if·​(input·​==·​'·​')​244 ····​if·​(input·​==·​'·​')​
245 ····​{245 ····​{
246 ······​state_·​=·​header_value;​246 ······​state_·​=·​header_value;​
247 ······​return·boost:​:​indeterminate;​247 ······​return·​indeterminate;​
248 ····​}248 ····​}
249 ····​else249 ····​else
250 ····​{250 ····​{
251 ······​return·false;​251 ······​return·bad;​
252 ····​}252 ····​}
253 ··​case·​header_value:​253 ··​case·​header_value:​
254 ····​if·​(input·​==·​'\r')​254 ····​if·​(input·​==·​'\r')​
255 ····​{255 ····​{
256 ······​state_·​=·​expecting_newline_2;​256 ······​state_·​=·​expecting_newline_2;​
257 ······​return·boost:​:​indeterminate;​257 ······​return·​indeterminate;​
258 ····​}258 ····​}
259 ····​else·​if·​(is_ctl(input)​)​259 ····​else·​if·​(is_ctl(input)​)​
260 ····​{260 ····​{
261 ······​return·false;​261 ······​return·bad;​
262 ····​}262 ····​}
263 ····​else263 ····​else
264 ····​{264 ····​{
265 ······​req.​headers.​back()​.​value.​push_back(input)​;​265 ······​req.​headers.​back()​.​value.​push_back(input)​;​
266 ······​return·boost:​:​indeterminate;​266 ······​return·​indeterminate;​
267 ····​}267 ····​}
268 ··​case·​expecting_newline_2:​268 ··​case·​expecting_newline_2:​
269 ····​if·​(input·​==·​'\n')​269 ····​if·​(input·​==·​'\n')​
270 ····​{270 ····​{
271 ······​state_·​=·​header_line_start;​271 ······​state_·​=·​header_line_start;​
272 ······​return·boost:​:​indeterminate;​272 ······​return·​indeterminate;​
273 ····​}273 ····​}
274 ····​else274 ····​else
275 ····​{275 ····​{
276 ······​return·false;​276 ······​return·bad;​
277 ····​}277 ····​}
278 ··​case·​expecting_newline_3:​278 ··​case·​expecting_newline_3:​
279 ····​return·​(input·​==·​'\n')​;​279 ····​return·​(input·​==·​'\n')​·?·good·:​·bad;​
280 ··​default:​280 ··​default:​
281 ····​return·false;​281 ····​return·bad;​
282 ··​}282 ··​}
283 }283 }
284 284
285 bool·​request_parser:​:​is_char(int·​c)​285 bool·​request_parser:​:​is_char(int·​c)​
286 {286 {
287 ··​return·​c·​>=·​0·​&&·​c·​<=·​127;​287 ··​return·​c·​>=·​0·​&&·​c·​<=·​127;​
288 }288 }
289 289
290 bool·​request_parser:​:​is_ctl(int·​c)​290 bool·​request_parser:​:​is_ctl(int·​c)​
291 {291 {
292 ··​return·​(c·​>=·​0·​&&·​c·​<=·​31)​·​||·​(c·​==·​127)​;​292 ··​return·​(c·​>=·​0·​&&·​c·​<=·​31)​·​||·​(c·​==·​127)​;​
293 }293 }
294 294
295 bool·​request_parser:​:​is_tspecial(int·​c)​295 bool·​request_parser:​:​is_tspecial(int·​c)​
296 {296 {
297 ··​switch·​(c)​297 ··​switch·​(c)​
298 ··​{298 ··​{
299 ··​case·​'(':​·​case·​')​':​·​case·​'<':​·​case·​'>':​·​case·​'@':​299 ··​case·​'(':​·​case·​')​':​·​case·​'<':​·​case·​'>':​·​case·​'@':​
300 ··​case·​',​':​·​case·​';​':​·​case·​':​':​·​case·​'\\':​·​case·​'"':​300 ··​case·​',​':​·​case·​';​':​·​case·​':​':​·​case·​'\\':​·​case·​'"':​
301 ··​case·​'/​':​·​case·​'[':​·​case·​']':​·​case·​'?':​·​case·​'=':​301 ··​case·​'/​':​·​case·​'[':​·​case·​']':​·​case·​'?':​·​case·​'=':​
302 ··​case·​'{':​·​case·​'}':​·​case·​'·​':​·​case·​'\t':​302 ··​case·​'{':​·​case·​'}':​·​case·​'·​':​·​case·​'\t':​
303 ····​return·​true;​303 ····​return·​true;​
304 ··​default:​304 ··​default:​
305 ····​return·​false;​305 ····​return·​false;​
306 ··​}306 ··​}
307 }307 }
308 308
309 bool·​request_parser:​:​is_digit(int·​c)​309 bool·​request_parser:​:​is_digit(int·​c)​
310 {310 {
311 ··​return·​c·​>=·​'0'·​&&·​c·​<=·​'9';​311 ··​return·​c·​>=·​'0'·​&&·​c·​<=·​'9';​
312 }312 }
313 313
314 }·​/​/​·​namespace·​server314 }·​/​/​·​namespace·​server
315 }·​/​/​·​namespace·​http315 }·​/​/​·​namespace·​http
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_parser.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/request_parser.hpp.html deleted file mode 100644 index f480bcf..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_parser.hpp.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - HTML Diff http/server/request_parser.hpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​request_parser.​hppsrc/​examples/​cpp11/​http/​server/​request_parser.​hpp
1 /​/​1 /​/​
2 /​/​·​request_parser.​hpp2 /​/​·​request_parser.​hpp
3 /​/​·​~~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #ifndef·​HTTP_REQUEST_PARSER_H​PP11 #ifndef·​HTTP_REQUEST_PARSER_H​PP
12 #define·​HTTP_REQUEST_PARSER_H​PP12 #define·​HTTP_REQUEST_PARSER_H​PP
13 13
14 #include·​<boost/​logic/​tribool.​hpp>14 #include·​<tuple>
15 #include·<boost/​tuple/​tuple.​hpp>
16 15
17 namespace·​http·​{16 namespace·​http·​{
18 namespace·​server·​{17 namespace·​server·​{
19 18
20 struct·​request;​19 struct·​request;​
21 20
22 /​/​/​·​Parser·​for·​incoming·​requests.​21 /​/​/​·​Parser·​for·​incoming·​requests.​
23 class·​request_parser22 class·​request_parser
24 {23 {
25 public:​24 public:​
26 ··​/​/​/​·​Construct·​ready·​to·​parse·​the·​request·​method.​25 ··​/​/​/​·​Construct·​ready·​to·​parse·​the·​request·​method.​
27 ··​request_parser()​;​26 ··​request_parser()​;​
28 27
29 ··​/​/​/​·​Reset·​to·​initial·​parser·​state.​28 ··​/​/​/​·​Reset·​to·​initial·​parser·​state.​
30 ··​void·​reset()​;​29 ··​void·​reset()​;​
31 30
32 ··​/​/​/​·Parse·some·data.​·The·tribool·return·value·is·true·when·a·complete·request31 ··​/​/​/​·Result·of·​parse.​
33 ··/​/​/​·has·been·parsed,​·false·if·the·data·is·invalid,​·​indeterminate·when·more32 ··​enum·result_type·{·good,​·bad,​·​indeterminate·};​
34 ··/​/​/​·data·is·required.​·The·InputIterator·return·value·indicates·how·much·of·the33
35 ··​/​/​/​·input·has·been·​consumed.​34 ··​/​/​/​·Parse·some·data.​·The·enum·return·value·is·good·when·a·​complete·request·has
35 ··​/​/​/​·​been·​parsed,​·​bad·​if·​the·​data·​is·​invalid,​·​indeterminate·​when·​more·​data·​is
36 ··​/​/​/​·​required.​·​The·​InputIterator·​return·​value·​indicates·​how·​much·​of·​the·​input
37 ··​/​/​/​·​has·​been·​consumed.​
36 ··​template·​<typename·​InputIterator>38 ··​template·​<typename·​InputIterator>
37 ··boost:​:​tuple<boost:​:​tribool,​·​InputIterator>·​parse(request&·​req,​39 ··​std:​:​tuple<result_type,​·​InputIterator>·​parse(request&·​req,​
38 ······​InputIterator·​begin,​·​InputIterator·​end)​40 ······​InputIterator·​begin,​·​InputIterator·​end)​
39 ··​{41 ··​{
40 ····​while·​(begin·​!=·​end)​42 ····​while·​(begin·​!=·​end)​
41 ····​{43 ····​{
42 ······boost:​:​tribool·​result·​=·​consume(req,​·​*begin++)​;​44 ······result_type·​result·​=·​consume(req,​·​*begin++)​;​
43 ······​if·​(result·​||·!result)​45 ······​if·​(result·==·good·​||·​result·==·bad)​
44 ········​return·boost:​:​make_tuple(result,​·​begin)​;​46 ········​return·​std:​:​make_tuple(result,​·​begin)​;​
45 ····​}47 ····​}
46 ····boost:​:​tribool·result·=·boost:​:​indeterminate;​48 ····return·std:​:​make_tuple(indetermin​ate,​·begin)​;​
47 ····return·boost:​:​make_tuple(result,​·begin)​;​
48 ··​}49 ··​}
49 50
50 private:​51 private:​
51 ··​/​/​/​·​Handle·​the·​next·​character·​of·​input.​52 ··​/​/​/​·​Handle·​the·​next·​character·​of·​input.​
52 ··boost:​:​tribool·​consume(request&·​req,​·​char·​input)​;​53 ··result_type·​consume(request&·​req,​·​char·​input)​;​
53 54
54 ··​/​/​/​·​Check·​if·​a·​byte·​is·​an·​HTTP·​character.​55 ··​/​/​/​·​Check·​if·​a·​byte·​is·​an·​HTTP·​character.​
55 ··​static·​bool·​is_char(int·​c)​;​56 ··​static·​bool·​is_char(int·​c)​;​
56 57
57 ··​/​/​/​·​Check·​if·​a·​byte·​is·​an·​HTTP·​control·​character.​58 ··​/​/​/​·​Check·​if·​a·​byte·​is·​an·​HTTP·​control·​character.​
58 ··​static·​bool·​is_ctl(int·​c)​;​59 ··​static·​bool·​is_ctl(int·​c)​;​
59 60
60 ··​/​/​/​·​Check·​if·​a·​byte·​is·​defined·​as·​an·​HTTP·​tspecial·​character.​61 ··​/​/​/​·​Check·​if·​a·​byte·​is·​defined·​as·​an·​HTTP·​tspecial·​character.​
61 ··​static·​bool·​is_tspecial(int·​c)​;​62 ··​static·​bool·​is_tspecial(int·​c)​;​
62 63
63 ··​/​/​/​·​Check·​if·​a·​byte·​is·​a·​digit.​64 ··​/​/​/​·​Check·​if·​a·​byte·​is·​a·​digit.​
64 ··​static·​bool·​is_digit(int·​c)​;​65 ··​static·​bool·​is_digit(int·​c)​;​
65 66
66 ··​/​/​/​·​The·​current·​state·​of·​the·​parser.​67 ··​/​/​/​·​The·​current·​state·​of·​the·​parser.​
67 ··​enum·​state68 ··​enum·​state
68 ··​{69 ··​{
69 ····​method_start,​70 ····​method_start,​
70 ····​method,​71 ····​method,​
71 ····​uri,​72 ····​uri,​
72 ····​http_version_h,​73 ····​http_version_h,​
73 ····​http_version_t_1,​74 ····​http_version_t_1,​
74 ····​http_version_t_2,​75 ····​http_version_t_2,​
75 ····​http_version_p,​76 ····​http_version_p,​
76 ····​http_version_slash,​77 ····​http_version_slash,​
77 ····​http_version_major_st​art,​78 ····​http_version_major_st​art,​
78 ····​http_version_major,​79 ····​http_version_major,​
79 ····​http_version_minor_st​art,​80 ····​http_version_minor_st​art,​
80 ····​http_version_minor,​81 ····​http_version_minor,​
81 ····​expecting_newline_1,​82 ····​expecting_newline_1,​
82 ····​header_line_start,​83 ····​header_line_start,​
83 ····​header_lws,​84 ····​header_lws,​
84 ····​header_name,​85 ····​header_name,​
85 ····​space_before_header_v​alue,​86 ····​space_before_header_v​alue,​
86 ····​header_value,​87 ····​header_value,​
87 ····​expecting_newline_2,​88 ····​expecting_newline_2,​
88 ····​expecting_newline_389 ····​expecting_newline_3
89 ··​}·​state_;​90 ··​}·​state_;​
90 };​91 };​
91 92
92 }·​/​/​·​namespace·​server93 }·​/​/​·​namespace·​server
93 }·​/​/​·​namespace·​http94 }·​/​/​·​namespace·​http
94 95
95 #endif·​/​/​·​HTTP_REQUEST_PARSER_H​PP96 #endif·​/​/​·​HTTP_REQUEST_PARSER_H​PP
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/server.cpp.html deleted file mode 100644 index e71fce4..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/server.cpp.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - HTML Diff http/server/server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​server.​cppsrc/​examples/​cpp11/​http/​server/​server.​cpp
1 /​/​1 /​/​
2 /​/​·​server.​cpp2 /​/​·​server.​cpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"server.​hpp"11 #include·​"server.​hpp"
12 #include·​<boost/​bind.​hpp>
13 #include·​<signal.​h>12 #include·​<signal.​h>
13 #include·​<utility>
14 14
15 namespace·​http·​{15 namespace·​http·​{
16 namespace·​server·​{16 namespace·​server·​{
17 17
18 server:​:​server(const·​std:​:​string&·​address,​·​const·​std:​:​string&·​port,​18 server:​:​server(const·​std:​:​string&·​address,​·​const·​std:​:​string&·​port,​
19 ····​const·​std:​:​string&·​doc_root)​19 ····​const·​std:​:​string&·​doc_root)​
20 ··​:​·​io_context_()​,​20 ··​:​·​io_context_(1)​,​
21 ····​signals_(io_context_)​,​21 ····​signals_(io_context_)​,​
22 ····​acceptor_(io_context_​)​,​22 ····​acceptor_(io_context_​)​,​
23 ····​connection_manager_()​,​23 ····​connection_manager_()​,​
24 ····​new_connection_()​,​
25 ····​request_handler_(doc_​root)​24 ····​request_handler_(doc_​root)​
26 {25 {
27 ··​/​/​·​Register·​to·​handle·​the·​signals·​that·​indicate·​when·​the·​server·​should·​exit.​26 ··​/​/​·​Register·​to·​handle·​the·​signals·​that·​indicate·​when·​the·​server·​should·​exit.​
28 ··​/​/​·​It·​is·​safe·​to·​register·​for·​the·​same·​signal·​multiple·​times·​in·​a·​program,​27 ··​/​/​·​It·​is·​safe·​to·​register·​for·​the·​same·​signal·​multiple·​times·​in·​a·​program,​
29 ··​/​/​·​provided·​all·​registration·​for·​the·​specified·​signal·​is·​made·​through·​Asio.​28 ··​/​/​·​provided·​all·​registration·​for·​the·​specified·​signal·​is·​made·​through·​Asio.​
30 ··​signals_.​add(SIGINT)​;​29 ··​signals_.​add(SIGINT)​;​
31 ··​signals_.​add(SIGTERM)​;​30 ··​signals_.​add(SIGTERM)​;​
32 #if·​defined(SIGQUIT)​31 #if·​defined(SIGQUIT)​
33 ··​signals_.​add(SIGQUIT)​;​32 ··​signals_.​add(SIGQUIT)​;​
34 #endif·​/​/​·​defined(SIGQUIT)​33 #endif·​/​/​·​defined(SIGQUIT)​
35 ··signals_.​async_wait(boost:​:​bind(&server:​:​handle_stop,​·this)​)​;​34
35 ··​do_await_stop()​;​
36 36
37 ··​/​/​·​Open·​the·​acceptor·​with·​the·​option·​to·​reuse·​the·​address·​(i.​e.​·​SO_REUSEADDR)​.​37 ··​/​/​·​Open·​the·​acceptor·​with·​the·​option·​to·​reuse·​the·​address·​(i.​e.​·​SO_REUSEADDR)​.​
38 ··​asio:​:​ip:​:​tcp:​:​resolver·​resolver(io_context_)​;​38 ··​asio:​:​ip:​:​tcp:​:​resolver·​resolver(io_context_)​;​
39 ··​asio:​:​ip:​:​tcp:​:​endpoint·​endpoint·​=39 ··​asio:​:​ip:​:​tcp:​:​endpoint·​endpoint·​=
40 ····​*resolver.​resolve(address,​·​port)​.​begin()​;​40 ····​*resolver.​resolve(address,​·​port)​.​begin()​;​
41 ··​acceptor_.​open(endpoint.​protocol()​)​;​41 ··​acceptor_.​open(endpoint.​protocol()​)​;​
42 ··​acceptor_.​set_option(asio:​:​ip:​:​tcp:​:​acceptor:​:​reuse_address(true)​)​;​42 ··​acceptor_.​set_option(asio:​:​ip:​:​tcp:​:​acceptor:​:​reuse_address(true)​)​;​
43 ··​acceptor_.​bind(endpoint)​;​43 ··​acceptor_.​bind(endpoint)​;​
44 ··​acceptor_.​listen()​;​44 ··​acceptor_.​listen()​;​
45 45
46 ··start_accept()​;​46 ··do_accept()​;​
47 }47 }
48 48
49 void·​server:​:​run()​49 void·​server:​:​run()​
50 {50 {
51 ··​/​/​·​The·​io_context:​:​run()​·​call·​will·​block·​until·​all·​asynchronous·​operations51 ··​/​/​·​The·​io_context:​:​run()​·​call·​will·​block·​until·​all·​asynchronous·​operations
52 ··​/​/​·​have·​finished.​·​While·​the·​server·​is·​running,​·​there·​is·​always·​at·​least·​one52 ··​/​/​·​have·​finished.​·​While·​the·​server·​is·​running,​·​there·​is·​always·​at·​least·​one
53 ··​/​/​·​asynchronous·​operation·​outstanding:​·​the·​asynchronous·​accept·​call·​waiting53 ··​/​/​·​asynchronous·​operation·​outstanding:​·​the·​asynchronous·​accept·​call·​waiting
54 ··​/​/​·​for·​new·​incoming·​connections.​54 ··​/​/​·​for·​new·​incoming·​connections.​
55 ··​io_context_.​run()​;​55 ··​io_context_.​run()​;​
56 }56 }
57 57
58 void·​server:​:​start_accept()​58 void·​server:​:​do_accept()​
59 {
60 ··new_connection_.​reset(new·connection(io_context​_,​
61 ········connection_manager_,​·request_handler_)​)​;​
62 ··acceptor_.​async_accept(new_conn​ection_-​>socket()​,​
63 ······boost:​:​bind(&server:​:​handle_accept,​·this,​
64 ········asio:​:​placeholders:​:​error)​)​;​
65 }
66
67 void·server:​:​handle_accept(const·asio:​:​error_code&·e)​
68 {59 {
69 ··/​/​·Check·whether·the·server·was·stopped·by·a·signal·before·this·completion60 ··acceptor_.​async_accept(
70 ··/​/​·​handler·had·​a·chance·to·run.​61 ······[this](std:​:​error_code·ec,​·​asio:​:​ip:​:​tcp:​:​socket·socket)​
71 ··if·(!acceptor_.​is_open()​)​62 ······{
72 ··{63 ········/​/​·Check·whether·the·server·was·stopped·by·a·signal·before·this
73 ····​return;​64 ········/​/​·completion·handler·had·a·chance·to·run.​
74 ··}65 ········if·(!acceptor_.​is_open()​)​
75 66 ········{
76 ··if·(!e)​67 ··········return;​
77 ··{68 ········}
78 ····connection_manager_.​start(new_connection_​)​;​69
79 ··}70 ········if·(!ec)​
71 ········​{
72 ··········​connection_manager_.​start(std:​:​make_shared<connectio​n>(
73 ··············​std:​:​move(socket)​,​·​connection_manager_,​·​request_handler_)​)​;​
74 ········​}
80 75
81 ··start_accept()​;​76 ········do_accept()​;​
77 ······​})​;​
82 }78 }
83 79
84 void·​server:​:​handle_stop()​80 void·​server:​:​do_await_stop()​
85 {81 {
86 ··/​/​·The·server·is·​stopped·by·cancelling·all·outstanding·asynchronous82 ··​signals_.​async_wait(
87 ··/​/​·operations.​·Once·all·operations·have·finished·the·​io_context:​:​run()​·call83 ······[this](std:​:​error_code·/​*ec*/​,​·​int·/​*signo*/​)​
88 ··/​/​·will·exit.​84 ······{
89 ··acceptor_.​close()​;​85 ········/​/​·The·server·is·stopped·by·cancelling·all·outstanding·asynchronous
90 ··connection_manager_.​stop_all()​;​86 ········/​/​·operations.​·Once·all·operations·have·finished·the·io_context:​:​run()​
87 ········​/​/​·​call·​will·​exit.​
88 ········​acceptor_.​close()​;​
89 ········​connection_manager_.​stop_all()​;​
90 ······​})​;​
91 }91 }
92 92
93 }·​/​/​·​namespace·​server93 }·​/​/​·​namespace·​server
94 }·​/​/​·​namespace·​http94 }·​/​/​·​namespace·​http
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/server.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/server.hpp.html deleted file mode 100644 index 546a043..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/server.hpp.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - HTML Diff http/server/server.hpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​server.​hppsrc/​examples/​cpp11/​http/​server/​server.​hpp
1 /​/​1 /​/​
2 /​/​·​server.​hpp2 /​/​·​server.​hpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #ifndef·​HTTP_SERVER_HPP11 #ifndef·​HTTP_SERVER_HPP
12 #define·​HTTP_SERVER_HPP12 #define·​HTTP_SERVER_HPP
13 13
14 #include·​<asio.​hpp>14 #include·​<asio.​hpp>
15 #include·​<string>15 #include·​<string>
16 #include·​<boost/​noncopyable.​hpp>
17 #include·​"connection.​hpp"16 #include·​"connection.​hpp"
18 #include·​"connection_manager.​hpp"17 #include·​"connection_manager.​hpp"
19 #include·​"request_handler.​hpp"18 #include·​"request_handler.​hpp"
20 19
21 namespace·​http·​{20 namespace·​http·​{
22 namespace·​server·​{21 namespace·​server·​{
23 22
24 /​/​/​·​The·​top-​level·​class·​of·​the·​HTTP·​server.​23 /​/​/​·​The·​top-​level·​class·​of·​the·​HTTP·​server.​
25 class·​server24 class·​server
26 ··​:​·​private·​boost:​:​noncopyable
27 {25 {
28 public:​26 public:​
27 ··​server(const·​server&)​·​=·​delete;​
28 ··​server&·​operator=(const·​server&)​·​=·​delete;​
29
29 ··​/​/​/​·​Construct·​the·​server·​to·​listen·​on·​the·​specified·​TCP·​address·​and·​port,​·​and30 ··​/​/​/​·​Construct·​the·​server·​to·​listen·​on·​the·​specified·​TCP·​address·​and·​port,​·​and
30 ··​/​/​/​·​serve·​up·​files·​from·​the·​given·​directory.​31 ··​/​/​/​·​serve·​up·​files·​from·​the·​given·​directory.​
31 ··​explicit·​server(const·​std:​:​string&·​address,​·​const·​std:​:​string&·​port,​32 ··​explicit·​server(const·​std:​:​string&·​address,​·​const·​std:​:​string&·​port,​
32 ······​const·​std:​:​string&·​doc_root)​;​33 ······​const·​std:​:​string&·​doc_root)​;​
33 34
34 ··​/​/​/​·​Run·​the·​server's·​io_context·​loop.​35 ··​/​/​/​·​Run·​the·​server's·​io_context·​loop.​
35 ··​void·​run()​;​36 ··​void·​run()​;​
36 37
37 private:​38 private:​
38 ··​/​/​/​·Initiate·​an·​asynchronous·​accept·​operation.​39 ··​/​/​/​·Perform·​an·​asynchronous·​accept·​operation.​
39 ··​void·start_accept()​;​40 ··​void·do_accept()​;​
40
41 ··/​/​/​·Handle·completion·of·an·asynchronous·accept·operation.​
42 ··void·handle_accept(const·asio:​:​error_code&·e)​;​
43 41
44 ··​/​/​/​·Handle·​a·​request·​to·​stop·​the·​server.​42 ··​/​/​/​·Wait·for·​a·​request·​to·​stop·​the·​server.​
45 ··​void·handle_stop()​;​43 ··​void·do_await_stop()​;​
46 44
47 ··​/​/​/​·​The·​io_context·​used·​to·​perform·​asynchronous·​operations.​45 ··​/​/​/​·​The·​io_context·​used·​to·​perform·​asynchronous·​operations.​
48 ··​asio:​:​io_context·​io_context_;​46 ··​asio:​:​io_context·​io_context_;​
49 47
50 ··​/​/​/​·​The·​signal_set·​is·​used·​to·​register·​for·​process·​termination·​notifications.​48 ··​/​/​/​·​The·​signal_set·​is·​used·​to·​register·​for·​process·​termination·​notifications.​
51 ··​asio:​:​signal_set·​signals_;​49 ··​asio:​:​signal_set·​signals_;​
52 50
53 ··​/​/​/​·​Acceptor·​used·​to·​listen·​for·​incoming·​connections.​51 ··​/​/​/​·​Acceptor·​used·​to·​listen·​for·​incoming·​connections.​
54 ··​asio:​:​ip:​:​tcp:​:​acceptor·​acceptor_;​52 ··​asio:​:​ip:​:​tcp:​:​acceptor·​acceptor_;​
55 53
56 ··​/​/​/​·​The·​connection·​manager·​which·​owns·​all·​live·​connections.​54 ··​/​/​/​·​The·​connection·​manager·​which·​owns·​all·​live·​connections.​
57 ··​connection_manager·​connection_manager_;​55 ··​connection_manager·​connection_manager_;​
58 56
59 ··​/​/​/​·​The·​next·​connection·​to·​be·​accepted.​
60 ··​connection_ptr·​new_connection_;​
61
62 ··​/​/​/​·​The·​handler·​for·​all·​incoming·​requests.​57 ··​/​/​/​·​The·​handler·​for·​all·​incoming·​requests.​
63 ··​request_handler·​request_handler_;​58 ··​request_handler·​request_handler_;​
64 };​59 };​
65 60
66 }·​/​/​·​namespace·​server61 }·​/​/​·​namespace·​server
67 }·​/​/​·​namespace·​http62 }·​/​/​·​namespace·​http
68 63
69 #endif·​/​/​·​HTTP_SERVER_HPP64 #endif·​/​/​·​HTTP_SERVER_HPP
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/invocation/prioritised_handlers.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/invocation/prioritised_handlers.cpp.html deleted file mode 100644 index eb99616..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/invocation/prioritised_handlers.cpp.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - HTML Diff invocation/prioritised_handlers.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​invocation/​prioritised_handlers.​cppsrc/​examples/​cpp11/​invocation/​prioritised_handlers.​cpp
1 /​/​1 /​/​
2 /​/​·​prioritised_handlers.​cpp2 /​/​·​prioritised_handlers.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"asio.​hpp"11 #include·​"asio.​hpp"
12 #include·​<boost/​function.​hpp>
13 #include·​<iostream>12 #include·​<iostream>
13 #include·​<memory>
14 #include·​<queue>14 #include·​<queue>
15 15
16 using·​asio:​:​ip:​:​tcp;​16 using·​asio:​:​ip:​:​tcp;​
17 17
18 class·​handler_priority_queu​e·​:​·public·​asio:​:​execution_context18 class·​handler_priority_queu​e·​:​·​asio:​:​execution_context
19 {19 {
20 public:​20 public:​
21 ··void·add(int·priority,​·boost:​:​function<void()​>·function)​21 ··​template·<typename·Function>
22 ··​void·​add(int·​priority,​·​Function·​function)​
22 ··​{23 ··​{
23 ····handlers_.​push(queued_handler(p​riority,​·function)​)​;​24 ····std:​:​unique_ptr<queued_han​dler_base>·handler(
25 ········​new·​queued_handler<Functi​on>(
26 ··········​priority,​·​std:​:​move(function)​)​)​;​
27
28 ····​handlers_.​push(std:​:​move(handler)​)​;​
24 ··​}29 ··​}
25 30
26 ··​void·​execute_all()​31 ··​void·​execute_all()​
27 ··​{32 ··​{
28 ····​while·​(!handlers_.​empty()​)​33 ····​while·​(!handlers_.​empty()​)​
29 ····​{34 ····​{
30 ······queued_handler·handler·=·handlers_.​top()​;​35 ······​handlers_.​top()​-​>execute()​;​
31 ······handler.​execute()​;​
32 ······​handlers_.​pop()​;​36 ······​handlers_.​pop()​;​
33 ····​}37 ····​}
34 ··​}38 ··​}
35 39
36 ··​class·​executor40 ··​class·​executor
37 ··​{41 ··​{
38 ··​public:​42 ··​public:​
39 ····​executor(handler_prio​rity_queue&·​q,​·​int·​p)​43 ····​executor(handler_prio​rity_queue&·​q,​·​int·​p)​
40 ······​:​·​context_(q)​,​·​priority_(p)​44 ······​:​·​context_(q)​,​·​priority_(p)​
41 ····​{45 ····​{
42 ····​}46 ····​}
43 47
44 ····​handler_priority_queu​e&·​context()​·​const48 ····​handler_priority_queu​e&·​context()​·​const·noexcept
45 ····​{49 ····​{
46 ······​return·​context_;​50 ······​return·​context_;​
47 ····​}51 ····​}
48 52
49 ····​template·​<typename·​Function,​·​typename·​Allocator>53 ····​template·​<typename·​Function,​·​typename·​Allocator>
50 ····​void·​dispatch(const·Function&·​f,​·​const·​Allocator&)​·​const54 ····​void·​dispatch(Function·​f,​·​const·​Allocator&)​·​const
51 ····​{55 ····​{
52 ······​context_.​add(priority_,​·​f)​;​56 ······​context_.​add(priority_,​·std:​:​move(f)​)​;​
53 ····​}57 ····​}
54 58
55 ····​template·​<typename·​Function,​·​typename·​Allocator>59 ····​template·​<typename·​Function,​·​typename·​Allocator>
56 ····​void·​post(const·Function&·​f,​·​const·​Allocator&)​·​const60 ····​void·​post(Function·​f,​·​const·​Allocator&)​·​const
57 ····​{61 ····​{
58 ······​context_.​add(priority_,​·​f)​;​62 ······​context_.​add(priority_,​·std:​:​move(f)​)​;​
59 ····​}63 ····​}
60 64
61 ····​template·​<typename·​Function,​·​typename·​Allocator>65 ····​template·​<typename·​Function,​·​typename·​Allocator>
62 ····​void·​defer(const·Function&·​f,​·​const·​Allocator&)​·​const66 ····​void·​defer(Function·​f,​·​const·​Allocator&)​·​const
63 ····​{67 ····​{
64 ······​context_.​add(priority_,​·​f)​;​68 ······​context_.​add(priority_,​·std:​:​move(f)​)​;​
65 ····​}69 ····​}
66 70
67 ····​void·​on_work_started()​·​const·​{}71 ····​void·​on_work_started()​·​const·noexcept·​{}
68 ····​void·​on_work_finished()​·​const·​{}72 ····​void·​on_work_finished()​·​const·noexcept·​{}
69 73
70 ····​bool·​operator==(const·​executor&·​other)​·​const74 ····​bool·​operator==(const·​executor&·​other)​·​const·noexcept
71 ····​{75 ····​{
72 ······​return·​&context_·​==·​&other.​context_·​&&·​priority_·​==·​other.​priority_;​76 ······​return·​&context_·​==·​&other.​context_·​&&·​priority_·​==·​other.​priority_;​
73 ····​}77 ····​}
74 78
75 ····​bool·​operator!=(const·​executor&·​other)​·​const79 ····​bool·​operator!=(const·​executor&·​other)​·​const·noexcept
76 ····​{80 ····​{
77 ······​return·​!operator==(other)​;​81 ······​return·​!operator==(other)​;​
78 ····​}82 ····​}
79 83
80 ··​private:​84 ··​private:​
81 ····​handler_priority_queu​e&·​context_;​85 ····​handler_priority_queu​e&·​context_;​
82 ····​int·​priority_;​86 ····​int·​priority_;​
83 ··​};​87 ··​};​
84 88
85 ··​template·​<typename·​Handler>89 ··​template·​<typename·​Handler>
86 ··​asio:​:​executor_binder<Handl​er,​·​executor>90 ··​asio:​:​executor_binder<Handl​er,​·​executor>
87 ··​wrap(int·​priority,​·​Handler·​handler)​91 ··​wrap(int·​priority,​·​Handler·​handler)​
88 ··​{92 ··​{
89 ····​return·​asio:​:​bind_executor(executo​r(*this,​·priority)​,​·handler)​;​93 ····​return·​asio:​:​bind_executor(
94 ········​executor(*this,​·​priority)​,​·​std:​:​move(handler)​)​;​
90 ··​}95 ··​}
91 96
92 private:​97 private:​
93 ··​class·​queued_handler98 ··​class·​queued_handler_base
94 ··​{99 ··​{
95 ··​public:​100 ··​public:​
96 ····​queued_handler(int·p,​·boost:​:​function<void()​>·f)​101 ····​queued_handler_base(i​nt·p)​
97 ······​:​·​priority_(p)​,​·function_(f)​102 ······​:​·​priority_(p)​
98 ····​{103 ····​{
99 ····​}104 ····​}
100 105
101 ····​void·​execute()​106 ····​virtual·~queued_handler_base(​)​
102 ····​{107 ····​{
103 ······​function_()​;​
104 ····​}108 ····​}
105 109
106 ····friend·bool·operator<(const·queued_handler&·a,​110 ····virtual·void·​execute()​·=·0;​
107 ········const·queued_handler&·b)​111
112 ····​friend·​bool·​operator<(const·​std:​:​unique_ptr<queued_han​dler_base>&·​a,​
113 ········​const·​std:​:​unique_ptr<queued_han​dler_base>&·​b)​·​noexcept
108 ····​{114 ····​{
109 ······​return·​a.​priority_·​<·​b.​priority_;​115 ······​return·​a-​>priority_·​<·​b-​>priority_;​
110 ····​}116 ····​}
111 117
112 ··​private:​118 ··​private:​
113 ····​int·​priority_;​119 ····​int·​priority_;​
114 ····​boost:​:​function<void()​>·​function_;​
115 ··​};​120 ··​};​
116 121
117 ··std:​:​priority_queue<queued​_handler>·handlers_;​122 ··​template·<typename·Function>
123 ··​class·​queued_handler·​:​·​public·​queued_handler_base
124 ··​{
125 ··​public:​
126 ····​queued_handler(int·​p,​·​Function·​f)​
127 ······​:​·​queued_handler_base(p​)​,​·​function_(std:​:​move(f)​)​
128 ····​{
129 ····​}
130
131 ····​void·​execute()​·​override
132 ····​{
133 ······​function_()​;​
134 ····​}
135
136 ··​private:​
137 ····​Function·​function_;​
138 ··​};​
139
140 ··​std:​:​priority_queue<std:​:​unique_ptr<queued_han​dler_base>>·​handlers_;​
118 };​141 };​
119 142
120 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​143 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
121 144
122 void·​high_priority_handler​(const·​asio:​:​error_code&·​/​*ec*/​)​145 void·​high_priority_handler​(const·​asio:​:​error_code&·​/​*ec*/​,​
146 ····​tcp:​:​socket·​/​*socket*/​)​
123 {147 {
124 ··​std:​:​cout·​<<·​"High·​priority·​handler\n";​148 ··​std:​:​cout·​<<·​"High·​priority·​handler\n";​
125 }149 }
126 150
127 void·​middle_priority_handl​er(const·​asio:​:​error_code&·​/​*ec*/​)​151 void·​middle_priority_handl​er(const·​asio:​:​error_code&·​/​*ec*/​)​
128 {152 {
129 ··​std:​:​cout·​<<·​"Middle·​priority·​handler\n";​153 ··​std:​:​cout·​<<·​"Middle·​priority·​handler\n";​
130 }154 }
131 155
132 void·​low_priority_handler(​)​156 struct·​low_priority_handler
133 {157 {
134 ··std:​:​cout·<<·"Low·priority·handler\n";​158 ··/​/​·Make·the·handler·a·move-​only·type.​
135 }159 ··low_priority_handler(​)​·=·default;​
160 ··​low_priority_handler(​const·​low_priority_handler&​)​·​=·​delete;​
161 ··​low_priority_handler(​low_priority_handler&​&)​·​=·​default;​
162
163 ··​void·​operator()​()​
164 ··​{
165 ····​std:​:​cout·​<<·​"Low·​priority·​handler\n";​
166 ··​}
167 };​
136 168
137 int·​main()​169 int·​main()​
138 {170 {
139 ··​asio:​:​io_context·​io_context;​171 ··​asio:​:​io_context·​io_context;​
140 172
141 ··​handler_priority_queu​e·​pri_queue;​173 ··​handler_priority_queu​e·​pri_queue;​
142 174
143 ··​/​/​·​Post·​a·​completion·​handler·​to·​be·​run·​immediately.​175 ··​/​/​·​Post·​a·​completion·​handler·​to·​be·​run·​immediately.​
144 ··​asio:​:​post(io_context,​·​pri_queue.​wrap(0,​·​low_priority_handler)​)​;​176 ··​asio:​:​post(io_context,​·​pri_queue.​wrap(0,​·​low_priority_handler(​)​)​)​;​
145 177
146 ··​/​/​·​Start·​an·​asynchronous·​accept·​that·​will·​complete·​immediately.​178 ··​/​/​·​Start·​an·​asynchronous·​accept·​that·​will·​complete·​immediately.​
147 ··​tcp:​:​endpoint·​endpoint(asio:​:​ip:​:​address_v4:​:​loopback()​,​·​0)​;​179 ··​tcp:​:​endpoint·​endpoint(asio:​:​ip:​:​address_v4:​:​loopback()​,​·​0)​;​
148 ··​tcp:​:​acceptor·​acceptor(io_context,​·​endpoint)​;​180 ··​tcp:​:​acceptor·​acceptor(io_context,​·​endpoint)​;​
149 ··​tcp:​:​socket·​server_socket(io_cont​ext)​;​181 ··​tcp:​:​socket·​server_socket(io_cont​ext)​;​
150 ··​acceptor.​async_accept(server_s​ocket,​182 ··​acceptor.​async_accept(pri_queu​e.​wrap(100,​·high_priority_handler​)​)​;​
151 ······pri_queue.​wrap(100,​·high_priority_handler​)​)​;​
152 ··​tcp:​:​socket·​client_socket(io_cont​ext)​;​183 ··​tcp:​:​socket·​client_socket(io_cont​ext)​;​
153 ··​client_socket.​connect(acceptor.​local_endpoint()​)​;​184 ··​client_socket.​connect(acceptor.​local_endpoint()​)​;​
154 185
155 ··​/​/​·​Set·​a·​deadline·​timer·​to·​expire·​immediately.​186 ··​/​/​·​Set·​a·​deadline·​timer·​to·​expire·​immediately.​
156 ··​asio:​:​steady_timer·​timer(io_context)​;​187 ··​asio:​:​steady_timer·​timer(io_context)​;​
157 ··​timer.​expires_at(asio:​:​steady_timer:​:​time_point:​:​min()​)​;​188 ··​timer.​expires_at(asio:​:​steady_timer:​:​clock_type:​:​time_point:​:​min()​)​;​
158 ··​timer.​async_wait(pri_queue.​wrap(42,​·​middle_priority_handl​er)​)​;​189 ··​timer.​async_wait(pri_queue.​wrap(42,​·​middle_priority_handl​er)​)​;​
159 190
160 ··​while·​(io_context.​run_one()​)​191 ··​while·​(io_context.​run_one()​)​
161 ··​{192 ··​{
162 ····​/​/​·​The·​custom·​invocation·​hook·​adds·​the·​handlers·​to·​the·​priority·​queue193 ····​/​/​·​The·​custom·​invocation·​hook·​adds·​the·​handlers·​to·​the·​priority·​queue
163 ····​/​/​·​rather·​than·​executing·​them·​from·​within·​the·​poll_one()​·​call.​194 ····​/​/​·​rather·​than·​executing·​them·​from·​within·​the·​poll_one()​·​call.​
164 ····​while·​(io_context.​poll_one()​)​195 ····​while·​(io_context.​poll_one()​)​
165 ······​;​196 ······​;​
166 197
167 ····​pri_queue.​execute_all()​;​198 ····​pri_queue.​execute_all()​;​
168 ··​}199 ··​}
169 200
170 ··​return·​0;​201 ··​return·​0;​
171 }202 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/iostreams/http_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/iostreams/http_client.cpp.html deleted file mode 100644 index d47326a..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/iostreams/http_client.cpp.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - HTML Diff iostreams/http_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​iostreams/​http_client.​cppsrc/​examples/​cpp11/​iostreams/​http_client.​cpp
1 /​/​1 /​/​
2 /​/​·​http_client.​cpp2 /​/​·​http_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<iostream>11 #include·​<iostream>
12 #include·​<istream>12 #include·​<istream>
13 #include·​<ostream>13 #include·​<ostream>
14 #include·​<string>14 #include·​<string>
15 #include·​<asio/​ip/​tcp.​hpp>15 #include·​<asio/​ip/​tcp.​hpp>
16 16
17 using·​asio:​:​ip:​:​tcp;​17 using·​asio:​:​ip:​:​tcp;​
18 18
19 int·​main(int·​argc,​·​char*·​argv[])​19 int·​main(int·​argc,​·​char*·​argv[])​
20 {20 {
21 ··​try21 ··​try
22 ··​{22 ··​{
23 ····​if·​(argc·​!=·​3)​23 ····​if·​(argc·​!=·​3)​
24 ····​{24 ····​{
25 ······​std:​:​cout·​<<·​"Usage:​·​http_client·​<server>·​<path>\n";​25 ······​std:​:​cout·​<<·​"Usage:​·​http_client·​<server>·​<path>\n";​
26 ······​std:​:​cout·​<<·​"Example:​\n";​26 ······​std:​:​cout·​<<·​"Example:​\n";​
27 ······​std:​:​cout·​<<·​"··​http_client·​www.​boost.​org·​/​LICENSE_1_0.​txt\n";​27 ······​std:​:​cout·​<<·​"··​http_client·​www.​boost.​org·​/​LICENSE_1_0.​txt\n";​
28 ······​return·​1;​28 ······​return·​1;​
29 ····​}29 ····​}
30 30
31 ····​asio:​:​ip:​:​tcp:​:​iostream·​s;​31 ····​asio:​:​ip:​:​tcp:​:​iostream·​s;​
32 32
33 ····​/​/​·​The·​entire·​sequence·​of·​I/​O·​operations·​must·​complete·​within·​60·​seconds.​33 ····​/​/​·​The·​entire·​sequence·​of·​I/​O·​operations·​must·​complete·​within·​60·​seconds.​
34 ····​/​/​·​If·​an·​expiry·​occurs,​·​the·​socket·​is·​automatically·​closed·​and·​the·​stream34 ····​/​/​·​If·​an·​expiry·​occurs,​·​the·​socket·​is·​automatically·​closed·​and·​the·​stream
35 ····​/​/​·​becomes·​bad.​35 ····​/​/​·​becomes·​bad.​
36 ····​s.​expires_after(asio:​:​chrono:​:​seconds(60)​)​;​36 ····​s.​expires_after(std:​:​chrono:​:​seconds(60)​)​;​
37 37
38 ····​/​/​·​Establish·​a·​connection·​to·​the·​server.​38 ····​/​/​·​Establish·​a·​connection·​to·​the·​server.​
39 ····​s.​connect(argv[1],​·​"http")​;​39 ····​s.​connect(argv[1],​·​"http")​;​
40 ····​if·​(!s)​40 ····​if·​(!s)​
41 ····​{41 ····​{
42 ······​std:​:​cout·​<<·​"Unable·​to·​connect:​·​"·​<<·​s.​error()​.​message()​·​<<·​"\n";​42 ······​std:​:​cout·​<<·​"Unable·​to·​connect:​·​"·​<<·​s.​error()​.​message()​·​<<·​"\n";​
43 ······​return·​1;​43 ······​return·​1;​
44 ····​}44 ····​}
45 45
46 ····​/​/​·​Send·​the·​request.​·​We·​specify·​the·​"Connection:​·​close"·​header·​so·​that·​the46 ····​/​/​·​Send·​the·​request.​·​We·​specify·​the·​"Connection:​·​close"·​header·​so·​that·​the
47 ····​/​/​·​server·​will·​close·​the·​socket·​after·​transmitting·​the·​response.​·​This·​will47 ····​/​/​·​server·​will·​close·​the·​socket·​after·​transmitting·​the·​response.​·​This·​will
48 ····​/​/​·​allow·​us·​to·​treat·​all·​data·​up·​until·​the·​EOF·​as·​the·​content.​48 ····​/​/​·​allow·​us·​to·​treat·​all·​data·​up·​until·​the·​EOF·​as·​the·​content.​
49 ····​s·​<<·​"GET·​"·​<<·​argv[2]·​<<·​"·​HTTP/​1.​0\r\n";​49 ····​s·​<<·​"GET·​"·​<<·​argv[2]·​<<·​"·​HTTP/​1.​0\r\n";​
50 ····​s·​<<·​"Host:​·​"·​<<·​argv[1]·​<<·​"\r\n";​50 ····​s·​<<·​"Host:​·​"·​<<·​argv[1]·​<<·​"\r\n";​
51 ····​s·​<<·​"Accept:​·​*/​*\r\n";​51 ····​s·​<<·​"Accept:​·​*/​*\r\n";​
52 ····​s·​<<·​"Connection:​·​close\r\n\r\n";​52 ····​s·​<<·​"Connection:​·​close\r\n\r\n";​
53 53
54 ····​/​/​·​By·​default,​·​the·​stream·​is·​tied·​with·​itself.​·​This·​means·​that·​the·​stream54 ····​/​/​·​By·​default,​·​the·​stream·​is·​tied·​with·​itself.​·​This·​means·​that·​the·​stream
55 ····​/​/​·​automatically·​flush·​the·​buffered·​output·​before·​attempting·​a·​read.​·​It·​is55 ····​/​/​·​automatically·​flush·​the·​buffered·​output·​before·​attempting·​a·​read.​·​It·​is
56 ····​/​/​·​not·​necessary·​not·​explicitly·​flush·​the·​stream·​at·​this·​point.​56 ····​/​/​·​not·​necessary·​not·​explicitly·​flush·​the·​stream·​at·​this·​point.​
57 57
58 ····​/​/​·​Check·​that·​response·​is·​OK.​58 ····​/​/​·​Check·​that·​response·​is·​OK.​
59 ····​std:​:​string·​http_version;​59 ····​std:​:​string·​http_version;​
60 ····​s·​>>·​http_version;​60 ····​s·​>>·​http_version;​
61 ····​unsigned·​int·​status_code;​61 ····​unsigned·​int·​status_code;​
62 ····​s·​>>·​status_code;​62 ····​s·​>>·​status_code;​
63 ····​std:​:​string·​status_message;​63 ····​std:​:​string·​status_message;​
64 ····​std:​:​getline(s,​·​status_message)​;​64 ····​std:​:​getline(s,​·​status_message)​;​
65 ····​if·​(!s·​||·​http_version.​substr(0,​·​5)​·​!=·​"HTTP/​")​65 ····​if·​(!s·​||·​http_version.​substr(0,​·​5)​·​!=·​"HTTP/​")​
66 ····​{66 ····​{
67 ······​std:​:​cout·​<<·​"Invalid·​response\n";​67 ······​std:​:​cout·​<<·​"Invalid·​response\n";​
68 ······​return·​1;​68 ······​return·​1;​
69 ····​}69 ····​}
70 ····​if·​(status_code·​!=·​200)​70 ····​if·​(status_code·​!=·​200)​
71 ····​{71 ····​{
72 ······​std:​:​cout·​<<·​"Response·​returned·​with·​status·​code·​"·​<<·​status_code·​<<·​"\n";​72 ······​std:​:​cout·​<<·​"Response·​returned·​with·​status·​code·​"·​<<·​status_code·​<<·​"\n";​
73 ······​return·​1;​73 ······​return·​1;​
74 ····​}74 ····​}
75 75
76 ····​/​/​·​Process·​the·​response·​headers,​·​which·​are·​terminated·​by·​a·​blank·​line.​76 ····​/​/​·​Process·​the·​response·​headers,​·​which·​are·​terminated·​by·​a·​blank·​line.​
77 ····​std:​:​string·​header;​77 ····​std:​:​string·​header;​
78 ····​while·​(std:​:​getline(s,​·​header)​·​&&·​header·​!=·​"\r")​78 ····​while·​(std:​:​getline(s,​·​header)​·​&&·​header·​!=·​"\r")​
79 ······​std:​:​cout·​<<·​header·​<<·​"\n";​79 ······​std:​:​cout·​<<·​header·​<<·​"\n";​
80 ····​std:​:​cout·​<<·​"\n";​80 ····​std:​:​cout·​<<·​"\n";​
81 81
82 ····​/​/​·​Write·​the·​remaining·​data·​to·​output.​82 ····​/​/​·​Write·​the·​remaining·​data·​to·​output.​
83 ····​std:​:​cout·​<<·​s.​rdbuf()​;​83 ····​std:​:​cout·​<<·​s.​rdbuf()​;​
84 ··​}84 ··​}
85 ··​catch·​(std:​:​exception&·​e)​85 ··​catch·​(std:​:​exception&·​e)​
86 ··​{86 ··​{
87 ····​std:​:​cout·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​87 ····​std:​:​cout·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
88 ··​}88 ··​}
89 89
90 ··​return·​0;​90 ··​return·​0;​
91 }91 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/local/connect_pair.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/local/connect_pair.cpp.html deleted file mode 100644 index 020cb05..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/local/connect_pair.cpp.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - HTML Diff local/connect_pair.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​local/​connect_pair.​cppsrc/​examples/​cpp11/​local/​connect_pair.​cpp
1 /​/​1 /​/​
2 /​/​·​connect_pair.​cpp2 /​/​·​connect_pair.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<array>
11 #include·​<iostream>12 #include·​<iostream>
12 #include·​<string>13 #include·​<string>
13 #include·​<cctype>14 #include·​<cctype>
14 #include·​<asio.​hpp>15 #include·​<asio.​hpp>
15 #include·​<boost/​array.​hpp>
16 #include·​<boost/​bind.​hpp>
17 16
18 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​17 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
19 18
20 using·​asio:​:​local:​:​stream_protocol;​19 using·​asio:​:​local:​:​stream_protocol;​
21 20
22 class·​uppercase_filter21 class·​uppercase_filter
23 {22 {
24 public:​23 public:​
25 ··​uppercase_filter(asio​:​:​io_context&·io_context)​24 ··​uppercase_filter(stre​am_protocol:​:​socket·sock)​
26 ····​:​·​socket_(io_context)​25 ····​:​·​socket_(std:​:​move(sock)​)​
27 ··​{26 ··​{
28 ··}27 ····read()​;​
29
30 ··stream_protocol:​:​socket&·socket()​
31 ··{
32 ····return·socket_;​
33 ··}
34
35 ··void·start()​
36 ··{
37 ····/​/​·Wait·for·request.​
38 ····socket_.​async_read_some(asio:​:​buffer(data_)​,​
39 ········boost:​:​bind(&uppercase_filte​r:​:​handle_read,​
40 ··········this,​·asio:​:​placeholders:​:​error,​
41 ··········asio:​:​placeholders:​:​bytes_transferred)​)​;​
42 ··​}28 ··​}
43 29
44 private:​30 private:​
45 ··​void·handle_read(const·asio:​:​error_code&·ec,​·std:​:​size_t·size)​31 ··​void·​read()​
46 ··​{32 ··​{
47 ····​if·(!ec)​33 ····socket_.​async_read_some(asio:​:​buffer(data_)​,​
48 ····{34 ········[this](std:​:​error_code·ec,​·std:​:​size_t·size)​
49 ······/​/​·Compute·result.​35 ········{
50 ······for·(std:​:​size_t·i·=·0;​·​i·<·size;​·++i)​36 ··········​if·(!ec)​
51 ········data_[i]·=·std:​:​toupper(data_[i])​;​37 ··········{
52 38 ············/​/​·Compute·result.​
53 ······/​/​·Send·result.​39 ············for·(std:​:​size_t·i·=·0;​·i·<·size;​·++i)​
54 ······asio:​:​async_write(socket_,​·asio:​:​buffer(data_,​·size)​,​40 ··············data_[i]·=·​std:​:​toupper(data_[i])​;​
55 ··········boost:​:​bind(&uppercase_filte​r:​:​handle_write,​41
56 ············this,​·asio:​:​placeholders:​:​error)​)​;​42 ············/​/​·Send·result.​
57 ····}43 ············write(size)​;​
58 ····else44 ··········}
59 ····{45 ··········else
60 ······throw·asio:​:​system_error(ec)​;​46 ··········{
61 ····}47 ············throw·asio:​:​system_error(ec)​;​
62 ··​}48 ··········​}
63 49 ········})​;​
64 ··void·handle_write(const·asio:​:​error_code&·ec)​50 ··}
65 ··{51
66 ····if·(!ec)​52 ··void·write(std:​:​size_t·size)​
67 ····​{53 ··​{
68 ······/​/​·Wait·for·request.​54 ····asio:​:​async_write(socket_,​·asio:​:​buffer(data_,​·size)​,​
69 ······socket_.​async_read_some(asio:​:​buffer(data_)​,​55 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*size*/​)​
70 ··········boost:​:​bind(&uppercase_filte​r:​:​handle_read,​56 ········{
71 ············this,​·asio:​:​placeholders:​:​error,​57 ··········​if·(!ec)​
72 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​58 ··········{
73 ····}59 ············/​/​·Wait·for·request.​
74 ····​else60 ············read()​;​
75 ····{61 ··········}
76 ······throw·asio:​:​system_error(ec)​;​62 ··········else
77 ····}63 ··········{
64 ············​throw·​asio:​:​system_error(ec)​;​
65 ··········​}
66 ········​})​;​
78 ··​}67 ··​}
79 68
80 ··​stream_protocol:​:​socket·​socket_;​69 ··​stream_protocol:​:​socket·​socket_;​
81 ··boost:​:​array<char,​·​512>·​data_;​70 ··​std:​:​array<char,​·​512>·​data_;​
82 };​71 };​
83 72
84 void·​run(asio:​:​io_context*·​io_context)​
85 {
86 ··​try
87 ··​{
88 ····​io_context-​>run()​;​
89 ··​}
90 ··​catch·​(std:​:​exception&·​e)​
91 ··​{
92 ····​std:​:​cerr·​<<·​"Exception·​in·​thread:​·​"·​<<·​e.​what()​·​<<·​"\n";​
93 ····​std:​:​exit(1)​;​
94 ··​}
95 }
96
97 int·​main()​73 int·​main()​
98 {74 {
99 ··​try75 ··​try
100 ··​{76 ··​{
101 ····​asio:​:​io_context·​io_context;​77 ····​asio:​:​io_context·​io_context;​
102 78
103 ····​/​/​·​Create·filter·​and·establish·a·connection·to·it.​79 ····​/​/​·​Create·a·connected·pair·and·pass·one·end·to·a·filter.​
104 ····uppercase_filter·filter(io_context)​;​
105 ····​stream_protocol:​:​socket·​socket(io_context)​;​80 ····​stream_protocol:​:​socket·​socket(io_context)​;​
106 ····asio:​:​local:​:​connect_pair(socket,​·​filter.​socket()​)​;​81 ····​stream_protocol:​:​socket·​filter_socket(io_cont​ext)​;​
107 ····​filter.​start()​;​82 ····asio:​:​local:​:​connect_pair(socket,​·​filter_socket)​;​
83 ····​uppercase_filter·​filter(std:​:​move(filter_socket)​)​;​
108 84
109 ····​/​/​·​The·​io_context·​runs·​in·​a·​background·​thread·​to·​perform·​filtering.​85 ····​/​/​·​The·​io_context·​runs·​in·​a·​background·​thread·​to·​perform·​filtering.​
110 ····​asio:​:​thread·​thread(boost:​:​bind(run,​·&io_context)​)​;​86 ····​asio:​:​thread·​thread(
87 ········​[&io_context]()​
88 ········​{
89 ··········​try
90 ··········​{
91 ············​io_context.​run()​;​
92 ··········​}
93 ··········​catch·​(std:​:​exception&·​e)​
94 ··········​{
95 ············​std:​:​cerr·​<<·​"Exception·​in·​thread:​·​"·​<<·​e.​what()​·​<<·​"\n";​
96 ············​std:​:​exit(1)​;​
97 ··········​}
98 ········​})​;​
111 99
112 ····​for·​(;​;​)​100 ····​for·​(;​;​)​
113 ····​{101 ····​{
114 ······​/​/​·​Collect·​request·​from·​user.​102 ······​/​/​·​Collect·​request·​from·​user.​
115 ······​std:​:​cout·​<<·​"Enter·​a·​string:​·​";​103 ······​std:​:​cout·​<<·​"Enter·​a·​string:​·​";​
116 ······​std:​:​string·​request;​104 ······​std:​:​string·​request;​
117 ······​std:​:​getline(std:​:​cin,​·​request)​;​105 ······​std:​:​getline(std:​:​cin,​·​request)​;​
118 106
119 ······​/​/​·​Send·​request·​to·​filter.​107 ······​/​/​·​Send·​request·​to·​filter.​
120 ······​asio:​:​write(socket,​·​asio:​:​buffer(request)​)​;​108 ······​asio:​:​write(socket,​·​asio:​:​buffer(request)​)​;​
121 109
122 ······​/​/​·​Wait·​for·​reply·​from·​filter.​110 ······​/​/​·​Wait·​for·​reply·​from·​filter.​
123 ······​std:​:​vector<char>·​reply(request.​size()​)​;​111 ······​std:​:​vector<char>·​reply(request.​size()​)​;​
124 ······​asio:​:​read(socket,​·​asio:​:​buffer(reply)​)​;​112 ······​asio:​:​read(socket,​·​asio:​:​buffer(reply)​)​;​
125 113
126 ······​/​/​·​Show·​reply·​to·​user.​114 ······​/​/​·​Show·​reply·​to·​user.​
127 ······​std:​:​cout·​<<·​"Result:​·​";​115 ······​std:​:​cout·​<<·​"Result:​·​";​
128 ······​std:​:​cout.​write(&reply[0],​·​request.​size()​)​;​116 ······​std:​:​cout.​write(&reply[0],​·​request.​size()​)​;​
129 ······​std:​:​cout·​<<·​std:​:​endl;​117 ······​std:​:​cout·​<<·​std:​:​endl;​
130 ····​}118 ····​}
131 ··​}119 ··​}
132 ··​catch·​(std:​:​exception&·​e)​120 ··​catch·​(std:​:​exception&·​e)​
133 ··​{121 ··​{
134 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​122 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
135 ····​std:​:​exit(1)​;​123 ····​std:​:​exit(1)​;​
136 ··​}124 ··​}
137 }125 }
138 126
139 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​127 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
140 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​128 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​
141 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​129 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/local/iostream_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/local/iostream_client.cpp.html deleted file mode 100644 index add88a7..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/local/iostream_client.cpp.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - HTML Diff local/iostream_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​local/​iostream_client.​cppsrc/​examples/​cpp11/​local/​iostream_client.​cpp
1 /​/​1 /​/​
2 /​/​·​stream_client.​cpp2 /​/​·​stream_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstring>11 #include·​<cstring>
12 #include·​<iostream>12 #include·​<iostream>
13 #include·​"asio.​hpp"13 #include·​"asio.​hpp"
14 14
15 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​15 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
16 16
17 using·​asio:​:​local:​:​stream_protocol;​17 using·​asio:​:​local:​:​stream_protocol;​
18 18
19 enum·{·​max_length·​=·​1024·};​19 constexpr·std:​:​size_t·​max_length·​=·​1024;​
20 20
21 int·​main(int·​argc,​·​char*·​argv[])​21 int·​main(int·​argc,​·​char*·​argv[])​
22 {22 {
23 ··​try23 ··​try
24 ··​{24 ··​{
25 ····​if·​(argc·​!=·​2)​25 ····​if·​(argc·​!=·​2)​
26 ····​{26 ····​{
27 ······​std:​:​cerr·​<<·​"Usage:​·​iostream_client·​<file>\n";​27 ······​std:​:​cerr·​<<·​"Usage:​·​iostream_client·​<file>\n";​
28 ······​return·​1;​28 ······​return·​1;​
29 ····​}29 ····​}
30 30
31 ····​stream_protocol:​:​endpoint·​ep(argv[1])​;​31 ····​stream_protocol:​:​endpoint·​ep(argv[1])​;​
32 ····​stream_protocol:​:​iostream·​s(ep)​;​32 ····​stream_protocol:​:​iostream·​s(ep)​;​
33 ····​if·​(!s)​33 ····​if·​(!s)​
34 ····​{34 ····​{
35 ······​std:​:​cerr·​<<·​"Unable·​to·​connect:​·​"·​<<·​s.​error()​.​message()​·​<<·​std:​:​endl;​35 ······​std:​:​cerr·​<<·​"Unable·​to·​connect:​·​"·​<<·​s.​error()​.​message()​·​<<·​std:​:​endl;​
36 ······​return·​1;​36 ······​return·​1;​
37 ····​}37 ····​}
38 38
39 ····​using·​namespace·​std;​·​/​/​·​For·​strlen.​
40 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​39 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​
41 ····​char·​request[max_length];​40 ····​char·​request[max_length];​
42 ····​std:​:​cin.​getline(request,​·​max_length)​;​41 ····​std:​:​cin.​getline(request,​·​max_length)​;​
43 ····​size_t·​length·​=·​strlen(request)​;​42 ····​size_t·​length·​=·std:​:​strlen(request)​;​
44 ····​s·​<<·​request;​43 ····​s·​<<·​request;​
45 44
46 ····​char·​reply[max_length];​45 ····​char·​reply[max_length];​
47 ····​s.​read(reply,​·​length)​;​46 ····​s.​read(reply,​·​length)​;​
48 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​47 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​
49 ····​std:​:​cout.​write(reply,​·​length)​;​48 ····​std:​:​cout.​write(reply,​·​length)​;​
50 ····​std:​:​cout·​<<·​"\n";​49 ····​std:​:​cout·​<<·​"\n";​
51 ··​}50 ··​}
52 ··​catch·​(std:​:​exception&·​e)​51 ··​catch·​(std:​:​exception&·​e)​
53 ··​{52 ··​{
54 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​53 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
55 ··​}54 ··​}
56 55
57 ··​return·​0;​56 ··​return·​0;​
58 }57 }
59 58
60 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​59 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
61 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​60 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​
62 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​61 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/local/stream_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/local/stream_client.cpp.html deleted file mode 100644 index a517ebb..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/local/stream_client.cpp.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - HTML Diff local/stream_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​local/​stream_client.​cppsrc/​examples/​cpp11/​local/​stream_client.​cpp
1 /​/​1 /​/​
2 /​/​·​stream_client.​cpp2 /​/​·​stream_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<cstring>12 #include·​<cstring>
13 #include·​<iostream>13 #include·​<iostream>
14 #include·​"asio.​hpp"14 #include·​"asio.​hpp"
15 15
16 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​16 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
17 17
18 using·​asio:​:​local:​:​stream_protocol;​18 using·​asio:​:​local:​:​stream_protocol;​
19 19
20 enum·{·​max_length·​=·​1024·};​20 constexpr·std:​:​size_t·​max_length·​=·​1024;​
21 21
22 int·​main(int·​argc,​·​char*·​argv[])​22 int·​main(int·​argc,​·​char*·​argv[])​
23 {23 {
24 ··​try24 ··​try
25 ··​{25 ··​{
26 ····​if·​(argc·​!=·​2)​26 ····​if·​(argc·​!=·​2)​
27 ····​{27 ····​{
28 ······​std:​:​cerr·​<<·​"Usage:​·​stream_client·​<file>\n";​28 ······​std:​:​cerr·​<<·​"Usage:​·​stream_client·​<file>\n";​
29 ······​return·​1;​29 ······​return·​1;​
30 ····​}30 ····​}
31 31
32 ····​asio:​:​io_context·​io_context;​32 ····​asio:​:​io_context·​io_context;​
33 33
34 ····​stream_protocol:​:​socket·​s(io_context)​;​34 ····​stream_protocol:​:​socket·​s(io_context)​;​
35 ····​s.​connect(stream_protoc​ol:​:​endpoint(argv[1])​)​;​35 ····​s.​connect(stream_protoc​ol:​:​endpoint(argv[1])​)​;​
36 36
37 ····​using·​namespace·​std;​·​/​/​·​For·​strlen.​
38 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​37 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​
39 ····​char·​request[max_length];​38 ····​char·​request[max_length];​
40 ····​std:​:​cin.​getline(request,​·​max_length)​;​39 ····​std:​:​cin.​getline(request,​·​max_length)​;​
41 ····​size_t·​request_length·​=·​strlen(request)​;​40 ····​size_t·​request_length·​=·std:​:​strlen(request)​;​
42 ····​asio:​:​write(s,​·​asio:​:​buffer(request,​·​request_length)​)​;​41 ····​asio:​:​write(s,​·​asio:​:​buffer(request,​·​request_length)​)​;​
43 42
44 ····​char·​reply[max_length];​43 ····​char·​reply[max_length];​
45 ····​size_t·​reply_length·​=·​asio:​:​read(s,​44 ····​size_t·​reply_length·​=·​asio:​:​read(s,​
46 ········​asio:​:​buffer(reply,​·​request_length)​)​;​45 ········​asio:​:​buffer(reply,​·​request_length)​)​;​
47 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​46 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​
48 ····​std:​:​cout.​write(reply,​·​reply_length)​;​47 ····​std:​:​cout.​write(reply,​·​reply_length)​;​
49 ····​std:​:​cout·​<<·​"\n";​48 ····​std:​:​cout·​<<·​"\n";​
50 ··​}49 ··​}
51 ··​catch·​(std:​:​exception&·​e)​50 ··​catch·​(std:​:​exception&·​e)​
52 ··​{51 ··​{
53 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​52 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
54 ··​}53 ··​}
55 54
56 ··​return·​0;​55 ··​return·​0;​
57 }56 }
58 57
59 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​58 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
60 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​59 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​
61 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​60 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/local/stream_server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/local/stream_server.cpp.html deleted file mode 100644 index 142e4e9..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/local/stream_server.cpp.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - HTML Diff local/stream_server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​local/​stream_server.​cppsrc/​examples/​cpp11/​local/​stream_server.​cpp
1 /​/​1 /​/​
2 /​/​·​stream_server.​cpp2 /​/​·​stream_server.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<array>
11 #include·​<cstdio>12 #include·​<cstdio>
12 #include·​<iostream>13 #include·​<iostream>
13 #include·​<boost/​array.​hpp>14 #include·​<memory>
14 #include·<boost/​bind.​hpp>
15 #include·<boost/​enable_shared_from_th​is.​hpp>
16 #include·<boost/​shared_ptr.​hpp>
17 #include·​"asio.​hpp"15 #include·​"asio.​hpp"
18 16
19 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​17 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
20 18
21 using·​asio:​:​local:​:​stream_protocol;​19 using·​asio:​:​local:​:​stream_protocol;​
22 20
23 class·​session21 class·​session
24 ··​:​·​public·boost:​:​enable_shared_from_th​is<session>22 ··​:​·​public·​std:​:​enable_shared_from_th​is<session>
25 {23 {
26 public:​24 public:​
27 ··​session(asio:​:​io_context&·io_context)​25 ··​session(stream_protoc​ol:​:​socket·sock)​
28 ····​:​·​socket_(io_context)​26 ····​:​·​socket_(std:​:​move(sock)​)​
29 ··​{27 ··​{
30 ··​}28 ··​}
31 29
32 ··​stream_protocol:​:​socket&·​socket()​
33 ··​{
34 ····​return·​socket_;​
35 ··​}
36
37 ··​void·​start()​30 ··​void·​start()​
38 ··​{31 ··​{
39 ····socket_.​async_read_some(asio:​:​buffer(data_)​,​32 ····do_read()​;​
40 ········boost:​:​bind(&session:​:​handle_read,​
41 ··········shared_from_this()​,​
42 ··········asio:​:​placeholders:​:​error,​
43 ··········asio:​:​placeholders:​:​bytes_transferred)​)​;​
44 ··}
45
46 ··void·handle_read(const·asio:​:​error_code&·error,​
47 ······size_t·bytes_transferred)​
48 ··{
49 ····if·(!error)​
50 ····{
51 ······asio:​:​async_write(socket_,​
52 ··········asio:​:​buffer(data_,​·bytes_transferred)​,​
53 ··········boost:​:​bind(&session:​:​handle_write,​
54 ············shared_from_this()​,​
55 ············asio:​:​placeholders:​:​error)​)​;​
56 ····}
57 ··​}33 ··​}
58 34
59 ··void·handle_write(const·asio:​:​error_code&·error)​35 private:​
36 ··​void·​do_read()​
60 ··​{37 ··​{
61 ····if·​(!error)​38 ····auto·self(shared_from_this​()​)​;​
62 ····{39 ····socket_.​async_read_some(asio:​:​buffer(data_)​,​
63 ······​socket_.​async_read_some(asio:​:​buffer(data_)​,​40 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·length)​
64 ··········boost:​:​bind(&session:​:​handle_read,​41 ········{
65 ············shared_from_this()​,​42 ··········if·(!ec)​
66 ············asio:​:​placeholders:​:​error,​43 ············do_write(length)​;​
67 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​44 ········})​;​
68 ····​}45 ··​}
46
47 ··​void·​do_write(std:​:​size_t·​length)​
48 ··​{
49 ····​auto·​self(shared_from_this​()​)​;​
50 ····​asio:​:​async_write(socket_,​
51 ········​asio:​:​buffer(data_,​·​length)​,​
52 ········​[this,​·​self](std:​:​error_code·​ec,​·​std:​:​size_t·​/​*length*/​)​
53 ········​{
54 ··········​if·​(!ec)​
55 ············​do_read()​;​
56 ········​})​;​
69 ··​}57 ··​}
70 58
71 private:​
72 ··​/​/​·​The·​socket·​used·​to·​communicate·​with·​the·​client.​59 ··​/​/​·​The·​socket·​used·​to·​communicate·​with·​the·​client.​
73 ··​stream_protocol:​:​socket·​socket_;​60 ··​stream_protocol:​:​socket·​socket_;​
74 61
75 ··​/​/​·​Buffer·​used·​to·​store·​data·​received·​from·​the·​client.​62 ··​/​/​·​Buffer·​used·​to·​store·​data·​received·​from·​the·​client.​
76 ··boost:​:​array<char,​·​1024>·​data_;​63 ··​std:​:​array<char,​·​1024>·​data_;​
77 };​64 };​
78 65
79 typedef·​boost:​:​shared_ptr<session>·​session_ptr;​
80
81 class·​server66 class·​server
82 {67 {
83 public:​68 public:​
84 ··​server(asio:​:​io_context&·​io_context,​·​const·​std:​:​string&·​file)​69 ··​server(asio:​:​io_context&·​io_context,​·​const·​std:​:​string&·​file)​
85 ····​:​·​io_context_(io_contex​t)​,​70 ····​:​·acceptor_(io_context,​·stream_protocol:​:​endpoint(file)​)​
86 ······acceptor_(io_context,​·stream_protocol:​:​endpoint(file)​)​
87 ··​{71 ··​{
88 ····session_ptr·new_session(new·session(io_context_)​)​;​72 ····do_accept()​;​
89 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​
90 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​
91 ··········asio:​:​placeholders:​:​error)​)​;​
92 ··​}73 ··​}
93 74
94 ··void·handle_accept(session​_ptr·new_session,​75 private:​
95 ······const·asio:​:​error_code&·error)​76 ··void·do_accept()​
96 ··​{77 ··​{
97 ····if·(!error)​78 ····acceptor_.​async_accept(
98 ····{79 ········[this](std:​:​error_code·ec,​·stream_protocol:​:​socket·socket)​
99 ······new_session-​>start()​;​80 ········{
100 ····}81 ··········if·(!ec)​
82 ··········​{
83 ············​std:​:​make_shared<session>(​std:​:​move(socket)​)​-​>start()​;​
84 ··········​}
101 85
102 ····new_session.​reset(new·session(io_context_)​)​;​86 ··········do_accept()​;​
103 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​87 ········})​;​
104 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​
105 ··········asio:​:​placeholders:​:​error)​)​;​
106 ··​}88 ··​}
107 89
108 private:​
109 ··​asio:​:​io_context&·​io_context_;​
110 ··​stream_protocol:​:​acceptor·​acceptor_;​90 ··​stream_protocol:​:​acceptor·​acceptor_;​
111 };​91 };​
112 92
113 int·​main(int·​argc,​·​char*·​argv[])​93 int·​main(int·​argc,​·​char*·​argv[])​
114 {94 {
115 ··​try95 ··​try
116 ··​{96 ··​{
117 ····​if·​(argc·​!=·​2)​97 ····​if·​(argc·​!=·​2)​
118 ····​{98 ····​{
119 ······​std:​:​cerr·​<<·​"Usage:​·​stream_server·​<file>\n";​99 ······​std:​:​cerr·​<<·​"Usage:​·​stream_server·​<file>\n";​
120 ······​std:​:​cerr·​<<·​"***·​WARNING:​·​existing·​file·​is·​removed·​***\n";​100 ······​std:​:​cerr·​<<·​"***·​WARNING:​·​existing·​file·​is·​removed·​***\n";​
121 ······​return·​1;​101 ······​return·​1;​
122 ····​}102 ····​}
123 103
124 ····​asio:​:​io_context·​io_context;​104 ····​asio:​:​io_context·​io_context;​
125 105
126 ····​std:​:​remove(argv[1])​;​106 ····​std:​:​remove(argv[1])​;​
127 ····​server·​s(io_context,​·​argv[1])​;​107 ····​server·​s(io_context,​·​argv[1])​;​
128 108
129 ····​io_context.​run()​;​109 ····​io_context.​run()​;​
130 ··​}110 ··​}
131 ··​catch·​(std:​:​exception&·​e)​111 ··​catch·​(std:​:​exception&·​e)​
132 ··​{112 ··​{
133 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​113 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
134 ··​}114 ··​}
135 115
136 ··​return·​0;​116 ··​return·​0;​
137 }117 }
138 118
139 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​119 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
140 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​120 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​
141 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​121 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/multicast/receiver.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/multicast/receiver.cpp.html deleted file mode 100644 index d967d13..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/multicast/receiver.cpp.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - HTML Diff multicast/receiver.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​multicast/​receiver.​cppsrc/​examples/​cpp11/​multicast/​receiver.​cpp
1 /​/​1 /​/​
2 /​/​·​receiver.​cpp2 /​/​·​receiver.​cpp
3 /​/​·​~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<array>
11 #include·​<iostream>12 #include·​<iostream>
12 #include·​<string>13 #include·​<string>
13 #include·​"asio.​hpp"14 #include·​"asio.​hpp"
14 #include·​"boost/​bind.​hpp"
15 15
16 const·​short·​multicast_port·​=·​30001;​16 constexpr·​short·​multicast_port·​=·​30001;​
17 17
18 class·​receiver18 class·​receiver
19 {19 {
20 public:​20 public:​
21 ··​receiver(asio:​:​io_context&·​io_context,​21 ··​receiver(asio:​:​io_context&·​io_context,​
22 ······​const·​asio:​:​ip:​:​address&·​listen_address,​22 ······​const·​asio:​:​ip:​:​address&·​listen_address,​
23 ······​const·​asio:​:​ip:​:​address&·​multicast_address)​23 ······​const·​asio:​:​ip:​:​address&·​multicast_address)​
24 ····​:​·​socket_(io_context)​24 ····​:​·​socket_(io_context)​
25 ··​{25 ··​{
26 ····​/​/​·​Create·​the·​socket·​so·​that·​multiple·​may·​be·​bound·​to·​the·​same·​address.​26 ····​/​/​·​Create·​the·​socket·​so·​that·​multiple·​may·​be·​bound·​to·​the·​same·​address.​
27 ····​asio:​:​ip:​:​udp:​:​endpoint·​listen_endpoint(27 ····​asio:​:​ip:​:​udp:​:​endpoint·​listen_endpoint(
28 ········​listen_address,​·​multicast_port)​;​28 ········​listen_address,​·​multicast_port)​;​
29 ····​socket_.​open(listen_endpoint.​protocol()​)​;​29 ····​socket_.​open(listen_endpoint.​protocol()​)​;​
30 ····​socket_.​set_option(asio:​:​ip:​:​udp:​:​socket:​:​reuse_address(true)​)​;​30 ····​socket_.​set_option(asio:​:​ip:​:​udp:​:​socket:​:​reuse_address(true)​)​;​
31 ····​socket_.​bind(listen_endpoint)​;​31 ····​socket_.​bind(listen_endpoint)​;​
32 32
33 ····​/​/​·​Join·​the·​multicast·​group.​33 ····​/​/​·​Join·​the·​multicast·​group.​
34 ····​socket_.​set_option(34 ····​socket_.​set_option(
35 ········​asio:​:​ip:​:​multicast:​:​join_group(multicast_​address)​)​;​35 ········​asio:​:​ip:​:​multicast:​:​join_group(multicast_​address)​)​;​
36 36
37 ····socket_.​async_receive_from(37 ····do_receive()​;​
38 ········asio:​:​buffer(data_,​·max_length)​,​·sender_endpoint_,​
39 ········boost:​:​bind(&receiver:​:​handle_receive_from,​·this,​
40 ··········asio:​:​placeholders:​:​error,​
41 ··········asio:​:​placeholders:​:​bytes_transferred)​)​;​
42 ··​}38 ··​}
43 39
44 ··void·handle_receive_from(c​onst·asio:​:​error_code&·error,​40 private:​
45 ······size_t·bytes_recvd)​41 ··void·do_receive()​
46 ··​{42 ··​{
47 ····if·(!error)​43 ····socket_.​async_receive_from(
48 ····{44 ········asio:​:​buffer(data_)​,​·sender_endpoint_,​
49 ······​std:​:​cout.​write(data_,​·bytes_recvd)​;​45 ········[this](std:​:​error_code·ec,​·std:​:​size_t·length)​
50 ······std:​:​cout·<<·std:​:​endl;​46 ········{
51 47 ··········if·(!ec)​
52 ······socket_.​async_receive_from(48 ··········{
53 ··········asio:​:​buffer(data_,​·max_length)​,​·sender_endpoint_,​49 ············std:​:​cout.​write(data_.​data()​,​·length)​;​
54 ··········boost:​:​bind(&receiver:​:​handle_receive_from,​·this,​50 ············std:​:​cout·<<·std:​:​endl;​
55 ············asio:​:​placeholders:​:​error,​51
56 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​52 ············​do_receive()​;​
57 ····​}53 ··········​}
54 ········​})​;​
58 ··​}55 ··​}
59 56
60 private:​
61 ··​asio:​:​ip:​:​udp:​:​socket·​socket_;​57 ··​asio:​:​ip:​:​udp:​:​socket·​socket_;​
62 ··​asio:​:​ip:​:​udp:​:​endpoint·​sender_endpoint_;​58 ··​asio:​:​ip:​:​udp:​:​endpoint·​sender_endpoint_;​
63 ··enum·{·max_length·=·​1024·};​59 ··std:​:​array<char,​·​1024>·data_;​
64 ··char·data_[max_length];​
65 };​60 };​
66 61
67 int·​main(int·​argc,​·​char*·​argv[])​62 int·​main(int·​argc,​·​char*·​argv[])​
68 {63 {
69 ··​try64 ··​try
70 ··​{65 ··​{
71 ····​if·​(argc·​!=·​3)​66 ····​if·​(argc·​!=·​3)​
72 ····​{67 ····​{
73 ······​std:​:​cerr·​<<·​"Usage:​·​receiver·​<listen_address>·​<multicast_address>\n​";​68 ······​std:​:​cerr·​<<·​"Usage:​·​receiver·​<listen_address>·​<multicast_address>\n​";​
74 ······​std:​:​cerr·​<<·​"··​For·​IPv4,​·​try:​\n";​69 ······​std:​:​cerr·​<<·​"··​For·​IPv4,​·​try:​\n";​
75 ······​std:​:​cerr·​<<·​"····​receiver·​0.​0.​0.​0·​239.​255.​0.​1\n";​70 ······​std:​:​cerr·​<<·​"····​receiver·​0.​0.​0.​0·​239.​255.​0.​1\n";​
76 ······​std:​:​cerr·​<<·​"··​For·​IPv6,​·​try:​\n";​71 ······​std:​:​cerr·​<<·​"··​For·​IPv6,​·​try:​\n";​
77 ······​std:​:​cerr·​<<·​"····​receiver·​0:​:​0·​ff31:​:​8000:​1234\n";​72 ······​std:​:​cerr·​<<·​"····​receiver·​0:​:​0·​ff31:​:​8000:​1234\n";​
78 ······​return·​1;​73 ······​return·​1;​
79 ····​}74 ····​}
80 75
81 ····​asio:​:​io_context·​io_context;​76 ····​asio:​:​io_context·​io_context;​
82 ····​receiver·​r(io_context,​77 ····​receiver·​r(io_context,​
83 ········​asio:​:​ip:​:​make_address(argv[1])​,​78 ········​asio:​:​ip:​:​make_address(argv[1])​,​
84 ········​asio:​:​ip:​:​make_address(argv[2])​)​;​79 ········​asio:​:​ip:​:​make_address(argv[2])​)​;​
85 ····​io_context.​run()​;​80 ····​io_context.​run()​;​
86 ··​}81 ··​}
87 ··​catch·​(std:​:​exception&·​e)​82 ··​catch·​(std:​:​exception&·​e)​
88 ··​{83 ··​{
89 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​84 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
90 ··​}85 ··​}
91 86
92 ··​return·​0;​87 ··​return·​0;​
93 }88 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/multicast/sender.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/multicast/sender.cpp.html deleted file mode 100644 index 390418e..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/multicast/sender.cpp.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - HTML Diff multicast/sender.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​multicast/​sender.​cppsrc/​examples/​cpp11/​multicast/​sender.​cpp
1 /​/​1 /​/​
2 /​/​·​sender.​cpp2 /​/​·​sender.​cpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<iostream>11 #include·​<iostream>
12 #include·​<sstream>12 #include·​<sstream>
13 #include·​<string>13 #include·​<string>
14 #include·​"asio.​hpp"14 #include·​"asio.​hpp"
15 #include·​"boost/​bind.​hpp"
16 15
17 const·​short·​multicast_port·​=·​30001;​16 constexpr·​short·​multicast_port·​=·​30001;​
18 const·​int·​max_message_count·​=·​10;​17 constexpr·​int·​max_message_count·​=·​10;​
19 18
20 class·​sender19 class·​sender
21 {20 {
22 public:​21 public:​
23 ··​sender(asio:​:​io_context&·​io_context,​22 ··​sender(asio:​:​io_context&·​io_context,​
24 ······​const·​asio:​:​ip:​:​address&·​multicast_address)​23 ······​const·​asio:​:​ip:​:​address&·​multicast_address)​
25 ····​:​·​endpoint_(multicast_a​ddress,​·​multicast_port)​,​24 ····​:​·​endpoint_(multicast_a​ddress,​·​multicast_port)​,​
26 ······​socket_(io_context,​·​endpoint_.​protocol()​)​,​25 ······​socket_(io_context,​·​endpoint_.​protocol()​)​,​
27 ······​timer_(io_context)​,​26 ······​timer_(io_context)​,​
28 ······​message_count_(0)​27 ······​message_count_(0)​
29 ··​{28 ··​{
29 ····​do_send()​;​
30 ··​}
31
32 private:​
33 ··​void·​do_send()​
34 ··​{
30 ····​std:​:​ostringstream·​os;​35 ····​std:​:​ostringstream·​os;​
31 ····​os·​<<·​"Message·​"·​<<·​message_count_++;​36 ····​os·​<<·​"Message·​"·​<<·​message_count_++;​
32 ····​message_·​=·​os.​str()​;​37 ····​message_·​=·​os.​str()​;​
33 38
34 ····​socket_.​async_send_to(39 ····​socket_.​async_send_to(
35 ········​asio:​:​buffer(message_)​,​·​endpoint_,​40 ········​asio:​:​buffer(message_)​,​·​endpoint_,​
36 ········boost:​:​bind(&sender:​:​handle_send_to,​·this,​41 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
37 ··········asio:​:​placeholders:​:​error)​)​;​42 ········{
43 ··········​if·​(!ec·​&&·​message_count_·​<·​max_message_count)​
44 ············​do_timeout()​;​
45 ········​})​;​
38 ··​}46 ··​}
39 47
40 ··​void·handle_send_to(const·asio:​:​error_code&·error)​48 ··​void·​do_timeout()​
41 ··​{49 ··​{
42 ····if·(!error·&&·message_count_·<·max_message_count)​50 ····timer_.​expires_after(std:​:​chrono:​:​seconds(1)​)​;​
43 ····{51 ····timer_.​async_wait(
44 ······timer_.​expires_after(asio:​:​chrono:​:​seconds(1)​)​;​52 ········[this](std:​:​error_code·ec)​
45 ······timer_.​async_wait(53 ········{
46 ··········boost:​:​bind(&sender:​:​handle_timeout,​·this,​54 ··········​if·(!ec)​
47 ············asio:​:​placeholders:​:​error)​)​;​55 ············​do_send()​;​
48 ····​}56 ········​})​;​
49 ··}
50
51 ··void·handle_timeout(const·asio:​:​error_code&·error)​
52 ··{
53 ····if·(!error)​
54 ····{
55 ······std:​:​ostringstream·os;​
56 ······os·<<·"Message·"·<<·message_count_++;​
57 ······message_·=·os.​str()​;​
58
59 ······socket_.​async_send_to(
60 ··········asio:​:​buffer(message_)​,​·endpoint_,​
61 ··········boost:​:​bind(&sender:​:​handle_send_to,​·this,​
62 ············asio:​:​placeholders:​:​error)​)​;​
63 ····}
64 ··​}57 ··​}
65 58
66 private:​59 private:​
67 ··​asio:​:​ip:​:​udp:​:​endpoint·​endpoint_;​60 ··​asio:​:​ip:​:​udp:​:​endpoint·​endpoint_;​
68 ··​asio:​:​ip:​:​udp:​:​socket·​socket_;​61 ··​asio:​:​ip:​:​udp:​:​socket·​socket_;​
69 ··​asio:​:​steady_timer·​timer_;​62 ··​asio:​:​steady_timer·​timer_;​
70 ··​int·​message_count_;​63 ··​int·​message_count_;​
71 ··​std:​:​string·​message_;​64 ··​std:​:​string·​message_;​
72 };​65 };​
73 66
74 int·​main(int·​argc,​·​char*·​argv[])​67 int·​main(int·​argc,​·​char*·​argv[])​
75 {68 {
76 ··​try69 ··​try
77 ··​{70 ··​{
78 ····​if·​(argc·​!=·​2)​71 ····​if·​(argc·​!=·​2)​
79 ····​{72 ····​{
80 ······​std:​:​cerr·​<<·​"Usage:​·​sender·​<multicast_address>\n​";​73 ······​std:​:​cerr·​<<·​"Usage:​·​sender·​<multicast_address>\n​";​
81 ······​std:​:​cerr·​<<·​"··​For·​IPv4,​·​try:​\n";​74 ······​std:​:​cerr·​<<·​"··​For·​IPv4,​·​try:​\n";​
82 ······​std:​:​cerr·​<<·​"····​sender·​239.​255.​0.​1\n";​75 ······​std:​:​cerr·​<<·​"····​sender·​239.​255.​0.​1\n";​
83 ······​std:​:​cerr·​<<·​"··​For·​IPv6,​·​try:​\n";​76 ······​std:​:​cerr·​<<·​"··​For·​IPv6,​·​try:​\n";​
84 ······​std:​:​cerr·​<<·​"····​sender·​ff31:​:​8000:​1234\n";​77 ······​std:​:​cerr·​<<·​"····​sender·​ff31:​:​8000:​1234\n";​
85 ······​return·​1;​78 ······​return·​1;​
86 ····​}79 ····​}
87 80
88 ····​asio:​:​io_context·​io_context;​81 ····​asio:​:​io_context·​io_context;​
89 ····​sender·​s(io_context,​·​asio:​:​ip:​:​make_address(argv[1])​)​;​82 ····​sender·​s(io_context,​·​asio:​:​ip:​:​make_address(argv[1])​)​;​
90 ····​io_context.​run()​;​83 ····​io_context.​run()​;​
91 ··​}84 ··​}
92 ··​catch·​(std:​:​exception&·​e)​85 ··​catch·​(std:​:​exception&·​e)​
93 ··​{86 ··​{
94 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​87 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
95 ··​}88 ··​}
96 89
97 ··​return·​0;​90 ··​return·​0;​
98 }91 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/nonblocking/third_party_lib.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/nonblocking/third_party_lib.cpp.html deleted file mode 100644 index 3e0318f..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/nonblocking/third_party_lib.cpp.html +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - - HTML Diff nonblocking/third_party_lib.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​nonblocking/​third_party_lib.​cppsrc/​examples/​cpp11/​nonblocking/​third_party_lib.​cpp
1 /​/​1 /​/​
2 /​/​·​third_party_lib.​cpp2 /​/​·​third_party_lib.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<asio.​hpp>11 #include·​<asio.​hpp>
12 #include·​<boost/​array.​hpp>12 #include·​<array>
13 #include·<boost/​bind.​hpp>
14 #include·<boost/​shared_ptr.​hpp>
15 #include·<boost/​enable_shared_from_th​is.​hpp>
16 #include·​<iostream>13 #include·​<iostream>
14 #include·​<memory>
17 15
18 using·​asio:​:​ip:​:​tcp;​16 using·​asio:​:​ip:​:​tcp;​
19 17
20 namespace·​third_party_lib·​{18 namespace·​third_party_lib·​{
21 19
22 /​/​·​Simulation·​of·​a·​third·​party·​library·​that·​wants·​to·​perform·​read·​and·​write20 /​/​·​Simulation·​of·​a·​third·​party·​library·​that·​wants·​to·​perform·​read·​and·​write
23 /​/​·​operations·​directly·​on·​a·​socket.​·​It·​needs·​to·​be·​polled·​to·​determine·​whether21 /​/​·​operations·​directly·​on·​a·​socket.​·​It·​needs·​to·​be·​polled·​to·​determine·​whether
24 /​/​·​it·​requires·​a·​read·​or·​write·​operation,​·​and·​notified·​when·​the·​socket·​is·​ready22 /​/​·​it·​requires·​a·​read·​or·​write·​operation,​·​and·​notified·​when·​the·​socket·​is·​ready
25 /​/​·​for·​reading·​or·​writing.​23 /​/​·​for·​reading·​or·​writing.​
26 class·​session24 class·​session
27 {25 {
28 public:​26 public:​
29 ··​session(tcp:​:​socket&·​socket)​27 ··​session(tcp:​:​socket&·​socket)​
30 ····​:​·​socket_(socket)​,​28 ····​:​·​socket_(socket)​
31 ······state_(reading)​
32 ··​{29 ··​{
33 ··​}30 ··​}
34 31
35 ··​/​/​·​Returns·​true·​if·​the·​third·​party·​library·​wants·​to·​be·​notified·​when·​the32 ··​/​/​·​Returns·​true·​if·​the·​third·​party·​library·​wants·​to·​be·​notified·​when·​the
36 ··​/​/​·​socket·​is·​ready·​for·​reading.​33 ··​/​/​·​socket·​is·​ready·​for·​reading.​
37 ··​bool·​want_read()​·​const34 ··​bool·​want_read()​·​const
38 ··​{35 ··​{
39 ····​return·​state_·​==·​reading;​36 ····​return·​state_·​==·​reading;​
40 ··​}37 ··​}
41 38
42 ··​/​/​·​Notify·​that·​third·​party·​library·​that·​it·​should·​perform·​its·​read·​operation.​39 ··​/​/​·​Notify·​that·​third·​party·​library·​that·​it·​should·​perform·​its·​read·​operation.​
43 ··​void·​do_read(asio:​:​error_code&·​ec)​40 ··​void·​do_read(std:​:​error_code&·​ec)​
44 ··​{41 ··​{
45 ····​if·​(std:​:​size_t·​len·​=·​socket_.​read_some(asio:​:​buffer(data_)​,​·​ec)​)​42 ····​if·​(std:​:​size_t·​len·​=·​socket_.​read_some(asio:​:​buffer(data_)​,​·​ec)​)​
46 ····​{43 ····​{
47 ······​write_buffer_·​=·​asio:​:​buffer(data_,​·​len)​;​44 ······​write_buffer_·​=·​asio:​:​buffer(data_,​·​len)​;​
48 ······​state_·​=·​writing;​45 ······​state_·​=·​writing;​
49 ····​}46 ····​}
50 ··​}47 ··​}
51 48
52 ··​/​/​·​Returns·​true·​if·​the·​third·​party·​library·​wants·​to·​be·​notified·​when·​the49 ··​/​/​·​Returns·​true·​if·​the·​third·​party·​library·​wants·​to·​be·​notified·​when·​the
53 ··​/​/​·​socket·​is·​ready·​for·​writing.​50 ··​/​/​·​socket·​is·​ready·​for·​writing.​
54 ··​bool·​want_write()​·​const51 ··​bool·​want_write()​·​const
55 ··​{52 ··​{
56 ····​return·​state_·​==·​writing;​53 ····​return·​state_·​==·​writing;​
57 ··​}54 ··​}
58 55
59 ··​/​/​·​Notify·​that·​third·​party·​library·​that·​it·​should·​perform·​its·​write·​operation.​56 ··​/​/​·​Notify·​that·​third·​party·​library·​that·​it·​should·​perform·​its·​write·​operation.​
60 ··​void·​do_write(asio:​:​error_code&·​ec)​57 ··​void·​do_write(std:​:​error_code&·​ec)​
61 ··​{58 ··​{
62 ····​if·​(std:​:​size_t·​len·​=·​socket_.​write_some(59 ····​if·​(std:​:​size_t·​len·​=·​socket_.​write_some(
63 ··········​asio:​:​buffer(write_buffer_)​,​·​ec)​)​60 ··········​asio:​:​buffer(write_buffer_)​,​·​ec)​)​
64 ····​{61 ····​{
65 ······​write_buffer_·​=·​write_buffer_·​+·​len;​62 ······​write_buffer_·​=·​write_buffer_·​+·​len;​
66 ······​state_·​=·​asio:​:​buffer_size(write_buf​fer_)​·​>·​0·​?·​writing·​:​·​reading;​63 ······​state_·​=·​asio:​:​buffer_size(write_buf​fer_)​·​>·​0·​?·​writing·​:​·​reading;​
67 ····​}64 ····​}
68 ··​}65 ··​}
69 66
70 private:​67 private:​
71 ··​tcp:​:​socket&·​socket_;​68 ··​tcp:​:​socket&·​socket_;​
72 ··​enum·​{·​reading,​·​writing·​}·​state_;​69 ··​enum·​{·​reading,​·​writing·​}·​state_·=·reading;​
73 ··boost:​:​array<char,​·​128>·​data_;​70 ··​std:​:​array<char,​·​128>·​data_;​
74 ··​asio:​:​const_buffer·​write_buffer_;​71 ··​asio:​:​const_buffer·​write_buffer_;​
75 };​72 };​
76 73
77 }·​/​/​·​namespace·​third_party_lib74 }·​/​/​·​namespace·​third_party_lib
78 75
79 /​/​·​The·​glue·​between·​asio's·​sockets·​and·​the·​third·​party·​library.​76 /​/​·​The·​glue·​between·​asio's·​sockets·​and·​the·​third·​party·​library.​
80 class·​connection77 class·​connection
81 ··​:​·​public·boost:​:​enable_shared_from_th​is<connection>78 ··​:​·​public·​std:​:​enable_shared_from_th​is<connection>
82 {79 {
83 public:​80 public:​
84 ··typedef·boost:​:​shared_ptr<connection​>·pointer;​81 ··connection(tcp:​:​socket·socket)​
85 82 ····:​·socket_(std:​:​move(socket)​)​
86 ··static·pointer·create(asio:​:​io_context&·io_context)​
87 ··{
88 ····return·pointer(new·connection(io_context​)​)​;​
89 ··}
90
91 ··tcp:​:​socket&·socket()​
92 ··​{83 ··​{
93 ····​return·​socket_;​
94 ··​}84 ··​}
95 85
96 ··​void·​start()​86 ··​void·​start()​
97 ··​{87 ··​{
98 ····​/​/​·​Put·​the·​socket·​into·​non-​blocking·​mode.​88 ····​/​/​·​Put·​the·​socket·​into·​non-​blocking·​mode.​
99 ····​socket_.​non_blocking(true)​;​89 ····​socket_.​non_blocking(true)​;​
100 90
101 ····start_operations()​;​91 ····do_operations()​;​
102 ··​}92 ··​}
103 93
104 private:​94 private:​
105 ··connection(asio:​:​io_context&·io_context)​95 ··void·do_operations()​
106 ····:​·socket_(io_context)​,​
107 ······session_impl_(socket_​)​,​
108 ······read_in_progress_(fal​se)​,​
109 ······write_in_progress_(fa​lse)​
110 ··​{96 ··​{
111 ··}97 ····auto·self(shared_from_this​()​)​;​
112 98
113 ··​void·​start_operations()​
114 ··​{
115 ····​/​/​·​Start·​a·​read·​operation·​if·​the·​third·​party·​library·​wants·​one.​99 ····​/​/​·​Start·​a·​read·​operation·​if·​the·​third·​party·​library·​wants·​one.​
116 ····​if·​(session_impl_.​want_read()​·​&&·​!read_in_progress_)​100 ····​if·​(session_impl_.​want_read()​·​&&·​!read_in_progress_)​
117 ····​{101 ····​{
118 ······​read_in_progress_·​=·​true;​102 ······​read_in_progress_·​=·​true;​
119 ······​socket_.​async_wait(tcp:​:​socket:​:​wait_read,​103 ······​socket_.​async_wait(tcp:​:​socket:​:​wait_read,​
120 ··········boost:​:​bind(&connection:​:​handle_read,​104 ··········[this,​·self](std:​:​error_code·ec)​
121 ············shared_from_this()​,​105 ··········{
122 ············asio:​:​placeholders:​:​error)​)​;​106 ············read_in_progress_·=·false;​
107
108 ············​/​/​·​Notify·​third·​party·​library·​that·​it·​can·​perform·​a·​read.​
109 ············​if·​(!ec)​
110 ··············​session_impl_.​do_read(ec)​;​
111
112 ············​/​/​·​The·​third·​party·​library·​successfully·​performed·​a·​read·​on·​the
113 ············​/​/​·​socket.​·​Start·​new·​read·​or·​write·​operations·​based·​on·​what·​it·​now
114 ············​/​/​·​wants.​
115 ············​if·​(!ec·​||·​ec·​==·​asio:​:​error:​:​would_block)​
116 ··············​do_operations()​;​
117
118 ············​/​/​·​Otherwise,​·​an·​error·​occurred.​·​Closing·​the·​socket·​cancels·​any
119 ············​/​/​·​outstanding·​asynchronous·​read·​or·​write·​operations.​·​The
120 ············​/​/​·​connection·​object·​will·​be·​destroyed·​automatically·​once·​those
121 ············​/​/​·​outstanding·​operations·​complete.​
122 ············​else
123 ··············​socket_.​close()​;​
124 ··········​})​;​
123 ····​}125 ····​}
124 126
125 ····​/​/​·​Start·​a·​write·​operation·​if·​the·​third·​party·​library·​wants·​one.​127 ····​/​/​·​Start·​a·​write·​operation·​if·​the·​third·​party·​library·​wants·​one.​
126 ····​if·​(session_impl_.​want_write()​·​&&·​!write_in_progress_)​128 ····​if·​(session_impl_.​want_write()​·​&&·​!write_in_progress_)​
127 ····​{129 ····​{
128 ······​write_in_progress_·​=·​true;​130 ······​write_in_progress_·​=·​true;​
129 ······​socket_.​async_wait(tcp:​:​socket:​:​wait_write,​131 ······​socket_.​async_wait(tcp:​:​socket:​:​wait_write,​
130 ··········boost:​:​bind(&connection:​:​handle_write,​132 ··········[this,​·self](std:​:​error_code·ec)​
131 ············shared_from_this()​,​133 ··········{
132 ············asio:​:​placeholders:​:​error)​)​;​134 ············write_in_progress_·=·false;​
135
136 ············​/​/​·​Notify·​third·​party·​library·​that·​it·​can·​perform·​a·​write.​
137 ············​if·​(!ec)​
138 ··············​session_impl_.​do_write(ec)​;​
139
140 ············​/​/​·​The·​third·​party·​library·​successfully·​performed·​a·​write·​on·​the
141 ············​/​/​·​socket.​·​Start·​new·​read·​or·​write·​operations·​based·​on·​what·​it·​now
142 ············​/​/​·​wants.​
143 ············​if·​(!ec·​||·​ec·​==·​asio:​:​error:​:​would_block)​
144 ··············​do_operations()​;​
145
146 ············​/​/​·​Otherwise,​·​an·​error·​occurred.​·​Closing·​the·​socket·​cancels·​any
147 ············​/​/​·​outstanding·​asynchronous·​read·​or·​write·​operations.​·​The
148 ············​/​/​·​connection·​object·​will·​be·​destroyed·​automatically·​once·​those
149 ············​/​/​·​outstanding·​operations·​complete.​
150 ············​else
151 ··············​socket_.​close()​;​
152 ··········​})​;​
133 ····​}153 ····​}
134 ··​}154 ··​}
135 155
136 ··​void·​handle_read(asio:​:​error_code·​ec)​
137 ··​{
138 ····​read_in_progress_·​=·​false;​
139
140 ····​/​/​·​Notify·​third·​party·​library·​that·​it·​can·​perform·​a·​read.​
141 ····​if·​(!ec)​
142 ······​session_impl_.​do_read(ec)​;​
143
144 ····​/​/​·​The·​third·​party·​library·​successfully·​performed·​a·​read·​on·​the·​socket.​
145 ····​/​/​·​Start·​new·​read·​or·​write·​operations·​based·​on·​what·​it·​now·​wants.​
146 ····​if·​(!ec·​||·​ec·​==·​asio:​:​error:​:​would_block)​
147 ······​start_operations()​;​
148
149 ····​/​/​·​Otherwise,​·​an·​error·​occurred.​·​Closing·​the·​socket·​cancels·​any·​outstanding
150 ····​/​/​·​asynchronous·​read·​or·​write·​operations.​·​The·​connection·​object·​will·​be
151 ····​/​/​·​destroyed·​automatically·​once·​those·​outstanding·​operations·​complete.​
152 ····​else
153 ······​socket_.​close()​;​
154 ··​}
155
156 ··​void·​handle_write(asio:​:​error_code·​ec)​
157 ··​{
158 ····​write_in_progress_·​=·​false;​
159
160 ····​/​/​·​Notify·​third·​party·​library·​that·​it·​can·​perform·​a·​write.​
161 ····​if·​(!ec)​
162 ······​session_impl_.​do_write(ec)​;​
163
164 ····​/​/​·​The·​third·​party·​library·​successfully·​performed·​a·​write·​on·​the·​socket.​
165 ····​/​/​·​Start·​new·​read·​or·​write·​operations·​based·​on·​what·​it·​now·​wants.​
166 ····​if·​(!ec·​||·​ec·​==·​asio:​:​error:​:​would_block)​
167 ······​start_operations()​;​
168
169 ····​/​/​·​Otherwise,​·​an·​error·​occurred.​·​Closing·​the·​socket·​cancels·​any·​outstanding
170 ····​/​/​·​asynchronous·​read·​or·​write·​operations.​·​The·​connection·​object·​will·​be
171 ····​/​/​·​destroyed·​automatically·​once·​those·​outstanding·​operations·​complete.​
172 ····​else
173 ······​socket_.​close()​;​
174 ··​}
175
176 private:​156 private:​
177 ··​tcp:​:​socket·​socket_;​157 ··​tcp:​:​socket·​socket_;​
178 ··​third_party_lib:​:​session·​session_impl_;​158 ··​third_party_lib:​:​session·​session_impl_{socket_​};​
179 ··​bool·​read_in_progress_;​159 ··​bool·​read_in_progress_·=·false;​
180 ··​bool·​write_in_progress_;​160 ··​bool·​write_in_progress_·=·false;​
181 };​161 };​
182 162
183 class·​server163 class·​server
184 {164 {
185 public:​165 public:​
186 ··​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​166 ··​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​
187 ····​:​·​acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·​port)​)​167 ····​:​·​acceptor_(io_context,​·{tcp:​:​v4()​,​·​port})​
188 ··​{168 ··​{
189 ····start_accept()​;​169 ····do_accept()​;​
190 ··​}170 ··​}
191 171
192 private:​172 private:​
193 ··​void·start_accept()​173 ··​void·do_accept()​
194 ··​{174 ··​{
195 ····connection:​:​pointer·new_connection·=175 ····acceptor_.​async_accept(
196 ······connection:​:​create(acceptor_.​get_executor()​.​context()​)​;​176 ········[this](std:​:​error_code·ec,​·tcp:​:​socket·socket)​
197 177 ········{
198 ····acceptor_.​async_accept(new_conn​ection-​>socket()​,​178 ··········if·(!ec)​
199 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_connection,​179 ··········{
200 ··········asio:​:​placeholders:​:​error)​)​;​180 ············std:​:​make_shared<connectio​n>(std:​:​move(socket)​)​-​>start()​;​
201 ··​}181 ··········​}
202
203 ··void·handle_accept(connect​ion:​:​pointer·new_connection,​
204 ······const·asio:​:​error_code&·error)​
205 ··{
206 ····if·(!error)​
207 ····{
208 ······new_connection-​>start()​;​
209 ····}
210 182
211 ····start_accept()​;​183 ··········do_accept()​;​
184 ········​})​;​
212 ··​}185 ··​}
213 186
214 ··​tcp:​:​acceptor·​acceptor_;​187 ··​tcp:​:​acceptor·​acceptor_;​
215 };​188 };​
216 189
217 int·​main(int·​argc,​·​char*·​argv[])​190 int·​main(int·​argc,​·​char*·​argv[])​
218 {191 {
219 ··​try192 ··​try
220 ··​{193 ··​{
221 ····​if·​(argc·​!=·​2)​194 ····​if·​(argc·​!=·​2)​
222 ····​{195 ····​{
223 ······​std:​:​cerr·​<<·​"Usage:​·​third_party_lib·​<port>\n";​196 ······​std:​:​cerr·​<<·​"Usage:​·​third_party_lib·​<port>\n";​
224 ······​return·​1;​197 ······​return·​1;​
225 ····​}198 ····​}
226 199
227 ····​asio:​:​io_context·​io_context;​200 ····​asio:​:​io_context·​io_context;​
228 201
229 ····using·namespace·​std;​·/​/​·For·atoi.​202 ····server·s(io_context,​·​std:​:​atoi(argv[1])​)​;​
230 ····server·s(io_context,​·atoi(argv[1])​)​;​
231 203
232 ····​io_context.​run()​;​204 ····​io_context.​run()​;​
233 ··​}205 ··​}
234 ··​catch·​(std:​:​exception&·​e)​206 ··​catch·​(std:​:​exception&·​e)​
235 ··​{207 ··​{
236 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​208 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
237 ··​}209 ··​}
238 210
239 ··​return·​0;​211 ··​return·​0;​
240 }212 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_1.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/operations/composed_1.cpp.html deleted file mode 100644 index b690156..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_1.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff operations/composed_1.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_2.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/operations/composed_2.cpp.html deleted file mode 100644 index c9ca32b..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_2.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff operations/composed_2.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_3.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/operations/composed_3.cpp.html deleted file mode 100644 index c6acb73..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_3.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff operations/composed_3.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_4.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/operations/composed_4.cpp.html deleted file mode 100644 index 80e884c..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_4.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff operations/composed_4.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_5.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/operations/composed_5.cpp.html deleted file mode 100644 index fadafe2..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_5.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff operations/composed_5.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/socks4/socks4.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/socks4/socks4.hpp.html deleted file mode 100644 index 643819a..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/socks4/socks4.hpp.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - HTML Diff socks4/socks4.hpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​socks4/​socks4.​hppsrc/​examples/​cpp11/​socks4/​socks4.​hpp
1 /​/​1 /​/​
2 /​/​·​socks4.​hpp2 /​/​·​socks4.​hpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #ifndef·​SOCKS4_HPP11 #ifndef·​SOCKS4_HPP
12 #define·​SOCKS4_HPP12 #define·​SOCKS4_HPP
13 13
14 #include·​<array>
14 #include·​<string>15 #include·​<string>
15 #include·​<asio.​hpp>16 #include·​<asio/​buffer.​hpp>
16 #include·​<boost/​array.​hpp>17 #include·​<asio/​ip/​tcp.​hpp>
17 18
18 namespace·​socks4·​{19 namespace·​socks4·​{
19 20
20 const·​unsigned·​char·​version·​=·​0x04;​21 const·​unsigned·​char·​version·​=·​0x04;​
21 22
22 class·​request23 class·​request
23 {24 {
24 public:​25 public:​
25 ··​enum·​command_type26 ··​enum·​command_type
26 ··​{27 ··​{
27 ····​connect·​=·​0x01,​28 ····​connect·​=·​0x01,​
28 ····​bind·​=·​0x0229 ····​bind·​=·​0x02
29 ··​};​30 ··​};​
30 31
31 ··​request(command_type·​cmd,​·​const·​asio:​:​ip:​:​tcp:​:​endpoint&·​endpoint,​32 ··​request(command_type·​cmd,​·​const·​asio:​:​ip:​:​tcp:​:​endpoint&·​endpoint,​
32 ······​const·​std:​:​string&·​user_id)​33 ······​const·​std:​:​string&·​user_id)​
33 ····​:​·​version_(version)​,​34 ····​:​·​version_(version)​,​
34 ······​command_(cmd)​,​35 ······​command_(cmd)​,​
35 ······​user_id_(user_id)​,​36 ······​user_id_(user_id)​,​
36 ······​null_byte_(0)​37 ······​null_byte_(0)​
37 ··​{38 ··​{
38 ····​/​/​·​Only·​IPv4·​is·​supported·​by·​the·​SOCKS·​4·​protocol.​39 ····​/​/​·​Only·​IPv4·​is·​supported·​by·​the·​SOCKS·​4·​protocol.​
39 ····​if·​(endpoint.​protocol()​·​!=·​asio:​:​ip:​:​tcp:​:​v4()​)​40 ····​if·​(endpoint.​protocol()​·​!=·​asio:​:​ip:​:​tcp:​:​v4()​)​
40 ····​{41 ····​{
41 ······​throw·​asio:​:​system_error(42 ······​throw·​asio:​:​system_error(
42 ··········​asio:​:​error:​:​address_family_not_su​pported)​;​43 ··········​asio:​:​error:​:​address_family_not_su​pported)​;​
43 ····​}44 ····​}
44 45
45 ····​/​/​·​Convert·​port·​number·​to·​network·​byte·​order.​46 ····​/​/​·​Convert·​port·​number·​to·​network·​byte·​order.​
46 ····​unsigned·​short·​port·​=·​endpoint.​port()​;​47 ····​unsigned·​short·​port·​=·​endpoint.​port()​;​
47 ····​port_high_byte_·​=·​(port·​>>·​8)​·​&·​0xff;​48 ····​port_high_byte_·​=·​(port·​>>·​8)​·​&·​0xff;​
48 ····​port_low_byte_·​=·​port·​&·​0xff;​49 ····​port_low_byte_·​=·​port·​&·​0xff;​
49 50
50 ····​/​/​·​Save·​IP·​address·​in·​network·​byte·​order.​51 ····​/​/​·​Save·​IP·​address·​in·​network·​byte·​order.​
51 ····​address_·​=·​endpoint.​address()​.​to_v4()​.​to_bytes()​;​52 ····​address_·​=·​endpoint.​address()​.​to_v4()​.​to_bytes()​;​
52 ··​}53 ··​}
53 54
54 ··boost:​:​array<asio:​:​const_buffer,​·​7>·​buffers()​·​const55 ··​std:​:​array<asio:​:​const_buffer,​·​7>·​buffers()​·​const
55 ··​{56 ··​{
56 ····boost:​:​array<asio:​:​const_buffer,​·7>·bufs·=57 ····​return
57 ····​{58 ····​{
58 ······​{59 ······​{
59 ········​asio:​:​buffer(&version_,​·​1)​,​60 ········​asio:​:​buffer(&version_,​·​1)​,​
60 ········​asio:​:​buffer(&command_,​·​1)​,​61 ········​asio:​:​buffer(&command_,​·​1)​,​
61 ········​asio:​:​buffer(&port_high_byt​e_,​·​1)​,​62 ········​asio:​:​buffer(&port_high_byt​e_,​·​1)​,​
62 ········​asio:​:​buffer(&port_low_byte​_,​·​1)​,​63 ········​asio:​:​buffer(&port_low_byte​_,​·​1)​,​
63 ········​asio:​:​buffer(address_)​,​64 ········​asio:​:​buffer(address_)​,​
64 ········​asio:​:​buffer(user_id_)​,​65 ········​asio:​:​buffer(user_id_)​,​
65 ········​asio:​:​buffer(&null_byte_,​·​1)​66 ········​asio:​:​buffer(&null_byte_,​·​1)​
66 ······​}67 ······​}
67 ····​};​68 ····​};​
68 ····​return·​bufs;​
69 ··​}69 ··​}
70 70
71 private:​71 private:​
72 ··​unsigned·​char·​version_;​72 ··​unsigned·​char·​version_;​
73 ··​unsigned·​char·​command_;​73 ··​unsigned·​char·​command_;​
74 ··​unsigned·​char·​port_high_byte_;​74 ··​unsigned·​char·​port_high_byte_;​
75 ··​unsigned·​char·​port_low_byte_;​75 ··​unsigned·​char·​port_low_byte_;​
76 ··​asio:​:​ip:​:​address_v4:​:​bytes_type·​address_;​76 ··​asio:​:​ip:​:​address_v4:​:​bytes_type·​address_;​
77 ··​std:​:​string·​user_id_;​77 ··​std:​:​string·​user_id_;​
78 ··​unsigned·​char·​null_byte_;​78 ··​unsigned·​char·​null_byte_;​
79 };​79 };​
80 80
81 class·​reply81 class·​reply
82 {82 {
83 public:​83 public:​
84 ··​enum·​status_type84 ··​enum·​status_type
85 ··​{85 ··​{
86 ····​request_granted·​=·​0x5a,​86 ····​request_granted·​=·​0x5a,​
87 ····​request_failed·​=·​0x5b,​87 ····​request_failed·​=·​0x5b,​
88 ····​request_failed_no_ide​ntd·​=·​0x5c,​88 ····​request_failed_no_ide​ntd·​=·​0x5c,​
89 ····​request_failed_bad_us​er_id·​=·​0x5d89 ····​request_failed_bad_us​er_id·​=·​0x5d
90 ··​};​90 ··​};​
91 91
92 ··​reply()​92 ··​reply()​
93 ····​:​·​null_byte_(0)​,​93 ····​:​·​null_byte_(0)​,​
94 ······​status_()​94 ······​status_()​
95 ··​{95 ··​{
96 ··​}96 ··​}
97 97
98 ··boost:​:​array<asio:​:​mutable_buffer,​·​5>·​buffers()​98 ··​std:​:​array<asio:​:​mutable_buffer,​·​5>·​buffers()​
99 ··​{99 ··​{
100 ····boost:​:​array<asio:​:​mutable_buffer,​·5>·bufs·=100 ····​return
101 ····​{101 ····​{
102 ······​{102 ······​{
103 ········​asio:​:​buffer(&null_byte_,​·​1)​,​103 ········​asio:​:​buffer(&null_byte_,​·​1)​,​
104 ········​asio:​:​buffer(&status_,​·​1)​,​104 ········​asio:​:​buffer(&status_,​·​1)​,​
105 ········​asio:​:​buffer(&port_high_byt​e_,​·​1)​,​105 ········​asio:​:​buffer(&port_high_byt​e_,​·​1)​,​
106 ········​asio:​:​buffer(&port_low_byte​_,​·​1)​,​106 ········​asio:​:​buffer(&port_low_byte​_,​·​1)​,​
107 ········​asio:​:​buffer(address_)​107 ········​asio:​:​buffer(address_)​
108 ······​}108 ······​}
109 ····​};​109 ····​};​
110 ····​return·​bufs;​
111 ··​}110 ··​}
112 111
113 ··​bool·​success()​·​const112 ··​bool·​success()​·​const
114 ··​{113 ··​{
115 ····​return·​null_byte_·​==·​0·​&&·​status_·​==·​request_granted;​114 ····​return·​null_byte_·​==·​0·​&&·​status_·​==·​request_granted;​
116 ··​}115 ··​}
117 116
118 ··​unsigned·​char·​status()​·​const117 ··​unsigned·​char·​status()​·​const
119 ··​{118 ··​{
120 ····​return·​status_;​119 ····​return·​status_;​
121 ··​}120 ··​}
122 121
123 ··​asio:​:​ip:​:​tcp:​:​endpoint·​endpoint()​·​const122 ··​asio:​:​ip:​:​tcp:​:​endpoint·​endpoint()​·​const
124 ··​{123 ··​{
125 ····​unsigned·​short·​port·​=·​port_high_byte_;​124 ····​unsigned·​short·​port·​=·​port_high_byte_;​
126 ····​port·​=·​(port·​<<·​8)​·​&·​0xff00;​125 ····​port·​=·​(port·​<<·​8)​·​&·​0xff00;​
127 ····​port·​=·​port·​|·​port_low_byte_;​126 ····​port·​=·​port·​|·​port_low_byte_;​
128 127
129 ····​asio:​:​ip:​:​address_v4·​address(address_)​;​128 ····​asio:​:​ip:​:​address_v4·​address(address_)​;​
130 129
131 ····​return·​asio:​:​ip:​:​tcp:​:​endpoint(address,​·​port)​;​130 ····​return·​asio:​:​ip:​:​tcp:​:​endpoint(address,​·​port)​;​
132 ··​}131 ··​}
133 132
134 private:​133 private:​
135 ··​unsigned·​char·​null_byte_;​134 ··​unsigned·​char·​null_byte_;​
136 ··​unsigned·​char·​status_;​135 ··​unsigned·​char·​status_;​
137 ··​unsigned·​char·​port_high_byte_;​136 ··​unsigned·​char·​port_high_byte_;​
138 ··​unsigned·​char·​port_low_byte_;​137 ··​unsigned·​char·​port_low_byte_;​
139 ··​asio:​:​ip:​:​address_v4:​:​bytes_type·​address_;​138 ··​asio:​:​ip:​:​address_v4:​:​bytes_type·​address_;​
140 };​139 };​
141 140
142 }·​/​/​·​namespace·​socks4141 }·​/​/​·​namespace·​socks4
143 142
144 #endif·​/​/​·​SOCKS4_HPP143 #endif·​/​/​·​SOCKS4_HPP
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/socks4/sync_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/socks4/sync_client.cpp.html deleted file mode 100644 index a0729eb..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/socks4/sync_client.cpp.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - HTML Diff socks4/sync_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​socks4/​sync_client.​cppsrc/​examples/​cpp11/​socks4/​sync_client.​cpp
1 /​/​1 /​/​
2 /​/​·​sync_client.​cpp2 /​/​·​sync_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<array>
11 #include·​<iostream>12 #include·​<iostream>
12 #include·​<iomanip>13 #include·​<iomanip>
13 #include·​<ostream>14 #include·​<ostream>
14 #include·​<string>15 #include·​<string>
15 #include·​<asio.​hpp>16 #include·​<asio.​hpp>
16 #include·​<boost/​array.​hpp>
17 #include·​"socks4.​hpp"17 #include·​"socks4.​hpp"
18 18
19 using·​asio:​:​ip:​:​tcp;​19 using·​asio:​:​ip:​:​tcp;​
20 20
21 int·​main(int·​argc,​·​char*·​argv[])​21 int·​main(int·​argc,​·​char*·​argv[])​
22 {22 {
23 ··​try23 ··​try
24 ··​{24 ··​{
25 ····​if·​(argc·​!=·​4)​25 ····​if·​(argc·​!=·​4)​
26 ····​{26 ····​{
27 ······​std:​:​cout·​<<·​"Usage:​·​sync_client·​<socks4server>·​<socks4port>·​<user>\n";​27 ······​std:​:​cout·​<<·​"Usage:​·​sync_client·​<socks4server>·​<socks4port>·​<user>\n";​
28 ······​std:​:​cout·​<<·​"Examples:​\n";​28 ······​std:​:​cout·​<<·​"Examples:​\n";​
29 ······​std:​:​cout·​<<·​"··​sync_client·​127.​0.​0.​1·​1080·​chris\n";​29 ······​std:​:​cout·​<<·​"··​sync_client·​127.​0.​0.​1·​1080·​chris\n";​
30 ······​std:​:​cout·​<<·​"··​sync_client·​localhost·​socks·​chris\n";​30 ······​std:​:​cout·​<<·​"··​sync_client·​localhost·​socks·​chris\n";​
31 ······​return·​1;​31 ······​return·​1;​
32 ····​}32 ····​}
33 33
34 ····​asio:​:​io_context·​io_context;​34 ····​asio:​:​io_context·​io_context;​
35 35
36 ····​/​/​·​Get·​a·​list·​of·​endpoints·​corresponding·​to·​the·​SOCKS·​4·​server·​name.​36 ····​/​/​·​Get·​a·​list·​of·​endpoints·​corresponding·​to·​the·​SOCKS·​4·​server·​name.​
37 ····​tcp:​:​resolver·​resolver(io_context)​;​37 ····​tcp:​:​resolver·​resolver(io_context)​;​
38 ····tcp:​:​resolver:​:​results_type·​endpoints·​=·​resolver.​resolve(argv[1],​·​argv[2])​;​38 ····auto·​endpoints·​=·​resolver.​resolve(argv[1],​·​argv[2])​;​
39 39
40 ····​/​/​·​Try·​each·​endpoint·​until·​we·​successfully·​establish·​a·​connection·​to·​the40 ····​/​/​·​Try·​each·​endpoint·​until·​we·​successfully·​establish·​a·​connection·​to·​the
41 ····​/​/​·​SOCKS·​4·​server.​41 ····​/​/​·​SOCKS·​4·​server.​
42 ····​tcp:​:​socket·​socket(io_context)​;​42 ····​tcp:​:​socket·​socket(io_context)​;​
43 ····​asio:​:​connect(socket,​·​endpoints)​;​43 ····​asio:​:​connect(socket,​·​endpoints)​;​
44 44
45 ····​/​/​·​Get·​an·​endpoint·​for·​the·​Boost·​website.​·​This·​will·​be·​passed·​to·​the·​SOCKS45 ····​/​/​·​Get·​an·​endpoint·​for·​the·​Boost·​website.​·​This·​will·​be·​passed·​to·​the·​SOCKS
46 ····​/​/​·​4·​server.​·​Explicitly·​specify·​IPv4·​since·​SOCKS·​4·​does·​not·​support·​IPv6.​46 ····​/​/​·​4·​server.​·​Explicitly·​specify·​IPv4·​since·​SOCKS·​4·​does·​not·​support·​IPv6.​
47 ····​tcp:​:​endpoint·http_endpoint·=47 ····auto·http_endpoint·=·*resolver.​resolve(tcp:​:​v4()​,​·"www.​boost.​org",​·"http")​;​
48 ······*resolver.​resolve(tcp:​:​v4()​,​·"www.​boost.​org",​·"http")​.​begin()​;​
49 48
50 ····​/​/​·​Send·​the·​request·​to·​the·​SOCKS·​4·​server.​49 ····​/​/​·​Send·​the·​request·​to·​the·​SOCKS·​4·​server.​
51 ····​socks4:​:​request·​socks_request(50 ····​socks4:​:​request·​socks_request(
52 ········​socks4:​:​request:​:​connect,​·​http_endpoint,​·​argv[3])​;​51 ········​socks4:​:​request:​:​connect,​·​http_endpoint,​·​argv[3])​;​
53 ····​asio:​:​write(socket,​·​socks_request.​buffers()​)​;​52 ····​asio:​:​write(socket,​·​socks_request.​buffers()​)​;​
54 53
55 ····​/​/​·​Receive·​a·​response·​from·​the·​SOCKS·​4·​server.​54 ····​/​/​·​Receive·​a·​response·​from·​the·​SOCKS·​4·​server.​
56 ····​socks4:​:​reply·​socks_reply;​55 ····​socks4:​:​reply·​socks_reply;​
57 ····​asio:​:​read(socket,​·​socks_reply.​buffers()​)​;​56 ····​asio:​:​read(socket,​·​socks_reply.​buffers()​)​;​
58 57
59 ····​/​/​·​Check·​whether·​we·​successfully·​negotiated·​with·​the·​SOCKS·​4·​server.​58 ····​/​/​·​Check·​whether·​we·​successfully·​negotiated·​with·​the·​SOCKS·​4·​server.​
60 ····​if·​(!socks_reply.​success()​)​59 ····​if·​(!socks_reply.​success()​)​
61 ····​{60 ····​{
62 ······​std:​:​cout·​<<·​"Connection·​failed.​\n";​61 ······​std:​:​cout·​<<·​"Connection·​failed.​\n";​
63 ······​std:​:​cout·​<<·​"status·​=·​0x"·​<<·​std:​:​hex·​<<·​socks_reply.​status()​;​62 ······​std:​:​cout·​<<·​"status·​=·​0x"·​<<·​std:​:​hex·​<<·​socks_reply.​status()​;​
64 ······​return·​1;​63 ······​return·​1;​
65 ····​}64 ····​}
66 65
67 ····​/​/​·​Form·​the·​HTTP·​request.​·​We·​specify·​the·​"Connection:​·​close"·​header·​so·​that66 ····​/​/​·​Form·​the·​HTTP·​request.​·​We·​specify·​the·​"Connection:​·​close"·​header·​so·​that
68 ····​/​/​·​the·​server·​will·​close·​the·​socket·​after·​transmitting·​the·​response.​·​This67 ····​/​/​·​the·​server·​will·​close·​the·​socket·​after·​transmitting·​the·​response.​·​This
69 ····​/​/​·​will·​allow·​us·​to·​treat·​all·​data·​up·​until·​the·​EOF·​as·​the·​response.​68 ····​/​/​·​will·​allow·​us·​to·​treat·​all·​data·​up·​until·​the·​EOF·​as·​the·​response.​
70 ····​std:​:​string·​request·​=69 ····​std:​:​string·​request·​=
71 ······​"GET·​/​·​HTTP/​1.​0\r\n"70 ······​"GET·​/​·​HTTP/​1.​0\r\n"
72 ······​"Host:​·​www.​boost.​org\r\n"71 ······​"Host:​·​www.​boost.​org\r\n"
73 ······​"Accept:​·​*/​*\r\n"72 ······​"Accept:​·​*/​*\r\n"
74 ······​"Connection:​·​close\r\n\r\n";​73 ······​"Connection:​·​close\r\n\r\n";​
75 74
76 ····​/​/​·​Send·​the·​HTTP·​request.​75 ····​/​/​·​Send·​the·​HTTP·​request.​
77 ····​asio:​:​write(socket,​·​asio:​:​buffer(request)​)​;​76 ····​asio:​:​write(socket,​·​asio:​:​buffer(request)​)​;​
78 77
79 ····​/​/​·​Read·​until·​EOF,​·​writing·​data·​to·​output·​as·​we·​go.​78 ····​/​/​·​Read·​until·​EOF,​·​writing·​data·​to·​output·​as·​we·​go.​
80 ····boost:​:​array<char,​·​512>·​response;​79 ····​std:​:​array<char,​·​512>·​response;​
81 ····asio:​:​error_code·​error;​80 ····​std:​:​error_code·​error;​
82 ····​while·​(std:​:​size_t·​s·​=·​socket.​read_some(81 ····​while·​(std:​:​size_t·​s·​=·​socket.​read_some(
83 ··········​asio:​:​buffer(response)​,​·​error)​)​82 ··········​asio:​:​buffer(response)​,​·​error)​)​
84 ······​std:​:​cout.​write(response.​data()​,​·​s)​;​83 ······​std:​:​cout.​write(response.​data()​,​·​s)​;​
85 ····​if·​(error·​!=·​asio:​:​error:​:​eof)​84 ····​if·​(error·​!=·​asio:​:​error:​:​eof)​
86 ······​throw·asio:​:​system_error(error)​;​85 ······​throw·​std:​:​system_error(error)​;​
87 ··​}86 ··​}
88 ··​catch·​(std:​:​exception&·​e)​87 ··​catch·​(std:​:​exception&·​e)​
89 ··​{88 ··​{
90 ····​std:​:​cout·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​89 ····​std:​:​cout·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
91 ··​}90 ··​}
92 91
93 ··​return·​0;​92 ··​return·​0;​
94 }93 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/spawn/echo_server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/spawn/echo_server.cpp.html deleted file mode 100644 index 87d9c2b..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/spawn/echo_server.cpp.html +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - HTML Diff spawn/echo_server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​spawn/​echo_server.​cppsrc/​examples/​cpp11/​spawn/​echo_server.​cpp
1 /​/​1 /​/​
2 /​/​·​echo_server.​cpp2 /​/​·​echo_server.​cpp
3 /​/​·​~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<asio/​io_context.​hpp>11 #include·​<asio/​io_context.​hpp>
12 #include·​<asio/​ip/​tcp.​hpp>12 #include·​<asio/​ip/​tcp.​hpp>
13 #include·​<asio/​spawn.​hpp>13 #include·​<asio/​spawn.​hpp>
14 #include·​<asio/​steady_timer.​hpp>14 #include·​<asio/​steady_timer.​hpp>
15 #include·​<asio/​write.​hpp>15 #include·​<asio/​write.​hpp>
16 #include·​<boost/​bind.​hpp>
17 #include·​<boost/​shared_ptr.​hpp>
18 #include·​<boost/​enable_shared_from_th​is.​hpp>
19 #include·​<iostream>16 #include·​<iostream>
17 #include·​<memory>
20 18
21 using·​asio:​:​ip:​:​tcp;​19 using·​asio:​:​ip:​:​tcp;​
22 20
23 class·​session·​:​·​public·boost:​:​enable_shared_from_th​is<session>21 class·​session·​:​·​public·​std:​:​enable_shared_from_th​is<session>
24 {22 {
25 public:​23 public:​
26 ··​explicit·​session(asio:​:​io_context&·io_context)​24 ··​explicit·​session(tcp:​:​socket·socket)​
27 ····​:​·​strand_(io_context)​,​25 ····​:​·​socket_(std:​:​move(socket)​)​,​
28 ······​socket_(io_context)​,​26 ······timer_(socket_.​get_io_context()​)​,​
29 ······​timer_(io_context)​27 ······strand_(socket_.​get_io_context()​)​
30 ··​{28 ··​{
31 ··​}29 ··​}
32 30
33 ··​tcp:​:​socket&·​socket()​
34 ··​{
35 ····​return·​socket_;​
36 ··​}
37
38 ··​void·​go()​31 ··​void·​go()​
39 ··​{32 ··​{
33 ····​auto·​self(shared_from_this​()​)​;​
40 ····​asio:​:​spawn(strand_,​34 ····​asio:​:​spawn(strand_,​
41 ········boost:​:​bind(&session:​:​echo,​35 ········[this,​·self](asio:​:​yield_context·yield)​
42 ··········shared_from_this()​,​·_1)​)​;​36 ········{
37 ··········​try
38 ··········​{
39 ············​char·​data[128];​
40 ············​for·​(;​;​)​
41 ············​{
42 ··············​timer_.​expires_from_now(std:​:​chrono:​:​seconds(10)​)​;​
43 ··············​std:​:​size_t·​n·​=·​socket_.​async_read_some(asio:​:​buffer(data)​,​·​yield)​;​
44 ··············​asio:​:​async_write(socket_,​·​asio:​:​buffer(data,​·​n)​,​·​yield)​;​
45 ············​}
46 ··········​}
47 ··········​catch·​(std:​:​exception&·​e)​
48 ··········​{
49 ············​socket_.​close()​;​
50 ············​timer_.​cancel()​;​
51 ··········​}
52 ········​})​;​
53
43 ····​asio:​:​spawn(strand_,​54 ····​asio:​:​spawn(strand_,​
44 ········boost:​:​bind(&session:​:​timeout,​55 ········[this,​·self](asio:​:​yield_context·yield)​
45 ··········shared_from_this()​,​·_1)​)​;​56 ········{
57 ··········​while·​(socket_.​is_open()​)​
58 ··········​{
59 ············​asio:​:​error_code·​ignored_ec;​
60 ············​timer_.​async_wait(yield[igno​red_ec])​;​
61 ············​if·​(timer_.​expires_from_now()​·​<=·​std:​:​chrono:​:​seconds(0)​)​
62 ··············​socket_.​close()​;​
63 ··········​}
64 ········​})​;​
46 ··​}65 ··​}
47 66
48 private:​67 private:​
49 ··​void·​echo(asio:​:​yield_context·​yield)​
50 ··​{
51 ····​try
52 ····​{
53 ······​char·​data[128];​
54 ······​for·​(;​;​)​
55 ······​{
56 ········​timer_.​expires_after(asio:​:​chrono:​:​seconds(10)​)​;​
57 ········​std:​:​size_t·​n·​=·​socket_.​async_read_some(asio:​:​buffer(data)​,​·​yield)​;​
58 ········​asio:​:​async_write(socket_,​·​asio:​:​buffer(data,​·​n)​,​·​yield)​;​
59 ······​}
60 ····​}
61 ····​catch·​(std:​:​exception&·​e)​
62 ····​{
63 ······​socket_.​close()​;​
64 ······​timer_.​cancel()​;​
65 ····​}
66 ··​}
67
68 ··​void·​timeout(asio:​:​yield_context·​yield)​
69 ··​{
70 ····​while·​(socket_.​is_open()​)​
71 ····​{
72 ······​asio:​:​error_code·​ignored_ec;​
73 ······​timer_.​async_wait(yield[igno​red_ec])​;​
74 ······​if·​(timer_.​expiry()​·​<=·​asio:​:​steady_timer:​:​clock_type:​:​now()​)​
75 ········​socket_.​close()​;​
76 ····​}
77 ··​}
78
79 ··​asio:​:​io_context:​:​strand·​strand_;​
80 ··​tcp:​:​socket·​socket_;​68 ··​tcp:​:​socket·​socket_;​
81 ··​asio:​:​steady_timer·​timer_;​69 ··​asio:​:​steady_timer·​timer_;​
70 ··​asio:​:​io_context:​:​strand·​strand_;​
82 };​71 };​
83 72
84 void·​do_accept(asio:​:​io_context&·​io_context,​
85 ····​unsigned·​short·​port,​·​asio:​:​yield_context·​yield)​
86 {
87 ··​tcp:​:​acceptor·​acceptor(io_context,​·​tcp:​:​endpoint(tcp:​:​v4()​,​·​port)​)​;​
88
89 ··​for·​(;​;​)​
90 ··​{
91 ····​asio:​:​error_code·​ec;​
92 ····​boost:​:​shared_ptr<session>·​new_session(new·​session(io_context)​)​;​
93 ····​acceptor.​async_accept(new_sess​ion-​>socket()​,​·​yield[ec])​;​
94 ····​if·​(!ec)​·​new_session-​>go()​;​
95 ··​}
96 }
97
98 int·​main(int·​argc,​·​char*·​argv[])​73 int·​main(int·​argc,​·​char*·​argv[])​
99 {74 {
100 ··​try75 ··​try
101 ··​{76 ··​{
102 ····​if·​(argc·​!=·​2)​77 ····​if·​(argc·​!=·​2)​
103 ····​{78 ····​{
104 ······​std:​:​cerr·​<<·​"Usage:​·​echo_server·​<port>\n";​79 ······​std:​:​cerr·​<<·​"Usage:​·​echo_server·​<port>\n";​
105 ······​return·​1;​80 ······​return·​1;​
106 ····​}81 ····​}
107 82
108 ····​asio:​:​io_context·​io_context;​83 ····​asio:​:​io_context·​io_context;​
109 84
110 ····​asio:​:​spawn(io_context,​85 ····​asio:​:​spawn(io_context,​
111 ········boost:​:​bind(do_accept,​86 ········[&](asio:​:​yield_context·yield)​
112 ··········boost:​:​ref(io_context)​,​·atoi(argv[1])​,​·_1)​)​;​87 ········{
88 ··········​tcp:​:​acceptor·​acceptor(io_context,​
89 ············​tcp:​:​endpoint(tcp:​:​v4()​,​·​std:​:​atoi(argv[1])​)​)​;​
90
91 ··········​for·​(;​;​)​
92 ··········​{
93 ············​asio:​:​error_code·​ec;​
94 ············​tcp:​:​socket·​socket(io_context)​;​
95 ············​acceptor.​async_accept(socket,​·​yield[ec])​;​
96 ············​if·​(!ec)​·​std:​:​make_shared<session>(​std:​:​move(socket)​)​-​>go()​;​
97 ··········​}
98 ········​})​;​
113 99
114 ····​io_context.​run()​;​100 ····​io_context.​run()​;​
115 ··​}101 ··​}
116 ··​catch·​(std:​:​exception&·​e)​102 ··​catch·​(std:​:​exception&·​e)​
117 ··​{103 ··​{
118 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​104 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
119 ··​}105 ··​}
120 106
121 ··​return·​0;​107 ··​return·​0;​
122 }108 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/spawn/parallel_grep.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/spawn/parallel_grep.cpp.html deleted file mode 100644 index 32bae6d..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/spawn/parallel_grep.cpp.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - HTML Diff spawn/parallel_grep.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​spawn/​parallel_grep.​cppsrc/​examples/​cpp11/​spawn/​parallel_grep.​cpp
1 /​/​1 /​/​
2 /​/​·​parallel_grep.​cpp2 /​/​·​parallel_grep.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<asio/​dispatch.​hpp>11 #include·​<asio/​dispatch.​hpp>
12 #include·​<asio/​post.​hpp>12 #include·​<asio/​post.​hpp>
13 #include·​<asio/​spawn.​hpp>13 #include·​<asio/​spawn.​hpp>
14 #include·​<asio/​strand.​hpp>14 #include·​<asio/​strand.​hpp>
15 #include·​<asio/​thread_pool.​hpp>15 #include·​<asio/​thread_pool.​hpp>
16 #include·​<boost/​bind.​hpp>
17 #include·​<fstream>16 #include·​<fstream>
18 #include·​<iostream>17 #include·​<iostream>
19 #include·​<string>18 #include·​<string>
20 19
21 using·​asio:​:​dispatch;​20 using·​asio:​:​dispatch;​
22 using·​asio:​:​spawn;​21 using·​asio:​:​spawn;​
23 using·​asio:​:​strand;​22 using·​asio:​:​strand;​
24 using·​asio:​:​thread_pool;​23 using·​asio:​:​thread_pool;​
25 using·​asio:​:​yield_context;​24 using·​asio:​:​yield_context;​
26 25
27 void·​print_match(std:​:​string·​input_file,​·​std:​:​string·​line)​
28 {
29 ··​std:​:​cout·​<<·​input_file·​<<·​':​'·​<<·​line·​<<·​std:​:​endl;​
30 }
31
32 void·​search_file(std:​:​string·​search_string,​·​std:​:​string·​input_file,​
33 ····​strand<thread_pool:​:​executor_type>·​output_strand,​·​yield_context·​yield)​
34 {
35 ··​std:​:​ifstream·​is(input_file.​c_str()​)​;​
36 ··​std:​:​string·​line;​
37 ··​std:​:​size_t·​line_num·​=·​0;​
38 ··​while·​(std:​:​getline(is,​·​line)​)​
39 ··​{
40 ····​/​/​·​If·​we·​find·​a·​match,​·​send·​a·​message·​to·​the·​output.​
41 ····​if·​(line.​find(search_string)​·​!=·​std:​:​string:​:​npos)​
42 ····​{
43 ······​dispatch(output_stran​d,​·​boost:​:​bind(&print_match,​·​input_file,​·​line)​)​;​
44 ····​}
45
46 ····​/​/​·​Every·​so·​often·​we·​yield·​control·​to·​another·​coroutine.​
47 ····​if·​(++line_num·​%·​10·​==·​0)​
48 ······​post(yield)​;​
49 ··​}
50 }
51
52 int·​main(int·​argc,​·​char*·​argv[])​26 int·​main(int·​argc,​·​char*·​argv[])​
53 {27 {
54 ··​try28 ··​try
55 ··​{29 ··​{
56 ····​if·​(argc·​<·​2)​30 ····​if·​(argc·​<·​2)​
57 ····​{31 ····​{
58 ······​std:​:​cerr·​<<·​"Usage:​·​parallel_grep·​<string>·​<files.​.​.​>\n";​32 ······​std:​:​cerr·​<<·​"Usage:​·​parallel_grep·​<string>·​<files.​.​.​>\n";​
59 ······​return·​1;​33 ······​return·​1;​
60 ····​}34 ····​}
61 35
62 ····​/​/​·​We·​use·​a·​fixed·​size·​pool·​of·​threads·​for·​reading·​the·​input·​files.​·​The36 ····​/​/​·​We·​use·​a·​fixed·​size·​pool·​of·​threads·​for·​reading·​the·​input·​files.​·​The
63 ····​/​/​·​number·​of·​threads·​is·​automatically·​determined·​based·​on·​the·​number·​of37 ····​/​/​·​number·​of·​threads·​is·​automatically·​determined·​based·​on·​the·​number·​of
64 ····​/​/​·​CPUs·​available·​in·​the·​system.​38 ····​/​/​·​CPUs·​available·​in·​the·​system.​
65 ····​thread_pool·​pool;​39 ····​thread_pool·​pool;​
66 40
67 ····​/​/​·​To·​prevent·​the·​output·​from·​being·​garbled,​·​we·​use·​a·​strand·​to·​synchronise41 ····​/​/​·​To·​prevent·​the·​output·​from·​being·​garbled,​·​we·​use·​a·​strand·​to·​synchronise
68 ····​/​/​·​printing.​42 ····​/​/​·​printing.​
69 ····​strand<thread_pool:​:​executor_type>·​output_strand(pool.​get_executor()​)​;​43 ····​strand<thread_pool:​:​executor_type>·​output_strand(pool.​get_executor()​)​;​
70 44
71 ····​/​/​·​Spawn·​a·​new·​coroutine·​for·​each·​file·​specified·​on·​the·​command·​line.​45 ····​/​/​·​Spawn·​a·​new·​coroutine·​for·​each·​file·​specified·​on·​the·​command·​line.​
72 ····​std:​:​string·​search_string·​=·​argv[1];​46 ····​std:​:​string·​search_string·​=·​argv[1];​
73 ····​for·​(int·​argn·​=·​2;​·​argn·​<·​argc;​·​++argn)​47 ····​for·​(int·​argn·​=·​2;​·​argn·​<·​argc;​·​++argn)​
74 ····​{48 ····​{
75 ······​std:​:​string·​input_file·​=·​argv[argn];​49 ······​std:​:​string·​input_file·​=·​argv[argn];​
76 ······​spawn(pool,​·boost:​:​bind(&search_file,​50 ······​spawn(pool,​
77 ············search_string,​·input_file,​·output_strand,​·_1)​)​;​51 ········[=](yield_context·yield)​
52 ········​{
53 ··········​std:​:​ifstream·​is(input_file.​c_str()​)​;​
54 ··········​std:​:​string·​line;​
55 ··········​std:​:​size_t·​line_num·​=·​0;​
56 ··········​while·​(std:​:​getline(is,​·​line)​)​
57 ··········​{
58 ············​/​/​·​If·​we·​find·​a·​match,​·​send·​a·​message·​to·​the·​output.​
59 ············​if·​(line.​find(search_string)​·​!=·​std:​:​string:​:​npos)​
60 ············​{
61 ··············​dispatch(output_stran​d,​
62 ··················​[=]
63 ··················​{
64 ····················​std:​:​cout·​<<·​input_file·​<<·​':​'·​<<·​line·​<<·​std:​:​endl;​
65 ··················​})​;​
66 ············​}
67
68 ············​/​/​·​Every·​so·​often·​we·​yield·​control·​to·​another·​coroutine.​
69 ············​if·​(++line_num·​%·​10·​==·​0)​
70 ··············​post(yield)​;​
71 ··········​}
72 ········​})​;​
78 ····​}73 ····​}
79 74
80 ····​/​/​·​Join·​the·​thread·​pool·​to·​wait·​for·​all·​the·​spawned·​tasks·​to·​complete.​75 ····​/​/​·​Join·​the·​thread·​pool·​to·​wait·​for·​all·​the·​spawned·​tasks·​to·​complete.​
81 ····​pool.​join()​;​76 ····​pool.​join()​;​
82 ··​}77 ··​}
83 ··​catch·​(std:​:​exception&·​e)​78 ··​catch·​(std:​:​exception&·​e)​
84 ··​{79 ··​{
85 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​80 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
86 ··​}81 ··​}
87 82
88 ··​return·​0;​83 ··​return·​0;​
89 }84 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/ssl/client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/ssl/client.cpp.html deleted file mode 100644 index 620e8b8..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/ssl/client.cpp.html +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - HTML Diff ssl/client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​ssl/​client.​cppsrc/​examples/​cpp11/​ssl/​client.​cpp
1 /​/​1 /​/​
2 /​/​·​client.​cpp2 /​/​·​client.​cpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<cstring>
13 #include·​<functional>
12 #include·​<iostream>14 #include·​<iostream>
13 #include·​<boost/​bind.​hpp>
14 #include·​"asio.​hpp"15 #include·​"asio.​hpp"
15 #include·​"asio/​ssl.​hpp"16 #include·​"asio/​ssl.​hpp"
16 17
18 using·​asio:​:​ip:​:​tcp;​
19 using·​std:​:​placeholders:​:​_1;​
20 using·​std:​:​placeholders:​:​_2;​
21
17 enum·​{·​max_length·​=·​1024·​};​22 enum·​{·​max_length·​=·​1024·​};​
18 23
19 class·​client24 class·​client
20 {25 {
21 public:​26 public:​
22 ··​client(asio:​:​io_context&·​io_context,​27 ··​client(asio:​:​io_context&·​io_context,​
23 ······​asio:​:​ssl:​:​context&·​context,​28 ······​asio:​:​ssl:​:​context&·​context,​
24 ······asio:​:​ip:​:​tcp:​:​resolver:​:​results_type·​endpoints)​29 ······const·tcp:​:​resolver:​:​results_type&·​endpoints)​
25 ····​:​·​socket_(io_context,​·​context)​30 ····​:​·​socket_(io_context,​·​context)​
26 ··​{31 ··​{
27 ····​socket_.​set_verify_mode(asio:​:​ssl:​:​verify_peer)​;​32 ····​socket_.​set_verify_mode(asio:​:​ssl:​:​verify_peer)​;​
28 ····​socket_.​set_verify_callback(33 ····​socket_.​set_verify_callback(
29 ········boost:​:​bind(&client:​:​verify_certificate,​·​this,​·​_1,​·​_2)​)​;​34 ········​std:​:​bind(&client:​:​verify_certificate,​·​this,​·​_1,​·​_2)​)​;​
30 35
31 ····asio:​:​async_connect(socket_​.​lowest_layer()​,​·endpoints,​36 ····​connect(endpoints)​;​
32 ········boost:​:​bind(&client:​:​handle_connect,​·this,​
33 ··········asio:​:​placeholders:​:​error)​)​;​
34 ··​}37 ··​}
35 38
39 private:​
36 ··​bool·​verify_certificate(bo​ol·​preverified,​40 ··​bool·​verify_certificate(bo​ol·​preverified,​
37 ······​asio:​:​ssl:​:​verify_context&·​ctx)​41 ······​asio:​:​ssl:​:​verify_context&·​ctx)​
38 ··​{42 ··​{
39 ····​/​/​·​The·​verify·​callback·​can·​be·​used·​to·​check·​whether·​the·​certificate·​that·​is43 ····​/​/​·​The·​verify·​callback·​can·​be·​used·​to·​check·​whether·​the·​certificate·​that·​is
40 ····​/​/​·​being·​presented·​is·​valid·​for·​the·​peer.​·​For·​example,​·​RFC·​2818·​describes44 ····​/​/​·​being·​presented·​is·​valid·​for·​the·​peer.​·​For·​example,​·​RFC·​2818·​describes
41 ····​/​/​·​the·​steps·​involved·​in·​doing·​this·​for·​HTTPS.​·​Consult·​the·​OpenSSL45 ····​/​/​·​the·​steps·​involved·​in·​doing·​this·​for·​HTTPS.​·​Consult·​the·​OpenSSL
42 ····​/​/​·​documentation·​for·​more·​details.​·​Note·​that·​the·​callback·​is·​called·​once46 ····​/​/​·​documentation·​for·​more·​details.​·​Note·​that·​the·​callback·​is·​called·​once
43 ····​/​/​·​for·​each·​certificate·​in·​the·​certificate·​chain,​·​starting·​from·​the·​root47 ····​/​/​·​for·​each·​certificate·​in·​the·​certificate·​chain,​·​starting·​from·​the·​root
44 ····​/​/​·​certificate·​authority.​48 ····​/​/​·​certificate·​authority.​
45 49
46 ····​/​/​·​In·​this·​example·​we·​will·​simply·​print·​the·​certificate's·​subject·​name.​50 ····​/​/​·​In·​this·​example·​we·​will·​simply·​print·​the·​certificate's·​subject·​name.​
47 ····​char·​subject_name[256];​51 ····​char·​subject_name[256];​
48 ····​X509*·​cert·​=·​X509_STORE_CTX_get_cu​rrent_cert(ctx.​native_handle()​)​;​52 ····​X509*·​cert·​=·​X509_STORE_CTX_get_cu​rrent_cert(ctx.​native_handle()​)​;​
49 ····​X509_NAME_oneline(X50​9_get_subject_name(ce​rt)​,​·​subject_name,​·​256)​;​53 ····​X509_NAME_oneline(X50​9_get_subject_name(ce​rt)​,​·​subject_name,​·​256)​;​
50 ····​std:​:​cout·​<<·​"Verifying·​"·​<<·​subject_name·​<<·​"\n";​54 ····​std:​:​cout·​<<·​"Verifying·​"·​<<·​subject_name·​<<·​"\n";​
51 55
52 ····​return·​preverified;​56 ····​return·​preverified;​
53 ··​}57 ··​}
54 58
55 ··​void·handle_connect(const·asio:​:​error_code&·​error)​59 ··​void·​connect(const·tcp:​:​resolver:​:​results_type&·​endpoints)​
56 ··{
57 ····if·(!error)​
58 ····{
59 ······socket_.​async_handshake(asio:​:​ssl:​:​stream_base:​:​client,​
60 ··········boost:​:​bind(&client:​:​handle_handshake,​·this,​
61 ············asio:​:​placeholders:​:​error)​)​;​
62 ····}
63 ····else
64 ····{
65 ······std:​:​cout·<<·"Connect·failed:​·"·<<·error.​message()​·<<·"\n";​
66 ····}
67 ··}
68
69 ··void·handle_handshake(cons​t·asio:​:​error_code&·error)​
70 ··{
71 ····if·(!error)​
72 ····{
73 ······std:​:​cout·<<·"Enter·message:​·";​
74 ······std:​:​cin.​getline(request_,​·max_length)​;​
75 ······size_t·request_length·=·strlen(request_)​;​
76
77 ······asio:​:​async_write(socket_,​
78 ··········asio:​:​buffer(request_,​·request_length)​,​
79 ··········boost:​:​bind(&client:​:​handle_write,​·this,​
80 ············asio:​:​placeholders:​:​error,​
81 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​
82 ····}
83 ····else
84 ····{
85 ······std:​:​cout·<<·"Handshake·failed:​·"·<<·error.​message()​·<<·"\n";​
86 ····}
87 ··}
88
89 ··void·handle_write(const·asio:​:​error_code&·error,​
90 ······size_t·bytes_transferred)​
91 ··​{60 ··​{
92 ····​if·(!error)​61 ····asio:​:​async_connect(socket_​.​lowest_layer()​,​·endpoints,​
93 ····{62 ········[this](const·std:​:​error_code&·error,​
94 ······asio:​:​async_read(socket_,​63 ··········const·tcp:​:​endpoint&·/​*endpoint*/​)​
95 ··········asio:​:​buffer(reply_,​·bytes_transferred)​,​64 ········{
96 ··········boost:​:​bind(&client:​:​handle_read,​·this,​65 ··········​if·(!error)​
97 ············asio:​:​placeholders:​:​error,​66 ··········{
98 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​67 ············​handshake()​;​
99 ····​}68 ··········​}
100 ····​else69 ··········​else
101 ····​{70 ··········​{
102 ······​std:​:​cout·​<<·​"Write·​failed:​·​"·​<<·​error.​message()​·​<<·​"\n";​71 ············​std:​:​cout·​<<·​"Connect·​failed:​·​"·​<<·​error.​message()​·​<<·​"\n";​
103 ····​}72 ··········​}
104 ··​}73 ········​})​;​
105 74 ··}
106 ··void·handle_read(const·asio:​:​error_code&·error,​75
107 ······size_t·bytes_transferred)​76 ··void·handshake()​
108 ··​{77 ··​{
109 ····if·(!error)​78 ····socket_.​async_handshake(asio:​:​ssl:​:​stream_base:​:​client,​
110 ····{79 ········[this](const·std:​:​error_code&·error)​
111 ······std:​:​cout·<<·"Reply:​·";​80 ········{
112 ······std:​:​cout.​write(reply_,​·bytes_transferred)​;​81 ··········if·(!error)​
113 ······std:​:​cout·<<·"\n";​82 ··········{
114 ····}83 ············send_request()​;​
115 ····else84 ··········}
116 ····{85 ··········else
117 ······std:​:​cout·<<·"Read·failed:​·"·<<·error.​message()​·<<·"\n";​86 ··········{
118 ····}87 ············std:​:​cout·<<·"Handshake·failed:​·"·<<·error.​message()​·<<·"\n";​
88 ··········​}
89 ········​})​;​
90 ··​}
91
92 ··​void·​send_request()​
93 ··​{
94 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​
95 ····​std:​:​cin.​getline(request_,​·​max_length)​;​
96 ····​size_t·​request_length·​=·​std:​:​strlen(request_)​;​
97
98 ····​asio:​:​async_write(socket_,​
99 ········​asio:​:​buffer(request_,​·​request_length)​,​
100 ········​[this](const·​std:​:​error_code&·​error,​·​std:​:​size_t·​length)​
101 ········​{
102 ··········​if·​(!error)​
103 ··········​{
104 ············​receive_response(leng​th)​;​
105 ··········​}
106 ··········​else
107 ··········​{
108 ············​std:​:​cout·​<<·​"Write·​failed:​·​"·​<<·​error.​message()​·​<<·​"\n";​
109 ··········​}
110 ········​})​;​
111 ··​}
112
113 ··​void·​receive_response(std:​:​size_t·​length)​
114 ··​{
115 ····​asio:​:​async_read(socket_,​
116 ········​asio:​:​buffer(reply_,​·​length)​,​
117 ········​[this](const·​std:​:​error_code&·​error,​·​std:​:​size_t·​length)​
118 ········​{
119 ··········​if·​(!error)​
120 ··········​{
121 ············​std:​:​cout·​<<·​"Reply:​·​";​
122 ············​std:​:​cout.​write(reply_,​·​length)​;​
123 ············​std:​:​cout·​<<·​"\n";​
124 ··········​}
125 ··········​else
126 ··········​{
127 ············​std:​:​cout·​<<·​"Read·​failed:​·​"·​<<·​error.​message()​·​<<·​"\n";​
128 ··········​}
129 ········​})​;​
119 ··​}130 ··​}
120 131
121 private:​132 ··asio:​:​ssl:​:​stream<tcp:​:​socket>·socket_;​
122 ··asio:​:​ssl:​:​stream<asio:​:​ip:​:​tcp:​:​socket>·socket_;​
123 ··​char·​request_[max_length];​133 ··​char·​request_[max_length];​
124 ··​char·​reply_[max_length];​134 ··​char·​reply_[max_length];​
125 };​135 };​
126 136
127 int·​main(int·​argc,​·​char*·​argv[])​137 int·​main(int·​argc,​·​char*·​argv[])​
128 {138 {
129 ··​try139 ··​try
130 ··​{140 ··​{
131 ····​if·​(argc·​!=·​3)​141 ····​if·​(argc·​!=·​3)​
132 ····​{142 ····​{
133 ······​std:​:​cerr·​<<·​"Usage:​·​client·​<host>·​<port>\n";​143 ······​std:​:​cerr·​<<·​"Usage:​·​client·​<host>·​<port>\n";​
134 ······​return·​1;​144 ······​return·​1;​
135 ····​}145 ····​}
136 146
137 ····​asio:​:​io_context·​io_context;​147 ····​asio:​:​io_context·​io_context;​
138 148
139 ····asio:​:​ip:​:​tcp:​:​resolver·​resolver(io_context)​;​149 ····​tcp:​:​resolver·​resolver(io_context)​;​
140 ····​asio:​:​ip:​:​tcp:​:​resolver:​:​results_type·endpoints·=150 ····​auto·endpoints·=·resolver.​resolve(argv[1],​·argv[2])​;​
141 ······resolver.​resolve(argv[1],​·argv[2])​;​
142 151
143 ····​asio:​:​ssl:​:​context·​ctx(asio:​:​ssl:​:​context:​:​sslv23)​;​152 ····​asio:​:​ssl:​:​context·​ctx(asio:​:​ssl:​:​context:​:​sslv23)​;​
144 ····​ctx.​load_verify_file("ca.​pem")​;​153 ····​ctx.​load_verify_file("ca.​pem")​;​
145 154
146 ····​client·​c(io_context,​·​ctx,​·​endpoints)​;​155 ····​client·​c(io_context,​·​ctx,​·​endpoints)​;​
147 156
148 ····​io_context.​run()​;​157 ····​io_context.​run()​;​
149 ··​}158 ··​}
150 ··​catch·​(std:​:​exception&·​e)​159 ··​catch·​(std:​:​exception&·​e)​
151 ··​{160 ··​{
152 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​161 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
153 ··​}162 ··​}
154 163
155 ··​return·​0;​164 ··​return·​0;​
156 }165 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/ssl/server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/ssl/server.cpp.html deleted file mode 100644 index 3c4ef6b..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/ssl/server.cpp.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - - HTML Diff ssl/server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​ssl/​server.​cppsrc/​examples/​cpp11/​ssl/​server.​cpp
1 /​/​1 /​/​
2 /​/​·​server.​cpp2 /​/​·​server.​cpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<functional>
12 #include·​<iostream>13 #include·​<iostream>
13 #include·​<boost/​bind.​hpp>
14 #include·​"asio.​hpp"14 #include·​"asio.​hpp"
15 #include·​"asio/​ssl.​hpp"15 #include·​"asio/​ssl.​hpp"
16 16
17 typedef·asio:​:​ssl:​:​stream<asio:​:​ip:​:​tcp:​:​socket>·ssl_socket;​17 using·asio:​:​ip:​:​tcp;​
18 18
19 class·​session19 class·session·:​·public·std:​:​enable_shared_from_th​is<session>
20 {20 {
21 public:​21 public:​
22 ··​session(asio:​:​io_context&·io_context,​22 ··​session(tcp:​:​socket·socket,​·asio:​:​ssl:​:​context&·​context)​
23 ······asio:​:​ssl:​:​context&·​context)​23 ····:​·socket_(std:​:​move(socket)​,​·​context)​
24 ····:​·socket_(io_context,​·context)​
25 ··​{24 ··​{
26 ··​}25 ··​}
27 26
28 ··​ssl_socket:​:​lowest_layer_type&·​socket()​
29 ··​{
30 ····​return·​socket_.​lowest_layer()​;​
31 ··​}
32
33 ··​void·​start()​27 ··​void·​start()​
34 ··​{28 ··​{
35 ····socket_.​async_handshake(asio:​:​ssl:​:​stream_base:​:​server,​29 ····do_handshake()​;​
36 ········boost:​:​bind(&session:​:​handle_handshake,​·this,​
37 ··········asio:​:​placeholders:​:​error)​)​;​
38 ··}
39
40 ··void·handle_handshake(cons​t·asio:​:​error_code&·error)​
41 ··{
42 ····if·(!error)​
43 ····{
44 ······socket_.​async_read_some(asio:​:​buffer(data_,​·max_length)​,​
45 ··········boost:​:​bind(&session:​:​handle_read,​·this,​
46 ············asio:​:​placeholders:​:​error,​
47 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​
48 ····}
49 ····else
50 ····{
51 ······delete·this;​
52 ····}
53 ··}
54
55 ··void·handle_read(const·asio:​:​error_code&·error,​
56 ······size_t·bytes_transferred)​
57 ··{
58 ····if·(!error)​
59 ····{
60 ······asio:​:​async_write(socket_,​
61 ··········asio:​:​buffer(data_,​·bytes_transferred)​,​
62 ··········boost:​:​bind(&session:​:​handle_write,​·this,​
63 ············asio:​:​placeholders:​:​error)​)​;​
64 ····}
65 ····else
66 ····{
67 ······delete·this;​
68 ····}
69 ··​}30 ··​}
70 31
71 ··void·handle_write(const·asio:​:​error_code&·error)​32 private:​
33 ··​void·​do_handshake()​
72 ··​{34 ··​{
73 ····if·​(!error)​35 ····auto·self(shared_from_this​()​)​;​
74 ····{36 ····socket_.​async_handshake(asio:​:​ssl:​:​stream_base:​:​server,​·
75 ······socket_.​async_read_some(asio:​:​buffer(data_,​·max_length)​,​37 ········[this,​·self](const·std:​:​error_code&·error)​
76 ··········boost:​:​bind(&session:​:​handle_read,​·this,​38 ········{
77 ············asio:​:​placeholders:​:​error,​39 ··········​if·(!error)​
78 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​40 ··········{
79 ····}41 ············do_read()​;​
80 ····else42 ··········}
81 ····{43 ········})​;​
82 ······delete·this;​44 ··}
83 ····}45
46 ··​void·​do_read()​
47 ··​{
48 ····​auto·​self(shared_from_this​()​)​;​
49 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​
50 ········​[this,​·​self](const·​std:​:​error_code&·​ec,​·​std:​:​size_t·​length)​
51 ········​{
52 ··········​if·​(!ec)​
53 ··········​{
54 ············​do_write(length)​;​
55 ··········​}
56 ········​})​;​
57 ··​}
58
59 ··​void·​do_write(std:​:​size_t·​length)​
60 ··​{
61 ····​auto·​self(shared_from_this​()​)​;​
62 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer(data_,​·​length)​,​
63 ········​[this,​·​self](const·​std:​:​error_code&·​ec,​
64 ··········​std:​:​size_t·​/​*length*/​)​
65 ········​{
66 ··········​if·​(!ec)​
67 ··········​{
68 ············​do_read()​;​
69 ··········​}
70 ········​})​;​
84 ··​}71 ··​}
85 72
86 private:​73 ··asio:​:​ssl:​:​stream<tcp:​:​socket>·socket_;​
87 ··ssl_socket·socket_;​74 ··char·data_[1024];​
88 ··enum·{·max_length·=·1024·};​
89 ··char·data_[max_length];​
90 };​75 };​
91 76
92 class·​server77 class·​server
93 {78 {
94 public:​79 public:​
95 ··​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​80 ··​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​
96 ····​:​·​io_context_(io_contex​t)​,​81 ····​:​·acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​,​
97 ······acceptor_(io_context,​
98 ··········asio:​:​ip:​:​tcp:​:​endpoint(asio:​:​ip:​:​tcp:​:​v4()​,​·port)​)​,​
99 ······​context_(asio:​:​ssl:​:​context:​:​sslv23)​82 ······​context_(asio:​:​ssl:​:​context:​:​sslv23)​
100 ··​{83 ··​{
101 ····​context_.​set_options(84 ····​context_.​set_options(
102 ········​asio:​:​ssl:​:​context:​:​default_workarounds85 ········​asio:​:​ssl:​:​context:​:​default_workarounds
103 ········​|·​asio:​:​ssl:​:​context:​:​no_sslv286 ········​|·​asio:​:​ssl:​:​context:​:​no_sslv2
104 ········​|·​asio:​:​ssl:​:​context:​:​single_dh_use)​;​87 ········​|·​asio:​:​ssl:​:​context:​:​single_dh_use)​;​
105 ····​context_.​set_password_callback​(boost:​:​bind(&server:​:​get_password,​·​this)​)​;​88 ····​context_.​set_password_callback​(std:​:​bind(&server:​:​get_password,​·​this)​)​;​
106 ····​context_.​use_certificate_chain​_file("server.​pem")​;​89 ····​context_.​use_certificate_chain​_file("server.​pem")​;​
107 ····​context_.​use_private_key_file(​"server.​pem",​·​asio:​:​ssl:​:​context:​:​pem)​;​90 ····​context_.​use_private_key_file(​"server.​pem",​·​asio:​:​ssl:​:​context:​:​pem)​;​
108 ····​context_.​use_tmp_dh_file("dh20​48.​pem")​;​91 ····​context_.​use_tmp_dh_file("dh20​48.​pem")​;​
109 92
110 ····start_accept()​;​93 ····do_accept()​;​
111 ··​}94 ··​}
112 95
96 private:​
113 ··​std:​:​string·​get_password()​·​const97 ··​std:​:​string·​get_password()​·​const
114 ··​{98 ··​{
115 ····​return·​"test";​99 ····​return·​"test";​
116 ··​}100 ··​}
117 101
118 ··​void·start_accept()​102 ··​void·do_accept()​
119 ··​{103 ··​{
120 ····session*·new_session·=·new·session(io_context_,​·context_)​;​104 ····acceptor_.​async_accept(
121 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​105 ········[this](const·std:​:​error_code&·error,​·tcp:​:​socket·socket)​
122 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​106 ········{
123 ··········asio:​:​placeholders:​:​error)​)​;​107 ··········​if·(!error)​
124 ··}108 ··········{
125 109 ············std:​:​make_shared<session>(​std:​:​move(socket)​,​·context_)​-​>start()​;​
126 ··void·handle_accept(session​*·new_session,​110 ··········}
127 ······const·asio:​:​error_code&·error)​
128 ··{
129 ····if·(!error)​
130 ····{
131 ······new_session-​>start()​;​
132 ····}
133 ····else
134 ····{
135 ······delete·new_session;​
136 ····}
137 111
138 ····start_accept()​;​112 ··········do_accept()​;​
113 ········​})​;​
139 ··​}114 ··​}
140 115
141 private:​116 ··tcp:​:​acceptor·acceptor_;​
142 ··asio:​:​io_context&·io_context_;​
143 ··asio:​:​ip:​:​tcp:​:​acceptor·acceptor_;​
144 ··​asio:​:​ssl:​:​context·​context_;​117 ··​asio:​:​ssl:​:​context·​context_;​
145 };​118 };​
146 119
147 int·​main(int·​argc,​·​char*·​argv[])​120 int·​main(int·​argc,​·​char*·​argv[])​
148 {121 {
149 ··​try122 ··​try
150 ··​{123 ··​{
151 ····​if·​(argc·​!=·​2)​124 ····​if·​(argc·​!=·​2)​
152 ····​{125 ····​{
153 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<port>\n";​126 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<port>\n";​
154 ······​return·​1;​127 ······​return·​1;​
155 ····​}128 ····​}
156 129
157 ····​asio:​:​io_context·​io_context;​130 ····​asio:​:​io_context·​io_context;​
158 131
159 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​132 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​
160 ····​server·​s(io_context,​·​atoi(argv[1])​)​;​133 ····​server·​s(io_context,​·​atoi(argv[1])​)​;​
161 134
162 ····​io_context.​run()​;​135 ····​io_context.​run()​;​
163 ··​}136 ··​}
164 ··​catch·​(std:​:​exception&·​e)​137 ··​catch·​(std:​:​exception&·​e)​
165 ··​{138 ··​{
166 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​139 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
167 ··​}140 ··​}
168 141
169 ··​return·​0;​142 ··​return·​0;​
170 }143 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/timeouts/async_tcp_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/timeouts/async_tcp_client.cpp.html deleted file mode 100644 index 3ad831d..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/timeouts/async_tcp_client.cpp.html +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - - HTML Diff timeouts/async_tcp_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​timeouts/​async_tcp_client.​cppsrc/​examples/​cpp11/​timeouts/​async_tcp_client.​cpp
1 /​/​1 /​/​
2 /​/​·​async_tcp_client.​cpp2 /​/​·​async_tcp_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"asio/​buffer.​hpp"11 #include·​"asio/​buffer.​hpp"
12 #include·​"asio/​io_context.​hpp"12 #include·​"asio/​io_context.​hpp"
13 #include·​"asio/​ip/​tcp.​hpp"13 #include·​"asio/​ip/​tcp.​hpp"
14 #include·​"asio/​read_until.​hpp"14 #include·​"asio/​read_until.​hpp"
15 #include·​"asio/​steady_timer.​hpp"15 #include·​"asio/​steady_timer.​hpp"
16 #include·​"asio/​write.​hpp"16 #include·​"asio/​write.​hpp"
17 #include·​<boost/​bind.​hpp>17 #include·​<functional>
18 #include·​<iostream>18 #include·​<iostream>
19 #include·​<string>19 #include·​<string>
20 20
21 using·​asio:​:​steady_timer;​21 using·​asio:​:​steady_timer;​
22 using·​asio:​:​ip:​:​tcp;​22 using·​asio:​:​ip:​:​tcp;​
23 using·​std:​:​placeholders:​:​_1;​
24 using·​std:​:​placeholders:​:​_2;​
23 25
24 /​/​26 /​/​
25 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​applying·​the·​concept·​of·​a·​deadline.​27 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​applying·​the·​concept·​of·​a·​deadline.​
26 /​/​·​Some·​asynchronous·​operations·​are·​given·​deadlines·​by·​which·​they·​must·​complete.​28 /​/​·​Some·​asynchronous·​operations·​are·​given·​deadlines·​by·​which·​they·​must·​complete.​
27 /​/​·​Deadlines·​are·​enforced·​by·​an·​"actor"·​that·​persists·​for·​the·​lifetime·​of·​the29 /​/​·​Deadlines·​are·​enforced·​by·​an·​"actor"·​that·​persists·​for·​the·​lifetime·​of·​the
28 /​/​·​client·​object:​30 /​/​·​client·​object:​
29 /​/​31 /​/​
30 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+32 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
31 /​/​··​|················​|33 /​/​··​|················​|
32 /​/​··​|·​check_deadline·​|<-​-​-​+34 /​/​··​|·​check_deadline·​|<-​-​-​+
33 /​/​··​|················​|····​|35 /​/​··​|················​|····​|
34 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|·​async_wait()​36 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|·​async_wait()​
35 /​/​··············​|·········​|37 /​/​··············​|·········​|
36 /​/​··············​+-​-​-​-​-​-​-​-​-​+38 /​/​··············​+-​-​-​-​-​-​-​-​-​+
37 /​/​39 /​/​
38 /​/​·​If·​the·​deadline·​actor·​determines·​that·​the·​deadline·​has·​expired,​·​the·​socket40 /​/​·​If·​the·​deadline·​actor·​determines·​that·​the·​deadline·​has·​expired,​·​the·​socket
39 /​/​·​is·​closed·​and·​any·​outstanding·​operations·​are·​consequently·​cancelled.​41 /​/​·​is·​closed·​and·​any·​outstanding·​operations·​are·​consequently·​cancelled.​
40 /​/​42 /​/​
41 /​/​·​Connection·​establishment·​involves·​trying·​each·​endpoint·​in·​turn·​until·​a43 /​/​·​Connection·​establishment·​involves·​trying·​each·​endpoint·​in·​turn·​until·​a
42 /​/​·​connection·​is·​successful,​·​or·​the·​available·​endpoints·​are·​exhausted.​·​If·​the44 /​/​·​connection·​is·​successful,​·​or·​the·​available·​endpoints·​are·​exhausted.​·​If·​the
43 /​/​·​deadline·​actor·​closes·​the·​socket,​·​the·​connect·​actor·​is·​woken·​up·​and·​moves·​to45 /​/​·​deadline·​actor·​closes·​the·​socket,​·​the·​connect·​actor·​is·​woken·​up·​and·​moves·​to
44 /​/​·​the·​next·​endpoint.​46 /​/​·​the·​next·​endpoint.​
45 /​/​47 /​/​
46 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+48 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
47 /​/​··​|···············​|49 /​/​··​|···············​|
48 /​/​··​|·​start_connect·​|<-​-​-​+50 /​/​··​|·​start_connect·​|<-​-​-​+
49 /​/​··​|···············​|····​|51 /​/​··​|···············​|····​|
50 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|52 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|
51 /​/​···········​|···········​|53 /​/​···········​|···········​|
52 /​/​··​async_-​··​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+54 /​/​··​async_-​··​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
53 /​/​·​connect()​·​|····​|················​|55 /​/​·​connect()​·​|····​|················​|
54 /​/​···········​+-​-​-​>|·​handle_connect·​|56 /​/​···········​+-​-​-​>|·​handle_connect·​|
55 /​/​················​|················​|57 /​/​················​|················​|
56 /​/​················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+58 /​/​················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
57 /​/​··························​:​59 /​/​··························​:​
58 /​/​·​Once·​a·​connection·​is·····​:​60 /​/​·​Once·​a·​connection·​is·····​:​
59 /​/​·​made,​·​the·​connect········​:​61 /​/​·​made,​·​the·​connect········​:​
60 /​/​·​actor·​forks·​in·​two·​-​·····​:​62 /​/​·​actor·​forks·​in·​two·​-​·····​:​
61 /​/​··························​:​63 /​/​··························​:​
62 /​/​·​an·​actor·​for·​reading·····​:​·······​and·​an·​actor·​for64 /​/​·​an·​actor·​for·​reading·····​:​·······​and·​an·​actor·​for
63 /​/​·​inbound·​messages:​········​:​·······​sending·​heartbeats:​65 /​/​·​inbound·​messages:​········​:​·······​sending·​heartbeats:​
64 /​/​··························​:​66 /​/​··························​:​
65 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​+··········​:​··········​+-​-​-​-​-​-​-​-​-​-​-​-​-​+67 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​+··········​:​··········​+-​-​-​-​-​-​-​-​-​-​-​-​-​+
66 /​/​··​|············​|<-​·​-​·​-​·​-​·​-​+-​·​-​·​-​·​-​·​-​>|·············​|68 /​/​··​|············​|<-​·​-​·​-​·​-​·​-​+-​·​-​·​-​·​-​·​-​>|·············​|
67 /​/​··​|·​start_read·​|·····················​|·​start_write·​|<-​-​-​+69 /​/​··​|·​start_read·​|·····················​|·​start_write·​|<-​-​-​+
68 /​/​··​|············​|<-​-​-​+················​|·············​|····​|70 /​/​··​|············​|<-​-​-​+················​|·············​|····​|
69 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​+····​|················​+-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|·​async_wait()​71 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​+····​|················​+-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|·​async_wait()​
70 /​/​··········​|·········​|························​|··········​|72 /​/​··········​|·········​|························​|··········​|
71 /​/​··​async_-​·​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​+·······​async_-​·​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+73 /​/​··​async_-​·​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​+·······​async_-​·​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
72 /​/​···​read_-​·​|····​|·············​|·······​write()​·​|····​|··············​|74 /​/​···​read_-​·​|····​|·············​|·······​write()​·​|····​|··············​|
73 /​/​··​until()​·​+-​-​-​>|·​handle_read·​|···············​+-​-​-​>|·​handle_write·​|75 /​/​··​until()​·​+-​-​-​>|·​handle_read·​|···············​+-​-​-​>|·​handle_write·​|
74 /​/​···············​|·············​|····················​|··············​|76 /​/​···············​|·············​|····················​|··············​|
75 /​/​···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​+····················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+77 /​/​···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​+····················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
76 /​/​78 /​/​
77 /​/​·​The·​input·​actor·​reads·​messages·​from·​the·​socket,​·​where·​messages·​are·​delimited79 /​/​·​The·​input·​actor·​reads·​messages·​from·​the·​socket,​·​where·​messages·​are·​delimited
78 /​/​·​by·​the·​newline·​character.​·​The·​deadline·​for·​a·​complete·​message·​is·​30·​seconds.​80 /​/​·​by·​the·​newline·​character.​·​The·​deadline·​for·​a·​complete·​message·​is·​30·​seconds.​
79 /​/​81 /​/​
80 /​/​·​The·​heartbeat·​actor·​sends·​a·​heartbeat·​(a·​message·​that·​consists·​of·​a·​single82 /​/​·​The·​heartbeat·​actor·​sends·​a·​heartbeat·​(a·​message·​that·​consists·​of·​a·​single
81 /​/​·​newline·​character)​·​every·​10·​seconds.​·​In·​this·​example,​·​no·​deadline·​is·​applied83 /​/​·​newline·​character)​·​every·​10·​seconds.​·​In·​this·​example,​·​no·​deadline·​is·​applied
82 /​/​·​to·​message·​sending.​84 /​/​·​to·​message·​sending.​
83 /​/​85 /​/​
84 class·​client86 class·​client
85 {87 {
86 public:​88 public:​
87 ··​client(asio:​:​io_context&·​io_context)​89 ··​client(asio:​:​io_context&·​io_context)​
88 ····​:​·​stopped_(false)​,​90 ····​:​·​socket_(io_context)​,​
89 ······socket_(io_context)​,​
90 ······​deadline_(io_context)​,​91 ······​deadline_(io_context)​,​
91 ······​heartbeat_timer_(io_c​ontext)​92 ······​heartbeat_timer_(io_c​ontext)​
92 ··​{93 ··​{
93 ··​}94 ··​}
94 95
95 ··​/​/​·​Called·​by·​the·​user·​of·​the·​client·​class·​to·​initiate·​the·​connection·​process.​96 ··​/​/​·​Called·​by·​the·​user·​of·​the·​client·​class·​to·​initiate·​the·​connection·​process.​
96 ··​/​/​·​The·​endpoints·​will·​have·​been·​obtained·​using·​a·​tcp:​:​resolver.​97 ··​/​/​·​The·​endpoints·​will·​have·​been·​obtained·​using·​a·​tcp:​:​resolver.​
97 ··​void·​start(tcp:​:​resolver:​:​results_type·​endpoints)​98 ··​void·​start(tcp:​:​resolver:​:​results_type·​endpoints)​
98 ··​{99 ··​{
99 ····​/​/​·​Start·​the·​connect·​actor.​100 ····​/​/​·​Start·​the·​connect·​actor.​
100 ····​endpoints_·​=·​endpoints;​101 ····​endpoints_·​=·​endpoints;​
101 ····​start_connect(endpoin​ts_.​begin()​)​;​102 ····​start_connect(endpoin​ts_.​begin()​)​;​
102 103
103 ····​/​/​·​Start·​the·​deadline·​actor.​·​You·​will·​note·​that·​we're·​not·​setting·​any104 ····​/​/​·​Start·​the·​deadline·​actor.​·​You·​will·​note·​that·​we're·​not·​setting·​any
104 ····​/​/​·​particular·​deadline·​here.​·​Instead,​·​the·​connect·​and·​input·​actors·​will105 ····​/​/​·​particular·​deadline·​here.​·​Instead,​·​the·​connect·​and·​input·​actors·​will
105 ····​/​/​·​update·​the·​deadline·​prior·​to·​each·​asynchronous·​operation.​106 ····​/​/​·​update·​the·​deadline·​prior·​to·​each·​asynchronous·​operation.​
106 ····​deadline_.​async_wait(boost:​:​bind(&client:​:​check_deadline,​·​this)​)​;​107 ····​deadline_.​async_wait(std:​:​bind(&client:​:​check_deadline,​·​this)​)​;​
107 ··​}108 ··​}
108 109
109 ··​/​/​·​This·​function·​terminates·​all·​the·​actors·​to·​shut·​down·​the·​connection.​·​It110 ··​/​/​·​This·​function·​terminates·​all·​the·​actors·​to·​shut·​down·​the·​connection.​·​It
110 ··​/​/​·​may·​be·​called·​by·​the·​user·​of·​the·​client·​class,​·​or·​by·​the·​class·​itself·​in111 ··​/​/​·​may·​be·​called·​by·​the·​user·​of·​the·​client·​class,​·​or·​by·​the·​class·​itself·​in
111 ··​/​/​·​response·​to·​graceful·​termination·​or·​an·​unrecoverable·​error.​112 ··​/​/​·​response·​to·​graceful·​termination·​or·​an·​unrecoverable·​error.​
112 ··​void·​stop()​113 ··​void·​stop()​
113 ··​{114 ··​{
114 ····​stopped_·​=·​true;​115 ····​stopped_·​=·​true;​
115 ····asio:​:​error_code·​ignored_ec;​116 ····​std:​:​error_code·​ignored_error;​
116 ····​socket_.​close(ignored_ec)​;​117 ····​socket_.​close(ignored_error)​;​
117 ····​deadline_.​cancel()​;​118 ····​deadline_.​cancel()​;​
118 ····​heartbeat_timer_.​cancel()​;​119 ····​heartbeat_timer_.​cancel()​;​
119 ··​}120 ··​}
120 121
121 private:​122 private:​
122 ··​void·​start_connect(tcp:​:​resolver:​:​results_type:​:​iterator·​endpoint_iter)​123 ··​void·​start_connect(tcp:​:​resolver:​:​results_type:​:​iterator·​endpoint_iter)​
123 ··​{124 ··​{
124 ····​if·​(endpoint_iter·​!=·​endpoints_.​end()​)​125 ····​if·​(endpoint_iter·​!=·​endpoints_.​end()​)​
125 ····​{126 ····​{
126 ······​std:​:​cout·​<<·​"Trying·​"·​<<·​endpoint_iter-​>endpoint()​·​<<·​".​.​.​\n";​127 ······​std:​:​cout·​<<·​"Trying·​"·​<<·​endpoint_iter-​>endpoint()​·​<<·​".​.​.​\n";​
127 128
128 ······​/​/​·​Set·​a·​deadline·​for·​the·​connect·​operation.​129 ······​/​/​·​Set·​a·​deadline·​for·​the·​connect·​operation.​
129 ······​deadline_.​expires_after(asio:​:​chrono:​:​seconds(60)​)​;​130 ······​deadline_.​expires_after(std:​:​chrono:​:​seconds(60)​)​;​
130 131
131 ······​/​/​·​Start·​the·​asynchronous·​connect·​operation.​132 ······​/​/​·​Start·​the·​asynchronous·​connect·​operation.​
132 ······​socket_.​async_connect(endpoin​t_iter-​>endpoint()​,​133 ······​socket_.​async_connect(endpoin​t_iter-​>endpoint()​,​
133 ··········boost:​:​bind(&client:​:​handle_connect,​134 ··········​std:​:​bind(&client:​:​handle_connect,​
134 ············​this,​·​_1,​·​endpoint_iter)​)​;​135 ············​this,​·​_1,​·​endpoint_iter)​)​;​
135 ····​}136 ····​}
136 ····​else137 ····​else
137 ····​{138 ····​{
138 ······​/​/​·​There·​are·​no·​more·​endpoints·​to·​try.​·​Shut·​down·​the·​client.​139 ······​/​/​·​There·​are·​no·​more·​endpoints·​to·​try.​·​Shut·​down·​the·​client.​
139 ······​stop()​;​140 ······​stop()​;​
140 ····​}141 ····​}
141 ··​}142 ··​}
142 143
143 ··​void·​handle_connect(const·asio:​:​error_code&·​ec,​144 ··​void·​handle_connect(const·​std:​:​error_code&·​error,​
144 ······​tcp:​:​resolver:​:​results_type:​:​iterator·​endpoint_iter)​145 ······​tcp:​:​resolver:​:​results_type:​:​iterator·​endpoint_iter)​
145 ··​{146 ··​{
146 ····​if·​(stopped_)​147 ····​if·​(stopped_)​
147 ······​return;​148 ······​return;​
148 149
149 ····​/​/​·​The·​async_connect()​·​function·​automatically·​opens·​the·​socket·​at·​the·​start150 ····​/​/​·​The·​async_connect()​·​function·​automatically·​opens·​the·​socket·​at·​the·​start
150 ····​/​/​·​of·​the·​asynchronous·​operation.​·​If·​the·​socket·​is·​closed·​at·​this·​time·​then151 ····​/​/​·​of·​the·​asynchronous·​operation.​·​If·​the·​socket·​is·​closed·​at·​this·​time·​then
151 ····​/​/​·​the·​timeout·​handler·​must·​have·​run·​first.​152 ····​/​/​·​the·​timeout·​handler·​must·​have·​run·​first.​
152 ····​if·​(!socket_.​is_open()​)​153 ····​if·​(!socket_.​is_open()​)​
153 ····​{154 ····​{
154 ······​std:​:​cout·​<<·​"Connect·​timed·​out\n";​155 ······​std:​:​cout·​<<·​"Connect·​timed·​out\n";​
155 156
156 ······​/​/​·​Try·​the·​next·​available·​endpoint.​157 ······​/​/​·​Try·​the·​next·​available·​endpoint.​
157 ······​start_connect(++endpo​int_iter)​;​158 ······​start_connect(++endpo​int_iter)​;​
158 ····​}159 ····​}
159 160
160 ····​/​/​·​Check·​if·​the·​connect·​operation·​failed·​before·​the·​deadline·​expired.​161 ····​/​/​·​Check·​if·​the·​connect·​operation·​failed·​before·​the·​deadline·​expired.​
161 ····​else·​if·​(ec)​162 ····​else·​if·​(error)​
162 ····​{163 ····​{
163 ······​std:​:​cout·​<<·​"Connect·​error:​·​"·​<<·​ec.​message()​·​<<·​"\n";​164 ······​std:​:​cout·​<<·​"Connect·​error:​·​"·​<<·​error.​message()​·​<<·​"\n";​
164 165
165 ······​/​/​·​We·​need·​to·​close·​the·​socket·​used·​in·​the·​previous·​connection·​attempt166 ······​/​/​·​We·​need·​to·​close·​the·​socket·​used·​in·​the·​previous·​connection·​attempt
166 ······​/​/​·​before·​starting·​a·​new·​one.​167 ······​/​/​·​before·​starting·​a·​new·​one.​
167 ······​socket_.​close()​;​168 ······​socket_.​close()​;​
168 169
169 ······​/​/​·​Try·​the·​next·​available·​endpoint.​170 ······​/​/​·​Try·​the·​next·​available·​endpoint.​
170 ······​start_connect(++endpo​int_iter)​;​171 ······​start_connect(++endpo​int_iter)​;​
171 ····​}172 ····​}
172 173
173 ····​/​/​·​Otherwise·​we·​have·​successfully·​established·​a·​connection.​174 ····​/​/​·​Otherwise·​we·​have·​successfully·​established·​a·​connection.​
174 ····​else175 ····​else
175 ····​{176 ····​{
176 ······​std:​:​cout·​<<·​"Connected·​to·​"·​<<·​endpoint_iter-​>endpoint()​·​<<·​"\n";​177 ······​std:​:​cout·​<<·​"Connected·​to·​"·​<<·​endpoint_iter-​>endpoint()​·​<<·​"\n";​
177 178
178 ······​/​/​·​Start·​the·​input·​actor.​179 ······​/​/​·​Start·​the·​input·​actor.​
179 ······​start_read()​;​180 ······​start_read()​;​
180 181
181 ······​/​/​·​Start·​the·​heartbeat·​actor.​182 ······​/​/​·​Start·​the·​heartbeat·​actor.​
182 ······​start_write()​;​183 ······​start_write()​;​
183 ····​}184 ····​}
184 ··​}185 ··​}
185 186
186 ··​void·​start_read()​187 ··​void·​start_read()​
187 ··​{188 ··​{
188 ····​/​/​·​Set·​a·​deadline·​for·​the·​read·​operation.​189 ····​/​/​·​Set·​a·​deadline·​for·​the·​read·​operation.​
189 ····​deadline_.​expires_after(asio:​:​chrono:​:​seconds(30)​)​;​190 ····​deadline_.​expires_after(std:​:​chrono:​:​seconds(30)​)​;​
190 191
191 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​read·​a·​newline-​delimited·​message.​192 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​read·​a·​newline-​delimited·​message.​
192 ····​asio:​:​async_read_until(sock​et_,​193 ····​asio:​:​async_read_until(sock​et_,​
193 ········​asio:​:​dynamic_buffer(input_​buffer_)​,​·​'\n',​194 ········​asio:​:​dynamic_buffer(input_​buffer_)​,​·​'\n',​
194 ········boost:​:​bind(&client:​:​handle_read,​·​this,​·​_1,​·​_2)​)​;​195 ········​std:​:​bind(&client:​:​handle_read,​·​this,​·​_1,​·​_2)​)​;​
195 ··​}196 ··​}
196 197
197 ··​void·​handle_read(const·asio:​:​error_code&·​ec,​·​std:​:​size_t·​n)​198 ··​void·​handle_read(const·​std:​:​error_code&·​error,​·​std:​:​size_t·​n)​
198 ··​{199 ··​{
199 ····​if·​(stopped_)​200 ····​if·​(stopped_)​
200 ······​return;​201 ······​return;​
201 202
202 ····​if·​(!ec)​203 ····​if·​(!error)​
203 ····​{204 ····​{
204 ······​/​/​·​Extract·​the·​newline-​delimited·​message·​from·​the·​buffer.​205 ······​/​/​·​Extract·​the·​newline-​delimited·​message·​from·​the·​buffer.​
205 ······​std:​:​string·​line(input_buffer_.​substr(0,​·​n·​-​·​1)​)​;​206 ······​std:​:​string·​line(input_buffer_.​substr(0,​·​n·​-​·​1)​)​;​
206 ······​input_buffer_.​erase(0,​·​n)​;​207 ······​input_buffer_.​erase(0,​·​n)​;​
207 208
208 ······​/​/​·​Empty·​messages·​are·​heartbeats·​and·​so·​ignored.​209 ······​/​/​·​Empty·​messages·​are·​heartbeats·​and·​so·​ignored.​
209 ······​if·​(!line.​empty()​)​210 ······​if·​(!line.​empty()​)​
210 ······​{211 ······​{
211 ········​std:​:​cout·​<<·​"Received:​·​"·​<<·​line·​<<·​"\n";​212 ········​std:​:​cout·​<<·​"Received:​·​"·​<<·​line·​<<·​"\n";​
212 ······​}213 ······​}
213 214
214 ······​start_read()​;​215 ······​start_read()​;​
215 ····​}216 ····​}
216 ····​else217 ····​else
217 ····​{218 ····​{
218 ······​std:​:​cout·​<<·​"Error·​on·​receive:​·​"·​<<·​ec.​message()​·​<<·​"\n";​219 ······​std:​:​cout·​<<·​"Error·​on·​receive:​·​"·​<<·​error.​message()​·​<<·​"\n";​
219 220
220 ······​stop()​;​221 ······​stop()​;​
221 ····​}222 ····​}
222 ··​}223 ··​}
223 224
224 ··​void·​start_write()​225 ··​void·​start_write()​
225 ··​{226 ··​{
226 ····​if·​(stopped_)​227 ····​if·​(stopped_)​
227 ······​return;​228 ······​return;​
228 229
229 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​send·​a·​heartbeat·​message.​230 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​send·​a·​heartbeat·​message.​
230 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer("\n",​·​1)​,​231 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer("\n",​·​1)​,​
231 ········boost:​:​bind(&client:​:​handle_write,​·​this,​·​_1)​)​;​232 ········​std:​:​bind(&client:​:​handle_write,​·​this,​·​_1)​)​;​
232 ··​}233 ··​}
233 234
234 ··​void·​handle_write(const·asio:​:​error_code&·​ec)​235 ··​void·​handle_write(const·​std:​:​error_code&·​error)​
235 ··​{236 ··​{
236 ····​if·​(stopped_)​237 ····​if·​(stopped_)​
237 ······​return;​238 ······​return;​
238 239
239 ····​if·​(!ec)​240 ····​if·​(!error)​
240 ····​{241 ····​{
241 ······​/​/​·​Wait·​10·​seconds·​before·​sending·​the·​next·​heartbeat.​242 ······​/​/​·​Wait·​10·​seconds·​before·​sending·​the·​next·​heartbeat.​
242 ······​heartbeat_timer_.​expires_after(asio:​:​chrono:​:​seconds(10)​)​;​243 ······​heartbeat_timer_.​expires_after(std:​:​chrono:​:​seconds(10)​)​;​
243 ······​heartbeat_timer_.​async_wait(boost:​:​bind(&client:​:​start_write,​·​this)​)​;​244 ······​heartbeat_timer_.​async_wait(std:​:​bind(&client:​:​start_write,​·​this)​)​;​
244 ····​}245 ····​}
245 ····​else246 ····​else
246 ····​{247 ····​{
247 ······​std:​:​cout·​<<·​"Error·​on·​heartbeat:​·​"·​<<·​ec.​message()​·​<<·​"\n";​248 ······​std:​:​cout·​<<·​"Error·​on·​heartbeat:​·​"·​<<·​error.​message()​·​<<·​"\n";​
248 249
249 ······​stop()​;​250 ······​stop()​;​
250 ····​}251 ····​}
251 ··​}252 ··​}
252 253
253 ··​void·​check_deadline()​254 ··​void·​check_deadline()​
254 ··​{255 ··​{
255 ····​if·​(stopped_)​256 ····​if·​(stopped_)​
256 ······​return;​257 ······​return;​
257 258
258 ····​/​/​·​Check·​whether·​the·​deadline·​has·​passed.​·​We·​compare·​the·​deadline·​against259 ····​/​/​·​Check·​whether·​the·​deadline·​has·​passed.​·​We·​compare·​the·​deadline·​against
259 ····​/​/​·​the·​current·​time·​since·​a·​new·​asynchronous·​operation·​may·​have·​moved·​the260 ····​/​/​·​the·​current·​time·​since·​a·​new·​asynchronous·​operation·​may·​have·​moved·​the
260 ····​/​/​·​deadline·​before·​this·​actor·​had·​a·​chance·​to·​run.​261 ····​/​/​·​deadline·​before·​this·​actor·​had·​a·​chance·​to·​run.​
261 ····​if·​(deadline_.​expiry()​·​<=·​steady_timer:​:​clock_type:​:​now()​)​262 ····​if·​(deadline_.​expiry()​·​<=·​steady_timer:​:​clock_type:​:​now()​)​
262 ····​{263 ····​{
263 ······​/​/​·​The·​deadline·​has·​passed.​·​The·​socket·​is·​closed·​so·​that·​any·​outstanding264 ······​/​/​·​The·​deadline·​has·​passed.​·​The·​socket·​is·​closed·​so·​that·​any·​outstanding
264 ······​/​/​·​asynchronous·​operations·​are·​cancelled.​265 ······​/​/​·​asynchronous·​operations·​are·​cancelled.​
265 ······​socket_.​close()​;​266 ······​socket_.​close()​;​
266 267
267 ······​/​/​·​There·​is·​no·​longer·​an·​active·​deadline.​·​The·​expiry·​is·​set·​to·​the268 ······​/​/​·​There·​is·​no·​longer·​an·​active·​deadline.​·​The·​expiry·​is·​set·​to·​the
268 ······​/​/​·​maximum·​time·​point·​so·​that·​the·​actor·​takes·​no·​action·​until·​a·​new269 ······​/​/​·​maximum·​time·​point·​so·​that·​the·​actor·​takes·​no·​action·​until·​a·​new
269 ······​/​/​·​deadline·​is·​set.​270 ······​/​/​·​deadline·​is·​set.​
270 ······​deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​271 ······​deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​
271 ····​}272 ····​}
272 273
273 ····​/​/​·​Put·​the·​actor·​back·​to·​sleep.​274 ····​/​/​·​Put·​the·​actor·​back·​to·​sleep.​
274 ····​deadline_.​async_wait(boost:​:​bind(&client:​:​check_deadline,​·​this)​)​;​275 ····​deadline_.​async_wait(std:​:​bind(&client:​:​check_deadline,​·​this)​)​;​
275 ··​}276 ··​}
276 277
277 private:​278 private:​
278 ··​bool·​stopped_;​279 ··​bool·​stopped_·=·false;​
279 ··​tcp:​:​resolver:​:​results_type·​endpoints_;​280 ··​tcp:​:​resolver:​:​results_type·​endpoints_;​
280 ··​tcp:​:​socket·​socket_;​281 ··​tcp:​:​socket·​socket_;​
281 ··​std:​:​string·​input_buffer_;​282 ··​std:​:​string·​input_buffer_;​
282 ··​steady_timer·​deadline_;​283 ··​steady_timer·​deadline_;​
283 ··​steady_timer·​heartbeat_timer_;​284 ··​steady_timer·​heartbeat_timer_;​
284 };​285 };​
285 286
286 int·​main(int·​argc,​·​char*·​argv[])​287 int·​main(int·​argc,​·​char*·​argv[])​
287 {288 {
288 ··​try289 ··​try
289 ··​{290 ··​{
290 ····​if·​(argc·​!=·​3)​291 ····​if·​(argc·​!=·​3)​
291 ····​{292 ····​{
292 ······​std:​:​cerr·​<<·​"Usage:​·​client·​<host>·​<port>\n";​293 ······​std:​:​cerr·​<<·​"Usage:​·​client·​<host>·​<port>\n";​
293 ······​return·​1;​294 ······​return·​1;​
294 ····​}295 ····​}
295 296
296 ····​asio:​:​io_context·​io_context;​297 ····​asio:​:​io_context·​io_context;​
297 ····​tcp:​:​resolver·​r(io_context)​;​298 ····​tcp:​:​resolver·​r(io_context)​;​
298 ····​client·​c(io_context)​;​299 ····​client·​c(io_context)​;​
299 300
300 ····​c.​start(r.​resolve(argv[1],​·​argv[2])​)​;​301 ····​c.​start(r.​resolve(argv[1],​·​argv[2])​)​;​
301 302
302 ····​io_context.​run()​;​303 ····​io_context.​run()​;​
303 ··​}304 ··​}
304 ··​catch·​(std:​:​exception&·​e)​305 ··​catch·​(std:​:​exception&·​e)​
305 ··​{306 ··​{
306 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​307 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
307 ··​}308 ··​}
308 309
309 ··​return·​0;​310 ··​return·​0;​
310 }311 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_tcp_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_tcp_client.cpp.html deleted file mode 100644 index a31b507..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_tcp_client.cpp.html +++ /dev/null @@ -1,246 +0,0 @@ - - - - - - - HTML Diff timeouts/blocking_tcp_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​timeouts/​blocking_tcp_client.​cppsrc/​examples/​cpp11/​timeouts/​blocking_tcp_client.​cpp
1 /​/​1 /​/​
2 /​/​·​blocking_tcp_client.​cpp2 /​/​·​blocking_tcp_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"asio/​buffer.​hpp"11 #include·​"asio/​buffer.​hpp"
12 #include·​"asio/​connect.​hpp"12 #include·​"asio/​connect.​hpp"
13 #include·​"asio/​io_context.​hpp"13 #include·​"asio/​io_context.​hpp"
14 #include·​"asio/​ip/​tcp.​hpp"14 #include·​"asio/​ip/​tcp.​hpp"
15 #include·​"asio/​read_until.​hpp"15 #include·​"asio/​read_until.​hpp"
16 #include·​"asio/​system_error.​hpp"16 #include·​"asio/​system_error.​hpp"
17 #include·​"asio/​write.​hpp"17 #include·​"asio/​write.​hpp"
18 #include·​<cstdlib>18 #include·​<cstdlib>
19 #include·​<iostream>19 #include·​<iostream>
20 #include·​<string>20 #include·​<string>
21 #include·​<boost/​lambda/​bind.​hpp>
22 #include·​<boost/​lambda/​lambda.​hpp>
23 21
24 using·​asio:​:​ip:​:​tcp;​22 using·​asio:​:​ip:​:​tcp;​
25 using·​boost:​:​lambda:​:​bind;​
26 using·​boost:​:​lambda:​:​var;​
27 using·​boost:​:​lambda:​:​_1;​
28 using·​boost:​:​lambda:​:​_2;​
29 23
30 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​24 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
31 25
32 /​/​26 /​/​
33 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​running·​the·​io_context·​using·​the·​timed27 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​running·​the·​io_context·​using·​the·​timed
34 /​/​·​io_context:​:​run_for()​·​member·​function.​·​Each·​asynchronous·​operation·​is·​given28 /​/​·​io_context:​:​run_for()​·​member·​function.​·​Each·​asynchronous·​operation·​is·​given
35 /​/​·​a·​timeout·​within·​which·​it·​must·​complete.​·​The·​socket·​operations·​themselves29 /​/​·​a·​timeout·​within·​which·​it·​must·​complete.​·​The·​socket·​operations·​themselves
36 /​/​·​use·boost:​:​lambda·function·objects·​as·​completion·​handlers.​·​For·​a·​given30 /​/​·​use·​lambdas·​as·​completion·​handlers.​·​For·​a·​given·socket·operation,​·the·client
37 /​/​·socket·operation,​·​the·​client·​object·runs·the·io_context·​to·block·thread31 /​/​·​object·​runs·​the·io_context·to·block·thread·execution·until·​the·operation
38 /​/​·execution·until·​the·operation·completes·or·​the·timeout·is·reached.​·If·the32 /​/​·​completes·or·​the·timeout·is·reached.​·If·​the·io_context:​:​run_for()​·function
39 /​/​·​io_context:​:​run_for()​·function·​times·​out,​·the·​socket·is·closed·and·the33 /​/​·times·out,​·the·socket·is·closed·and·​the·​outstanding·asynchronous·​operation
40 /​/​·outstanding·asynchronous·operation·​is·​cancelled.​34 /​/​·​is·​cancelled.​
41 /​/​35 /​/​
42 class·​client36 class·​client
43 {37 {
44 public:​38 public:​
45 ··​client()​
46 ····​:​·​socket_(io_context_)​
47 ··​{
48 ··​}
49
50 ··​void·​connect(const·​std:​:​string&·​host,​·​const·​std:​:​string&·​service,​39 ··​void·​connect(const·​std:​:​string&·​host,​·​const·​std:​:​string&·​service,​
51 ······asio:​:​chrono:​:​steady_clock:​:​duration·​timeout)​40 ······​std:​:​chrono:​:​steady_clock:​:​duration·​timeout)​
52 ··​{41 ··​{
53 ····​/​/​·​Resolve·​the·​host·​name·​and·​service·​to·​a·​list·​of·​endpoints.​42 ····​/​/​·​Resolve·​the·​host·​name·​and·​service·​to·​a·​list·​of·​endpoints.​
54 ····​tcp:​:​resolver:​:​results_type·endpoints·=43 ····auto·endpoints·=·​tcp:​:​resolver(io_context_)​.​resolve(host,​·service)​;​
55 ······tcp:​:​resolver(io_context_)​.​resolve(host,​·service)​;​
56 44
57 ····​/​/​·​Start·​the·​asynchronous·​operation·​itself.​·​The·boost:​:​lambda·function45 ····​/​/​·​Start·​the·​asynchronous·​operation·​itself.​·​The·lambda·that·is·used·as·a
58 ····​/​/​·object·is·used·as·a·​callback·and·​will·​update·​the·​ec·​variable·​when·​the46 ····​/​/​·​callback·​will·​update·​the·​error·​variable·​when·​the·operation·completes.​
59 ····​/​/​·operation·completes.​·​The·​blocking_udp_client.​cpp·​example·​shows·​how·​you47 ····​/​/​·​The·​blocking_udp_client.​cpp·​example·​shows·​how·​you·can·use·std:​:​bind
60 ····​/​/​·can·use·boost:​:​bind·​rather·​than·boost:​:​lambda.​48 ····​/​/​·​rather·​than·a·lambda.​
61 ····asio:​:​error_code·​ec;​49 ····​std:​:​error_code·​error;​
62 ····​asio:​:​async_connect(socket_​,​·​endpoints,​·var(ec)​·=·_1)​;​50 ····​asio:​:​async_connect(socket_​,​·​endpoints,​
51 ········​[&](const·​std:​:​error_code&·​result_error,​
52 ············​const·​tcp:​:​endpoint&·​/​*result_endpoint*/​)​
53 ········​{
54 ··········​error·​=·​result_error;​
55 ········​})​;​
63 56
64 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​57 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​
65 ····​run(timeout)​;​58 ····​run(timeout)​;​
66 59
67 ····​/​/​·​Determine·​whether·​a·​connection·​was·​successfully·​established.​60 ····​/​/​·​Determine·​whether·​a·​connection·​was·​successfully·​established.​
68 ····​if·​(ec)​61 ····​if·​(error)​
69 ······​throw·asio:​:​system_error(ec)​;​62 ······​throw·​std:​:​system_error(error)​;​
70 ··​}63 ··​}
71 64
72 ··​std:​:​string·​read_line(asio:​:​chrono:​:​steady_clock:​:​duration·​timeout)​65 ··​std:​:​string·​read_line(std:​:​chrono:​:​steady_clock:​:​duration·​timeout)​
73 ··​{66 ··​{
74 ····​/​/​·​Start·​the·​asynchronous·​operation.​·​The·boost:​:​lambda·function·object·is67 ····​/​/​·​Start·​the·​asynchronous·​operation.​·​The·lambda·that·is·​used·as·a·callback
75 ····​/​/​·used·as·a·callback·and·​will·​update·​the·​ec·​variable·​when·​the·​operation68 ····​/​/​·​will·​update·​the·​error·and·n·​variables·​when·​the·​operation·completes.​·The
76 ····​/​/​·completes.​·The·​blocking_udp_client.​cpp·​example·​shows·​how·​you·​can·​use69 ····​/​/​·​blocking_udp_client.​cpp·​example·​shows·​how·​you·​can·​use·std:​:​bind·rather
77 ····​/​/​·boost:​:​bind·rather·​than·boost:​:​lambda.​70 ····​/​/​·​than·a·lambda.​
78 ····asio:​:​error_code·​ec;​71 ····​std:​:​error_code·​error;​
79 ····​std:​:​size_t·​n·​=·​0;​72 ····​std:​:​size_t·​n·​=·​0;​
80 ····​asio:​:​async_read_until(sock​et_,​73 ····​asio:​:​async_read_until(sock​et_,​
81 ········​asio:​:​dynamic_buffer(input_​buffer_)​,​74 ········​asio:​:​dynamic_buffer(input_​buffer_)​,​·'\n',​
82 ········'\n',​·(var(ec)​·=·_1,​·var(n)​·=·_2)​)​;​75 ········[&](const·std:​:​error_code&·result_error,​
76 ············​std:​:​size_t·​result_n)​
77 ········​{
78 ··········​error·​=·​result_error;​
79 ··········​n·​=·​result_n;​
80 ········​})​;​
83 81
84 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​82 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​
85 ····​run(timeout)​;​83 ····​run(timeout)​;​
86 84
87 ····​/​/​·​Determine·​whether·​the·​read·​completed·​successfully.​85 ····​/​/​·​Determine·​whether·​the·​read·​completed·​successfully.​
88 ····​if·​(ec)​86 ····​if·​(error)​
89 ······​throw·asio:​:​system_error(ec)​;​87 ······​throw·​std:​:​system_error(error)​;​
90 88
91 ····​std:​:​string·​line(input_buffer_.​substr(0,​·​n·​-​·​1)​)​;​89 ····​std:​:​string·​line(input_buffer_.​substr(0,​·​n·​-​·​1)​)​;​
92 ····​input_buffer_.​erase(0,​·​n)​;​90 ····​input_buffer_.​erase(0,​·​n)​;​
93 ····​return·​line;​91 ····​return·​line;​
94 ··​}92 ··​}
95 93
96 ··​void·​write_line(const·​std:​:​string&·​line,​94 ··​void·​write_line(const·​std:​:​string&·​line,​
97 ······asio:​:​chrono:​:​steady_clock:​:​duration·​timeout)​95 ······​std:​:​chrono:​:​steady_clock:​:​duration·​timeout)​
98 ··​{96 ··​{
99 ····​std:​:​string·​data·​=·​line·​+·​"\n";​97 ····​std:​:​string·​data·​=·​line·​+·​"\n";​
100 98
101 ····​/​/​·​Start·​the·​asynchronous·​operation.​·The·boost:​:​lambda·function·object·is99 ····​/​/​·​Start·​the·​asynchronous·​operation·itself.​·The·lambda·that·is·used·as·a
102 ····​/​/​·used·as·a·​callback·and·​will·​update·​the·​ec·​variable·​when·​the·​operation100 ····​/​/​·​callback·​will·​update·​the·​error·​variable·​when·​the·​operation·completes.​
103 ····​/​/​·completes.​·​The·​blocking_udp_client.​cpp·​example·​shows·​how·​you·​can·​use101 ····​/​/​·​The·​blocking_udp_client.​cpp·​example·​shows·​how·​you·​can·​use·std:​:​bind
104 ····​/​/​·boost:​:​bind·​rather·​than·boost:​:​lambda.​102 ····​/​/​·​rather·​than·a·lambda.​
105 ····asio:​:​error_code·​ec;​103 ····​std:​:​error_code·​error;​
106 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer(data)​,​·var(ec)​·=·_1)​;​104 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer(data)​,​
105 ········​[&](const·​std:​:​error_code&·​result_error,​
106 ············​std:​:​size_t·​/​*result_n*/​)​
107 ········​{
108 ··········​error·​=·​result_error;​
109 ········​})​;​
107 110
108 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​111 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​
109 ····​run(timeout)​;​112 ····​run(timeout)​;​
110 113
111 ····​/​/​·​Determine·​whether·​the·​read·​completed·​successfully.​114 ····​/​/​·​Determine·​whether·​the·​read·​completed·​successfully.​
112 ····​if·​(ec)​115 ····​if·​(error)​
113 ······​throw·asio:​:​system_error(ec)​;​116 ······​throw·​std:​:​system_error(error)​;​
114 ··​}117 ··​}
115 118
116 private:​119 private:​
117 ··​void·​run(asio:​:​chrono:​:​steady_clock:​:​duration·​timeout)​120 ··​void·​run(std:​:​chrono:​:​steady_clock:​:​duration·​timeout)​
118 ··​{121 ··​{
119 ····​/​/​·​Restart·​the·​io_context,​·​as·​it·​may·​have·​been·​left·​in·​the·​"stopped"·​state122 ····​/​/​·​Restart·​the·​io_context,​·​as·​it·​may·​have·​been·​left·​in·​the·​"stopped"·​state
120 ····​/​/​·​by·​a·​previous·​operation.​123 ····​/​/​·​by·​a·​previous·​operation.​
121 ····​io_context_.​restart()​;​124 ····​io_context_.​restart()​;​
122 125
123 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If126 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If
124 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline127 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline
125 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on128 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on
126 ····​/​/​·​the·​socket.​129 ····​/​/​·​the·​socket.​
127 ····​io_context_.​run_for(timeout)​;​130 ····​io_context_.​run_for(timeout)​;​
128 131
129 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context132 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context
130 ····​/​/​·​would·​have·​been·​stopped·​due·​to·​running·​out·​of·​work.​·​If·​it·​was·​not133 ····​/​/​·​would·​have·​been·​stopped·​due·​to·​running·​out·​of·​work.​·​If·​it·​was·​not
131 ····​/​/​·​stopped,​·​then·​the·​io_context:​:​run_for·​call·​must·​have·​timed·​out.​134 ····​/​/​·​stopped,​·​then·​the·​io_context:​:​run_for·​call·​must·​have·​timed·​out.​
132 ····​if·​(!io_context_.​stopped()​)​135 ····​if·​(!io_context_.​stopped()​)​
133 ····​{136 ····​{
134 ······​/​/​·​Close·​the·​socket·​to·​cancel·​the·​outstanding·​asynchronous·​operation.​137 ······​/​/​·​Close·​the·​socket·​to·​cancel·​the·​outstanding·​asynchronous·​operation.​
135 ······​socket_.​close()​;​138 ······​socket_.​close()​;​
136 139
137 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​140 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​
138 ······​io_context_.​run()​;​141 ······​io_context_.​run()​;​
139 ····​}142 ····​}
140 ··​}143 ··​}
141 144
142 ··​asio:​:​io_context·​io_context_;​145 ··​asio:​:​io_context·​io_context_;​
143 ··​tcp:​:​socket·​socket_;​146 ··​tcp:​:​socket·​socket_{io_context_};​
144 ··​std:​:​string·​input_buffer_;​147 ··​std:​:​string·​input_buffer_;​
145 };​148 };​
146 149
147 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​150 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
148 151
149 int·​main(int·​argc,​·​char*·​argv[])​152 int·​main(int·​argc,​·​char*·​argv[])​
150 {153 {
151 ··​try154 ··​try
152 ··​{155 ··​{
153 ····​if·​(argc·​!=·​4)​156 ····​if·​(argc·​!=·​4)​
154 ····​{157 ····​{
155 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_client·​<host>·​<port>·​<message>\n";​158 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_client·​<host>·​<port>·​<message>\n";​
156 ······​return·​1;​159 ······​return·​1;​
157 ····​}160 ····​}
158 161
159 ····​client·​c;​162 ····​client·​c;​
160 ····​c.​connect(argv[1],​·​argv[2],​·asio:​:​chrono:​:​seconds(10)​)​;​163 ····​c.​connect(argv[1],​·​argv[2],​·​std:​:​chrono:​:​seconds(10)​)​;​
161 164
162 ····​asio:​:​chrono:​:​steady_clock:​:​time_point·time_sent·=165 ····​auto·time_sent·=·std:​:​chrono:​:​steady_clock:​:​now()​;​
163 ······asio:​:​chrono:​:​steady_clock:​:​now()​;​
164 166
165 ····​c.​write_line(argv[3],​·asio:​:​chrono:​:​seconds(10)​)​;​167 ····​c.​write_line(argv[3],​·​std:​:​chrono:​:​seconds(10)​)​;​
166 168
167 ····​for·​(;​;​)​169 ····​for·​(;​;​)​
168 ····​{170 ····​{
169 ······​std:​:​string·​line·​=·​c.​read_line(asio:​:​chrono:​:​seconds(10)​)​;​171 ······​std:​:​string·​line·​=·​c.​read_line(std:​:​chrono:​:​seconds(10)​)​;​
170 172
171 ······​/​/​·​Keep·​going·​until·​we·​get·​back·​the·​line·​that·​was·​sent.​173 ······​/​/​·​Keep·​going·​until·​we·​get·​back·​the·​line·​that·​was·​sent.​
172 ······​if·​(line·​==·​argv[3])​174 ······​if·​(line·​==·​argv[3])​
173 ········​break;​175 ········​break;​
174 ····​}176 ····​}
175 177
176 ····​asio:​:​chrono:​:​steady_clock:​:​time_point·time_received·=178 ····​auto·time_received·=·std:​:​chrono:​:​steady_clock:​:​now()​;​
177 ······asio:​:​chrono:​:​steady_clock:​:​now()​;​
178 179
179 ····​std:​:​cout·​<<·​"Round·​trip·​time:​·​";​180 ····​std:​:​cout·​<<·​"Round·​trip·​time:​·​";​
180 ····​std:​:​cout·​<<·asio:​:​chrono:​:​duration_cast<181 ····​std:​:​cout·​<<·​std:​:​chrono:​:​duration_cast<
181 ······asio:​:​chrono:​:​microseconds>(182 ······​std:​:​chrono:​:​microseconds>(
182 ········​time_received·​-​·​time_sent)​.​count()​;​183 ········​time_received·​-​·​time_sent)​.​count()​;​
183 ····​std:​:​cout·​<<·​"·​microseconds\n";​184 ····​std:​:​cout·​<<·​"·​microseconds\n";​
184 ··​}185 ··​}
185 ··​catch·​(std:​:​exception&·​e)​186 ··​catch·​(std:​:​exception&·​e)​
186 ··​{187 ··​{
187 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​188 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
188 ··​}189 ··​}
189 190
190 ··​return·​0;​191 ··​return·​0;​
191 }192 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_token_tcp_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_token_tcp_client.cpp.html deleted file mode 100644 index 36d2dba..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_token_tcp_client.cpp.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - HTML Diff timeouts/blocking_token_tcp_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​timeouts/​blocking_token_tcp_cl​ient.​cppsrc/​examples/​cpp11/​timeouts/​blocking_token_tcp_cl​ient.​cpp
1 /​/​1 /​/​
2 /​/​·​blocking_token_tcp_cl​ient.​cpp2 /​/​·​blocking_token_tcp_cl​ient.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"asio/​connect.​hpp"11 #include·​"asio/​connect.​hpp"
12 #include·​"asio/​io_context.​hpp"12 #include·​"asio/​io_context.​hpp"
13 #include·​"asio/​ip/​tcp.​hpp"13 #include·​"asio/​ip/​tcp.​hpp"
14 #include·​"asio/​read_until.​hpp"14 #include·​"asio/​read_until.​hpp"
15 #include·​"asio/​streambuf.​hpp"15 #include·​"asio/​streambuf.​hpp"
16 #include·​"asio/​system_error.​hpp"16 #include·​"asio/​system_error.​hpp"
17 #include·​"asio/​write.​hpp"17 #include·​"asio/​write.​hpp"
18 #include·​<cstdlib>18 #include·​<cstdlib>
19 #include·​<iostream>19 #include·​<iostream>
20 #include·​<memory>20 #include·​<memory>
21 #include·​<string>21 #include·​<string>
22 22
23 using·​asio:​:​ip:​:​tcp;​23 using·​asio:​:​ip:​:​tcp;​
24 24
25 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​25 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
26 26
27 /​/​·​A·​custom·​completion·​token·​that·​makes·​asynchronous·​operations·​behave·​as27 /​/​·​A·​custom·​completion·​token·​that·​makes·​asynchronous·​operations·​behave·​as
28 /​/​·​though·​they·​are·​blocking·​calls·​with·​a·​timeout.​28 /​/​·​though·​they·​are·​blocking·​calls·​with·​a·​timeout.​
29 struct·​close_after29 struct·​close_after
30 {30 {
31 ··​close_after(asio:​:​chrono:​:​steady_clock:​:​duration·​t,​·​tcp:​:​socket&·​s)​31 ··​close_after(std:​:​chrono:​:​steady_clock:​:​duration·​t,​·​tcp:​:​socket&·​s)​
32 ····​:​·​timeout_(t)​,​·​socket_(s)​32 ····​:​·​timeout_(t)​,​·​socket_(s)​
33 ··​{33 ··​{
34 ··​}34 ··​}
35 35
36 ··​/​/​·​The·​maximum·​time·​to·​wait·​for·​an·​asynchronous·​operation·​to·​complete.​36 ··​/​/​·​The·​maximum·​time·​to·​wait·​for·​an·​asynchronous·​operation·​to·​complete.​
37 ··asio:​:​chrono:​:​steady_clock:​:​duration·​timeout_;​37 ··​std:​:​chrono:​:​steady_clock:​:​duration·​timeout_;​
38 38
39 ··​/​/​·​The·​socket·​to·​be·​closed·​if·​the·​operation·​does·​not·​complete·​in·​time.​39 ··​/​/​·​The·​socket·​to·​be·​closed·​if·​the·​operation·​does·​not·​complete·​in·​time.​
40 ··​tcp:​:​socket&·​socket_;​40 ··​tcp:​:​socket&·​socket_;​
41 };​41 };​
42 42
43 namespace·​asio·​{43 namespace·​asio·​{
44 44
45 /​/​·​The·​async_result·​template·​is·​specialised·​to·​allow·​the·​close_after·​token·​to45 /​/​·​The·​async_result·​template·​is·​specialised·​to·​allow·​the·​close_after·​token·​to
46 /​/​·​be·​used·​with·​asynchronous·​operations·​that·​have·​a·​completion·​signature·​of46 /​/​·​be·​used·​with·​asynchronous·​operations·​that·​have·​a·​completion·​signature·​of
47 /​/​·​void(error_code,​·​T)​.​·​Generalising·​this·​for·​all·​completion·​signature·​forms·​is47 /​/​·​void(error_code,​·​T)​.​·​Generalising·​this·​for·​all·​completion·​signature·​forms·​is
48 /​/​·​left·​as·​an·​exercise·​for·​the·​reader.​48 /​/​·​left·​as·​an·​exercise·​for·​the·​reader.​
49 template·​<typename·​T>49 template·​<typename·​T>
50 class·​async_result<close_af​ter,​·​void(asio:​:​error_code,​·​T)​>50 class·​async_result<close_af​ter,​·​void(std:​:​error_code,​·​T)​>
51 {51 {
52 public:​52 public:​
53 ··​/​/​·​An·​asynchronous·​operation's·​initiating·​function·​automatically·​creates·​an53 ··​/​/​·​An·​asynchronous·​operation's·​initiating·​function·​automatically·​creates·​an
54 ··​/​/​·​completion_handler_ty​pe·​object·​from·​the·​token.​·​This·​function·​object·​is54 ··​/​/​·​completion_handler_ty​pe·​object·​from·​the·​token.​·​This·​function·​object·​is
55 ··​/​/​·​then·​called·​on·​completion·​of·​the·​asynchronous·​operation.​55 ··​/​/​·​then·​called·​on·​completion·​of·​the·​asynchronous·​operation.​
56 ··​class·​completion_handler_ty​pe56 ··​class·​completion_handler_ty​pe
57 ··​{57 ··​{
58 ··​public:​58 ··​public:​
59 ····​completion_handler_ty​pe(const·​close_after&·​token)​59 ····​completion_handler_ty​pe(const·​close_after&·​token)​
60 ······​:​·​token_(token)​60 ······​:​·​token_(token)​
61 ····​{61 ····​{
62 ····​}62 ····​}
63 63
64 ····​void·​operator()​(asio:​:​error_code·​ec,​·​T·​t)​64 ····​void·​operator()​(const·std:​:​error_code&·​error,​·​T·​t)​
65 ····​{65 ····​{
66 ······​*ec_·​=·​ec;​66 ······​*error_·​=·​error;​
67 ······​*t_·​=·​t;​67 ······​*t_·​=·​t;​
68 ····​}68 ····​}
69 69
70 ··​private:​70 ··​private:​
71 ····​friend·​class·​async_result;​71 ····​friend·​class·​async_result;​
72 ····​close_after·​token_;​72 ····​close_after·​token_;​
73 ····asio:​:​error_code*·​ec_;​73 ····​std:​:​error_code*·​error_;​
74 ····​T*·​t_;​74 ····​T*·​t_;​
75 ··​};​75 ··​};​
76 76
77 ··​/​/​·​The·​async_result·​constructor·​associates·​the·​completion·​handler·​object·​with77 ··​/​/​·​The·​async_result·​constructor·​associates·​the·​completion·​handler·​object·​with
78 ··​/​/​·​the·​result·​of·​the·​initiating·​function.​78 ··​/​/​·​the·​result·​of·​the·​initiating·​function.​
79 ··​explicit·​async_result(completi​on_handler_type&·​h)​79 ··​explicit·​async_result(completi​on_handler_type&·​h)​
80 ····​:​·​timeout_(h.​token_.​timeout_)​,​80 ····​:​·​timeout_(h.​token_.​timeout_)​,​
81 ······​socket_(h.​token_.​socket_)​81 ······​socket_(h.​token_.​socket_)​
82 ··​{82 ··​{
83 ····​h.​ec_·​=·​&ec_;​83 ····​h.​error_·​=·​&error_;​
84 ····​h.​t_·​=·​&t_;​84 ····​h.​t_·​=·​&t_;​
85 ··​}85 ··​}
86 86
87 ··​/​/​·​The·​return_type·​typedef·​determines·​the·​result·​type·​of·​the·​asynchronous87 ··​/​/​·​The·​return_type·​typedef·​determines·​the·​result·​type·​of·​the·​asynchronous
88 ··​/​/​·​operation's·​initiating·​function.​88 ··​/​/​·​operation's·​initiating·​function.​
89 ··​typedef·​T·​return_type;​89 ··​typedef·​T·​return_type;​
90 90
91 ··​/​/​·​The·​get()​·​function·​is·​used·​to·​obtain·​the·​result·​of·​the·​asynchronous91 ··​/​/​·​The·​get()​·​function·​is·​used·​to·​obtain·​the·​result·​of·​the·​asynchronous
92 ··​/​/​·​operation's·​initiating·​function.​·​For·​the·​close_after·​completion·​token,​·​we92 ··​/​/​·​operation's·​initiating·​function.​·​For·​the·​close_after·​completion·​token,​·​we
93 ··​/​/​·​use·​this·​function·​to·​run·​the·​io_context·​until·​the·​operation·​is·​complete.​93 ··​/​/​·​use·​this·​function·​to·​run·​the·​io_context·​until·​the·​operation·​is·​complete.​
94 ··​return_type·​get()​94 ··​return_type·​get()​
95 ··​{95 ··​{
96 ····​asio:​:​io_context&·​io_context·​=·​socket_.​get_executor()​.​context()​;​96 ····​asio:​:​io_context&·​io_context·​=·​socket_.​get_executor()​.​context()​;​
97 97
98 ····​/​/​·​Restart·​the·​io_context,​·​as·​it·​may·​have·​been·​left·​in·​the·​"stopped"·​state98 ····​/​/​·​Restart·​the·​io_context,​·​as·​it·​may·​have·​been·​left·​in·​the·​"stopped"·​state
99 ····​/​/​·​by·​a·​previous·​operation.​99 ····​/​/​·​by·​a·​previous·​operation.​
100 ····​io_context.​restart()​;​100 ····​io_context.​restart()​;​
101 101
102 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If102 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If
103 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline103 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline
104 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on104 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on
105 ····​/​/​·​the·​socket.​105 ····​/​/​·​the·​socket.​
106 ····​io_context.​run_for(timeout_)​;​106 ····​io_context.​run_for(timeout_)​;​
107 107
108 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context108 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context
109 ····​/​/​·​would·​have·​been·​stopped·​due·​to·​running·​out·​of·​work.​·​If·​it·​was·​not109 ····​/​/​·​would·​have·​been·​stopped·​due·​to·​running·​out·​of·​work.​·​If·​it·​was·​not
110 ····​/​/​·​stopped,​·​then·​the·​io_context:​:​run_for·​call·​must·​have·​timed·​out·​and·​the110 ····​/​/​·​stopped,​·​then·​the·​io_context:​:​run_for·​call·​must·​have·​timed·​out·​and·​the
111 ····​/​/​·​operation·​is·​still·​incomplete.​111 ····​/​/​·​operation·​is·​still·​incomplete.​
112 ····​if·​(!io_context.​stopped()​)​112 ····​if·​(!io_context.​stopped()​)​
113 ····​{113 ····​{
114 ······​/​/​·​Close·​the·​socket·​to·​cancel·​the·​outstanding·​asynchronous·​operation.​114 ······​/​/​·​Close·​the·​socket·​to·​cancel·​the·​outstanding·​asynchronous·​operation.​
115 ······​socket_.​close()​;​115 ······​socket_.​close()​;​
116 116
117 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​117 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​
118 ······​io_context.​run()​;​118 ······​io_context.​run()​;​
119 ····​}119 ····​}
120 120
121 ····​/​/​·​If·​the·​operation·​failed,​·​throw·​an·​exception.​·​Otherwise·​return·​the·​result.​121 ····​/​/​·​If·​the·​operation·​failed,​·​throw·​an·​exception.​·​Otherwise·​return·​the·​result.​
122 ····​return·​ec_·​?·​throw·asio:​:​system_error(ec_)​·​:​·​t_;​122 ····​return·​error_·​?·​throw·​std:​:​system_error(error_)​·​:​·​t_;​
123 ··​}123 ··​}
124 124
125 private:​125 private:​
126 ··asio:​:​chrono:​:​steady_clock:​:​duration·​timeout_;​126 ··​std:​:​chrono:​:​steady_clock:​:​duration·​timeout_;​
127 ··​tcp:​:​socket&·​socket_;​127 ··​tcp:​:​socket&·​socket_;​
128 ··asio:​:​error_code·​ec_;​128 ··​std:​:​error_code·​error_;​
129 ··​T·​t_;​129 ··​T·​t_;​
130 };​130 };​
131 131
132 }·​/​/​·​namespace·​asio132 }·​/​/​·​namespace·​asio
133 133
134 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​134 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
135 135
136 int·​main(int·​argc,​·​char*·​argv[])​136 int·​main(int·​argc,​·​char*·​argv[])​
137 {137 {
138 ··​try138 ··​try
139 ··​{139 ··​{
140 ····​if·​(argc·​!=·​4)​140 ····​if·​(argc·​!=·​4)​
141 ····​{141 ····​{
142 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_client·​<host>·​<port>·​<message>\n";​142 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_client·​<host>·​<port>·​<message>\n";​
143 ······​return·​1;​143 ······​return·​1;​
144 ····​}144 ····​}
145 145
146 ····​asio:​:​io_context·​io_context;​146 ····​asio:​:​io_context·​io_context;​
147 147
148 ····​/​/​·​Resolve·​the·​host·​name·​and·​service·​to·​a·​list·​of·​endpoints.​148 ····​/​/​·​Resolve·​the·​host·​name·​and·​service·​to·​a·​list·​of·​endpoints.​
149 ····​tcp:​:​resolver:​:​results_type·endpoints·=149 ····auto·endpoints·=·​tcp:​:​resolver(io_context)​.​resolve(argv[1],​·argv[2])​;​
150 ······tcp:​:​resolver(io_context)​.​resolve(argv[1],​·argv[2])​;​
151 150
152 ····​tcp:​:​socket·​socket(io_context)​;​151 ····​tcp:​:​socket·​socket(io_context)​;​
153 152
154 ····​/​/​·​Run·​an·​asynchronous·​connect·​operation·​with·​a·​timeout.​153 ····​/​/​·​Run·​an·​asynchronous·​connect·​operation·​with·​a·​timeout.​
155 ····​asio:​:​async_connect(socket,​·​endpoints,​154 ····​asio:​:​async_connect(socket,​·​endpoints,​
156 ········​close_after(asio:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​155 ········​close_after(std:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​
157 156
158 ····​asio:​:​chrono:​:​steady_clock:​:​time_point·time_sent·=157 ····​auto·time_sent·=·std:​:​chrono:​:​steady_clock:​:​now()​;​
159 ······asio:​:​chrono:​:​steady_clock:​:​now()​;​
160 158
161 ····​/​/​·​Run·​an·​asynchronous·​write·​operation·​with·​a·​timeout.​159 ····​/​/​·​Run·​an·​asynchronous·​write·​operation·​with·​a·​timeout.​
162 ····​std:​:​string·​msg·​=·​argv[3]·​+·​std:​:​string("\n")​;​160 ····​std:​:​string·​msg·​=·​argv[3]·​+·​std:​:​string("\n")​;​
163 ····​asio:​:​async_write(socket,​·​asio:​:​buffer(msg)​,​161 ····​asio:​:​async_write(socket,​·​asio:​:​buffer(msg)​,​
164 ········​close_after(asio:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​162 ········​close_after(std:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​
165 163
166 ····​for·​(std:​:​string·​input_buffer;​;​)​164 ····​for·​(std:​:​string·​input_buffer;​;​)​
167 ····​{165 ····​{
168 ······​/​/​·​Run·​an·​asynchronous·​read·​operation·​with·​a·​timeout.​166 ······​/​/​·​Run·​an·​asynchronous·​read·​operation·​with·​a·​timeout.​
169 ······​std:​:​size_t·​n·​=·​asio:​:​async_read_until(sock​et,​167 ······​std:​:​size_t·​n·​=·​asio:​:​async_read_until(sock​et,​
170 ··········​asio:​:​dynamic_buffer(input_​buffer)​,​·​'\n',​168 ··········​asio:​:​dynamic_buffer(input_​buffer)​,​·​'\n',​
171 ··········​close_after(asio:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​169 ··········​close_after(std:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​
172 170
173 ······​std:​:​string·​line(input_buffer.​substr(0,​·​n·​-​·​1)​)​;​171 ······​std:​:​string·​line(input_buffer.​substr(0,​·​n·​-​·​1)​)​;​
174 ······​input_buffer.​erase(0,​·​n)​;​172 ······​input_buffer.​erase(0,​·​n)​;​
175 173
176 ······​/​/​·​Keep·​going·​until·​we·​get·​back·​the·​line·​that·​was·​sent.​174 ······​/​/​·​Keep·​going·​until·​we·​get·​back·​the·​line·​that·​was·​sent.​
177 ······​if·​(line·​==·​argv[3])​175 ······​if·​(line·​==·​argv[3])​
178 ········​break;​176 ········​break;​
179 ····​}177 ····​}
180 178
181 ····​asio:​:​chrono:​:​steady_clock:​:​time_point·time_received·=179 ····​auto·time_received·=·std:​:​chrono:​:​steady_clock:​:​now()​;​
182 ······asio:​:​chrono:​:​steady_clock:​:​now()​;​
183 180
184 ····​std:​:​cout·​<<·​"Round·​trip·​time:​·​";​181 ····​std:​:​cout·​<<·​"Round·​trip·​time:​·​";​
185 ····​std:​:​cout·​<<·asio:​:​chrono:​:​duration_cast<182 ····​std:​:​cout·​<<·​std:​:​chrono:​:​duration_cast<
186 ······asio:​:​chrono:​:​microseconds>(183 ······​std:​:​chrono:​:​microseconds>(
187 ········​time_received·​-​·​time_sent)​.​count()​;​184 ········​time_received·​-​·​time_sent)​.​count()​;​
188 ····​std:​:​cout·​<<·​"·​microseconds\n";​185 ····​std:​:​cout·​<<·​"·​microseconds\n";​
189 ··​}186 ··​}
190 ··​catch·​(std:​:​exception&·​e)​187 ··​catch·​(std:​:​exception&·​e)​
191 ··​{188 ··​{
192 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​189 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
193 ··​}190 ··​}
194 191
195 ··​return·​0;​192 ··​return·​0;​
196 }193 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_udp_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_udp_client.cpp.html deleted file mode 100644 index 58858ce..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_udp_client.cpp.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - HTML Diff timeouts/blocking_udp_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​timeouts/​blocking_udp_client.​cppsrc/​examples/​cpp11/​timeouts/​blocking_udp_client.​cpp
1 /​/​1 /​/​
2 /​/​·​blocking_udp_client.​cpp2 /​/​·​blocking_udp_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"asio/​buffer.​hpp"11 #include·​"asio/​buffer.​hpp"
12 #include·​"asio/​io_context.​hpp"12 #include·​"asio/​io_context.​hpp"
13 #include·​"asio/​ip/​udp.​hpp"13 #include·​"asio/​ip/​udp.​hpp"
14 #include·​<cstdlib>14 #include·​<cstdlib>
15 #include·​<boost/​bind.​hpp>15 #include·​<functional>
16 #include·​<iostream>16 #include·​<iostream>
17 17
18 using·​asio:​:​ip:​:​udp;​18 using·​asio:​:​ip:​:​udp;​
19 using·​std:​:​placeholders:​:​_1;​
20 using·​std:​:​placeholders:​:​_2;​
19 21
20 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​22 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
21 23
22 /​/​24 /​/​
23 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​running·​the·​io_context·​using·​the·​timed25 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​running·​the·​io_context·​using·​the·​timed
24 /​/​·​io_context:​:​run_for()​·​member·​function.​·​Each·​asynchronous·​operation·​is·​given26 /​/​·​io_context:​:​run_for()​·​member·​function.​·​Each·​asynchronous·​operation·​is·​given
25 /​/​·​a·​timeout·​within·​which·​it·​must·​complete.​·​The·​socket·​operations·​themselves27 /​/​·​a·​timeout·​within·​which·​it·​must·​complete.​·​The·​socket·​operations·​themselves
26 /​/​·​use·boost:​:​bind·​to·​specify·​the·​completion·​handler:​28 /​/​·​use·​std:​:​bind·​to·​specify·​the·​completion·​handler:​
27 /​/​29 /​/​
28 /​/​···​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+30 /​/​···​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
29 /​/​···​|···············​|31 /​/​···​|···············​|
30 /​/​···​|····​receive····​|32 /​/​···​|····​receive····​|
31 /​/​···​|···············​|33 /​/​···​|···············​|
32 /​/​···​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+34 /​/​···​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
33 /​/​···········​|35 /​/​···········​|
34 /​/​··​async_-​··​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+36 /​/​··​async_-​··​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
35 /​/​·​receive()​·​|····​|················​|37 /​/​·​receive()​·​|····​|················​|
36 /​/​···········​+-​-​-​>|·​handle_receive·​|38 /​/​···········​+-​-​-​>|·​handle_receive·​|
37 /​/​················​|················​|39 /​/​················​|················​|
38 /​/​················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+40 /​/​················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
39 /​/​41 /​/​
40 /​/​·​For·​a·​given·​socket·​operation,​·​the·​client·​object·​runs·​the·​io_context·​to·​block42 /​/​·​For·​a·​given·​socket·​operation,​·​the·​client·​object·​runs·​the·​io_context·​to·​block
41 /​/​·​thread·​execution·​until·​the·​operation·​completes·​or·​the·​timeout·​is·​reached.​·​If43 /​/​·​thread·​execution·​until·​the·​operation·​completes·​or·​the·​timeout·​is·​reached.​·​If
42 /​/​·​the·​io_context:​:​run_for()​·​function·​times·​out,​·​the·​socket·​is·​closed·​and·​the44 /​/​·​the·​io_context:​:​run_for()​·​function·​times·​out,​·​the·​socket·​is·​closed·​and·​the
43 /​/​·​outstanding·​asynchronous·​operation·​is·​cancelled.​45 /​/​·​outstanding·​asynchronous·​operation·​is·​cancelled.​
44 /​/​46 /​/​
45 class·​client47 class·​client
46 {48 {
47 public:​49 public:​
48 ··​client(const·​udp:​:​endpoint&·​listen_endpoint)​50 ··​client(const·​udp:​:​endpoint&·​listen_endpoint)​
49 ····​:​·​socket_(io_context_,​·​listen_endpoint)​51 ····​:​·​socket_(io_context_,​·​listen_endpoint)​
50 ··​{52 ··​{
51 ··​}53 ··​}
52 54
53 ··​std:​:​size_t·​receive(const·​asio:​:​mutable_buffer&·​buffer,​55 ··​std:​:​size_t·​receive(const·​asio:​:​mutable_buffer&·​buffer,​
54 ······asio:​:​chrono:​:​steady_clock:​:​duration·​timeout,​56 ······​std:​:​chrono:​:​steady_clock:​:​duration·​timeout,​
55 ······asio:​:​error_code&·​ec)​57 ······​std:​:​error_code&·​error)​
56 ··​{58 ··​{
57 ····​/​/​·​Start·​the·​asynchronous·​operation.​·​The·​handle_receive·​function·​used·​as·​a59 ····​/​/​·​Start·​the·​asynchronous·​operation.​·​The·​handle_receive·​function·​used·​as·​a
58 ····​/​/​·​callback·​will·​update·​the·​ec·​and·​length·​variables.​60 ····​/​/​·​callback·​will·​update·​the·​error·​and·​length·​variables.​
59 ····​std:​:​size_t·​length·​=·​0;​61 ····​std:​:​size_t·​length·​=·​0;​
60 ····​socket_.​async_receive(asio:​:​buffer(buffer)​,​62 ····​socket_.​async_receive(asio:​:​buffer(buffer)​,​
61 ········boost:​:​bind(&client:​:​handle_receive,​·​_1,​·​_2,​·​&ec,​·​&length)​)​;​63 ········​std:​:​bind(&client:​:​handle_receive,​·​_1,​·​_2,​·​&error,​·​&length)​)​;​
62 64
63 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​65 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​
64 ····​run(timeout)​;​66 ····​run(timeout)​;​
65 67
66 ····​return·​length;​68 ····​return·​length;​
67 ··​}69 ··​}
68 70
69 private:​71 private:​
70 ··​void·​run(asio:​:​chrono:​:​steady_clock:​:​duration·​timeout)​72 ··​void·​run(std:​:​chrono:​:​steady_clock:​:​duration·​timeout)​
71 ··​{73 ··​{
72 ····​/​/​·​Restart·​the·​io_context,​·​as·​it·​may·​have·​been·​left·​in·​the·​"stopped"·​state74 ····​/​/​·​Restart·​the·​io_context,​·​as·​it·​may·​have·​been·​left·​in·​the·​"stopped"·​state
73 ····​/​/​·​by·​a·​previous·​operation.​75 ····​/​/​·​by·​a·​previous·​operation.​
74 ····​io_context_.​restart()​;​76 ····​io_context_.​restart()​;​
75 77
76 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If78 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If
77 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline79 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline
78 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on80 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on
79 ····​/​/​·​the·​socket.​81 ····​/​/​·​the·​socket.​
80 ····​io_context_.​run_for(timeout)​;​82 ····​io_context_.​run_for(timeout)​;​
81 83
82 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context84 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context
83 ····​/​/​·​would·​have·​been·​stopped·​due·​to·​running·​out·​of·​work.​·​If·​it·​was·​not85 ····​/​/​·​would·​have·​been·​stopped·​due·​to·​running·​out·​of·​work.​·​If·​it·​was·​not
84 ····​/​/​·​stopped,​·​then·​the·​io_context:​:​run_for·​call·​must·​have·​timed·​out.​86 ····​/​/​·​stopped,​·​then·​the·​io_context:​:​run_for·​call·​must·​have·​timed·​out.​
85 ····​if·​(!io_context_.​stopped()​)​87 ····​if·​(!io_context_.​stopped()​)​
86 ····​{88 ····​{
87 ······​/​/​·​Cancel·​the·​outstanding·​asynchronous·​operation.​89 ······​/​/​·​Cancel·​the·​outstanding·​asynchronous·​operation.​
88 ······​socket_.​cancel()​;​90 ······​socket_.​cancel()​;​
89 91
90 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​92 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​
91 ······​io_context_.​run()​;​93 ······​io_context_.​run()​;​
92 ····​}94 ····​}
93 ··​}95 ··​}
94 96
95 ··​static·​void·​handle_receive(97 ··​static·​void·​handle_receive(
96 ······​const·asio:​:​error_code&·​ec,​·​std:​:​size_t·​length,​98 ······​const·​std:​:​error_code&·​error,​·​std:​:​size_t·​length,​
97 ······asio:​:​error_code*·​out_ec,​·​std:​:​size_t*·​out_length)​99 ······​std:​:​error_code*·​out_error,​·​std:​:​size_t*·​out_length)​
98 ··​{100 ··​{
99 ····​*out_ec·​=·​ec;​101 ····​*out_error·​=·​error;​
100 ····​*out_length·​=·​length;​102 ····​*out_length·​=·​length;​
101 ··​}103 ··​}
102 104
103 private:​105 private:​
104 ··​asio:​:​io_context·​io_context_;​106 ··​asio:​:​io_context·​io_context_;​
105 ··​udp:​:​socket·​socket_;​107 ··​udp:​:​socket·​socket_;​
106 };​108 };​
107 109
108 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​110 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
109 111
110 int·​main(int·​argc,​·​char*·​argv[])​112 int·​main(int·​argc,​·​char*·​argv[])​
111 {113 {
112 ··​try114 ··​try
113 ··​{115 ··​{
114 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​116 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​
115 117
116 ····​if·​(argc·​!=·​3)​118 ····​if·​(argc·​!=·​3)​
117 ····​{119 ····​{
118 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_udp_client·​<listen_addr>·​<listen_port>\n";​120 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_udp_client·​<listen_addr>·​<listen_port>\n";​
119 ······​return·​1;​121 ······​return·​1;​
120 ····​}122 ····​}
121 123
122 ····​udp:​:​endpoint·​listen_endpoint(124 ····​udp:​:​endpoint·​listen_endpoint(
123 ········​asio:​:​ip:​:​make_address(argv[1])​,​125 ········​asio:​:​ip:​:​make_address(argv[1])​,​
124 ········​std:​:​atoi(argv[2])​)​;​126 ········​std:​:​atoi(argv[2])​)​;​
125 127
126 ····​client·​c(listen_endpoint)​;​128 ····​client·​c(listen_endpoint)​;​
127 129
128 ····​for·​(;​;​)​130 ····​for·​(;​;​)​
129 ····​{131 ····​{
130 ······​char·​data[1024];​132 ······​char·​data[1024];​
131 ······asio:​:​error_code·​ec;​133 ······​std:​:​error_code·​error;​
132 ······​std:​:​size_t·​n·​=·​c.​receive(asio:​:​buffer(data)​,​134 ······​std:​:​size_t·​n·​=·​c.​receive(asio:​:​buffer(data)​,​
133 ··········asio:​:​chrono:​:​seconds(10)​,​·​ec)​;​135 ··········​std:​:​chrono:​:​seconds(10)​,​·​error)​;​
134 136
135 ······​if·​(ec)​137 ······​if·​(error)​
136 ······​{138 ······​{
137 ········​std:​:​cout·​<<·​"Receive·​error:​·​"·​<<·​ec.​message()​·​<<·​"\n";​·139 ········​std:​:​cout·​<<·​"Receive·​error:​·​"·​<<·​error.​message()​·​<<·​"\n";​·
138 ······​}140 ······​}
139 ······​else141 ······​else
140 ······​{142 ······​{
141 ········​std:​:​cout·​<<·​"Received:​·​";​143 ········​std:​:​cout·​<<·​"Received:​·​";​
142 ········​std:​:​cout.​write(data,​·​n)​;​144 ········​std:​:​cout.​write(data,​·​n)​;​
143 ········​std:​:​cout·​<<·​"\n";​145 ········​std:​:​cout·​<<·​"\n";​
144 ······​}146 ······​}
145 ····​}147 ····​}
146 ··​}148 ··​}
147 ··​catch·​(std:​:​exception&·​e)​149 ··​catch·​(std:​:​exception&·​e)​
148 ··​{150 ··​{
149 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​151 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
150 ··​}152 ··​}
151 153
152 ··​return·​0;​154 ··​return·​0;​
153 }155 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/timeouts/server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/timeouts/server.cpp.html deleted file mode 100644 index 8e60f24..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/timeouts/server.cpp.html +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - HTML Diff timeouts/server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​timeouts/​server.​cppsrc/​examples/​cpp11/​timeouts/​server.​cpp
1 /​/​1 /​/​
2 /​/​·​server.​cpp2 /​/​·​server.​cpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<algorithm>11 #include·​<algorithm>
12 #include·​<cstdlib>12 #include·​<cstdlib>
13 #include·​<deque>13 #include·​<deque>
14 #include·​<iostream>14 #include·​<iostream>
15 #include·​<memory>
15 #include·​<set>16 #include·​<set>
16 #include·​<string>17 #include·​<string>
17 #include·​<boost/​bind.​hpp>
18 #include·​<boost/​shared_ptr.​hpp>
19 #include·​<boost/​enable_shared_from_th​is.​hpp>
20 #include·​"asio/​buffer.​hpp"18 #include·​"asio/​buffer.​hpp"
21 #include·​"asio/​io_context.​hpp"19 #include·​"asio/​io_context.​hpp"
22 #include·​"asio/​ip/​tcp.​hpp"20 #include·​"asio/​ip/​tcp.​hpp"
23 #include·​"asio/​ip/​udp.​hpp"21 #include·​"asio/​ip/​udp.​hpp"
24 #include·​"asio/​read_until.​hpp"22 #include·​"asio/​read_until.​hpp"
25 #include·​"asio/​steady_timer.​hpp"23 #include·​"asio/​steady_timer.​hpp"
26 #include·​"asio/​write.​hpp"24 #include·​"asio/​write.​hpp"
27 25
28 using·​asio:​:​steady_timer;​26 using·​asio:​:​steady_timer;​
29 using·​asio:​:​ip:​:​tcp;​27 using·​asio:​:​ip:​:​tcp;​
30 using·​asio:​:​ip:​:​udp;​28 using·​asio:​:​ip:​:​udp;​
31 29
32 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​30 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
33 31
34 class·​subscriber32 class·​subscriber
35 {33 {
36 public:​34 public:​
37 ··​virtual·​~subscriber()​·{}35 ··​virtual·​~subscriber()​·=·default;​
38 ··​virtual·​void·​deliver(const·​std:​:​string&·​msg)​·​=·​0;​36 ··​virtual·​void·​deliver(const·​std:​:​string&·​msg)​·​=·​0;​
39 };​37 };​
40 38
41 typedef·boost:​:​shared_ptr<subscriber​>·​subscriber_ptr;​39 typedef·​std:​:​shared_ptr<subscriber​>·​subscriber_ptr;​
42 40
43 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​41 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
44 42
45 class·​channel43 class·​channel
46 {44 {
47 public:​45 public:​
48 ··​void·​join(subscriber_ptr·​subscriber)​46 ··​void·​join(subscriber_ptr·​subscriber)​
49 ··​{47 ··​{
50 ····​subscribers_.​insert(subscriber)​;​48 ····​subscribers_.​insert(subscriber)​;​
51 ··​}49 ··​}
52 50
53 ··​void·​leave(subscriber_ptr·​subscriber)​51 ··​void·​leave(subscriber_ptr·​subscriber)​
54 ··​{52 ··​{
55 ····​subscribers_.​erase(subscriber)​;​53 ····​subscribers_.​erase(subscriber)​;​
56 ··​}54 ··​}
57 55
58 ··​void·​deliver(const·​std:​:​string&·​msg)​56 ··​void·​deliver(const·​std:​:​string&·​msg)​
59 ··​{57 ··​{
60 ····std:​:​for_each(subscribers_​.​begin()​,​·​subscribers_.​end()​,​58 ····​for·(const·auto&·s·:​·​subscribers_)​
61 ········boost:​:​bind(&subscriber:​:​deliver,​·_1,​·boost:​:​ref(msg)​)​)​;​59 ····{
60 ······​s-​>deliver(msg)​;​
61 ····​}
62 ··​}62 ··​}
63 63
64 private:​64 private:​
65 ··​std:​:​set<subscriber_ptr>·​subscribers_;​65 ··​std:​:​set<subscriber_ptr>·​subscribers_;​
66 };​66 };​
67 67
68 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​68 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
69 69
70 /​/​70 /​/​
71 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​applying·​the·​concept·​of·​a·​deadline.​71 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​applying·​the·​concept·​of·​a·​deadline.​
72 /​/​·​Some·​asynchronous·​operations·​are·​given·​deadlines·​by·​which·​they·​must·​complete.​72 /​/​·​Some·​asynchronous·​operations·​are·​given·​deadlines·​by·​which·​they·​must·​complete.​
73 /​/​·​Deadlines·​are·​enforced·​by·​two·​"actors"·​that·​persist·​for·​the·​lifetime·​of·​the73 /​/​·​Deadlines·​are·​enforced·​by·​two·​"actors"·​that·​persist·​for·​the·​lifetime·​of·​the
74 /​/​·​session·​object,​·​one·​for·​input·​and·​one·​for·​output:​74 /​/​·​session·​object,​·​one·​for·​input·​and·​one·​for·​output:​
75 /​/​75 /​/​
76 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+·····················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+76 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+······················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
77 /​/​··​|················​|·····················​|················​|77 /​/​··​|················​|······················​|················​|
78 /​/​··​|·​check_deadline·​|<-​-​-​+················​|·​check_deadline·​|<-​-​-​+78 /​/​··​|·​check_deadline·​|<-​-​-​-​-​-​-​+·············​|·​check_deadline·​|<-​-​-​-​-​-​-​+
79 /​/​··​|················​|····|·async_wait()​···​|················​|····|·async_wait()​79 /​/​··​|················​|········|·············​|················​|········|
80 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····|··on·input······​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····|··on·output80 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+········|·············​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+········|
81 /​/​··············​|·········|··deadline··················​|·········|··deadline81 /​/​···············​|············|··························​|············|
82 /​/​··············​+-​-​-​-​-​-​-​-​-​+····························+-​-​-​-​-​-​-​-​-​+82 /​/​··async_wait()​·|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····async_wait()​·|····+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
83 /​/​···​on·​input····​|····​|·····​lambda·····​|·····​on·​output···​|····​|·····​lambda·····​|
84 /​/​···​deadline····​+-​-​-​>|·······​in·······​|·····​deadline····​+-​-​-​>|·······​in·······​|
85 /​/​····················​|·​check_deadline·​|······················​|·​check_deadline·​|
86 /​/​····················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+······················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
83 /​/​87 /​/​
84 /​/​·​If·​either·​deadline·​actor·​determines·​that·​the·​corresponding·​deadline·​has88 /​/​·​If·​either·​deadline·​actor·​determines·​that·​the·​corresponding·​deadline·​has
85 /​/​·​expired,​·​the·​socket·​is·​closed·​and·​any·​outstanding·​operations·​are·​cancelled.​89 /​/​·​expired,​·​the·​socket·​is·​closed·​and·​any·​outstanding·​operations·​are·​cancelled.​
86 /​/​90 /​/​
87 /​/​·​The·​input·​actor·​reads·​messages·​from·​the·​socket,​·​where·​messages·​are·​delimited91 /​/​·​The·​input·​actor·​reads·​messages·​from·​the·​socket,​·​where·​messages·​are·​delimited
88 /​/​·​by·​the·​newline·​character:​92 /​/​·​by·​the·​newline·​character:​
89 /​/​93 /​/​
90 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​+94 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​+
91 /​/​··​|············​|95 /​/​··​|·············​|
92 /​/​··​|·start_read·​|<-​-​-​+96 /​/​··​|··read_line··​|<-​-​-​-​+
93 /​/​··​|············​|····​|97 /​/​··​|·············​|·····​|
94 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​+····​|98 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​+·····​|
95 /​/​··········​|·········​|99 /​/​··········​|···········​|
96 /​/​··​async_-​·​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​+100 /​/​··​async_-​·​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​+
97 /​/​···​read_-​·​|····​|·············​|101 /​/​···​read_-​·​|····​|···lambda····​|
98 /​/​··​until()​·​+-​-​-​>|·handle_read·​|102 /​/​··​until()​·​+-​-​-​>|·····in······​|
99 /​/​···············​|·············​|103 /​/​···············​|··read_line··​|
100 /​/​···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​+104 /​/​···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​+
101 /​/​105 /​/​
102 /​/​·​The·​deadline·​for·​receiving·​a·​complete·​message·​is·​30·​seconds.​·​If·​a·​non-​empty106 /​/​·​The·​deadline·​for·​receiving·​a·​complete·​message·​is·​30·​seconds.​·​If·​a·​non-​empty
103 /​/​·​message·​is·​received,​·​it·​is·​delivered·​to·​all·​subscribers.​·​If·​a·​heartbeat·​(a107 /​/​·​message·​is·​received,​·​it·​is·​delivered·​to·​all·​subscribers.​·​If·​a·​heartbeat·​(a
104 /​/​·​message·​that·​consists·​of·​a·​single·​newline·​character)​·​is·​received,​·​a·​heartbeat108 /​/​·​message·​that·​consists·​of·​a·​single·​newline·​character)​·​is·​received,​·​a·​heartbeat
105 /​/​·​is·​enqueued·​for·​the·​client,​·​provided·​there·​are·​no·​other·​messages·​waiting·​to109 /​/​·​is·​enqueued·​for·​the·​client,​·​provided·​there·​are·​no·​other·​messages·​waiting·​to
106 /​/​·​be·​sent.​110 /​/​·​be·​sent.​
107 /​/​111 /​/​
108 /​/​·​The·​output·​actor·​is·​responsible·​for·​sending·​messages·​to·​the·​client:​112 /​/​·​The·​output·​actor·​is·​responsible·​for·​sending·​messages·​to·​the·​client:​
109 /​/​113 /​/​
110 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+114 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
111 /​/​··​|··············​|<-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+115 /​/​··​|················​|<-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
112 /​/​··​|·​await_output·​|······················​|116 /​/​··​|··​await_output··​|······················​|
113 /​/​··​|··············​|<-​-​-​+·················​|117 /​/​··​|················​|<-​-​-​-​-​-​-​+·············​|
114 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····|·················​|118 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+········|·············​|
115 /​/​······|······|········|·async_wait()​····​|119 /​/​····|············|··········|·············​|
116 /​/​······|······​+-​-​-​-​-​-​-​-​+·················​|120 /​/​····|····async_-​·|··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|
117 /​/​······V·································​|121 /​/​····|·····wait()​·|··|·····lambda·····|····​|
118 /​/​··+-​-​-​-​-​-​-​-​-​-​-​-​-​+···············+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+122 /​/​····|············+-​>|·······in·······|····|
119 /​/​··|·············|·async_write()​·|··············​|123 /​/​····|···············|··await_output··|····​|
120 /​/​··​|·start_write·|-​-​-​-​-​-​-​-​-​-​-​-​-​-​>|·handle_write·​|124 /​/​····​|···············+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|
121 /​/​··|·············|···············|··············​|125 /​/​····V·····································​|
122 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​+···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+126 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
127 /​/​··​|··············​|·​async_write()​·​|····​lambda····​|
128 /​/​··​|··​write_line··​|-​-​-​-​-​-​-​-​-​-​-​-​-​-​>|······​in······​|
129 /​/​··​|··············​|···············​|··​write_line··​|
130 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
123 /​/​131 /​/​
124 /​/​·​The·​output·​actor·​first·​waits·​for·​an·​output·​message·​to·​be·​enqueued.​·​It·​does132 /​/​·​The·​output·​actor·​first·​waits·​for·​an·​output·​message·​to·​be·​enqueued.​·​It·​does
125 /​/​·​this·​by·​using·​a·​steady_timer·​as·​an·​asynchronous·​condition·​variable.​·​The133 /​/​·​this·​by·​using·​a·​steady_timer·​as·​an·​asynchronous·​condition·​variable.​·​The
126 /​/​·​steady_timer·​will·​be·​signalled·​whenever·​the·​output·​queue·​is·​non-​empty.​134 /​/​·​steady_timer·​will·​be·​signalled·​whenever·​the·​output·​queue·​is·​non-​empty.​
127 /​/​135 /​/​
128 /​/​·​Once·​a·​message·​is·​available,​·​it·​is·​sent·​to·​the·​client.​·​The·​deadline·​for136 /​/​·​Once·​a·​message·​is·​available,​·​it·​is·​sent·​to·​the·​client.​·​The·​deadline·​for
129 /​/​·​sending·​a·​complete·​message·​is·​30·​seconds.​·​After·​the·​message·​is·​successfully137 /​/​·​sending·​a·​complete·​message·​is·​30·​seconds.​·​After·​the·​message·​is·​successfully
130 /​/​·​sent,​·​the·​output·​actor·​again·​waits·​for·​the·​output·​queue·​to·​become·​non-​empty.​138 /​/​·​sent,​·​the·​output·​actor·​again·​waits·​for·​the·​output·​queue·​to·​become·​non-​empty.​
131 /​/​139 /​/​
132 class·​tcp_session140 class·​tcp_session
133 ··​:​·​public·​subscriber,​141 ··​:​·​public·​subscriber,​
134 ····​public·boost:​:​enable_shared_from_th​is<tcp_session>142 ····​public·​std:​:​enable_shared_from_th​is<tcp_session>
135 {143 {
136 public:​144 public:​
137 ··​tcp_session(asio:​:​io_context&·io_context,​·​channel&·​ch)​145 ··​tcp_session(tcp:​:​socket·socket,​·​channel&·​ch)​
138 ····​:​·​channel_(ch)​,​146 ····​:​·​channel_(ch)​,​
139 ······​socket_(io_context)​,​147 ······​socket_(std:​:​move(socket)​)​
140 ······input_deadline_(io_co​ntext)​,​
141 ······non_empty_output_queu​e_(io_context)​,​
142 ······output_deadline_(io_c​ontext)​
143 ··​{148 ··​{
144 ····​input_deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​149 ····​input_deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​
145 ····​output_deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​150 ····​output_deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​
146 151
147 ····​/​/​·​The·​non_empty_output_queu​e_·​steady_timer·​is·​set·​to·​the·​maximum·​time152 ····​/​/​·​The·​non_empty_output_queu​e_·​steady_timer·​is·​set·​to·​the·​maximum·​time
148 ····​/​/​·​point·​whenever·​the·​output·​queue·​is·​empty.​·​This·​ensures·​that·​the·​output153 ····​/​/​·​point·​whenever·​the·​output·​queue·​is·​empty.​·​This·​ensures·​that·​the·​output
149 ····​/​/​·​actor·​stays·​asleep·​until·​a·​message·​is·​put·​into·​the·​queue.​154 ····​/​/​·​actor·​stays·​asleep·​until·​a·​message·​is·​put·​into·​the·​queue.​
150 ····​non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​155 ····​non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​
151 ··​}156 ··​}
152 157
153 ··​tcp:​:​socket&·​socket()​
154 ··​{
155 ····​return·​socket_;​
156 ··​}
157
158 ··​/​/​·​Called·​by·​the·​server·​object·​to·​initiate·​the·​four·​actors.​158 ··​/​/​·​Called·​by·​the·​server·​object·​to·​initiate·​the·​four·​actors.​
159 ··​void·​start()​159 ··​void·​start()​
160 ··​{160 ··​{
161 ····​channel_.​join(shared_from_this​()​)​;​161 ····​channel_.​join(shared_from_this​()​)​;​
162 162
163 ····start_read()​;​163 ····read_line()​;​
164 164 ····check_deadline(input_​deadline_)​;​
165 ····input_deadline_.​async_wait(
166 ········boost:​:​bind(&tcp_session:​:​check_deadline,​
167 ········shared_from_this()​,​·&input_deadline_)​)​;​
168 165
169 ····​await_output()​;​166 ····​await_output()​;​
170 167 ····check_deadline(output​_deadline_)​;​
171 ····output_deadline_.​async_wait(
172 ········boost:​:​bind(&tcp_session:​:​check_deadline,​
173 ········shared_from_this()​,​·&output_deadline_)​)​;​
174 ··​}168 ··​}
175 169
176 private:​170 private:​
177 ··​void·​stop()​171 ··​void·​stop()​
178 ··​{172 ··​{
179 ····​channel_.​leave(shared_from_thi​s()​)​;​173 ····​channel_.​leave(shared_from_thi​s()​)​;​
180 174
181 ····asio:​:​error_code·​ignored_ec;​175 ····​std:​:​error_code·​ignored_error;​
182 ····​socket_.​close(ignored_ec)​;​176 ····​socket_.​close(ignored_error)​;​
183 ····​input_deadline_.​cancel()​;​177 ····​input_deadline_.​cancel()​;​
184 ····​non_empty_output_queu​e_.​cancel()​;​178 ····​non_empty_output_queu​e_.​cancel()​;​
185 ····​output_deadline_.​cancel()​;​179 ····​output_deadline_.​cancel()​;​
186 ··​}180 ··​}
187 181
188 ··​bool·​stopped()​·​const182 ··​bool·​stopped()​·​const
189 ··​{183 ··​{
190 ····​return·​!socket_.​is_open()​;​184 ····​return·​!socket_.​is_open()​;​
191 ··​}185 ··​}
192 186
193 ··​void·​deliver(const·​std:​:​string&·​msg)​187 ··​void·​deliver(const·​std:​:​string&·​msg)​·override
194 ··​{188 ··​{
195 ····​output_queue_.​push_back(msg·​+·​"\n")​;​189 ····​output_queue_.​push_back(msg·​+·​"\n")​;​
196 190
197 ····​/​/​·​Signal·​that·​the·​output·​queue·​contains·​messages.​·​Modifying·​the·​expiry191 ····​/​/​·​Signal·​that·​the·​output·​queue·​contains·​messages.​·​Modifying·​the·​expiry
198 ····​/​/​·​will·​wake·​the·​output·​actor,​·​if·​it·​is·​waiting·​on·​the·​timer.​192 ····​/​/​·​will·​wake·​the·​output·​actor,​·​if·​it·​is·​waiting·​on·​the·​timer.​
199 ····​non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​min()​)​;​193 ····​non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​min()​)​;​
200 ··​}194 ··​}
201 195
202 ··​void·start_read()​196 ··​void·read_line()​
203 ··​{197 ··​{
204 ····​/​/​·​Set·​a·​deadline·​for·​the·​read·​operation.​198 ····​/​/​·​Set·​a·​deadline·​for·​the·​read·​operation.​
205 ····​input_deadline_.​expires_after(asio:​:​chrono:​:​seconds(30)​)​;​199 ····​input_deadline_.​expires_after(std:​:​chrono:​:​seconds(30)​)​;​
206 200
207 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​read·​a·​newline-​delimited·​message.​201 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​read·​a·​newline-​delimited·​message.​
202 ····​auto·​self(shared_from_this​()​)​;​
208 ····​asio:​:​async_read_until(sock​et_,​203 ····​asio:​:​async_read_until(sock​et_,​
209 ········​asio:​:​dynamic_buffer(input_​buffer_)​,​·​'\n',​204 ········​asio:​:​dynamic_buffer(input_​buffer_)​,​·​'\n',​
210 ········boost:​:​bind(&tcp_session:​:​handle_read,​·shared_from_this()​,​·_1,​·_2)​)​;​205 ········[this,​·self](const·std:​:​error_code&·error,​·std:​:​size_t·n)​
211 ··}
212
213 ··void·handle_read(const·asio:​:​error_code&·ec,​·std:​:​size_t·n)​
214 ··{
215 ····if·(stopped()​)​
216 ······return;​
217
218 ····if·(!ec)​
219 ····{
220 ······/​/​·Extract·the·newline-​delimited·message·from·the·buffer.​
221 ······std:​:​string·msg(input_buffer_.​substr(0,​·n·-​·1)​)​;​
222 ······input_buffer_.​erase(0,​·n)​;​
223
224 ······if·(!msg.​empty()​)​
225 ······{
226 ········channel_.​deliver(msg)​;​
227 ······}
228 ······else
229 ······{
230 ········/​/​·We·received·a·heartbeat·message·from·the·client.​·If·there's·nothing
231 ········/​/​·else·being·sent·or·ready·to·be·sent,​·send·a·heartbeat·right·back.​
232 ········if·(output_queue_.​empty()​)​
233 ········​{206 ········​{
234 ··········​output_queue_.​push_back("\n")​;​207 ··········/​/​·Check·if·the·session·was·stopped·while·the·operation·was·pending.​
235 208 ··········if·(stopped()​)​
236 ··········/​/​·Signal·that·the·output·queue·contains·messages.​·Modifying·the209 ············return;​
237 ··········/​/​·expiry·will·wake·the·output·actor,​·if·it·is·waiting·on·the·timer.​210
238 ··········non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​min()​)​;​211 ··········​if·(!error)​
239 ········}212 ··········{
240 ······}213 ············/​/​·Extract·the·newline-​delimited·message·from·the·buffer.​
241 214 ············std:​:​string·msg(input_buffer_.​substr(0,​·n·-​·1)​)​;​
242 ······start_read()​;​215 ············input_buffer_.​erase(0,​·n)​;​
243 ····}216
244 ····else217 ············if·(!msg.​empty()​)​
245 ····​{218 ············​{
246 ······stop()​;​219 ··············channel_.​deliver(msg)​;​
247 ····​}220 ············​}
221 ············​else
222 ············​{
223
224 ··············​/​/​·​We·​received·​a·​heartbeat·​message·​from·​the·​client.​·​If·​there's
225 ··············​/​/​·​nothing·​else·​being·​sent·​or·​ready·​to·​be·​sent,​·​send·​a·​heartbeat
226 ··············​/​/​·​right·​back.​
227 ··············​if·​(output_queue_.​empty()​)​
228 ··············​{
229 ················​output_queue_.​push_back("\n")​;​
230
231 ················​/​/​·​Signal·​that·​the·​output·​queue·​contains·​messages.​·​Modifying
232 ················​/​/​·​the·​expiry·​will·​wake·​the·​output·​actor,​·​if·​it·​is·​waiting·​on
233 ················​/​/​·​the·​timer.​
234 ················​non_empty_output_queu​e_.​expires_at(
235 ····················​steady_timer:​:​time_point:​:​min()​)​;​
236 ··············​}
237 ············​}
238
239 ············​read_line()​;​
240 ··········​}
241 ··········​else
242 ··········​{
243 ············​stop()​;​
244 ··········​}
245 ········​})​;​
248 ··​}246 ··​}
249 247
250 ··​void·​await_output()​248 ··​void·​await_output()​
251 ··​{249 ··​{
252 ····if·​(stopped()​)​250 ····auto·self(shared_from_this​()​)​;​
253 ······return;​251 ····non_empty_output_queu​e_.​async_wait(
254 252 ········[this,​·self](const·std:​:​error_code&·/​*error*/​)​
255 ····if·(output_queue_.​empty()​)​253 ········{
256 ····{254 ··········/​/​·Check·if·the·session·was·stopped·while·the·operation·was·pending.​
257 ······/​/​·There·are·no·messages·that·are·ready·to·be·sent.​·The·actor·goes·to255 ··········if·(stopped()​)​
258 ······/​/​·sleep·by·waiting·on·the·non_empty_output_queu​e_·timer.​·When·a·new256 ············return;​
259 ······/​/​·message·is·added,​·the·timer·will·be·modified·and·the·actor·will·wake.​257
260 ······non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​258 ··········if·(output_queue_.​empty()​)​
261 ······non_empty_output_queu​e_.​async_wait(259 ··········{
262 ··········boost:​:​bind(&tcp_session:​:​await_output,​·shared_from_this()​)​)​;​260 ············/​/​·There·are·no·messages·that·are·ready·to·be·sent.​·The·actor·goes
263 ····}261 ············/​/​·to·sleep·by·waiting·on·the·non_empty_output_queu​e_·timer.​·When·a
264 ····​else262 ············/​/​·new·message·is·added,​·the·timer·will·be·modified·and·the·actor
265 ····{263 ············/​/​·will·wake.​
266 ······​start_write()​;​264 ············non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​
267 ····}265 ············await_output()​;​
266 ··········​}
267 ··········​else
268 ··········​{
269 ············​write_line()​;​
270 ··········​}
271 ········​})​;​
268 ··​}272 ··​}
269 273
270 ··​void·start_write()​274 ··​void·write_line()​
271 ··​{275 ··​{
272 ····​/​/​·​Set·​a·​deadline·​for·​the·​write·​operation.​276 ····​/​/​·​Set·​a·​deadline·​for·​the·​write·​operation.​
273 ····​output_deadline_.​expires_after(asio:​:​chrono:​:​seconds(30)​)​;​277 ····​output_deadline_.​expires_after(std:​:​chrono:​:​seconds(30)​)​;​
274 278
275 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​send·​a·​message.​279 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​send·​a·​message.​
280 ····​auto·​self(shared_from_this​()​)​;​
276 ····​asio:​:​async_write(socket_,​281 ····​asio:​:​async_write(socket_,​
277 ········​asio:​:​buffer(output_queue_.​front()​)​,​282 ········​asio:​:​buffer(output_queue_.​front()​)​,​
278 ········boost:​:​bind(&tcp_session:​:​handle_write,​·shared_from_this()​,​·_1)​)​;​283 ········[this,​·self](const·std:​:​error_code&·error,​·std:​:​size_t·/​*n*/​)​
279 ··}284 ········{
280 285 ··········/​/​·Check·if·the·session·was·stopped·while·the·operation·was·pending.​
281 ··void·handle_write(const·asio:​:​error_code&·ec)​286 ··········if·(stopped()​)​
282 ··{287 ············return;​
283 ····if·(stopped()​)​288
284 ······return;​289 ··········if·(!error)​
285 290 ··········{
286 ····if·(!ec)​291 ············output_queue_.​pop_front()​;​
287 ····{292
288 ······output_queue_.​pop_front()​;​293 ············await_output()​;​
289 294 ··········}
290 ······await_output()​;​295 ··········else
291 ····}296 ··········{
292 ····else297 ············stop()​;​
293 ····{298 ··········}
294 ······stop()​;​299 ········})​;​
295 ····​}300 ··​}
296 ··}301
297 302 ··void·check_deadline(steady​_timer&·deadline)​
298 ··void·check_deadline(steady​_timer*·deadline)​303 ··{
299 ··{304 ····auto·self(shared_from_this​()​)​;​
300 ····​if·(stopped()​)​305 ····deadline.​async_wait(
301 ······​return;​306 ········[this,​·self,​·&deadline](const·std:​:​error_code&·/​*error*/​)​
302 307 ········{
303 ····/​/​·Check·whether·​the·deadline·has·passed.​·We·compare·​the·deadline·against308 ··········/​/​·Check·if·​the·session·was·​stopped·while·​the·operation·was·pending.​
304 ····/​/​·the·current·time·since·a·new·asynchronous·operation·may·have·moved·the309 ··········if·(stopped()​)​
305 ····/​/​·deadline·before·this·actor·had·a·chance·to·run.​310 ············return;​
306 ····if·(deadline-​>expiry()​·<=·steady_timer:​:​clock_type:​:​now()​)​311
307 ····{312 ··········/​/​·Check·whether·the·deadline·has·passed.​·We·compare·the·deadline
308 ······/​/​·The·deadline·has·passed.​·Stop·the·session.​·The·​other·actors·will313 ··········/​/​·​against·the·current·time·since·a·new·asynchronous·​operation·may
309 ······​/​/​·​terminate·as·soon·​as·possible.​314 ··········​/​/​·have·moved·​the·deadline·before·this·actor·had·a·chance·to·run.​
310 ······​stop()​;​315 ··········if·(deadline.​expiry()​·<=·​steady_timer:​:​clock_type:​:​now()​)​
311 ····}316 ··········{
312 ····​else317 ············/​/​·The·deadline·has·passed.​·Stop·the·session.​·The·other·actors·will
313 ····{318 ············/​/​·terminate·as·soon·as·possible.​
314 ······/​/​·Put·the·actor·back·to·​sleep.​319 ············​stop()​;​
315 ······deadline-​>async_wait(320 ··········}
316 ··········boost:​:​bind(&tcp_session:​:​check_deadline,​321 ··········​else
317 ··········shared_from_this()​,​·deadline)​)​;​322 ··········{
318 ····}323 ············/​/​·Put·the·actor·back·to·sleep.​
324 ············​check_deadline(deadli​ne)​;​
325 ··········​}
326 ········​})​;​
319 ··​}327 ··​}
320 328
321 ··​channel&·​channel_;​329 ··​channel&·​channel_;​
322 ··​tcp:​:​socket·​socket_;​330 ··​tcp:​:​socket·​socket_;​
323 ··​std:​:​string·​input_buffer_;​331 ··​std:​:​string·​input_buffer_;​
324 ··​steady_timer·​input_deadline_;​332 ··​steady_timer·​input_deadline_{socke​t_.​get_executor()​.​context()​};​
325 ··​std:​:​deque<std:​:​string>·​output_queue_;​333 ··​std:​:​deque<std:​:​string>·​output_queue_;​
326 ··​steady_timer·​non_empty_output_queu​e_;​334 ··​steady_timer·​non_empty_output_queu​e_{socket_.​get_executor()​.​context()​};​
327 ··​steady_timer·​output_deadline_;​335 ··​steady_timer·​output_deadline_{sock​et_.​get_executor()​.​context()​};​
328 };​336 };​
329 337
330 typedef·boost:​:​shared_ptr<tcp_sessio​n>·​tcp_session_ptr;​338 typedef·​std:​:​shared_ptr<tcp_sessio​n>·​tcp_session_ptr;​
331 339
332 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​340 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
333 341
334 class·​udp_broadcaster342 class·​udp_broadcaster
335 ··​:​·​public·​subscriber343 ··​:​·​public·​subscriber
336 {344 {
337 public:​345 public:​
338 ··​udp_broadcaster(asio:​:​io_context&·​io_context,​346 ··​udp_broadcaster(asio:​:​io_context&·​io_context,​
339 ······​const·​udp:​:​endpoint&·​broadcast_endpoint)​347 ······​const·​udp:​:​endpoint&·​broadcast_endpoint)​
340 ····​:​·​socket_(io_context)​348 ····​:​·​socket_(io_context)​
341 ··​{349 ··​{
342 ····​socket_.​connect(broadcast_end​point)​;​350 ····​socket_.​connect(broadcast_end​point)​;​
343 ····​socket_.​set_option(udp:​:​socket:​:​broadcast(true)​)​;​351 ····​socket_.​set_option(udp:​:​socket:​:​broadcast(true)​)​;​
344 ··​}352 ··​}
345 353
346 private:​354 private:​
347 ··​void·​deliver(const·​std:​:​string&·​msg)​355 ··​void·​deliver(const·​std:​:​string&·​msg)​
348 ··​{356 ··​{
349 ····asio:​:​error_code·​ignored_ec;​357 ····​std:​:​error_code·​ignored_error;​
350 ····​socket_.​send(asio:​:​buffer(msg)​,​·​0,​·​ignored_ec)​;​358 ····​socket_.​send(asio:​:​buffer(msg)​,​·​0,​·​ignored_error)​;​
351 ··​}359 ··​}
352 360
353 ··​udp:​:​socket·​socket_;​361 ··​udp:​:​socket·​socket_;​
354 };​362 };​
355 363
356 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​364 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
357 365
358 class·​server366 class·​server
359 {367 {
360 public:​368 public:​
361 ··​server(asio:​:​io_context&·​io_context,​369 ··​server(asio:​:​io_context&·​io_context,​
362 ······​const·​tcp:​:​endpoint&·​listen_endpoint,​370 ······​const·​tcp:​:​endpoint&·​listen_endpoint,​
363 ······​const·​udp:​:​endpoint&·​broadcast_endpoint)​371 ······​const·​udp:​:​endpoint&·​broadcast_endpoint)​
364 ····​:​·​io_context_(io_contex​t)​,​372 ····​:​·​io_context_(io_contex​t)​,​
365 ······​acceptor_(io_context,​·​listen_endpoint)​373 ······​acceptor_(io_context,​·​listen_endpoint)​
366 ··​{374 ··​{
367 ····subscriber_ptr·bc(new·udp_broadcaster(io_co​ntext_,​·broadcast_endpoint)​)​;​375 ····​channel_.​join(
368 ····channel_.​join(bc)​;​376 ········std:​:​make_shared<udp_broad​caster>(
377 ··········​io_context_,​·​broadcast_endpoint)​)​;​
369 378
370 ····start_accept()​;​379 ····​accept()​;​
371 ··​}380 ··​}
372 381
373 ··void·start_accept()​382 private:​
374 ··{383 ··void·accept()​
375 ····tcp_session_ptr·new_session(new·tcp_session(io_contex​t_,​·channel_)​)​;​
376
377 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​
378 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​·_1)​)​;​
379 ··}
380
381 ··void·handle_accept(tcp_ses​sion_ptr·session,​
382 ······const·asio:​:​error_code&·ec)​
383 ··​{384 ··​{
384 ····if·(!ec)​385 ····acceptor_.​async_accept(
385 ····{386 ········[this](const·std:​:​error_code&·error,​·tcp:​:​socket·socket)​
386 ······session-​>start()​;​387 ········{
387 ····}388 ··········if·(!error)​
389 ··········​{
390 ············​std:​:​make_shared<tcp_sessi​on>(std:​:​move(socket)​,​·​channel_)​-​>start()​;​
391 ··········​}
388 392
389 ····start_accept()​;​393 ··········accept()​;​
394 ········​})​;​
390 ··​}395 ··​}
391 396
392 private:​
393 ··​asio:​:​io_context&·​io_context_;​397 ··​asio:​:​io_context&·​io_context_;​
394 ··​tcp:​:​acceptor·​acceptor_;​398 ··​tcp:​:​acceptor·​acceptor_;​
395 ··​channel·​channel_;​399 ··​channel·​channel_;​
396 };​400 };​
397 401
398 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​402 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
399 403
400 int·​main(int·​argc,​·​char*·​argv[])​404 int·​main(int·​argc,​·​char*·​argv[])​
401 {405 {
402 ··​try406 ··​try
403 ··​{407 ··​{
404 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​408 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​
405 409
406 ····​if·​(argc·​!=·​4)​410 ····​if·​(argc·​!=·​4)​
407 ····​{411 ····​{
408 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<listen_port>·​<bcast_address>·​<bcast_port>\n";​412 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<listen_port>·​<bcast_address>·​<bcast_port>\n";​
409 ······​return·​1;​413 ······​return·​1;​
410 ····​}414 ····​}
411 415
412 ····​asio:​:​io_context·​io_context;​416 ····​asio:​:​io_context·​io_context;​
413 417
414 ····​tcp:​:​endpoint·​listen_endpoint(tcp:​:​v4()​,​·​atoi(argv[1])​)​;​418 ····​tcp:​:​endpoint·​listen_endpoint(tcp:​:​v4()​,​·​atoi(argv[1])​)​;​
415 419
416 ····​udp:​:​endpoint·​broadcast_endpoint(420 ····​udp:​:​endpoint·​broadcast_endpoint(
417 ········​asio:​:​ip:​:​make_address(argv[2])​,​·​atoi(argv[3])​)​;​421 ········​asio:​:​ip:​:​make_address(argv[2])​,​·​atoi(argv[3])​)​;​
418 422
419 ····​server·​s(io_context,​·​listen_endpoint,​·​broadcast_endpoint)​;​423 ····​server·​s(io_context,​·​listen_endpoint,​·​broadcast_endpoint)​;​
420 424
421 ····​io_context.​run()​;​425 ····​io_context.​run()​;​
422 ··​}426 ··​}
423 ··​catch·​(std:​:​exception&·​e)​427 ··​catch·​(std:​:​exception&·​e)​
424 ··​{428 ··​{
425 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​429 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
426 ··​}430 ··​}
427 431
428 ··​return·​0;​432 ··​return·​0;​
429 }433 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/timers/time_t_timer.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/timers/time_t_timer.cpp.html deleted file mode 100644 index 3cce8dd..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/timers/time_t_timer.cpp.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - HTML Diff timers/time_t_timer.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​timers/​time_t_timer.​cppsrc/​examples/​cpp11/​timers/​time_t_timer.​cpp
1 /​/​1 /​/​
2 /​/​·​time_t_timer.​cpp2 /​/​·​time_t_timer.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<asio.​hpp>11 #include·​<asio.​hpp>
12 #include·​<ctime>12 #include·​<ctime>
13 #include·​<chrono>
13 #include·​<iostream>14 #include·​<iostream>
14 15
15 /​/​·​A·​custom·​implementation·​of·​the·​Clock·​concept·​from·​the·​standard·​C++·​library.​16 /​/​·​A·​custom·​implementation·​of·​the·​Clock·​concept·​from·​the·​standard·​C++·​library.​
16 struct·​time_t_clock17 struct·​time_t_clock
17 {18 {
18 ··​/​/​·​The·​duration·​type.​19 ··​/​/​·​The·​duration·​type.​
19 ··​typedef·asio:​:​chrono:​:​steady_clock:​:​duration·​duration;​20 ··​typedef·​std:​:​chrono:​:​steady_clock:​:​duration·​duration;​
20 21
21 ··​/​/​·​The·​duration's·​underlying·​arithmetic·​representation.​22 ··​/​/​·​The·​duration's·​underlying·​arithmetic·​representation.​
22 ··​typedef·​duration:​:​rep·​rep;​23 ··​typedef·​duration:​:​rep·​rep;​
23 24
24 ··​/​/​·​The·​ratio·​representing·​the·​duration's·​tick·​period.​25 ··​/​/​·​The·​ratio·​representing·​the·​duration's·​tick·​period.​
25 ··​typedef·​duration:​:​period·​period;​26 ··​typedef·​duration:​:​period·​period;​
26 27
27 ··​/​/​·​An·​absolute·​time·​point·​represented·​using·​the·​clock.​28 ··​/​/​·​An·​absolute·​time·​point·​represented·​using·​the·​clock.​
28 ··​typedef·asio:​:​chrono:​:​time_point<time_t_clo​ck>·​time_point;​29 ··​typedef·​std:​:​chrono:​:​time_point<time_t_clo​ck>·​time_point;​
29 30
30 ··​/​/​·​The·​clock·​is·​not·​monotonically·​increasing.​31 ··​/​/​·​The·​clock·​is·​not·​monotonically·​increasing.​
31 ··​static·​const·​bool·​is_steady·​=·​false;​32 ··​static·​constexpr·​bool·​is_steady·​=·​false;​
32 33
33 ··​/​/​·​Get·​the·​current·​time.​34 ··​/​/​·​Get·​the·​current·​time.​
34 ··​static·​time_point·​now()​35 ··​static·​time_point·​now()​·noexcept
35 ··​{36 ··​{
36 ····​return·​time_point()​·​+·asio:​:​chrono:​:​seconds(std:​:​time(0)​)​;​37 ····​return·​time_point()​·​+·​std:​:​chrono:​:​seconds(std:​:​time(0)​)​;​
37 ··​}38 ··​}
38 };​39 };​
39 40
40 /​/​·​The·​asio:​:​basic_waitable_timer·​template·​accepts·​an·​optional·​WaitTraits41 /​/​·​The·​asio:​:​basic_waitable_timer·​template·​accepts·​an·​optional·​WaitTraits
41 /​/​·​template·​parameter.​·​The·​underlying·​time_t·​clock·​has·​one-​second·​granularity,​42 /​/​·​template·​parameter.​·​The·​underlying·​time_t·​clock·​has·​one-​second·​granularity,​
42 /​/​·​so·​these·​traits·​may·​be·​customised·​to·​reduce·​the·​latency·​between·​the·​clock43 /​/​·​so·​these·​traits·​may·​be·​customised·​to·​reduce·​the·​latency·​between·​the·​clock
43 /​/​·​ticking·​over·​and·​a·​wait·​operation's·​completion.​·​When·​the·​timeout·​is·​near44 /​/​·​ticking·​over·​and·​a·​wait·​operation's·​completion.​·​When·​the·​timeout·​is·​near
44 /​/​·​(less·​than·​one·​second·​away)​·​we·​poll·​the·​clock·​more·​frequently·​to·​detect·​the45 /​/​·​(less·​than·​one·​second·​away)​·​we·​poll·​the·​clock·​more·​frequently·​to·​detect·​the
45 /​/​·​time·​change·​closer·​to·​when·​it·​occurs.​·​The·​user·​can·​select·​the·​appropriate46 /​/​·​time·​change·​closer·​to·​when·​it·​occurs.​·​The·​user·​can·​select·​the·​appropriate
46 /​/​·​trade·​off·​between·​accuracy·​and·​the·​increased·​CPU·​cost·​of·​polling.​·​In·​extreme47 /​/​·​trade·​off·​between·​accuracy·​and·​the·​increased·​CPU·​cost·​of·​polling.​·​In·​extreme
47 /​/​·​cases,​·​a·​zero·​duration·​may·​be·​returned·​to·​make·​the·​timers·​as·​accurate·​as48 /​/​·​cases,​·​a·​zero·​duration·​may·​be·​returned·​to·​make·​the·​timers·​as·​accurate·​as
48 /​/​·​possible,​·​albeit·​with·​100%·​CPU·​usage.​49 /​/​·​possible,​·​albeit·​with·​100%·​CPU·​usage.​
49 struct·​time_t_wait_traits50 struct·​time_t_wait_traits
50 {51 {
51 ··​/​/​·​Determine·​how·​long·​until·​the·​clock·​should·​be·​next·​polled·​to·​determine52 ··​/​/​·​Determine·​how·​long·​until·​the·​clock·​should·​be·​next·​polled·​to·​determine
52 ··​/​/​·​whether·​the·​duration·​has·​elapsed.​53 ··​/​/​·​whether·​the·​duration·​has·​elapsed.​
53 ··​static·​time_t_clock:​:​duration·​to_wait_duration(54 ··​static·​time_t_clock:​:​duration·​to_wait_duration(
54 ······​const·​time_t_clock:​:​duration&·​d)​55 ······​const·​time_t_clock:​:​duration&·​d)​
55 ··​{56 ··​{
56 ····​if·​(d·​>·asio:​:​chrono:​:​seconds(1)​)​57 ····​if·​(d·​>·​std:​:​chrono:​:​seconds(1)​)​
57 ······​return·​d·​-​·asio:​:​chrono:​:​seconds(1)​;​58 ······​return·​d·​-​·​std:​:​chrono:​:​seconds(1)​;​
58 ····​else·​if·​(d·​>·asio:​:​chrono:​:​seconds(0)​)​59 ····​else·​if·​(d·​>·​std:​:​chrono:​:​seconds(0)​)​
59 ······​return·asio:​:​chrono:​:​milliseconds(10)​;​60 ······​return·​std:​:​chrono:​:​milliseconds(10)​;​
60 ····​else61 ····​else
61 ······​return·asio:​:​chrono:​:​seconds(0)​;​62 ······​return·​std:​:​chrono:​:​seconds(0)​;​
62 ··​}63 ··​}
63 64
64 ··​/​/​·​Determine·​how·​long·​until·​the·​clock·​should·​be·​next·​polled·​to·​determine65 ··​/​/​·​Determine·​how·​long·​until·​the·​clock·​should·​be·​next·​polled·​to·​determine
65 ··​/​/​·​whether·​the·​absoluate·​time·​has·​been·​reached.​66 ··​/​/​·​whether·​the·​absoluate·​time·​has·​been·​reached.​
66 ··​static·​time_t_clock:​:​duration·​to_wait_duration(67 ··​static·​time_t_clock:​:​duration·​to_wait_duration(
67 ······​const·​time_t_clock:​:​time_point&·​t)​68 ······​const·​time_t_clock:​:​time_point&·​t)​
68 ··​{69 ··​{
69 ····​return·​to_wait_duration(t·​-​·​time_t_clock:​:​now()​)​;​70 ····​return·​to_wait_duration(t·​-​·​time_t_clock:​:​now()​)​;​
70 ··​}71 ··​}
71 };​72 };​
72 73
73 typedef·​asio:​:​basic_waitable_timer<​74 typedef·​asio:​:​basic_waitable_timer<​
74 ··​time_t_clock,​·​time_t_wait_traits>·​time_t_timer;​75 ··​time_t_clock,​·​time_t_wait_traits>·​time_t_timer;​
75 76
76 void·​handle_timeout(const·​asio:​:​error_code&)​
77 {
78 ··​std:​:​cout·​<<·​"handle_timeout\n";​
79 }
80
81 int·​main()​77 int·​main()​
82 {78 {
83 ··​try79 ··​try
84 ··​{80 ··​{
85 ····​asio:​:​io_context·​io_context;​81 ····​asio:​:​io_context·​io_context;​
86 82
87 ····​time_t_timer·​timer(io_context)​;​83 ····​time_t_timer·​timer(io_context)​;​
88 84
89 ····​timer.​expires_after(asio:​:​chrono:​:​seconds(5)​)​;​85 ····​timer.​expires_after(std:​:​chrono:​:​seconds(5)​)​;​
90 ····​std:​:​cout·​<<·​"Starting·​synchronous·​wait\n";​86 ····​std:​:​cout·​<<·​"Starting·​synchronous·​wait\n";​
91 ····​timer.​wait()​;​87 ····​timer.​wait()​;​
92 ····​std:​:​cout·​<<·​"Finished·​synchronous·​wait\n";​88 ····​std:​:​cout·​<<·​"Finished·​synchronous·​wait\n";​
93 89
94 ····​timer.​expires_after(asio:​:​chrono:​:​seconds(5)​)​;​90 ····​timer.​expires_after(std:​:​chrono:​:​seconds(5)​)​;​
95 ····​std:​:​cout·​<<·​"Starting·​asynchronous·​wait\n";​91 ····​std:​:​cout·​<<·​"Starting·​asynchronous·​wait\n";​
96 ····​timer.​async_wait(&handle_ti​meout)​;​92 ····​timer.​async_wait(
93 ········​[](const·​std:​:​error_code&·​/​*error*/​)​
94 ········​{
95 ··········​std:​:​cout·​<<·​"timeout\n";​
96 ········​})​;​
97 ····​io_context.​run()​;​97 ····​io_context.​run()​;​
98 ····​std:​:​cout·​<<·​"Finished·​asynchronous·​wait\n";​98 ····​std:​:​cout·​<<·​"Finished·​asynchronous·​wait\n";​
99 ··​}99 ··​}
100 ··​catch·​(std:​:​exception&·​e)​100 ··​catch·​(std:​:​exception&·​e)​
101 ··​{101 ··​{
102 ····​std:​:​cout·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​102 ····​std:​:​cout·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
103 ··​}103 ··​}
104 104
105 ··​return·​0;​105 ··​return·​0;​
106 }106 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/home.png b/Sources/Vendor/asio/doc/home.png deleted file mode 100644 index 5584aacb097a80e66a5320312b6e4eb017af1a06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7T3?v)swEqJs=3*z$5DpHG+YkL80J$mwJ|V8+ zB7)tW9nKDRM~@s%h>KBER+u?+=H<(mwr$-K=fo0^iDsNj}a zlvGdz_qOoSb{LwMwNgp7=gl$4aErG%}mjHRWNrKOy`y@b8JoTa6ut*xc4t*y1SwY|N)#>U3Z&d%1> z*52OU=jZ3|@9+2b_y7O@tTMkk%M`~Kg@u8&dg_P^_0l3yQb639!jLZt^Lx<-O17UeeJ z-|=!77W(jGx&e#?FOku-gKofoU0$~4M+dhLFueEauP`}l7LV=;lsOdn%WHure=x;k`m0(bF&MU#) z-qv#^n8(MjB|ykioqII#+`g4no-MU=BK|Sahu_3M_-d*=7hq=~t?^}A)G7 zbairN0An*{V`DL9V>K}|HDobmIW;*pIW=W9HaTQ6F*7kTGI9=S@Bjb+07*qoM6N<$ Ef=i}M4FCWD diff --git a/Sources/Vendor/asio/doc/index.html b/Sources/Vendor/asio/doc/index.html deleted file mode 100644 index d2734bc..0000000 --- a/Sources/Vendor/asio/doc/index.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Asio - - - - - - -
asio C++ library
-
-
Next
-
-
-

-Asio

-
-
-

- Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -

-
-
-

- Asio is a cross-platform C++ library for network and low-level I/O programming - that provides developers with a consistent asynchronous model using a modern - C++ approach. -

-
-

-
-
Overview
-

- An overview of the features included in Asio, plus rationale and design - information. -

-
Using Asio
-

- How to use Asio in your applications. Includes information on library dependencies - and supported platforms. -

-
Tutorial
-

- A tutorial that introduces the fundamental concepts required to use Asio, - and shows how to use Asio to develop simple client and server programs. -

-
Examples
-

- Examples that illustrate the use of Asio in more complex applications. -

-
Reference
-

- Detailed class and function reference. -

-
Networking TS Compatibility
-

- Description of changes to provide compatibility with the "C++ Extensions - for Networking" Technical Specification. -

-
Revision History
-

- Log of Asio changes made in each release. -

-
Index
-

- Book-style text index of Asio documentation. -

-
-
-
- - - -

Last revised: December 11, 2018 at 22:29:24 GMT

-
-
Next
- - diff --git a/Sources/Vendor/asio/doc/next.png b/Sources/Vendor/asio/doc/next.png deleted file mode 100644 index 59800b4e87f60c0e3383ede2b384b9be0f5ffe8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7T3?v)swEqJs=3*z$5DpHG+YkL80J$mwJ|V8+ zB7)tW9mdAS+qP~A^!HU$R#>ro>7z#vFJHct5EtX@VE6z3e?1}lM4)<}k|4ieAQuK0 zgzld^2NdTl@Q5sCVBi)4Va7{$>;3=*RZCnWN`mv#O3D+9QW<;`lZ*0mQ&Tb%72Gn5 zQp@v;vWpdbBNU7b3{2X~)|>}w5Cds&E=o--$;{7F2+7P%WiT|*H!#*WFgd=yhZCqG z!qdeuq+(9;4PKV1Hyx6gnJ3)X*T8%1&d~!CcvGht8EkNzY0cztDB;<=un7h&oMQJ5 zOnAh^!sYOgmxqZbU_wKJkwW(@g)2%k8?y8!<$B~f6iH61Ubv5eVdat_!+^S!9H1Qx Mp00i_>zopr0Jz|Gn*aa+ diff --git a/Sources/Vendor/asio/doc/next_disabled.png b/Sources/Vendor/asio/doc/next_disabled.png deleted file mode 100644 index 10a8c59d7b3741260b7bfe918b62d0670cad8433..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1110 zcmY+@U1(Ba7zgmjDRvTtQ&L$$oM7uF2)$_$L2619oS2=UZrYjBy6mRGh`_UtKA{mr z&7hmQ>n7-KH(k`l3W_tgna$01TCHhYnyqEo%+oU}@c)DNeRv<Aw4@Ln z93k3vZsg(J43U|lVL3RF9xoOO*=)8_spRvsnW@QgsZ^`gs@1Bl&*gH{hGA%$HjdJ0 z0!^YRltHf%-=x_aG>vj-2F;>8dW+_ej^3ep^d5ac3+N+SL}4$&L!O*Z;pbcwggWI6Ht znSIeG^MqH2daRdq_j=NKWUEDx?&yZ{K(t0hNp-olr%gM()V(P|g0v^Rdp~d9J+QaF z!E^J*7D+vMK=CJy#-QLKKFMEfm#>;6HRZnKq86dtH6)t7^tAr+x)|r>qo?RMm@+$*>08dLHng9R* diff --git a/Sources/Vendor/asio/doc/note.png b/Sources/Vendor/asio/doc/note.png deleted file mode 100644 index d0c3c645ab9af6318035b026dd86944b9ddc9114..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmeAS@N?(olHy`uVBq!ia0vp^5+KY0Bp8m$B&h%?rX+877Y2q^y~;)m42&$EE{-7; zw^Ao5PC9JB<666~wbh%Oo7tJ0_rGWfi({a(qjR96>_P4H$tJl=Pxd^1p6`8M?=jE( z!hchf6<8Mi`NHe6`iia69>!lxe4C2-S>+Wvj;l63k!MNSb9|1+f-i>irDi|a^uLl% z^#-f2#pQ2lC%m~9m9JWJZL3|T8FRX>A78<>cU{Z6XGFG336=OLGkw25|29|RG_k%U z>j|M}Ih2i#-w+9_3T~N2 zspa`a*~JRJ5eh~I1}5!gYt92Th=DXX7o{eaWaj57gkwm>gfq&(JZLf6ZeXy%aV8%R&r1O{j}20XTDX{IIykaj z4Nx#hVBm6cU}k1+>Qw1kB6gA`rFdeFa~bob(-ZFQzAc!;#K4>y+$E64`2%PJgQu&X J%Q~loCIAR&aHIeL diff --git a/Sources/Vendor/asio/doc/prev_disabled.png b/Sources/Vendor/asio/doc/prev_disabled.png deleted file mode 100644 index ab3c17e02d156e7494dbab2f9cd66af46af2358c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1109 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 AYybcN diff --git a/Sources/Vendor/asio/doc/standalone_HTML.manifest b/Sources/Vendor/asio/doc/standalone_HTML.manifest deleted file mode 100644 index e67a219..0000000 --- a/Sources/Vendor/asio/doc/standalone_HTML.manifest +++ /dev/null @@ -1,3060 +0,0 @@ -index.html -asio/overview.html -asio/overview/rationale.html -asio/overview/core.html -asio/overview/core/basics.html -asio/overview/core/async.html -asio/overview/core/threads.html -asio/overview/core/strands.html -asio/overview/core/buffers.html -asio/overview/core/streams.html -asio/overview/core/reactor.html -asio/overview/core/line_based.html -asio/overview/core/allocation.html -asio/overview/core/handler_tracking.html -asio/overview/core/concurrency_hint.html -asio/overview/core/coroutine.html -asio/overview/core/spawn.html -asio/overview/core/coroutines_ts.html -asio/overview/networking.html -asio/overview/networking/protocols.html -asio/overview/networking/other_protocols.html -asio/overview/networking/iostreams.html -asio/overview/networking/bsd_sockets.html -asio/overview/timers.html -asio/overview/serial_ports.html -asio/overview/signals.html -asio/overview/posix.html -asio/overview/posix/local.html -asio/overview/posix/stream_descriptor.html -asio/overview/posix/fork.html -asio/overview/windows.html -asio/overview/windows/stream_handle.html -asio/overview/windows/random_access_handle.html -asio/overview/windows/object_handle.html -asio/overview/ssl.html -asio/overview/cpp2011.html -asio/overview/cpp2011/system_error.html -asio/overview/cpp2011/move_objects.html -asio/overview/cpp2011/move_handlers.html -asio/overview/cpp2011/variadic.html -asio/overview/cpp2011/array.html -asio/overview/cpp2011/atomic.html -asio/overview/cpp2011/shared_ptr.html -asio/overview/cpp2011/chrono.html -asio/overview/cpp2011/futures.html -asio/overview/implementation.html -asio/using.html -asio/tutorial.html -asio/tutorial/tuttimer1.html -asio/tutorial/tuttimer1/src.html -asio/tutorial/tuttimer2.html -asio/tutorial/tuttimer2/src.html -asio/tutorial/tuttimer3.html -asio/tutorial/tuttimer3/src.html -asio/tutorial/tuttimer4.html -asio/tutorial/tuttimer4/src.html -asio/tutorial/tuttimer5.html -asio/tutorial/tuttimer5/src.html -asio/tutorial/tutdaytime1.html -asio/tutorial/tutdaytime1/src.html -asio/tutorial/tutdaytime2.html -asio/tutorial/tutdaytime2/src.html -asio/tutorial/tutdaytime3.html -asio/tutorial/tutdaytime3/src.html -asio/tutorial/tutdaytime4.html -asio/tutorial/tutdaytime4/src.html -asio/tutorial/tutdaytime5.html -asio/tutorial/tutdaytime5/src.html -asio/tutorial/tutdaytime6.html -asio/tutorial/tutdaytime6/src.html -asio/tutorial/tutdaytime7.html -asio/tutorial/tutdaytime7/src.html -asio/tutorial/boost_bind.html -asio/examples.html -asio/examples/cpp03_examples.html -asio/examples/cpp11_examples.html -asio/examples/cpp17_examples.html -asio/reference.html -asio/reference/asynchronous_operations.html -asio/reference/read_write_operations.html -asio/reference/synchronous_socket_operations.html -asio/reference/asynchronous_socket_operations.html -asio/reference/AcceptableProtocol.html -asio/reference/AcceptHandler.html -asio/reference/AsyncRandomAccessReadDevice.html -asio/reference/AsyncRandomAccessWriteDevice.html -asio/reference/AsyncReadStream.html -asio/reference/AsyncWriteStream.html -asio/reference/BufferedHandshakeHandler.html -asio/reference/CompletionCondition.html -asio/reference/CompletionHandler.html -asio/reference/ConnectCondition.html -asio/reference/ConnectHandler.html -asio/reference/ConstBufferSequence.html -asio/reference/DynamicBuffer.html -asio/reference/Endpoint.html -asio/reference/EndpointSequence.html -asio/reference/ExecutionContext.html -asio/reference/Executor1.html -asio/reference/GettableSerialPortOption.html -asio/reference/GettableSocketOption.html -asio/reference/Handler.html -asio/reference/HandshakeHandler.html -asio/reference/InternetProtocol.html -asio/reference/IoControlCommand.html -asio/reference/IoObjectService.html -asio/reference/IteratorConnectHandler.html -asio/reference/LegacyCompletionHandler.html -asio/reference/MoveAcceptHandler.html -asio/reference/MutableBufferSequence.html -asio/reference/ProtoAllocator.html -asio/reference/Protocol.html -asio/reference/RangeConnectHandler.html -asio/reference/ReadHandler.html -asio/reference/ResolveHandler.html -asio/reference/Service.html -asio/reference/SettableSerialPortOption.html -asio/reference/SettableSocketOption.html -asio/reference/ShutdownHandler.html -asio/reference/SignalHandler.html -asio/reference/SyncRandomAccessReadDevice.html -asio/reference/SyncRandomAccessWriteDevice.html -asio/reference/SyncReadStream.html -asio/reference/SyncWriteStream.html -asio/reference/TimeTraits.html -asio/reference/WaitHandler.html -asio/reference/WaitTraits.html -asio/reference/WriteHandler.html -asio/reference/add_service.html -asio/reference/asio_handler_allocate.html -asio/reference/asio_handler_deallocate.html -asio/reference/asio_handler_invoke.html -asio/reference/asio_handler_invoke/overload1.html -asio/reference/asio_handler_invoke/overload2.html -asio/reference/asio_handler_is_continuation.html -asio/reference/associated_allocator.html -asio/reference/associated_allocator/get.html -asio/reference/associated_allocator/type.html -asio/reference/associated_executor.html -asio/reference/associated_executor/get.html -asio/reference/associated_executor/type.html -asio/reference/async_completion.html -asio/reference/async_completion/async_completion.html -asio/reference/async_completion/completion_handler.html -asio/reference/async_completion/completion_handler_type.html -asio/reference/async_completion/result.html -asio/reference/async_connect.html -asio/reference/async_connect/overload1.html -asio/reference/async_connect/overload2.html -asio/reference/async_connect/overload3.html -asio/reference/async_connect/overload4.html -asio/reference/async_connect/overload5.html -asio/reference/async_connect/overload6.html -asio/reference/async_read.html -asio/reference/async_read/overload1.html -asio/reference/async_read/overload2.html -asio/reference/async_read/overload3.html -asio/reference/async_read/overload4.html -asio/reference/async_read/overload5.html -asio/reference/async_read/overload6.html -asio/reference/async_read_at.html -asio/reference/async_read_at/overload1.html -asio/reference/async_read_at/overload2.html -asio/reference/async_read_at/overload3.html -asio/reference/async_read_at/overload4.html -asio/reference/async_read_until.html -asio/reference/async_read_until/overload1.html -asio/reference/async_read_until/overload2.html -asio/reference/async_read_until/overload3.html -asio/reference/async_read_until/overload4.html -asio/reference/async_read_until/overload5.html -asio/reference/async_read_until/overload6.html -asio/reference/async_read_until/overload7.html -asio/reference/async_read_until/overload8.html -asio/reference/async_result.html -asio/reference/async_result/async_result.html -asio/reference/async_result/completion_handler_type.html -asio/reference/async_result/get.html -asio/reference/async_result/return_type.html -asio/reference/async_result_lt__Handler__gt_.html -asio/reference/async_result_lt__Handler__gt_/async_result.html -asio/reference/async_result_lt__Handler__gt_/get.html -asio/reference/async_result_lt__Handler__gt_/type.html -asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_.html -asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html -asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/completion_handler_type.html -asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/get.html -asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/return_type.html -asio/reference/async_write.html -asio/reference/async_write/overload1.html -asio/reference/async_write/overload2.html -asio/reference/async_write/overload3.html -asio/reference/async_write/overload4.html -asio/reference/async_write/overload5.html -asio/reference/async_write/overload6.html -asio/reference/async_write_at.html -asio/reference/async_write_at/overload1.html -asio/reference/async_write_at/overload2.html -asio/reference/async_write_at/overload3.html -asio/reference/async_write_at/overload4.html -asio/reference/bad_executor.html -asio/reference/bad_executor/bad_executor.html -asio/reference/bad_executor/what.html -asio/reference/basic_datagram_socket.html -asio/reference/basic_datagram_socket/assign.html -asio/reference/basic_datagram_socket/assign/overload1.html -asio/reference/basic_datagram_socket/assign/overload2.html -asio/reference/basic_datagram_socket/async_connect.html -asio/reference/basic_datagram_socket/async_receive.html -asio/reference/basic_datagram_socket/async_receive/overload1.html -asio/reference/basic_datagram_socket/async_receive/overload2.html -asio/reference/basic_datagram_socket/async_receive_from.html -asio/reference/basic_datagram_socket/async_receive_from/overload1.html -asio/reference/basic_datagram_socket/async_receive_from/overload2.html -asio/reference/basic_datagram_socket/async_send.html -asio/reference/basic_datagram_socket/async_send/overload1.html -asio/reference/basic_datagram_socket/async_send/overload2.html -asio/reference/basic_datagram_socket/async_send_to.html -asio/reference/basic_datagram_socket/async_send_to/overload1.html -asio/reference/basic_datagram_socket/async_send_to/overload2.html -asio/reference/basic_datagram_socket/async_wait.html -asio/reference/basic_datagram_socket/at_mark.html -asio/reference/basic_datagram_socket/at_mark/overload1.html -asio/reference/basic_datagram_socket/at_mark/overload2.html -asio/reference/basic_datagram_socket/available.html -asio/reference/basic_datagram_socket/available/overload1.html -asio/reference/basic_datagram_socket/available/overload2.html -asio/reference/basic_datagram_socket/basic_datagram_socket.html -asio/reference/basic_datagram_socket/basic_datagram_socket/overload1.html -asio/reference/basic_datagram_socket/basic_datagram_socket/overload2.html -asio/reference/basic_datagram_socket/basic_datagram_socket/overload3.html -asio/reference/basic_datagram_socket/basic_datagram_socket/overload4.html -asio/reference/basic_datagram_socket/basic_datagram_socket/overload5.html -asio/reference/basic_datagram_socket/basic_datagram_socket/overload6.html -asio/reference/basic_datagram_socket/bind.html -asio/reference/basic_datagram_socket/bind/overload1.html -asio/reference/basic_datagram_socket/bind/overload2.html -asio/reference/basic_datagram_socket/broadcast.html -asio/reference/basic_datagram_socket/bytes_readable.html -asio/reference/basic_datagram_socket/cancel.html -asio/reference/basic_datagram_socket/cancel/overload1.html -asio/reference/basic_datagram_socket/cancel/overload2.html -asio/reference/basic_datagram_socket/close.html -asio/reference/basic_datagram_socket/close/overload1.html -asio/reference/basic_datagram_socket/close/overload2.html -asio/reference/basic_datagram_socket/connect.html -asio/reference/basic_datagram_socket/connect/overload1.html -asio/reference/basic_datagram_socket/connect/overload2.html -asio/reference/basic_datagram_socket/debug.html -asio/reference/basic_datagram_socket/do_not_route.html -asio/reference/basic_datagram_socket/enable_connection_aborted.html -asio/reference/basic_datagram_socket/endpoint_type.html -asio/reference/basic_datagram_socket/executor_type.html -asio/reference/basic_datagram_socket/get_executor.html -asio/reference/basic_datagram_socket/get_io_context.html -asio/reference/basic_datagram_socket/get_io_service.html -asio/reference/basic_datagram_socket/get_option.html -asio/reference/basic_datagram_socket/get_option/overload1.html -asio/reference/basic_datagram_socket/get_option/overload2.html -asio/reference/basic_datagram_socket/io_control.html -asio/reference/basic_datagram_socket/io_control/overload1.html -asio/reference/basic_datagram_socket/io_control/overload2.html -asio/reference/basic_datagram_socket/is_open.html -asio/reference/basic_datagram_socket/keep_alive.html -asio/reference/basic_datagram_socket/linger.html -asio/reference/basic_datagram_socket/local_endpoint.html -asio/reference/basic_datagram_socket/local_endpoint/overload1.html -asio/reference/basic_datagram_socket/local_endpoint/overload2.html -asio/reference/basic_datagram_socket/lowest_layer.html -asio/reference/basic_datagram_socket/lowest_layer/overload1.html -asio/reference/basic_datagram_socket/lowest_layer/overload2.html -asio/reference/basic_datagram_socket/lowest_layer_type.html -asio/reference/basic_datagram_socket/max_connections.html -asio/reference/basic_datagram_socket/max_listen_connections.html -asio/reference/basic_datagram_socket/message_do_not_route.html -asio/reference/basic_datagram_socket/message_end_of_record.html -asio/reference/basic_datagram_socket/message_flags.html -asio/reference/basic_datagram_socket/message_out_of_band.html -asio/reference/basic_datagram_socket/message_peek.html -asio/reference/basic_datagram_socket/native_handle.html -asio/reference/basic_datagram_socket/native_handle_type.html -asio/reference/basic_datagram_socket/native_non_blocking.html -asio/reference/basic_datagram_socket/native_non_blocking/overload1.html -asio/reference/basic_datagram_socket/native_non_blocking/overload2.html -asio/reference/basic_datagram_socket/native_non_blocking/overload3.html -asio/reference/basic_datagram_socket/non_blocking.html -asio/reference/basic_datagram_socket/non_blocking/overload1.html -asio/reference/basic_datagram_socket/non_blocking/overload2.html -asio/reference/basic_datagram_socket/non_blocking/overload3.html -asio/reference/basic_datagram_socket/open.html -asio/reference/basic_datagram_socket/open/overload1.html -asio/reference/basic_datagram_socket/open/overload2.html -asio/reference/basic_datagram_socket/operator_eq_.html -asio/reference/basic_datagram_socket/operator_eq_/overload1.html -asio/reference/basic_datagram_socket/operator_eq_/overload2.html -asio/reference/basic_datagram_socket/out_of_band_inline.html -asio/reference/basic_datagram_socket/protocol_type.html -asio/reference/basic_datagram_socket/receive.html -asio/reference/basic_datagram_socket/receive/overload1.html -asio/reference/basic_datagram_socket/receive/overload2.html -asio/reference/basic_datagram_socket/receive/overload3.html -asio/reference/basic_datagram_socket/receive_buffer_size.html -asio/reference/basic_datagram_socket/receive_from.html -asio/reference/basic_datagram_socket/receive_from/overload1.html -asio/reference/basic_datagram_socket/receive_from/overload2.html -asio/reference/basic_datagram_socket/receive_from/overload3.html -asio/reference/basic_datagram_socket/receive_low_watermark.html -asio/reference/basic_datagram_socket/release.html -asio/reference/basic_datagram_socket/release/overload1.html -asio/reference/basic_datagram_socket/release/overload2.html -asio/reference/basic_datagram_socket/remote_endpoint.html -asio/reference/basic_datagram_socket/remote_endpoint/overload1.html -asio/reference/basic_datagram_socket/remote_endpoint/overload2.html -asio/reference/basic_datagram_socket/reuse_address.html -asio/reference/basic_datagram_socket/send.html -asio/reference/basic_datagram_socket/send/overload1.html -asio/reference/basic_datagram_socket/send/overload2.html -asio/reference/basic_datagram_socket/send/overload3.html -asio/reference/basic_datagram_socket/send_buffer_size.html -asio/reference/basic_datagram_socket/send_low_watermark.html -asio/reference/basic_datagram_socket/send_to.html -asio/reference/basic_datagram_socket/send_to/overload1.html -asio/reference/basic_datagram_socket/send_to/overload2.html -asio/reference/basic_datagram_socket/send_to/overload3.html -asio/reference/basic_datagram_socket/set_option.html -asio/reference/basic_datagram_socket/set_option/overload1.html -asio/reference/basic_datagram_socket/set_option/overload2.html -asio/reference/basic_datagram_socket/shutdown.html -asio/reference/basic_datagram_socket/shutdown/overload1.html -asio/reference/basic_datagram_socket/shutdown/overload2.html -asio/reference/basic_datagram_socket/shutdown_type.html -asio/reference/basic_datagram_socket/wait.html -asio/reference/basic_datagram_socket/wait/overload1.html -asio/reference/basic_datagram_socket/wait/overload2.html -asio/reference/basic_datagram_socket/wait_type.html -asio/reference/basic_datagram_socket/_basic_datagram_socket.html -asio/reference/basic_deadline_timer.html -asio/reference/basic_deadline_timer/async_wait.html -asio/reference/basic_deadline_timer/basic_deadline_timer.html -asio/reference/basic_deadline_timer/basic_deadline_timer/overload1.html -asio/reference/basic_deadline_timer/basic_deadline_timer/overload2.html -asio/reference/basic_deadline_timer/basic_deadline_timer/overload3.html -asio/reference/basic_deadline_timer/basic_deadline_timer/overload4.html -asio/reference/basic_deadline_timer/cancel.html -asio/reference/basic_deadline_timer/cancel/overload1.html -asio/reference/basic_deadline_timer/cancel/overload2.html -asio/reference/basic_deadline_timer/cancel_one.html -asio/reference/basic_deadline_timer/cancel_one/overload1.html -asio/reference/basic_deadline_timer/cancel_one/overload2.html -asio/reference/basic_deadline_timer/duration_type.html -asio/reference/basic_deadline_timer/executor_type.html -asio/reference/basic_deadline_timer/expires_at.html -asio/reference/basic_deadline_timer/expires_at/overload1.html -asio/reference/basic_deadline_timer/expires_at/overload2.html -asio/reference/basic_deadline_timer/expires_at/overload3.html -asio/reference/basic_deadline_timer/expires_from_now.html -asio/reference/basic_deadline_timer/expires_from_now/overload1.html -asio/reference/basic_deadline_timer/expires_from_now/overload2.html -asio/reference/basic_deadline_timer/expires_from_now/overload3.html -asio/reference/basic_deadline_timer/get_executor.html -asio/reference/basic_deadline_timer/get_io_context.html -asio/reference/basic_deadline_timer/get_io_service.html -asio/reference/basic_deadline_timer/operator_eq_.html -asio/reference/basic_deadline_timer/time_type.html -asio/reference/basic_deadline_timer/traits_type.html -asio/reference/basic_deadline_timer/wait.html -asio/reference/basic_deadline_timer/wait/overload1.html -asio/reference/basic_deadline_timer/wait/overload2.html -asio/reference/basic_deadline_timer/_basic_deadline_timer.html -asio/reference/basic_io_object.html -asio/reference/basic_io_object/basic_io_object.html -asio/reference/basic_io_object/basic_io_object/overload1.html -asio/reference/basic_io_object/basic_io_object/overload2.html -asio/reference/basic_io_object/basic_io_object/overload3.html -asio/reference/basic_io_object/executor_type.html -asio/reference/basic_io_object/get_executor.html -asio/reference/basic_io_object/get_implementation.html -asio/reference/basic_io_object/get_implementation/overload1.html -asio/reference/basic_io_object/get_implementation/overload2.html -asio/reference/basic_io_object/get_io_context.html -asio/reference/basic_io_object/get_io_service.html -asio/reference/basic_io_object/get_service.html -asio/reference/basic_io_object/get_service/overload1.html -asio/reference/basic_io_object/get_service/overload2.html -asio/reference/basic_io_object/implementation_type.html -asio/reference/basic_io_object/operator_eq_.html -asio/reference/basic_io_object/service_type.html -asio/reference/basic_io_object/_basic_io_object.html -asio/reference/basic_raw_socket.html -asio/reference/basic_raw_socket/assign.html -asio/reference/basic_raw_socket/assign/overload1.html -asio/reference/basic_raw_socket/assign/overload2.html -asio/reference/basic_raw_socket/async_connect.html -asio/reference/basic_raw_socket/async_receive.html -asio/reference/basic_raw_socket/async_receive/overload1.html -asio/reference/basic_raw_socket/async_receive/overload2.html -asio/reference/basic_raw_socket/async_receive_from.html -asio/reference/basic_raw_socket/async_receive_from/overload1.html -asio/reference/basic_raw_socket/async_receive_from/overload2.html -asio/reference/basic_raw_socket/async_send.html -asio/reference/basic_raw_socket/async_send/overload1.html -asio/reference/basic_raw_socket/async_send/overload2.html -asio/reference/basic_raw_socket/async_send_to.html -asio/reference/basic_raw_socket/async_send_to/overload1.html -asio/reference/basic_raw_socket/async_send_to/overload2.html -asio/reference/basic_raw_socket/async_wait.html -asio/reference/basic_raw_socket/at_mark.html -asio/reference/basic_raw_socket/at_mark/overload1.html -asio/reference/basic_raw_socket/at_mark/overload2.html -asio/reference/basic_raw_socket/available.html -asio/reference/basic_raw_socket/available/overload1.html -asio/reference/basic_raw_socket/available/overload2.html -asio/reference/basic_raw_socket/basic_raw_socket.html -asio/reference/basic_raw_socket/basic_raw_socket/overload1.html -asio/reference/basic_raw_socket/basic_raw_socket/overload2.html -asio/reference/basic_raw_socket/basic_raw_socket/overload3.html -asio/reference/basic_raw_socket/basic_raw_socket/overload4.html -asio/reference/basic_raw_socket/basic_raw_socket/overload5.html -asio/reference/basic_raw_socket/basic_raw_socket/overload6.html -asio/reference/basic_raw_socket/bind.html -asio/reference/basic_raw_socket/bind/overload1.html -asio/reference/basic_raw_socket/bind/overload2.html -asio/reference/basic_raw_socket/broadcast.html -asio/reference/basic_raw_socket/bytes_readable.html -asio/reference/basic_raw_socket/cancel.html -asio/reference/basic_raw_socket/cancel/overload1.html -asio/reference/basic_raw_socket/cancel/overload2.html -asio/reference/basic_raw_socket/close.html -asio/reference/basic_raw_socket/close/overload1.html -asio/reference/basic_raw_socket/close/overload2.html -asio/reference/basic_raw_socket/connect.html -asio/reference/basic_raw_socket/connect/overload1.html -asio/reference/basic_raw_socket/connect/overload2.html -asio/reference/basic_raw_socket/debug.html -asio/reference/basic_raw_socket/do_not_route.html -asio/reference/basic_raw_socket/enable_connection_aborted.html -asio/reference/basic_raw_socket/endpoint_type.html -asio/reference/basic_raw_socket/executor_type.html -asio/reference/basic_raw_socket/get_executor.html -asio/reference/basic_raw_socket/get_io_context.html -asio/reference/basic_raw_socket/get_io_service.html -asio/reference/basic_raw_socket/get_option.html -asio/reference/basic_raw_socket/get_option/overload1.html -asio/reference/basic_raw_socket/get_option/overload2.html -asio/reference/basic_raw_socket/io_control.html -asio/reference/basic_raw_socket/io_control/overload1.html -asio/reference/basic_raw_socket/io_control/overload2.html -asio/reference/basic_raw_socket/is_open.html -asio/reference/basic_raw_socket/keep_alive.html -asio/reference/basic_raw_socket/linger.html -asio/reference/basic_raw_socket/local_endpoint.html -asio/reference/basic_raw_socket/local_endpoint/overload1.html -asio/reference/basic_raw_socket/local_endpoint/overload2.html -asio/reference/basic_raw_socket/lowest_layer.html -asio/reference/basic_raw_socket/lowest_layer/overload1.html -asio/reference/basic_raw_socket/lowest_layer/overload2.html -asio/reference/basic_raw_socket/lowest_layer_type.html -asio/reference/basic_raw_socket/max_connections.html -asio/reference/basic_raw_socket/max_listen_connections.html -asio/reference/basic_raw_socket/message_do_not_route.html -asio/reference/basic_raw_socket/message_end_of_record.html -asio/reference/basic_raw_socket/message_flags.html -asio/reference/basic_raw_socket/message_out_of_band.html -asio/reference/basic_raw_socket/message_peek.html -asio/reference/basic_raw_socket/native_handle.html -asio/reference/basic_raw_socket/native_handle_type.html -asio/reference/basic_raw_socket/native_non_blocking.html -asio/reference/basic_raw_socket/native_non_blocking/overload1.html -asio/reference/basic_raw_socket/native_non_blocking/overload2.html -asio/reference/basic_raw_socket/native_non_blocking/overload3.html -asio/reference/basic_raw_socket/non_blocking.html -asio/reference/basic_raw_socket/non_blocking/overload1.html -asio/reference/basic_raw_socket/non_blocking/overload2.html -asio/reference/basic_raw_socket/non_blocking/overload3.html -asio/reference/basic_raw_socket/open.html -asio/reference/basic_raw_socket/open/overload1.html -asio/reference/basic_raw_socket/open/overload2.html -asio/reference/basic_raw_socket/operator_eq_.html -asio/reference/basic_raw_socket/operator_eq_/overload1.html -asio/reference/basic_raw_socket/operator_eq_/overload2.html -asio/reference/basic_raw_socket/out_of_band_inline.html -asio/reference/basic_raw_socket/protocol_type.html -asio/reference/basic_raw_socket/receive.html -asio/reference/basic_raw_socket/receive/overload1.html -asio/reference/basic_raw_socket/receive/overload2.html -asio/reference/basic_raw_socket/receive/overload3.html -asio/reference/basic_raw_socket/receive_buffer_size.html -asio/reference/basic_raw_socket/receive_from.html -asio/reference/basic_raw_socket/receive_from/overload1.html -asio/reference/basic_raw_socket/receive_from/overload2.html -asio/reference/basic_raw_socket/receive_from/overload3.html -asio/reference/basic_raw_socket/receive_low_watermark.html -asio/reference/basic_raw_socket/release.html -asio/reference/basic_raw_socket/release/overload1.html -asio/reference/basic_raw_socket/release/overload2.html -asio/reference/basic_raw_socket/remote_endpoint.html -asio/reference/basic_raw_socket/remote_endpoint/overload1.html -asio/reference/basic_raw_socket/remote_endpoint/overload2.html -asio/reference/basic_raw_socket/reuse_address.html -asio/reference/basic_raw_socket/send.html -asio/reference/basic_raw_socket/send/overload1.html -asio/reference/basic_raw_socket/send/overload2.html -asio/reference/basic_raw_socket/send/overload3.html -asio/reference/basic_raw_socket/send_buffer_size.html -asio/reference/basic_raw_socket/send_low_watermark.html -asio/reference/basic_raw_socket/send_to.html -asio/reference/basic_raw_socket/send_to/overload1.html -asio/reference/basic_raw_socket/send_to/overload2.html -asio/reference/basic_raw_socket/send_to/overload3.html -asio/reference/basic_raw_socket/set_option.html -asio/reference/basic_raw_socket/set_option/overload1.html -asio/reference/basic_raw_socket/set_option/overload2.html -asio/reference/basic_raw_socket/shutdown.html -asio/reference/basic_raw_socket/shutdown/overload1.html -asio/reference/basic_raw_socket/shutdown/overload2.html -asio/reference/basic_raw_socket/shutdown_type.html -asio/reference/basic_raw_socket/wait.html -asio/reference/basic_raw_socket/wait/overload1.html -asio/reference/basic_raw_socket/wait/overload2.html -asio/reference/basic_raw_socket/wait_type.html -asio/reference/basic_raw_socket/_basic_raw_socket.html -asio/reference/basic_seq_packet_socket.html -asio/reference/basic_seq_packet_socket/assign.html -asio/reference/basic_seq_packet_socket/assign/overload1.html -asio/reference/basic_seq_packet_socket/assign/overload2.html -asio/reference/basic_seq_packet_socket/async_connect.html -asio/reference/basic_seq_packet_socket/async_receive.html -asio/reference/basic_seq_packet_socket/async_receive/overload1.html -asio/reference/basic_seq_packet_socket/async_receive/overload2.html -asio/reference/basic_seq_packet_socket/async_send.html -asio/reference/basic_seq_packet_socket/async_wait.html -asio/reference/basic_seq_packet_socket/at_mark.html -asio/reference/basic_seq_packet_socket/at_mark/overload1.html -asio/reference/basic_seq_packet_socket/at_mark/overload2.html -asio/reference/basic_seq_packet_socket/available.html -asio/reference/basic_seq_packet_socket/available/overload1.html -asio/reference/basic_seq_packet_socket/available/overload2.html -asio/reference/basic_seq_packet_socket/basic_seq_packet_socket.html -asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload1.html -asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload2.html -asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload3.html -asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload4.html -asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload5.html -asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload6.html -asio/reference/basic_seq_packet_socket/bind.html -asio/reference/basic_seq_packet_socket/bind/overload1.html -asio/reference/basic_seq_packet_socket/bind/overload2.html -asio/reference/basic_seq_packet_socket/broadcast.html -asio/reference/basic_seq_packet_socket/bytes_readable.html -asio/reference/basic_seq_packet_socket/cancel.html -asio/reference/basic_seq_packet_socket/cancel/overload1.html -asio/reference/basic_seq_packet_socket/cancel/overload2.html -asio/reference/basic_seq_packet_socket/close.html -asio/reference/basic_seq_packet_socket/close/overload1.html -asio/reference/basic_seq_packet_socket/close/overload2.html -asio/reference/basic_seq_packet_socket/connect.html -asio/reference/basic_seq_packet_socket/connect/overload1.html -asio/reference/basic_seq_packet_socket/connect/overload2.html -asio/reference/basic_seq_packet_socket/debug.html -asio/reference/basic_seq_packet_socket/do_not_route.html -asio/reference/basic_seq_packet_socket/enable_connection_aborted.html -asio/reference/basic_seq_packet_socket/endpoint_type.html -asio/reference/basic_seq_packet_socket/executor_type.html -asio/reference/basic_seq_packet_socket/get_executor.html -asio/reference/basic_seq_packet_socket/get_io_context.html -asio/reference/basic_seq_packet_socket/get_io_service.html -asio/reference/basic_seq_packet_socket/get_option.html -asio/reference/basic_seq_packet_socket/get_option/overload1.html -asio/reference/basic_seq_packet_socket/get_option/overload2.html -asio/reference/basic_seq_packet_socket/io_control.html -asio/reference/basic_seq_packet_socket/io_control/overload1.html -asio/reference/basic_seq_packet_socket/io_control/overload2.html -asio/reference/basic_seq_packet_socket/is_open.html -asio/reference/basic_seq_packet_socket/keep_alive.html -asio/reference/basic_seq_packet_socket/linger.html -asio/reference/basic_seq_packet_socket/local_endpoint.html -asio/reference/basic_seq_packet_socket/local_endpoint/overload1.html -asio/reference/basic_seq_packet_socket/local_endpoint/overload2.html -asio/reference/basic_seq_packet_socket/lowest_layer.html -asio/reference/basic_seq_packet_socket/lowest_layer/overload1.html -asio/reference/basic_seq_packet_socket/lowest_layer/overload2.html -asio/reference/basic_seq_packet_socket/lowest_layer_type.html -asio/reference/basic_seq_packet_socket/max_connections.html -asio/reference/basic_seq_packet_socket/max_listen_connections.html -asio/reference/basic_seq_packet_socket/message_do_not_route.html -asio/reference/basic_seq_packet_socket/message_end_of_record.html -asio/reference/basic_seq_packet_socket/message_flags.html -asio/reference/basic_seq_packet_socket/message_out_of_band.html -asio/reference/basic_seq_packet_socket/message_peek.html -asio/reference/basic_seq_packet_socket/native_handle.html -asio/reference/basic_seq_packet_socket/native_handle_type.html -asio/reference/basic_seq_packet_socket/native_non_blocking.html -asio/reference/basic_seq_packet_socket/native_non_blocking/overload1.html -asio/reference/basic_seq_packet_socket/native_non_blocking/overload2.html -asio/reference/basic_seq_packet_socket/native_non_blocking/overload3.html -asio/reference/basic_seq_packet_socket/non_blocking.html -asio/reference/basic_seq_packet_socket/non_blocking/overload1.html -asio/reference/basic_seq_packet_socket/non_blocking/overload2.html -asio/reference/basic_seq_packet_socket/non_blocking/overload3.html -asio/reference/basic_seq_packet_socket/open.html -asio/reference/basic_seq_packet_socket/open/overload1.html -asio/reference/basic_seq_packet_socket/open/overload2.html -asio/reference/basic_seq_packet_socket/operator_eq_.html -asio/reference/basic_seq_packet_socket/operator_eq_/overload1.html -asio/reference/basic_seq_packet_socket/operator_eq_/overload2.html -asio/reference/basic_seq_packet_socket/out_of_band_inline.html -asio/reference/basic_seq_packet_socket/protocol_type.html -asio/reference/basic_seq_packet_socket/receive.html -asio/reference/basic_seq_packet_socket/receive/overload1.html -asio/reference/basic_seq_packet_socket/receive/overload2.html -asio/reference/basic_seq_packet_socket/receive/overload3.html -asio/reference/basic_seq_packet_socket/receive_buffer_size.html -asio/reference/basic_seq_packet_socket/receive_low_watermark.html -asio/reference/basic_seq_packet_socket/release.html -asio/reference/basic_seq_packet_socket/release/overload1.html -asio/reference/basic_seq_packet_socket/release/overload2.html -asio/reference/basic_seq_packet_socket/remote_endpoint.html -asio/reference/basic_seq_packet_socket/remote_endpoint/overload1.html -asio/reference/basic_seq_packet_socket/remote_endpoint/overload2.html -asio/reference/basic_seq_packet_socket/reuse_address.html -asio/reference/basic_seq_packet_socket/send.html -asio/reference/basic_seq_packet_socket/send/overload1.html -asio/reference/basic_seq_packet_socket/send/overload2.html -asio/reference/basic_seq_packet_socket/send_buffer_size.html -asio/reference/basic_seq_packet_socket/send_low_watermark.html -asio/reference/basic_seq_packet_socket/set_option.html -asio/reference/basic_seq_packet_socket/set_option/overload1.html -asio/reference/basic_seq_packet_socket/set_option/overload2.html -asio/reference/basic_seq_packet_socket/shutdown.html -asio/reference/basic_seq_packet_socket/shutdown/overload1.html -asio/reference/basic_seq_packet_socket/shutdown/overload2.html -asio/reference/basic_seq_packet_socket/shutdown_type.html -asio/reference/basic_seq_packet_socket/wait.html -asio/reference/basic_seq_packet_socket/wait/overload1.html -asio/reference/basic_seq_packet_socket/wait/overload2.html -asio/reference/basic_seq_packet_socket/wait_type.html -asio/reference/basic_seq_packet_socket/_basic_seq_packet_socket.html -asio/reference/basic_socket.html -asio/reference/basic_socket/assign.html -asio/reference/basic_socket/assign/overload1.html -asio/reference/basic_socket/assign/overload2.html -asio/reference/basic_socket/async_connect.html -asio/reference/basic_socket/async_wait.html -asio/reference/basic_socket/at_mark.html -asio/reference/basic_socket/at_mark/overload1.html -asio/reference/basic_socket/at_mark/overload2.html -asio/reference/basic_socket/available.html -asio/reference/basic_socket/available/overload1.html -asio/reference/basic_socket/available/overload2.html -asio/reference/basic_socket/basic_socket.html -asio/reference/basic_socket/basic_socket/overload1.html -asio/reference/basic_socket/basic_socket/overload2.html -asio/reference/basic_socket/basic_socket/overload3.html -asio/reference/basic_socket/basic_socket/overload4.html -asio/reference/basic_socket/basic_socket/overload5.html -asio/reference/basic_socket/basic_socket/overload6.html -asio/reference/basic_socket/bind.html -asio/reference/basic_socket/bind/overload1.html -asio/reference/basic_socket/bind/overload2.html -asio/reference/basic_socket/broadcast.html -asio/reference/basic_socket/bytes_readable.html -asio/reference/basic_socket/cancel.html -asio/reference/basic_socket/cancel/overload1.html -asio/reference/basic_socket/cancel/overload2.html -asio/reference/basic_socket/close.html -asio/reference/basic_socket/close/overload1.html -asio/reference/basic_socket/close/overload2.html -asio/reference/basic_socket/connect.html -asio/reference/basic_socket/connect/overload1.html -asio/reference/basic_socket/connect/overload2.html -asio/reference/basic_socket/debug.html -asio/reference/basic_socket/do_not_route.html -asio/reference/basic_socket/enable_connection_aborted.html -asio/reference/basic_socket/endpoint_type.html -asio/reference/basic_socket/executor_type.html -asio/reference/basic_socket/get_executor.html -asio/reference/basic_socket/get_io_context.html -asio/reference/basic_socket/get_io_service.html -asio/reference/basic_socket/get_option.html -asio/reference/basic_socket/get_option/overload1.html -asio/reference/basic_socket/get_option/overload2.html -asio/reference/basic_socket/io_control.html -asio/reference/basic_socket/io_control/overload1.html -asio/reference/basic_socket/io_control/overload2.html -asio/reference/basic_socket/is_open.html -asio/reference/basic_socket/keep_alive.html -asio/reference/basic_socket/linger.html -asio/reference/basic_socket/local_endpoint.html -asio/reference/basic_socket/local_endpoint/overload1.html -asio/reference/basic_socket/local_endpoint/overload2.html -asio/reference/basic_socket/lowest_layer.html -asio/reference/basic_socket/lowest_layer/overload1.html -asio/reference/basic_socket/lowest_layer/overload2.html -asio/reference/basic_socket/lowest_layer_type.html -asio/reference/basic_socket/max_connections.html -asio/reference/basic_socket/max_listen_connections.html -asio/reference/basic_socket/message_do_not_route.html -asio/reference/basic_socket/message_end_of_record.html -asio/reference/basic_socket/message_flags.html -asio/reference/basic_socket/message_out_of_band.html -asio/reference/basic_socket/message_peek.html -asio/reference/basic_socket/native_handle.html -asio/reference/basic_socket/native_handle_type.html -asio/reference/basic_socket/native_non_blocking.html -asio/reference/basic_socket/native_non_blocking/overload1.html -asio/reference/basic_socket/native_non_blocking/overload2.html -asio/reference/basic_socket/native_non_blocking/overload3.html -asio/reference/basic_socket/non_blocking.html -asio/reference/basic_socket/non_blocking/overload1.html -asio/reference/basic_socket/non_blocking/overload2.html -asio/reference/basic_socket/non_blocking/overload3.html -asio/reference/basic_socket/open.html -asio/reference/basic_socket/open/overload1.html -asio/reference/basic_socket/open/overload2.html -asio/reference/basic_socket/operator_eq_.html -asio/reference/basic_socket/operator_eq_/overload1.html -asio/reference/basic_socket/operator_eq_/overload2.html -asio/reference/basic_socket/out_of_band_inline.html -asio/reference/basic_socket/protocol_type.html -asio/reference/basic_socket/receive_buffer_size.html -asio/reference/basic_socket/receive_low_watermark.html -asio/reference/basic_socket/release.html -asio/reference/basic_socket/release/overload1.html -asio/reference/basic_socket/release/overload2.html -asio/reference/basic_socket/remote_endpoint.html -asio/reference/basic_socket/remote_endpoint/overload1.html -asio/reference/basic_socket/remote_endpoint/overload2.html -asio/reference/basic_socket/reuse_address.html -asio/reference/basic_socket/send_buffer_size.html -asio/reference/basic_socket/send_low_watermark.html -asio/reference/basic_socket/set_option.html -asio/reference/basic_socket/set_option/overload1.html -asio/reference/basic_socket/set_option/overload2.html -asio/reference/basic_socket/shutdown.html -asio/reference/basic_socket/shutdown/overload1.html -asio/reference/basic_socket/shutdown/overload2.html -asio/reference/basic_socket/shutdown_type.html -asio/reference/basic_socket/wait.html -asio/reference/basic_socket/wait/overload1.html -asio/reference/basic_socket/wait/overload2.html -asio/reference/basic_socket/wait_type.html -asio/reference/basic_socket/_basic_socket.html -asio/reference/basic_socket_acceptor.html -asio/reference/basic_socket_acceptor/accept.html -asio/reference/basic_socket_acceptor/accept/overload1.html -asio/reference/basic_socket_acceptor/accept/overload2.html -asio/reference/basic_socket_acceptor/accept/overload3.html -asio/reference/basic_socket_acceptor/accept/overload4.html -asio/reference/basic_socket_acceptor/accept/overload5.html -asio/reference/basic_socket_acceptor/accept/overload6.html -asio/reference/basic_socket_acceptor/accept/overload7.html -asio/reference/basic_socket_acceptor/accept/overload8.html -asio/reference/basic_socket_acceptor/accept/overload9.html -asio/reference/basic_socket_acceptor/accept/overload10.html -asio/reference/basic_socket_acceptor/accept/overload11.html -asio/reference/basic_socket_acceptor/accept/overload12.html -asio/reference/basic_socket_acceptor/assign.html -asio/reference/basic_socket_acceptor/assign/overload1.html -asio/reference/basic_socket_acceptor/assign/overload2.html -asio/reference/basic_socket_acceptor/async_accept.html -asio/reference/basic_socket_acceptor/async_accept/overload1.html -asio/reference/basic_socket_acceptor/async_accept/overload2.html -asio/reference/basic_socket_acceptor/async_accept/overload3.html -asio/reference/basic_socket_acceptor/async_accept/overload4.html -asio/reference/basic_socket_acceptor/async_accept/overload5.html -asio/reference/basic_socket_acceptor/async_accept/overload6.html -asio/reference/basic_socket_acceptor/async_wait.html -asio/reference/basic_socket_acceptor/basic_socket_acceptor.html -asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload1.html -asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload2.html -asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload3.html -asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload4.html -asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload5.html -asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload6.html -asio/reference/basic_socket_acceptor/bind.html -asio/reference/basic_socket_acceptor/bind/overload1.html -asio/reference/basic_socket_acceptor/bind/overload2.html -asio/reference/basic_socket_acceptor/broadcast.html -asio/reference/basic_socket_acceptor/bytes_readable.html -asio/reference/basic_socket_acceptor/cancel.html -asio/reference/basic_socket_acceptor/cancel/overload1.html -asio/reference/basic_socket_acceptor/cancel/overload2.html -asio/reference/basic_socket_acceptor/close.html -asio/reference/basic_socket_acceptor/close/overload1.html -asio/reference/basic_socket_acceptor/close/overload2.html -asio/reference/basic_socket_acceptor/debug.html -asio/reference/basic_socket_acceptor/do_not_route.html -asio/reference/basic_socket_acceptor/enable_connection_aborted.html -asio/reference/basic_socket_acceptor/endpoint_type.html -asio/reference/basic_socket_acceptor/executor_type.html -asio/reference/basic_socket_acceptor/get_executor.html -asio/reference/basic_socket_acceptor/get_io_context.html -asio/reference/basic_socket_acceptor/get_io_service.html -asio/reference/basic_socket_acceptor/get_option.html -asio/reference/basic_socket_acceptor/get_option/overload1.html -asio/reference/basic_socket_acceptor/get_option/overload2.html -asio/reference/basic_socket_acceptor/io_control.html -asio/reference/basic_socket_acceptor/io_control/overload1.html -asio/reference/basic_socket_acceptor/io_control/overload2.html -asio/reference/basic_socket_acceptor/is_open.html -asio/reference/basic_socket_acceptor/keep_alive.html -asio/reference/basic_socket_acceptor/linger.html -asio/reference/basic_socket_acceptor/listen.html -asio/reference/basic_socket_acceptor/listen/overload1.html -asio/reference/basic_socket_acceptor/listen/overload2.html -asio/reference/basic_socket_acceptor/local_endpoint.html -asio/reference/basic_socket_acceptor/local_endpoint/overload1.html -asio/reference/basic_socket_acceptor/local_endpoint/overload2.html -asio/reference/basic_socket_acceptor/max_connections.html -asio/reference/basic_socket_acceptor/max_listen_connections.html -asio/reference/basic_socket_acceptor/message_do_not_route.html -asio/reference/basic_socket_acceptor/message_end_of_record.html -asio/reference/basic_socket_acceptor/message_flags.html -asio/reference/basic_socket_acceptor/message_out_of_band.html -asio/reference/basic_socket_acceptor/message_peek.html -asio/reference/basic_socket_acceptor/native_handle.html -asio/reference/basic_socket_acceptor/native_handle_type.html -asio/reference/basic_socket_acceptor/native_non_blocking.html -asio/reference/basic_socket_acceptor/native_non_blocking/overload1.html -asio/reference/basic_socket_acceptor/native_non_blocking/overload2.html -asio/reference/basic_socket_acceptor/native_non_blocking/overload3.html -asio/reference/basic_socket_acceptor/non_blocking.html -asio/reference/basic_socket_acceptor/non_blocking/overload1.html -asio/reference/basic_socket_acceptor/non_blocking/overload2.html -asio/reference/basic_socket_acceptor/non_blocking/overload3.html -asio/reference/basic_socket_acceptor/open.html -asio/reference/basic_socket_acceptor/open/overload1.html -asio/reference/basic_socket_acceptor/open/overload2.html -asio/reference/basic_socket_acceptor/operator_eq_.html -asio/reference/basic_socket_acceptor/operator_eq_/overload1.html -asio/reference/basic_socket_acceptor/operator_eq_/overload2.html -asio/reference/basic_socket_acceptor/out_of_band_inline.html -asio/reference/basic_socket_acceptor/protocol_type.html -asio/reference/basic_socket_acceptor/receive_buffer_size.html -asio/reference/basic_socket_acceptor/receive_low_watermark.html -asio/reference/basic_socket_acceptor/release.html -asio/reference/basic_socket_acceptor/release/overload1.html -asio/reference/basic_socket_acceptor/release/overload2.html -asio/reference/basic_socket_acceptor/reuse_address.html -asio/reference/basic_socket_acceptor/send_buffer_size.html -asio/reference/basic_socket_acceptor/send_low_watermark.html -asio/reference/basic_socket_acceptor/set_option.html -asio/reference/basic_socket_acceptor/set_option/overload1.html -asio/reference/basic_socket_acceptor/set_option/overload2.html -asio/reference/basic_socket_acceptor/shutdown_type.html -asio/reference/basic_socket_acceptor/wait.html -asio/reference/basic_socket_acceptor/wait/overload1.html -asio/reference/basic_socket_acceptor/wait/overload2.html -asio/reference/basic_socket_acceptor/wait_type.html -asio/reference/basic_socket_acceptor/_basic_socket_acceptor.html -asio/reference/basic_socket_iostream.html -asio/reference/basic_socket_iostream/basic_socket_iostream.html -asio/reference/basic_socket_iostream/basic_socket_iostream/overload1.html -asio/reference/basic_socket_iostream/basic_socket_iostream/overload2.html -asio/reference/basic_socket_iostream/basic_socket_iostream/overload3.html -asio/reference/basic_socket_iostream/basic_socket_iostream/overload4.html -asio/reference/basic_socket_iostream/clock_type.html -asio/reference/basic_socket_iostream/close.html -asio/reference/basic_socket_iostream/connect.html -asio/reference/basic_socket_iostream/duration.html -asio/reference/basic_socket_iostream/duration_type.html -asio/reference/basic_socket_iostream/endpoint_type.html -asio/reference/basic_socket_iostream/error.html -asio/reference/basic_socket_iostream/expires_after.html -asio/reference/basic_socket_iostream/expires_at.html -asio/reference/basic_socket_iostream/expires_at/overload1.html -asio/reference/basic_socket_iostream/expires_at/overload2.html -asio/reference/basic_socket_iostream/expires_from_now.html -asio/reference/basic_socket_iostream/expires_from_now/overload1.html -asio/reference/basic_socket_iostream/expires_from_now/overload2.html -asio/reference/basic_socket_iostream/expiry.html -asio/reference/basic_socket_iostream/operator_eq_.html -asio/reference/basic_socket_iostream/protocol_type.html -asio/reference/basic_socket_iostream/rdbuf.html -asio/reference/basic_socket_iostream/socket.html -asio/reference/basic_socket_iostream/time_point.html -asio/reference/basic_socket_iostream/time_type.html -asio/reference/basic_socket_streambuf.html -asio/reference/basic_socket_streambuf/basic_socket_streambuf.html -asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload1.html -asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload2.html -asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload3.html -asio/reference/basic_socket_streambuf/clock_type.html -asio/reference/basic_socket_streambuf/close.html -asio/reference/basic_socket_streambuf/connect.html -asio/reference/basic_socket_streambuf/connect/overload1.html -asio/reference/basic_socket_streambuf/connect/overload2.html -asio/reference/basic_socket_streambuf/duration.html -asio/reference/basic_socket_streambuf/duration_type.html -asio/reference/basic_socket_streambuf/endpoint_type.html -asio/reference/basic_socket_streambuf/error.html -asio/reference/basic_socket_streambuf/expires_after.html -asio/reference/basic_socket_streambuf/expires_at.html -asio/reference/basic_socket_streambuf/expires_at/overload1.html -asio/reference/basic_socket_streambuf/expires_at/overload2.html -asio/reference/basic_socket_streambuf/expires_from_now.html -asio/reference/basic_socket_streambuf/expires_from_now/overload1.html -asio/reference/basic_socket_streambuf/expires_from_now/overload2.html -asio/reference/basic_socket_streambuf/expiry.html -asio/reference/basic_socket_streambuf/operator_eq_.html -asio/reference/basic_socket_streambuf/overflow.html -asio/reference/basic_socket_streambuf/protocol_type.html -asio/reference/basic_socket_streambuf/puberror.html -asio/reference/basic_socket_streambuf/setbuf.html -asio/reference/basic_socket_streambuf/socket.html -asio/reference/basic_socket_streambuf/sync.html -asio/reference/basic_socket_streambuf/time_point.html -asio/reference/basic_socket_streambuf/time_type.html -asio/reference/basic_socket_streambuf/underflow.html -asio/reference/basic_socket_streambuf/_basic_socket_streambuf.html -asio/reference/basic_stream_socket.html -asio/reference/basic_stream_socket/assign.html -asio/reference/basic_stream_socket/assign/overload1.html -asio/reference/basic_stream_socket/assign/overload2.html -asio/reference/basic_stream_socket/async_connect.html -asio/reference/basic_stream_socket/async_read_some.html -asio/reference/basic_stream_socket/async_receive.html -asio/reference/basic_stream_socket/async_receive/overload1.html -asio/reference/basic_stream_socket/async_receive/overload2.html -asio/reference/basic_stream_socket/async_send.html -asio/reference/basic_stream_socket/async_send/overload1.html -asio/reference/basic_stream_socket/async_send/overload2.html -asio/reference/basic_stream_socket/async_wait.html -asio/reference/basic_stream_socket/async_write_some.html -asio/reference/basic_stream_socket/at_mark.html -asio/reference/basic_stream_socket/at_mark/overload1.html -asio/reference/basic_stream_socket/at_mark/overload2.html -asio/reference/basic_stream_socket/available.html -asio/reference/basic_stream_socket/available/overload1.html -asio/reference/basic_stream_socket/available/overload2.html -asio/reference/basic_stream_socket/basic_stream_socket.html -asio/reference/basic_stream_socket/basic_stream_socket/overload1.html -asio/reference/basic_stream_socket/basic_stream_socket/overload2.html -asio/reference/basic_stream_socket/basic_stream_socket/overload3.html -asio/reference/basic_stream_socket/basic_stream_socket/overload4.html -asio/reference/basic_stream_socket/basic_stream_socket/overload5.html -asio/reference/basic_stream_socket/basic_stream_socket/overload6.html -asio/reference/basic_stream_socket/bind.html -asio/reference/basic_stream_socket/bind/overload1.html -asio/reference/basic_stream_socket/bind/overload2.html -asio/reference/basic_stream_socket/broadcast.html -asio/reference/basic_stream_socket/bytes_readable.html -asio/reference/basic_stream_socket/cancel.html -asio/reference/basic_stream_socket/cancel/overload1.html -asio/reference/basic_stream_socket/cancel/overload2.html -asio/reference/basic_stream_socket/close.html -asio/reference/basic_stream_socket/close/overload1.html -asio/reference/basic_stream_socket/close/overload2.html -asio/reference/basic_stream_socket/connect.html -asio/reference/basic_stream_socket/connect/overload1.html -asio/reference/basic_stream_socket/connect/overload2.html -asio/reference/basic_stream_socket/debug.html -asio/reference/basic_stream_socket/do_not_route.html -asio/reference/basic_stream_socket/enable_connection_aborted.html -asio/reference/basic_stream_socket/endpoint_type.html -asio/reference/basic_stream_socket/executor_type.html -asio/reference/basic_stream_socket/get_executor.html -asio/reference/basic_stream_socket/get_io_context.html -asio/reference/basic_stream_socket/get_io_service.html -asio/reference/basic_stream_socket/get_option.html -asio/reference/basic_stream_socket/get_option/overload1.html -asio/reference/basic_stream_socket/get_option/overload2.html -asio/reference/basic_stream_socket/io_control.html -asio/reference/basic_stream_socket/io_control/overload1.html -asio/reference/basic_stream_socket/io_control/overload2.html -asio/reference/basic_stream_socket/is_open.html -asio/reference/basic_stream_socket/keep_alive.html -asio/reference/basic_stream_socket/linger.html -asio/reference/basic_stream_socket/local_endpoint.html -asio/reference/basic_stream_socket/local_endpoint/overload1.html -asio/reference/basic_stream_socket/local_endpoint/overload2.html -asio/reference/basic_stream_socket/lowest_layer.html -asio/reference/basic_stream_socket/lowest_layer/overload1.html -asio/reference/basic_stream_socket/lowest_layer/overload2.html -asio/reference/basic_stream_socket/lowest_layer_type.html -asio/reference/basic_stream_socket/max_connections.html -asio/reference/basic_stream_socket/max_listen_connections.html -asio/reference/basic_stream_socket/message_do_not_route.html -asio/reference/basic_stream_socket/message_end_of_record.html -asio/reference/basic_stream_socket/message_flags.html -asio/reference/basic_stream_socket/message_out_of_band.html -asio/reference/basic_stream_socket/message_peek.html -asio/reference/basic_stream_socket/native_handle.html -asio/reference/basic_stream_socket/native_handle_type.html -asio/reference/basic_stream_socket/native_non_blocking.html -asio/reference/basic_stream_socket/native_non_blocking/overload1.html -asio/reference/basic_stream_socket/native_non_blocking/overload2.html -asio/reference/basic_stream_socket/native_non_blocking/overload3.html -asio/reference/basic_stream_socket/non_blocking.html -asio/reference/basic_stream_socket/non_blocking/overload1.html -asio/reference/basic_stream_socket/non_blocking/overload2.html -asio/reference/basic_stream_socket/non_blocking/overload3.html -asio/reference/basic_stream_socket/open.html -asio/reference/basic_stream_socket/open/overload1.html -asio/reference/basic_stream_socket/open/overload2.html -asio/reference/basic_stream_socket/operator_eq_.html -asio/reference/basic_stream_socket/operator_eq_/overload1.html -asio/reference/basic_stream_socket/operator_eq_/overload2.html -asio/reference/basic_stream_socket/out_of_band_inline.html -asio/reference/basic_stream_socket/protocol_type.html -asio/reference/basic_stream_socket/read_some.html -asio/reference/basic_stream_socket/read_some/overload1.html -asio/reference/basic_stream_socket/read_some/overload2.html -asio/reference/basic_stream_socket/receive.html -asio/reference/basic_stream_socket/receive/overload1.html -asio/reference/basic_stream_socket/receive/overload2.html -asio/reference/basic_stream_socket/receive/overload3.html -asio/reference/basic_stream_socket/receive_buffer_size.html -asio/reference/basic_stream_socket/receive_low_watermark.html -asio/reference/basic_stream_socket/release.html -asio/reference/basic_stream_socket/release/overload1.html -asio/reference/basic_stream_socket/release/overload2.html -asio/reference/basic_stream_socket/remote_endpoint.html -asio/reference/basic_stream_socket/remote_endpoint/overload1.html -asio/reference/basic_stream_socket/remote_endpoint/overload2.html -asio/reference/basic_stream_socket/reuse_address.html -asio/reference/basic_stream_socket/send.html -asio/reference/basic_stream_socket/send/overload1.html -asio/reference/basic_stream_socket/send/overload2.html -asio/reference/basic_stream_socket/send/overload3.html -asio/reference/basic_stream_socket/send_buffer_size.html -asio/reference/basic_stream_socket/send_low_watermark.html -asio/reference/basic_stream_socket/set_option.html -asio/reference/basic_stream_socket/set_option/overload1.html -asio/reference/basic_stream_socket/set_option/overload2.html -asio/reference/basic_stream_socket/shutdown.html -asio/reference/basic_stream_socket/shutdown/overload1.html -asio/reference/basic_stream_socket/shutdown/overload2.html -asio/reference/basic_stream_socket/shutdown_type.html -asio/reference/basic_stream_socket/wait.html -asio/reference/basic_stream_socket/wait/overload1.html -asio/reference/basic_stream_socket/wait/overload2.html -asio/reference/basic_stream_socket/wait_type.html -asio/reference/basic_stream_socket/write_some.html -asio/reference/basic_stream_socket/write_some/overload1.html -asio/reference/basic_stream_socket/write_some/overload2.html -asio/reference/basic_stream_socket/_basic_stream_socket.html -asio/reference/basic_streambuf.html -asio/reference/basic_streambuf/basic_streambuf.html -asio/reference/basic_streambuf/capacity.html -asio/reference/basic_streambuf/commit.html -asio/reference/basic_streambuf/const_buffers_type.html -asio/reference/basic_streambuf/consume.html -asio/reference/basic_streambuf/data.html -asio/reference/basic_streambuf/max_size.html -asio/reference/basic_streambuf/mutable_buffers_type.html -asio/reference/basic_streambuf/overflow.html -asio/reference/basic_streambuf/prepare.html -asio/reference/basic_streambuf/reserve.html -asio/reference/basic_streambuf/size.html -asio/reference/basic_streambuf/underflow.html -asio/reference/basic_streambuf_ref.html -asio/reference/basic_streambuf_ref/basic_streambuf_ref.html -asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload1.html -asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload2.html -asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload3.html -asio/reference/basic_streambuf_ref/capacity.html -asio/reference/basic_streambuf_ref/commit.html -asio/reference/basic_streambuf_ref/const_buffers_type.html -asio/reference/basic_streambuf_ref/consume.html -asio/reference/basic_streambuf_ref/data.html -asio/reference/basic_streambuf_ref/max_size.html -asio/reference/basic_streambuf_ref/mutable_buffers_type.html -asio/reference/basic_streambuf_ref/prepare.html -asio/reference/basic_streambuf_ref/size.html -asio/reference/basic_waitable_timer.html -asio/reference/basic_waitable_timer/async_wait.html -asio/reference/basic_waitable_timer/basic_waitable_timer.html -asio/reference/basic_waitable_timer/basic_waitable_timer/overload1.html -asio/reference/basic_waitable_timer/basic_waitable_timer/overload2.html -asio/reference/basic_waitable_timer/basic_waitable_timer/overload3.html -asio/reference/basic_waitable_timer/basic_waitable_timer/overload4.html -asio/reference/basic_waitable_timer/cancel.html -asio/reference/basic_waitable_timer/cancel/overload1.html -asio/reference/basic_waitable_timer/cancel/overload2.html -asio/reference/basic_waitable_timer/cancel_one.html -asio/reference/basic_waitable_timer/cancel_one/overload1.html -asio/reference/basic_waitable_timer/cancel_one/overload2.html -asio/reference/basic_waitable_timer/clock_type.html -asio/reference/basic_waitable_timer/duration.html -asio/reference/basic_waitable_timer/executor_type.html -asio/reference/basic_waitable_timer/expires_after.html -asio/reference/basic_waitable_timer/expires_at.html -asio/reference/basic_waitable_timer/expires_at/overload1.html -asio/reference/basic_waitable_timer/expires_at/overload2.html -asio/reference/basic_waitable_timer/expires_at/overload3.html -asio/reference/basic_waitable_timer/expires_from_now.html -asio/reference/basic_waitable_timer/expires_from_now/overload1.html -asio/reference/basic_waitable_timer/expires_from_now/overload2.html -asio/reference/basic_waitable_timer/expires_from_now/overload3.html -asio/reference/basic_waitable_timer/expiry.html -asio/reference/basic_waitable_timer/get_executor.html -asio/reference/basic_waitable_timer/get_io_context.html -asio/reference/basic_waitable_timer/get_io_service.html -asio/reference/basic_waitable_timer/operator_eq_.html -asio/reference/basic_waitable_timer/time_point.html -asio/reference/basic_waitable_timer/traits_type.html -asio/reference/basic_waitable_timer/wait.html -asio/reference/basic_waitable_timer/wait/overload1.html -asio/reference/basic_waitable_timer/wait/overload2.html -asio/reference/basic_waitable_timer/_basic_waitable_timer.html -asio/reference/basic_yield_context.html -asio/reference/basic_yield_context/basic_yield_context.html -asio/reference/basic_yield_context/basic_yield_context/overload1.html -asio/reference/basic_yield_context/basic_yield_context/overload2.html -asio/reference/basic_yield_context/callee_type.html -asio/reference/basic_yield_context/caller_type.html -asio/reference/basic_yield_context/operator_lb__rb_.html -asio/reference/bind_executor.html -asio/reference/bind_executor/overload1.html -asio/reference/bind_executor/overload2.html -asio/reference/buffer.html -asio/reference/buffer/overload1.html -asio/reference/buffer/overload2.html -asio/reference/buffer/overload3.html -asio/reference/buffer/overload4.html -asio/reference/buffer/overload5.html -asio/reference/buffer/overload6.html -asio/reference/buffer/overload7.html -asio/reference/buffer/overload8.html -asio/reference/buffer/overload9.html -asio/reference/buffer/overload10.html -asio/reference/buffer/overload11.html -asio/reference/buffer/overload12.html -asio/reference/buffer/overload13.html -asio/reference/buffer/overload14.html -asio/reference/buffer/overload15.html -asio/reference/buffer/overload16.html -asio/reference/buffer/overload17.html -asio/reference/buffer/overload18.html -asio/reference/buffer/overload19.html -asio/reference/buffer/overload20.html -asio/reference/buffer/overload21.html -asio/reference/buffer/overload22.html -asio/reference/buffer/overload23.html -asio/reference/buffer/overload24.html -asio/reference/buffer/overload25.html -asio/reference/buffer/overload26.html -asio/reference/buffer/overload27.html -asio/reference/buffer/overload28.html -asio/reference/buffer/overload29.html -asio/reference/buffer/overload30.html -asio/reference/buffer/overload31.html -asio/reference/buffer/overload32.html -asio/reference/buffer_cast.html -asio/reference/buffer_cast/overload1.html -asio/reference/buffer_cast/overload2.html -asio/reference/buffer_copy.html -asio/reference/buffer_copy/overload1.html -asio/reference/buffer_copy/overload2.html -asio/reference/buffer_sequence_begin.html -asio/reference/buffer_sequence_begin/overload1.html -asio/reference/buffer_sequence_begin/overload2.html -asio/reference/buffer_sequence_begin/overload3.html -asio/reference/buffer_sequence_begin/overload4.html -asio/reference/buffer_sequence_end.html -asio/reference/buffer_sequence_end/overload1.html -asio/reference/buffer_sequence_end/overload2.html -asio/reference/buffer_sequence_end/overload3.html -asio/reference/buffer_sequence_end/overload4.html -asio/reference/buffer_size.html -asio/reference/buffered_read_stream.html -asio/reference/buffered_read_stream/async_fill.html -asio/reference/buffered_read_stream/async_read_some.html -asio/reference/buffered_read_stream/async_write_some.html -asio/reference/buffered_read_stream/buffered_read_stream.html -asio/reference/buffered_read_stream/buffered_read_stream/overload1.html -asio/reference/buffered_read_stream/buffered_read_stream/overload2.html -asio/reference/buffered_read_stream/close.html -asio/reference/buffered_read_stream/close/overload1.html -asio/reference/buffered_read_stream/close/overload2.html -asio/reference/buffered_read_stream/default_buffer_size.html -asio/reference/buffered_read_stream/executor_type.html -asio/reference/buffered_read_stream/fill.html -asio/reference/buffered_read_stream/fill/overload1.html -asio/reference/buffered_read_stream/fill/overload2.html -asio/reference/buffered_read_stream/get_executor.html -asio/reference/buffered_read_stream/get_io_context.html -asio/reference/buffered_read_stream/get_io_service.html -asio/reference/buffered_read_stream/in_avail.html -asio/reference/buffered_read_stream/in_avail/overload1.html -asio/reference/buffered_read_stream/in_avail/overload2.html -asio/reference/buffered_read_stream/lowest_layer.html -asio/reference/buffered_read_stream/lowest_layer/overload1.html -asio/reference/buffered_read_stream/lowest_layer/overload2.html -asio/reference/buffered_read_stream/lowest_layer_type.html -asio/reference/buffered_read_stream/next_layer.html -asio/reference/buffered_read_stream/next_layer_type.html -asio/reference/buffered_read_stream/peek.html -asio/reference/buffered_read_stream/peek/overload1.html -asio/reference/buffered_read_stream/peek/overload2.html -asio/reference/buffered_read_stream/read_some.html -asio/reference/buffered_read_stream/read_some/overload1.html -asio/reference/buffered_read_stream/read_some/overload2.html -asio/reference/buffered_read_stream/write_some.html -asio/reference/buffered_read_stream/write_some/overload1.html -asio/reference/buffered_read_stream/write_some/overload2.html -asio/reference/buffered_stream.html -asio/reference/buffered_stream/async_fill.html -asio/reference/buffered_stream/async_flush.html -asio/reference/buffered_stream/async_read_some.html -asio/reference/buffered_stream/async_write_some.html -asio/reference/buffered_stream/buffered_stream.html -asio/reference/buffered_stream/buffered_stream/overload1.html -asio/reference/buffered_stream/buffered_stream/overload2.html -asio/reference/buffered_stream/close.html -asio/reference/buffered_stream/close/overload1.html -asio/reference/buffered_stream/close/overload2.html -asio/reference/buffered_stream/executor_type.html -asio/reference/buffered_stream/fill.html -asio/reference/buffered_stream/fill/overload1.html -asio/reference/buffered_stream/fill/overload2.html -asio/reference/buffered_stream/flush.html -asio/reference/buffered_stream/flush/overload1.html -asio/reference/buffered_stream/flush/overload2.html -asio/reference/buffered_stream/get_executor.html -asio/reference/buffered_stream/get_io_context.html -asio/reference/buffered_stream/get_io_service.html -asio/reference/buffered_stream/in_avail.html -asio/reference/buffered_stream/in_avail/overload1.html -asio/reference/buffered_stream/in_avail/overload2.html -asio/reference/buffered_stream/lowest_layer.html -asio/reference/buffered_stream/lowest_layer/overload1.html -asio/reference/buffered_stream/lowest_layer/overload2.html -asio/reference/buffered_stream/lowest_layer_type.html -asio/reference/buffered_stream/next_layer.html -asio/reference/buffered_stream/next_layer_type.html -asio/reference/buffered_stream/peek.html -asio/reference/buffered_stream/peek/overload1.html -asio/reference/buffered_stream/peek/overload2.html -asio/reference/buffered_stream/read_some.html -asio/reference/buffered_stream/read_some/overload1.html -asio/reference/buffered_stream/read_some/overload2.html -asio/reference/buffered_stream/write_some.html -asio/reference/buffered_stream/write_some/overload1.html -asio/reference/buffered_stream/write_some/overload2.html -asio/reference/buffered_write_stream.html -asio/reference/buffered_write_stream/async_flush.html -asio/reference/buffered_write_stream/async_read_some.html -asio/reference/buffered_write_stream/async_write_some.html -asio/reference/buffered_write_stream/buffered_write_stream.html -asio/reference/buffered_write_stream/buffered_write_stream/overload1.html -asio/reference/buffered_write_stream/buffered_write_stream/overload2.html -asio/reference/buffered_write_stream/close.html -asio/reference/buffered_write_stream/close/overload1.html -asio/reference/buffered_write_stream/close/overload2.html -asio/reference/buffered_write_stream/default_buffer_size.html -asio/reference/buffered_write_stream/executor_type.html -asio/reference/buffered_write_stream/flush.html -asio/reference/buffered_write_stream/flush/overload1.html -asio/reference/buffered_write_stream/flush/overload2.html -asio/reference/buffered_write_stream/get_executor.html -asio/reference/buffered_write_stream/get_io_context.html -asio/reference/buffered_write_stream/get_io_service.html -asio/reference/buffered_write_stream/in_avail.html -asio/reference/buffered_write_stream/in_avail/overload1.html -asio/reference/buffered_write_stream/in_avail/overload2.html -asio/reference/buffered_write_stream/lowest_layer.html -asio/reference/buffered_write_stream/lowest_layer/overload1.html -asio/reference/buffered_write_stream/lowest_layer/overload2.html -asio/reference/buffered_write_stream/lowest_layer_type.html -asio/reference/buffered_write_stream/next_layer.html -asio/reference/buffered_write_stream/next_layer_type.html -asio/reference/buffered_write_stream/peek.html -asio/reference/buffered_write_stream/peek/overload1.html -asio/reference/buffered_write_stream/peek/overload2.html -asio/reference/buffered_write_stream/read_some.html -asio/reference/buffered_write_stream/read_some/overload1.html -asio/reference/buffered_write_stream/read_some/overload2.html -asio/reference/buffered_write_stream/write_some.html -asio/reference/buffered_write_stream/write_some/overload1.html -asio/reference/buffered_write_stream/write_some/overload2.html -asio/reference/buffers_begin.html -asio/reference/buffers_end.html -asio/reference/buffers_iterator.html -asio/reference/buffers_iterator/begin.html -asio/reference/buffers_iterator/buffers_iterator.html -asio/reference/buffers_iterator/difference_type.html -asio/reference/buffers_iterator/end.html -asio/reference/buffers_iterator/iterator_category.html -asio/reference/buffers_iterator/operator__star_.html -asio/reference/buffers_iterator/operator_not__eq_.html -asio/reference/buffers_iterator/operator_plus_.html -asio/reference/buffers_iterator/operator_plus_/overload1.html -asio/reference/buffers_iterator/operator_plus_/overload2.html -asio/reference/buffers_iterator/operator_plus__plus_.html -asio/reference/buffers_iterator/operator_plus__plus_/overload1.html -asio/reference/buffers_iterator/operator_plus__plus_/overload2.html -asio/reference/buffers_iterator/operator_plus__eq_.html -asio/reference/buffers_iterator/operator_minus_.html -asio/reference/buffers_iterator/operator_minus_/overload1.html -asio/reference/buffers_iterator/operator_minus_/overload2.html -asio/reference/buffers_iterator/operator_minus__minus_.html -asio/reference/buffers_iterator/operator_minus__minus_/overload1.html -asio/reference/buffers_iterator/operator_minus__minus_/overload2.html -asio/reference/buffers_iterator/operator_minus__eq_.html -asio/reference/buffers_iterator/operator_arrow_.html -asio/reference/buffers_iterator/operator_lt_.html -asio/reference/buffers_iterator/operator_lt__eq_.html -asio/reference/buffers_iterator/operator_eq__eq_.html -asio/reference/buffers_iterator/operator_gt_.html -asio/reference/buffers_iterator/operator_gt__eq_.html -asio/reference/buffers_iterator/operator_lb__rb_.html -asio/reference/buffers_iterator/pointer.html -asio/reference/buffers_iterator/reference.html -asio/reference/buffers_iterator/value_type.html -asio/reference/connect.html -asio/reference/connect/overload1.html -asio/reference/connect/overload2.html -asio/reference/connect/overload3.html -asio/reference/connect/overload4.html -asio/reference/connect/overload5.html -asio/reference/connect/overload6.html -asio/reference/connect/overload7.html -asio/reference/connect/overload8.html -asio/reference/connect/overload9.html -asio/reference/connect/overload10.html -asio/reference/connect/overload11.html -asio/reference/connect/overload12.html -asio/reference/const_buffer.html -asio/reference/const_buffer/const_buffer.html -asio/reference/const_buffer/const_buffer/overload1.html -asio/reference/const_buffer/const_buffer/overload2.html -asio/reference/const_buffer/const_buffer/overload3.html -asio/reference/const_buffer/data.html -asio/reference/const_buffer/operator_plus_.html -asio/reference/const_buffer/operator_plus_/overload1.html -asio/reference/const_buffer/operator_plus_/overload2.html -asio/reference/const_buffer/operator_plus__eq_.html -asio/reference/const_buffer/size.html -asio/reference/const_buffers_1.html -asio/reference/const_buffers_1/begin.html -asio/reference/const_buffers_1/const_buffers_1.html -asio/reference/const_buffers_1/const_buffers_1/overload1.html -asio/reference/const_buffers_1/const_buffers_1/overload2.html -asio/reference/const_buffers_1/const_iterator.html -asio/reference/const_buffers_1/data.html -asio/reference/const_buffers_1/end.html -asio/reference/const_buffers_1/operator_plus_.html -asio/reference/const_buffers_1/operator_plus_/overload1.html -asio/reference/const_buffers_1/operator_plus_/overload2.html -asio/reference/const_buffers_1/operator_plus__eq_.html -asio/reference/const_buffers_1/size.html -asio/reference/const_buffers_1/value_type.html -asio/reference/coroutine.html -asio/reference/coroutine/coroutine.html -asio/reference/coroutine/is_child.html -asio/reference/coroutine/is_complete.html -asio/reference/coroutine/is_parent.html -asio/reference/deadline_timer.html -asio/reference/defer.html -asio/reference/defer/overload1.html -asio/reference/defer/overload2.html -asio/reference/defer/overload3.html -asio/reference/dispatch.html -asio/reference/dispatch/overload1.html -asio/reference/dispatch/overload2.html -asio/reference/dispatch/overload3.html -asio/reference/dynamic_buffer.html -asio/reference/dynamic_buffer/overload1.html -asio/reference/dynamic_buffer/overload2.html -asio/reference/dynamic_buffer/overload3.html -asio/reference/dynamic_buffer/overload4.html -asio/reference/dynamic_string_buffer.html -asio/reference/dynamic_string_buffer/capacity.html -asio/reference/dynamic_string_buffer/commit.html -asio/reference/dynamic_string_buffer/const_buffers_type.html -asio/reference/dynamic_string_buffer/consume.html -asio/reference/dynamic_string_buffer/data.html -asio/reference/dynamic_string_buffer/dynamic_string_buffer.html -asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload1.html -asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload2.html -asio/reference/dynamic_string_buffer/max_size.html -asio/reference/dynamic_string_buffer/mutable_buffers_type.html -asio/reference/dynamic_string_buffer/prepare.html -asio/reference/dynamic_string_buffer/size.html -asio/reference/dynamic_vector_buffer.html -asio/reference/dynamic_vector_buffer/capacity.html -asio/reference/dynamic_vector_buffer/commit.html -asio/reference/dynamic_vector_buffer/const_buffers_type.html -asio/reference/dynamic_vector_buffer/consume.html -asio/reference/dynamic_vector_buffer/data.html -asio/reference/dynamic_vector_buffer/dynamic_vector_buffer.html -asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload1.html -asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload2.html -asio/reference/dynamic_vector_buffer/max_size.html -asio/reference/dynamic_vector_buffer/mutable_buffers_type.html -asio/reference/dynamic_vector_buffer/prepare.html -asio/reference/dynamic_vector_buffer/size.html -asio/reference/error__addrinfo_category.html -asio/reference/error__addrinfo_errors.html -asio/reference/error__basic_errors.html -asio/reference/error__get_addrinfo_category.html -asio/reference/error__get_misc_category.html -asio/reference/error__get_netdb_category.html -asio/reference/error__get_ssl_category.html -asio/reference/error__get_system_category.html -asio/reference/error__make_error_code.html -asio/reference/error__make_error_code/overload1.html -asio/reference/error__make_error_code/overload2.html -asio/reference/error__make_error_code/overload3.html -asio/reference/error__make_error_code/overload4.html -asio/reference/error__make_error_code/overload5.html -asio/reference/error__misc_category.html -asio/reference/error__misc_errors.html -asio/reference/error__netdb_category.html -asio/reference/error__netdb_errors.html -asio/reference/error__ssl_category.html -asio/reference/error__ssl_errors.html -asio/reference/error__system_category.html -asio/reference/error_category.html -asio/reference/error_category/message.html -asio/reference/error_category/name.html -asio/reference/error_category/operator_not__eq_.html -asio/reference/error_category/operator_eq__eq_.html -asio/reference/error_category/_error_category.html -asio/reference/error_code.html -asio/reference/error_code/assign.html -asio/reference/error_code/category.html -asio/reference/error_code/clear.html -asio/reference/error_code/error_code.html -asio/reference/error_code/error_code/overload1.html -asio/reference/error_code/error_code/overload2.html -asio/reference/error_code/error_code/overload3.html -asio/reference/error_code/message.html -asio/reference/error_code/operator_unspecified_bool_type.html -asio/reference/error_code/operator_not_.html -asio/reference/error_code/operator_not__eq_.html -asio/reference/error_code/operator_eq__eq_.html -asio/reference/error_code/unspecified_bool_true.html -asio/reference/error_code/unspecified_bool_type.html -asio/reference/error_code/value.html -asio/reference/error_code__unspecified_bool_type_t.html -asio/reference/execution_context.html -asio/reference/execution_context/add_service.html -asio/reference/execution_context/destroy.html -asio/reference/execution_context/execution_context.html -asio/reference/execution_context/fork_event.html -asio/reference/execution_context/has_service.html -asio/reference/execution_context/make_service.html -asio/reference/execution_context/notify_fork.html -asio/reference/execution_context/shutdown.html -asio/reference/execution_context/use_service.html -asio/reference/execution_context/use_service/overload1.html -asio/reference/execution_context/use_service/overload2.html -asio/reference/execution_context/_execution_context.html -asio/reference/execution_context__id.html -asio/reference/execution_context__id/id.html -asio/reference/execution_context__service.html -asio/reference/execution_context__service/context.html -asio/reference/execution_context__service/service.html -asio/reference/execution_context__service/_service.html -asio/reference/execution_context__service/notify_fork.html -asio/reference/execution_context__service/shutdown.html -asio/reference/executor.html -asio/reference/executor/context.html -asio/reference/executor/defer.html -asio/reference/executor/dispatch.html -asio/reference/executor/executor.html -asio/reference/executor/executor/overload1.html -asio/reference/executor/executor/overload2.html -asio/reference/executor/executor/overload3.html -asio/reference/executor/executor/overload4.html -asio/reference/executor/executor/overload5.html -asio/reference/executor/executor/overload6.html -asio/reference/executor/on_work_finished.html -asio/reference/executor/on_work_started.html -asio/reference/executor/operator_unspecified_bool_type.html -asio/reference/executor/operator_not__eq_.html -asio/reference/executor/operator_eq_.html -asio/reference/executor/operator_eq_/overload1.html -asio/reference/executor/operator_eq_/overload2.html -asio/reference/executor/operator_eq_/overload3.html -asio/reference/executor/operator_eq_/overload4.html -asio/reference/executor/operator_eq__eq_.html -asio/reference/executor/post.html -asio/reference/executor/target.html -asio/reference/executor/target/overload1.html -asio/reference/executor/target/overload2.html -asio/reference/executor/target_type.html -asio/reference/executor/unspecified_bool_true.html -asio/reference/executor/unspecified_bool_type.html -asio/reference/executor/_executor.html -asio/reference/executor__unspecified_bool_type_t.html -asio/reference/executor_arg.html -asio/reference/executor_arg_t.html -asio/reference/executor_arg_t/executor_arg_t.html -asio/reference/executor_binder.html -asio/reference/executor_binder/argument_type.html -asio/reference/executor_binder/executor_binder.html -asio/reference/executor_binder/executor_binder/overload1.html -asio/reference/executor_binder/executor_binder/overload2.html -asio/reference/executor_binder/executor_binder/overload3.html -asio/reference/executor_binder/executor_binder/overload4.html -asio/reference/executor_binder/executor_binder/overload5.html -asio/reference/executor_binder/executor_binder/overload6.html -asio/reference/executor_binder/executor_binder/overload7.html -asio/reference/executor_binder/executor_binder/overload8.html -asio/reference/executor_binder/executor_binder/overload9.html -asio/reference/executor_binder/executor_type.html -asio/reference/executor_binder/first_argument_type.html -asio/reference/executor_binder/get.html -asio/reference/executor_binder/get/overload1.html -asio/reference/executor_binder/get/overload2.html -asio/reference/executor_binder/get_executor.html -asio/reference/executor_binder/operator_lp__rp_.html -asio/reference/executor_binder/operator_lp__rp_/overload1.html -asio/reference/executor_binder/operator_lp__rp_/overload2.html -asio/reference/executor_binder/result_type.html -asio/reference/executor_binder/second_argument_type.html -asio/reference/executor_binder/target_type.html -asio/reference/executor_binder/_executor_binder.html -asio/reference/executor_work_guard.html -asio/reference/executor_work_guard/executor_type.html -asio/reference/executor_work_guard/executor_work_guard.html -asio/reference/executor_work_guard/executor_work_guard/overload1.html -asio/reference/executor_work_guard/executor_work_guard/overload2.html -asio/reference/executor_work_guard/executor_work_guard/overload3.html -asio/reference/executor_work_guard/get_executor.html -asio/reference/executor_work_guard/owns_work.html -asio/reference/executor_work_guard/reset.html -asio/reference/executor_work_guard/_executor_work_guard.html -asio/reference/experimental__await_token.html -asio/reference/experimental__await_token/await_token.html -asio/reference/experimental__await_token/await_token/overload1.html -asio/reference/experimental__await_token/await_token/overload2.html -asio/reference/experimental__await_token/executor_type.html -asio/reference/experimental__await_token/get_executor.html -asio/reference/experimental__awaitable.html -asio/reference/experimental__awaitable/awaitable.html -asio/reference/experimental__awaitable/executor_type.html -asio/reference/experimental__awaitable/value_type.html -asio/reference/experimental__awaitable/_awaitable.html -asio/reference/experimental__co_spawn.html -asio/reference/experimental__co_spawn/overload1.html -asio/reference/experimental__co_spawn/overload2.html -asio/reference/experimental__co_spawn/overload3.html -asio/reference/experimental__detached.html -asio/reference/experimental__detached_t.html -asio/reference/experimental__detached_t/detached_t.html -asio/reference/experimental__redirect_error.html -asio/reference/experimental__redirect_error_t.html -asio/reference/experimental__redirect_error_t/ec_.html -asio/reference/experimental__redirect_error_t/redirect_error_t.html -asio/reference/experimental__redirect_error_t/token_.html -asio/reference/experimental__this_coro__executor.html -asio/reference/experimental__this_coro__executor_t.html -asio/reference/experimental__this_coro__token.html -asio/reference/experimental__this_coro__token_t.html -asio/reference/generic__basic_endpoint.html -asio/reference/generic__basic_endpoint/basic_endpoint.html -asio/reference/generic__basic_endpoint/basic_endpoint/overload1.html -asio/reference/generic__basic_endpoint/basic_endpoint/overload2.html -asio/reference/generic__basic_endpoint/basic_endpoint/overload3.html -asio/reference/generic__basic_endpoint/basic_endpoint/overload4.html -asio/reference/generic__basic_endpoint/capacity.html -asio/reference/generic__basic_endpoint/data.html -asio/reference/generic__basic_endpoint/data/overload1.html -asio/reference/generic__basic_endpoint/data/overload2.html -asio/reference/generic__basic_endpoint/data_type.html -asio/reference/generic__basic_endpoint/operator_not__eq_.html -asio/reference/generic__basic_endpoint/operator_lt_.html -asio/reference/generic__basic_endpoint/operator_lt__eq_.html -asio/reference/generic__basic_endpoint/operator_eq_.html -asio/reference/generic__basic_endpoint/operator_eq__eq_.html -asio/reference/generic__basic_endpoint/operator_gt_.html -asio/reference/generic__basic_endpoint/operator_gt__eq_.html -asio/reference/generic__basic_endpoint/protocol.html -asio/reference/generic__basic_endpoint/protocol_type.html -asio/reference/generic__basic_endpoint/resize.html -asio/reference/generic__basic_endpoint/size.html -asio/reference/generic__datagram_protocol.html -asio/reference/generic__datagram_protocol/datagram_protocol.html -asio/reference/generic__datagram_protocol/datagram_protocol/overload1.html -asio/reference/generic__datagram_protocol/datagram_protocol/overload2.html -asio/reference/generic__datagram_protocol/endpoint.html -asio/reference/generic__datagram_protocol/family.html -asio/reference/generic__datagram_protocol/operator_not__eq_.html -asio/reference/generic__datagram_protocol/operator_eq__eq_.html -asio/reference/generic__datagram_protocol/protocol.html -asio/reference/generic__datagram_protocol/socket.html -asio/reference/generic__datagram_protocol/type.html -asio/reference/generic__raw_protocol.html -asio/reference/generic__raw_protocol/endpoint.html -asio/reference/generic__raw_protocol/family.html -asio/reference/generic__raw_protocol/operator_not__eq_.html -asio/reference/generic__raw_protocol/operator_eq__eq_.html -asio/reference/generic__raw_protocol/protocol.html -asio/reference/generic__raw_protocol/raw_protocol.html -asio/reference/generic__raw_protocol/raw_protocol/overload1.html -asio/reference/generic__raw_protocol/raw_protocol/overload2.html -asio/reference/generic__raw_protocol/socket.html -asio/reference/generic__raw_protocol/type.html -asio/reference/generic__seq_packet_protocol.html -asio/reference/generic__seq_packet_protocol/endpoint.html -asio/reference/generic__seq_packet_protocol/family.html -asio/reference/generic__seq_packet_protocol/operator_not__eq_.html -asio/reference/generic__seq_packet_protocol/operator_eq__eq_.html -asio/reference/generic__seq_packet_protocol/protocol.html -asio/reference/generic__seq_packet_protocol/seq_packet_protocol.html -asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload1.html -asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload2.html -asio/reference/generic__seq_packet_protocol/socket.html -asio/reference/generic__seq_packet_protocol/type.html -asio/reference/generic__stream_protocol.html -asio/reference/generic__stream_protocol/endpoint.html -asio/reference/generic__stream_protocol/family.html -asio/reference/generic__stream_protocol/iostream.html -asio/reference/generic__stream_protocol/operator_not__eq_.html -asio/reference/generic__stream_protocol/operator_eq__eq_.html -asio/reference/generic__stream_protocol/protocol.html -asio/reference/generic__stream_protocol/socket.html -asio/reference/generic__stream_protocol/stream_protocol.html -asio/reference/generic__stream_protocol/stream_protocol/overload1.html -asio/reference/generic__stream_protocol/stream_protocol/overload2.html -asio/reference/generic__stream_protocol/type.html -asio/reference/get_associated_allocator.html -asio/reference/get_associated_allocator/overload1.html -asio/reference/get_associated_allocator/overload2.html -asio/reference/get_associated_executor.html -asio/reference/get_associated_executor/overload1.html -asio/reference/get_associated_executor/overload2.html -asio/reference/get_associated_executor/overload3.html -asio/reference/handler_type.html -asio/reference/handler_type/type.html -asio/reference/has_service.html -asio/reference/high_resolution_timer.html -asio/reference/invalid_service_owner.html -asio/reference/invalid_service_owner/invalid_service_owner.html -asio/reference/io_context.html -asio/reference/io_context/add_service.html -asio/reference/io_context/count_type.html -asio/reference/io_context/destroy.html -asio/reference/io_context/dispatch.html -asio/reference/io_context/fork_event.html -asio/reference/io_context/get_executor.html -asio/reference/io_context/has_service.html -asio/reference/io_context/io_context.html -asio/reference/io_context/io_context/overload1.html -asio/reference/io_context/io_context/overload2.html -asio/reference/io_context/make_service.html -asio/reference/io_context/notify_fork.html -asio/reference/io_context/poll.html -asio/reference/io_context/poll/overload1.html -asio/reference/io_context/poll/overload2.html -asio/reference/io_context/poll_one.html -asio/reference/io_context/poll_one/overload1.html -asio/reference/io_context/poll_one/overload2.html -asio/reference/io_context/post.html -asio/reference/io_context/reset.html -asio/reference/io_context/restart.html -asio/reference/io_context/run.html -asio/reference/io_context/run/overload1.html -asio/reference/io_context/run/overload2.html -asio/reference/io_context/run_for.html -asio/reference/io_context/run_one.html -asio/reference/io_context/run_one/overload1.html -asio/reference/io_context/run_one/overload2.html -asio/reference/io_context/run_one_for.html -asio/reference/io_context/run_one_until.html -asio/reference/io_context/run_until.html -asio/reference/io_context/shutdown.html -asio/reference/io_context/stop.html -asio/reference/io_context/stopped.html -asio/reference/io_context/use_service.html -asio/reference/io_context/use_service/overload1.html -asio/reference/io_context/use_service/overload2.html -asio/reference/io_context/wrap.html -asio/reference/io_context/_io_context.html -asio/reference/io_context__executor_type.html -asio/reference/io_context__executor_type/context.html -asio/reference/io_context__executor_type/defer.html -asio/reference/io_context__executor_type/dispatch.html -asio/reference/io_context__executor_type/on_work_finished.html -asio/reference/io_context__executor_type/on_work_started.html -asio/reference/io_context__executor_type/operator_not__eq_.html -asio/reference/io_context__executor_type/operator_eq__eq_.html -asio/reference/io_context__executor_type/post.html -asio/reference/io_context__executor_type/running_in_this_thread.html -asio/reference/io_context__service.html -asio/reference/io_context__service/get_io_context.html -asio/reference/io_context__service/get_io_service.html -asio/reference/io_context__service/service.html -asio/reference/io_context__service/_service.html -asio/reference/io_context__strand.html -asio/reference/io_context__strand/context.html -asio/reference/io_context__strand/defer.html -asio/reference/io_context__strand/dispatch.html -asio/reference/io_context__strand/dispatch/overload1.html -asio/reference/io_context__strand/dispatch/overload2.html -asio/reference/io_context__strand/get_io_context.html -asio/reference/io_context__strand/get_io_service.html -asio/reference/io_context__strand/on_work_finished.html -asio/reference/io_context__strand/on_work_started.html -asio/reference/io_context__strand/operator_not__eq_.html -asio/reference/io_context__strand/operator_eq__eq_.html -asio/reference/io_context__strand/post.html -asio/reference/io_context__strand/post/overload1.html -asio/reference/io_context__strand/post/overload2.html -asio/reference/io_context__strand/running_in_this_thread.html -asio/reference/io_context__strand/strand.html -asio/reference/io_context__strand/wrap.html -asio/reference/io_context__strand/_strand.html -asio/reference/io_context__work.html -asio/reference/io_context__work/get_io_context.html -asio/reference/io_context__work/get_io_service.html -asio/reference/io_context__work/work.html -asio/reference/io_context__work/work/overload1.html -asio/reference/io_context__work/work/overload2.html -asio/reference/io_context__work/_work.html -asio/reference/io_service.html -asio/reference/ip__address.html -asio/reference/ip__address/address.html -asio/reference/ip__address/address/overload1.html -asio/reference/ip__address/address/overload2.html -asio/reference/ip__address/address/overload3.html -asio/reference/ip__address/address/overload4.html -asio/reference/ip__address/from_string.html -asio/reference/ip__address/from_string/overload1.html -asio/reference/ip__address/from_string/overload2.html -asio/reference/ip__address/from_string/overload3.html -asio/reference/ip__address/from_string/overload4.html -asio/reference/ip__address/is_loopback.html -asio/reference/ip__address/is_multicast.html -asio/reference/ip__address/is_unspecified.html -asio/reference/ip__address/is_v4.html -asio/reference/ip__address/is_v6.html -asio/reference/ip__address/make_address.html -asio/reference/ip__address/make_address/overload1.html -asio/reference/ip__address/make_address/overload2.html -asio/reference/ip__address/make_address/overload3.html -asio/reference/ip__address/make_address/overload4.html -asio/reference/ip__address/make_address/overload5.html -asio/reference/ip__address/make_address/overload6.html -asio/reference/ip__address/operator_not__eq_.html -asio/reference/ip__address/operator_lt_.html -asio/reference/ip__address/operator_lt__lt_.html -asio/reference/ip__address/operator_lt__eq_.html -asio/reference/ip__address/operator_eq_.html -asio/reference/ip__address/operator_eq_/overload1.html -asio/reference/ip__address/operator_eq_/overload2.html -asio/reference/ip__address/operator_eq_/overload3.html -asio/reference/ip__address/operator_eq__eq_.html -asio/reference/ip__address/operator_gt_.html -asio/reference/ip__address/operator_gt__eq_.html -asio/reference/ip__address/to_string.html -asio/reference/ip__address/to_string/overload1.html -asio/reference/ip__address/to_string/overload2.html -asio/reference/ip__address/to_v4.html -asio/reference/ip__address/to_v6.html -asio/reference/ip__address_v4.html -asio/reference/ip__address_v4/address_v4.html -asio/reference/ip__address_v4/address_v4/overload1.html -asio/reference/ip__address_v4/address_v4/overload2.html -asio/reference/ip__address_v4/address_v4/overload3.html -asio/reference/ip__address_v4/address_v4/overload4.html -asio/reference/ip__address_v4/any.html -asio/reference/ip__address_v4/broadcast.html -asio/reference/ip__address_v4/broadcast/overload1.html -asio/reference/ip__address_v4/broadcast/overload2.html -asio/reference/ip__address_v4/bytes_type.html -asio/reference/ip__address_v4/from_string.html -asio/reference/ip__address_v4/from_string/overload1.html -asio/reference/ip__address_v4/from_string/overload2.html -asio/reference/ip__address_v4/from_string/overload3.html -asio/reference/ip__address_v4/from_string/overload4.html -asio/reference/ip__address_v4/is_class_a.html -asio/reference/ip__address_v4/is_class_b.html -asio/reference/ip__address_v4/is_class_c.html -asio/reference/ip__address_v4/is_loopback.html -asio/reference/ip__address_v4/is_multicast.html -asio/reference/ip__address_v4/is_unspecified.html -asio/reference/ip__address_v4/loopback.html -asio/reference/ip__address_v4/make_address_v4.html -asio/reference/ip__address_v4/make_address_v4/overload1.html -asio/reference/ip__address_v4/make_address_v4/overload2.html -asio/reference/ip__address_v4/make_address_v4/overload3.html -asio/reference/ip__address_v4/make_address_v4/overload4.html -asio/reference/ip__address_v4/make_address_v4/overload5.html -asio/reference/ip__address_v4/make_address_v4/overload6.html -asio/reference/ip__address_v4/make_address_v4/overload7.html -asio/reference/ip__address_v4/make_address_v4/overload8.html -asio/reference/ip__address_v4/make_address_v4/overload9.html -asio/reference/ip__address_v4/make_network_v4.html -asio/reference/ip__address_v4/make_network_v4/overload1.html -asio/reference/ip__address_v4/make_network_v4/overload2.html -asio/reference/ip__address_v4/netmask.html -asio/reference/ip__address_v4/operator_not__eq_.html -asio/reference/ip__address_v4/operator_lt_.html -asio/reference/ip__address_v4/operator_lt__lt_.html -asio/reference/ip__address_v4/operator_lt__lt_/overload1.html -asio/reference/ip__address_v4/operator_lt__lt_/overload2.html -asio/reference/ip__address_v4/operator_lt__eq_.html -asio/reference/ip__address_v4/operator_eq_.html -asio/reference/ip__address_v4/operator_eq__eq_.html -asio/reference/ip__address_v4/operator_gt_.html -asio/reference/ip__address_v4/operator_gt__eq_.html -asio/reference/ip__address_v4/to_bytes.html -asio/reference/ip__address_v4/to_string.html -asio/reference/ip__address_v4/to_string/overload1.html -asio/reference/ip__address_v4/to_string/overload2.html -asio/reference/ip__address_v4/to_uint.html -asio/reference/ip__address_v4/to_ulong.html -asio/reference/ip__address_v4/uint_type.html -asio/reference/ip__address_v4_iterator.html -asio/reference/ip__address_v4_range.html -asio/reference/ip__address_v6.html -asio/reference/ip__address_v6/address_v6.html -asio/reference/ip__address_v6/address_v6/overload1.html -asio/reference/ip__address_v6/address_v6/overload2.html -asio/reference/ip__address_v6/address_v6/overload3.html -asio/reference/ip__address_v6/any.html -asio/reference/ip__address_v6/bytes_type.html -asio/reference/ip__address_v6/from_string.html -asio/reference/ip__address_v6/from_string/overload1.html -asio/reference/ip__address_v6/from_string/overload2.html -asio/reference/ip__address_v6/from_string/overload3.html -asio/reference/ip__address_v6/from_string/overload4.html -asio/reference/ip__address_v6/is_link_local.html -asio/reference/ip__address_v6/is_loopback.html -asio/reference/ip__address_v6/is_multicast.html -asio/reference/ip__address_v6/is_multicast_global.html -asio/reference/ip__address_v6/is_multicast_link_local.html -asio/reference/ip__address_v6/is_multicast_node_local.html -asio/reference/ip__address_v6/is_multicast_org_local.html -asio/reference/ip__address_v6/is_multicast_site_local.html -asio/reference/ip__address_v6/is_site_local.html -asio/reference/ip__address_v6/is_unspecified.html -asio/reference/ip__address_v6/is_v4_compatible.html -asio/reference/ip__address_v6/is_v4_mapped.html -asio/reference/ip__address_v6/loopback.html -asio/reference/ip__address_v6/make_address_v6.html -asio/reference/ip__address_v6/make_address_v6/overload1.html -asio/reference/ip__address_v6/make_address_v6/overload2.html -asio/reference/ip__address_v6/make_address_v6/overload3.html -asio/reference/ip__address_v6/make_address_v6/overload4.html -asio/reference/ip__address_v6/make_address_v6/overload5.html -asio/reference/ip__address_v6/make_address_v6/overload6.html -asio/reference/ip__address_v6/make_address_v6/overload7.html -asio/reference/ip__address_v6/make_address_v6/overload8.html -asio/reference/ip__address_v6/make_network_v6.html -asio/reference/ip__address_v6/operator_not__eq_.html -asio/reference/ip__address_v6/operator_lt_.html -asio/reference/ip__address_v6/operator_lt__lt_.html -asio/reference/ip__address_v6/operator_lt__lt_/overload1.html -asio/reference/ip__address_v6/operator_lt__lt_/overload2.html -asio/reference/ip__address_v6/operator_lt__eq_.html -asio/reference/ip__address_v6/operator_eq_.html -asio/reference/ip__address_v6/operator_eq__eq_.html -asio/reference/ip__address_v6/operator_gt_.html -asio/reference/ip__address_v6/operator_gt__eq_.html -asio/reference/ip__address_v6/scope_id.html -asio/reference/ip__address_v6/scope_id/overload1.html -asio/reference/ip__address_v6/scope_id/overload2.html -asio/reference/ip__address_v6/to_bytes.html -asio/reference/ip__address_v6/to_string.html -asio/reference/ip__address_v6/to_string/overload1.html -asio/reference/ip__address_v6/to_string/overload2.html -asio/reference/ip__address_v6/to_v4.html -asio/reference/ip__address_v6/v4_compatible.html -asio/reference/ip__address_v6/v4_mapped.html -asio/reference/ip__address_v6_iterator.html -asio/reference/ip__address_v6_range.html -asio/reference/ip__bad_address_cast.html -asio/reference/ip__bad_address_cast/bad_address_cast.html -asio/reference/ip__bad_address_cast/what.html -asio/reference/ip__bad_address_cast/_bad_address_cast.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload1.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload2.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/difference_type.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/iterator_category.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator__star_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_not__eq_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload1.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload2.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload1.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload2.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_arrow_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq__eq_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/pointer.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/reference.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/value_type.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload1.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload2.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/difference_type.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/iterator_category.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator__star_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_not__eq_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload1.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload2.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload1.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload2.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_arrow_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq__eq_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/pointer.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/reference.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/value_type.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload1.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload2.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload3.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/begin.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/empty.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/end.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/find.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/iterator.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/operator_eq_.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/size.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload1.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload2.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload3.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/begin.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/empty.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/end.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/find.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/iterator.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/operator_eq_.html -asio/reference/ip__basic_endpoint.html -asio/reference/ip__basic_endpoint/address.html -asio/reference/ip__basic_endpoint/address/overload1.html -asio/reference/ip__basic_endpoint/address/overload2.html -asio/reference/ip__basic_endpoint/basic_endpoint.html -asio/reference/ip__basic_endpoint/basic_endpoint/overload1.html -asio/reference/ip__basic_endpoint/basic_endpoint/overload2.html -asio/reference/ip__basic_endpoint/basic_endpoint/overload3.html -asio/reference/ip__basic_endpoint/basic_endpoint/overload4.html -asio/reference/ip__basic_endpoint/basic_endpoint/overload5.html -asio/reference/ip__basic_endpoint/capacity.html -asio/reference/ip__basic_endpoint/data.html -asio/reference/ip__basic_endpoint/data/overload1.html -asio/reference/ip__basic_endpoint/data/overload2.html -asio/reference/ip__basic_endpoint/data_type.html -asio/reference/ip__basic_endpoint/operator_not__eq_.html -asio/reference/ip__basic_endpoint/operator_lt_.html -asio/reference/ip__basic_endpoint/operator_lt__lt_.html -asio/reference/ip__basic_endpoint/operator_lt__eq_.html -asio/reference/ip__basic_endpoint/operator_eq_.html -asio/reference/ip__basic_endpoint/operator_eq_/overload1.html -asio/reference/ip__basic_endpoint/operator_eq_/overload2.html -asio/reference/ip__basic_endpoint/operator_eq__eq_.html -asio/reference/ip__basic_endpoint/operator_gt_.html -asio/reference/ip__basic_endpoint/operator_gt__eq_.html -asio/reference/ip__basic_endpoint/port.html -asio/reference/ip__basic_endpoint/port/overload1.html -asio/reference/ip__basic_endpoint/port/overload2.html -asio/reference/ip__basic_endpoint/protocol.html -asio/reference/ip__basic_endpoint/protocol_type.html -asio/reference/ip__basic_endpoint/resize.html -asio/reference/ip__basic_endpoint/size.html -asio/reference/ip__basic_resolver.html -asio/reference/ip__basic_resolver/address_configured.html -asio/reference/ip__basic_resolver/all_matching.html -asio/reference/ip__basic_resolver/async_resolve.html -asio/reference/ip__basic_resolver/async_resolve/overload1.html -asio/reference/ip__basic_resolver/async_resolve/overload2.html -asio/reference/ip__basic_resolver/async_resolve/overload3.html -asio/reference/ip__basic_resolver/async_resolve/overload4.html -asio/reference/ip__basic_resolver/async_resolve/overload5.html -asio/reference/ip__basic_resolver/async_resolve/overload6.html -asio/reference/ip__basic_resolver/basic_resolver.html -asio/reference/ip__basic_resolver/basic_resolver/overload1.html -asio/reference/ip__basic_resolver/basic_resolver/overload2.html -asio/reference/ip__basic_resolver/cancel.html -asio/reference/ip__basic_resolver/canonical_name.html -asio/reference/ip__basic_resolver/endpoint_type.html -asio/reference/ip__basic_resolver/executor_type.html -asio/reference/ip__basic_resolver/flags.html -asio/reference/ip__basic_resolver/get_executor.html -asio/reference/ip__basic_resolver/get_io_context.html -asio/reference/ip__basic_resolver/get_io_service.html -asio/reference/ip__basic_resolver/iterator.html -asio/reference/ip__basic_resolver/numeric_host.html -asio/reference/ip__basic_resolver/numeric_service.html -asio/reference/ip__basic_resolver/operator_eq_.html -asio/reference/ip__basic_resolver/passive.html -asio/reference/ip__basic_resolver/protocol_type.html -asio/reference/ip__basic_resolver/query.html -asio/reference/ip__basic_resolver/resolve.html -asio/reference/ip__basic_resolver/resolve/overload1.html -asio/reference/ip__basic_resolver/resolve/overload2.html -asio/reference/ip__basic_resolver/resolve/overload3.html -asio/reference/ip__basic_resolver/resolve/overload4.html -asio/reference/ip__basic_resolver/resolve/overload5.html -asio/reference/ip__basic_resolver/resolve/overload6.html -asio/reference/ip__basic_resolver/resolve/overload7.html -asio/reference/ip__basic_resolver/resolve/overload8.html -asio/reference/ip__basic_resolver/resolve/overload9.html -asio/reference/ip__basic_resolver/resolve/overload10.html -asio/reference/ip__basic_resolver/resolve/overload11.html -asio/reference/ip__basic_resolver/resolve/overload12.html -asio/reference/ip__basic_resolver/results_type.html -asio/reference/ip__basic_resolver/v4_mapped.html -asio/reference/ip__basic_resolver/_basic_resolver.html -asio/reference/ip__basic_resolver_entry.html -asio/reference/ip__basic_resolver_entry/basic_resolver_entry.html -asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload1.html -asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload2.html -asio/reference/ip__basic_resolver_entry/endpoint.html -asio/reference/ip__basic_resolver_entry/endpoint_type.html -asio/reference/ip__basic_resolver_entry/host_name.html -asio/reference/ip__basic_resolver_entry/host_name/overload1.html -asio/reference/ip__basic_resolver_entry/host_name/overload2.html -asio/reference/ip__basic_resolver_entry/operator_endpoint_type.html -asio/reference/ip__basic_resolver_entry/protocol_type.html -asio/reference/ip__basic_resolver_entry/service_name.html -asio/reference/ip__basic_resolver_entry/service_name/overload1.html -asio/reference/ip__basic_resolver_entry/service_name/overload2.html -asio/reference/ip__basic_resolver_iterator.html -asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator.html -asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload1.html -asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload2.html -asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload3.html -asio/reference/ip__basic_resolver_iterator/dereference.html -asio/reference/ip__basic_resolver_iterator/difference_type.html -asio/reference/ip__basic_resolver_iterator/equal.html -asio/reference/ip__basic_resolver_iterator/increment.html -asio/reference/ip__basic_resolver_iterator/index_.html -asio/reference/ip__basic_resolver_iterator/iterator_category.html -asio/reference/ip__basic_resolver_iterator/operator__star_.html -asio/reference/ip__basic_resolver_iterator/operator_not__eq_.html -asio/reference/ip__basic_resolver_iterator/operator_plus__plus_.html -asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload1.html -asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload2.html -asio/reference/ip__basic_resolver_iterator/operator_arrow_.html -asio/reference/ip__basic_resolver_iterator/operator_eq_.html -asio/reference/ip__basic_resolver_iterator/operator_eq_/overload1.html -asio/reference/ip__basic_resolver_iterator/operator_eq_/overload2.html -asio/reference/ip__basic_resolver_iterator/operator_eq__eq_.html -asio/reference/ip__basic_resolver_iterator/pointer.html -asio/reference/ip__basic_resolver_iterator/reference.html -asio/reference/ip__basic_resolver_iterator/value_type.html -asio/reference/ip__basic_resolver_iterator/values_.html -asio/reference/ip__basic_resolver_query.html -asio/reference/ip__basic_resolver_query/address_configured.html -asio/reference/ip__basic_resolver_query/all_matching.html -asio/reference/ip__basic_resolver_query/basic_resolver_query.html -asio/reference/ip__basic_resolver_query/basic_resolver_query/overload1.html -asio/reference/ip__basic_resolver_query/basic_resolver_query/overload2.html -asio/reference/ip__basic_resolver_query/basic_resolver_query/overload3.html -asio/reference/ip__basic_resolver_query/basic_resolver_query/overload4.html -asio/reference/ip__basic_resolver_query/canonical_name.html -asio/reference/ip__basic_resolver_query/flags.html -asio/reference/ip__basic_resolver_query/hints.html -asio/reference/ip__basic_resolver_query/host_name.html -asio/reference/ip__basic_resolver_query/numeric_host.html -asio/reference/ip__basic_resolver_query/numeric_service.html -asio/reference/ip__basic_resolver_query/passive.html -asio/reference/ip__basic_resolver_query/protocol_type.html -asio/reference/ip__basic_resolver_query/service_name.html -asio/reference/ip__basic_resolver_query/v4_mapped.html -asio/reference/ip__basic_resolver_results.html -asio/reference/ip__basic_resolver_results/basic_resolver_results.html -asio/reference/ip__basic_resolver_results/basic_resolver_results/overload1.html -asio/reference/ip__basic_resolver_results/basic_resolver_results/overload2.html -asio/reference/ip__basic_resolver_results/basic_resolver_results/overload3.html -asio/reference/ip__basic_resolver_results/begin.html -asio/reference/ip__basic_resolver_results/cbegin.html -asio/reference/ip__basic_resolver_results/cend.html -asio/reference/ip__basic_resolver_results/const_iterator.html -asio/reference/ip__basic_resolver_results/const_reference.html -asio/reference/ip__basic_resolver_results/dereference.html -asio/reference/ip__basic_resolver_results/difference_type.html -asio/reference/ip__basic_resolver_results/empty.html -asio/reference/ip__basic_resolver_results/end.html -asio/reference/ip__basic_resolver_results/endpoint_type.html -asio/reference/ip__basic_resolver_results/equal.html -asio/reference/ip__basic_resolver_results/increment.html -asio/reference/ip__basic_resolver_results/index_.html -asio/reference/ip__basic_resolver_results/iterator.html -asio/reference/ip__basic_resolver_results/iterator_category.html -asio/reference/ip__basic_resolver_results/max_size.html -asio/reference/ip__basic_resolver_results/operator__star_.html -asio/reference/ip__basic_resolver_results/operator_not__eq_.html -asio/reference/ip__basic_resolver_results/operator_not__eq_/overload1.html -asio/reference/ip__basic_resolver_results/operator_not__eq_/overload2.html -asio/reference/ip__basic_resolver_results/operator_plus__plus_.html -asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload1.html -asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload2.html -asio/reference/ip__basic_resolver_results/operator_arrow_.html -asio/reference/ip__basic_resolver_results/operator_eq_.html -asio/reference/ip__basic_resolver_results/operator_eq_/overload1.html -asio/reference/ip__basic_resolver_results/operator_eq_/overload2.html -asio/reference/ip__basic_resolver_results/operator_eq__eq_.html -asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload1.html -asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload2.html -asio/reference/ip__basic_resolver_results/pointer.html -asio/reference/ip__basic_resolver_results/protocol_type.html -asio/reference/ip__basic_resolver_results/reference.html -asio/reference/ip__basic_resolver_results/size.html -asio/reference/ip__basic_resolver_results/size_type.html -asio/reference/ip__basic_resolver_results/swap.html -asio/reference/ip__basic_resolver_results/value_type.html -asio/reference/ip__basic_resolver_results/values_.html -asio/reference/ip__host_name.html -asio/reference/ip__host_name/overload1.html -asio/reference/ip__host_name/overload2.html -asio/reference/ip__icmp.html -asio/reference/ip__icmp/endpoint.html -asio/reference/ip__icmp/family.html -asio/reference/ip__icmp/operator_not__eq_.html -asio/reference/ip__icmp/operator_eq__eq_.html -asio/reference/ip__icmp/protocol.html -asio/reference/ip__icmp/resolver.html -asio/reference/ip__icmp/socket.html -asio/reference/ip__icmp/type.html -asio/reference/ip__icmp/v4.html -asio/reference/ip__icmp/v6.html -asio/reference/ip__multicast__enable_loopback.html -asio/reference/ip__multicast__hops.html -asio/reference/ip__multicast__join_group.html -asio/reference/ip__multicast__leave_group.html -asio/reference/ip__multicast__outbound_interface.html -asio/reference/ip__network_v4.html -asio/reference/ip__network_v4/address.html -asio/reference/ip__network_v4/broadcast.html -asio/reference/ip__network_v4/canonical.html -asio/reference/ip__network_v4/hosts.html -asio/reference/ip__network_v4/is_host.html -asio/reference/ip__network_v4/is_subnet_of.html -asio/reference/ip__network_v4/make_network_v4.html -asio/reference/ip__network_v4/make_network_v4/overload1.html -asio/reference/ip__network_v4/make_network_v4/overload2.html -asio/reference/ip__network_v4/make_network_v4/overload3.html -asio/reference/ip__network_v4/make_network_v4/overload4.html -asio/reference/ip__network_v4/make_network_v4/overload5.html -asio/reference/ip__network_v4/make_network_v4/overload6.html -asio/reference/ip__network_v4/netmask.html -asio/reference/ip__network_v4/network.html -asio/reference/ip__network_v4/network_v4.html -asio/reference/ip__network_v4/network_v4/overload1.html -asio/reference/ip__network_v4/network_v4/overload2.html -asio/reference/ip__network_v4/network_v4/overload3.html -asio/reference/ip__network_v4/network_v4/overload4.html -asio/reference/ip__network_v4/operator_not__eq_.html -asio/reference/ip__network_v4/operator_eq_.html -asio/reference/ip__network_v4/operator_eq__eq_.html -asio/reference/ip__network_v4/prefix_length.html -asio/reference/ip__network_v4/to_string.html -asio/reference/ip__network_v4/to_string/overload1.html -asio/reference/ip__network_v4/to_string/overload2.html -asio/reference/ip__network_v6.html -asio/reference/ip__network_v6/address.html -asio/reference/ip__network_v6/canonical.html -asio/reference/ip__network_v6/hosts.html -asio/reference/ip__network_v6/is_host.html -asio/reference/ip__network_v6/is_subnet_of.html -asio/reference/ip__network_v6/make_network_v6.html -asio/reference/ip__network_v6/make_network_v6/overload1.html -asio/reference/ip__network_v6/make_network_v6/overload2.html -asio/reference/ip__network_v6/make_network_v6/overload3.html -asio/reference/ip__network_v6/make_network_v6/overload4.html -asio/reference/ip__network_v6/make_network_v6/overload5.html -asio/reference/ip__network_v6/make_network_v6/overload6.html -asio/reference/ip__network_v6/network.html -asio/reference/ip__network_v6/network_v6.html -asio/reference/ip__network_v6/network_v6/overload1.html -asio/reference/ip__network_v6/network_v6/overload2.html -asio/reference/ip__network_v6/network_v6/overload3.html -asio/reference/ip__network_v6/operator_not__eq_.html -asio/reference/ip__network_v6/operator_eq_.html -asio/reference/ip__network_v6/operator_eq__eq_.html -asio/reference/ip__network_v6/prefix_length.html -asio/reference/ip__network_v6/to_string.html -asio/reference/ip__network_v6/to_string/overload1.html -asio/reference/ip__network_v6/to_string/overload2.html -asio/reference/ip__resolver_base.html -asio/reference/ip__resolver_base/address_configured.html -asio/reference/ip__resolver_base/all_matching.html -asio/reference/ip__resolver_base/canonical_name.html -asio/reference/ip__resolver_base/flags.html -asio/reference/ip__resolver_base/numeric_host.html -asio/reference/ip__resolver_base/numeric_service.html -asio/reference/ip__resolver_base/passive.html -asio/reference/ip__resolver_base/v4_mapped.html -asio/reference/ip__resolver_base/_resolver_base.html -asio/reference/ip__resolver_query_base.html -asio/reference/ip__resolver_query_base/address_configured.html -asio/reference/ip__resolver_query_base/all_matching.html -asio/reference/ip__resolver_query_base/canonical_name.html -asio/reference/ip__resolver_query_base/flags.html -asio/reference/ip__resolver_query_base/numeric_host.html -asio/reference/ip__resolver_query_base/numeric_service.html -asio/reference/ip__resolver_query_base/passive.html -asio/reference/ip__resolver_query_base/v4_mapped.html -asio/reference/ip__resolver_query_base/_resolver_query_base.html -asio/reference/ip__tcp.html -asio/reference/ip__tcp/acceptor.html -asio/reference/ip__tcp/endpoint.html -asio/reference/ip__tcp/family.html -asio/reference/ip__tcp/iostream.html -asio/reference/ip__tcp/no_delay.html -asio/reference/ip__tcp/operator_not__eq_.html -asio/reference/ip__tcp/operator_eq__eq_.html -asio/reference/ip__tcp/protocol.html -asio/reference/ip__tcp/resolver.html -asio/reference/ip__tcp/socket.html -asio/reference/ip__tcp/type.html -asio/reference/ip__tcp/v4.html -asio/reference/ip__tcp/v6.html -asio/reference/ip__udp.html -asio/reference/ip__udp/endpoint.html -asio/reference/ip__udp/family.html -asio/reference/ip__udp/operator_not__eq_.html -asio/reference/ip__udp/operator_eq__eq_.html -asio/reference/ip__udp/protocol.html -asio/reference/ip__udp/resolver.html -asio/reference/ip__udp/socket.html -asio/reference/ip__udp/type.html -asio/reference/ip__udp/v4.html -asio/reference/ip__udp/v6.html -asio/reference/ip__unicast__hops.html -asio/reference/ip__v4_mapped_t.html -asio/reference/ip__v6_only.html -asio/reference/is_const_buffer_sequence.html -asio/reference/is_dynamic_buffer.html -asio/reference/is_endpoint_sequence.html -asio/reference/is_endpoint_sequence/value.html -asio/reference/is_executor.html -asio/reference/is_match_condition.html -asio/reference/is_match_condition/value.html -asio/reference/is_mutable_buffer_sequence.html -asio/reference/is_read_buffered.html -asio/reference/is_read_buffered/value.html -asio/reference/is_write_buffered.html -asio/reference/is_write_buffered/value.html -asio/reference/local__basic_endpoint.html -asio/reference/local__basic_endpoint/basic_endpoint.html -asio/reference/local__basic_endpoint/basic_endpoint/overload1.html -asio/reference/local__basic_endpoint/basic_endpoint/overload2.html -asio/reference/local__basic_endpoint/basic_endpoint/overload3.html -asio/reference/local__basic_endpoint/basic_endpoint/overload4.html -asio/reference/local__basic_endpoint/capacity.html -asio/reference/local__basic_endpoint/data.html -asio/reference/local__basic_endpoint/data/overload1.html -asio/reference/local__basic_endpoint/data/overload2.html -asio/reference/local__basic_endpoint/data_type.html -asio/reference/local__basic_endpoint/operator_not__eq_.html -asio/reference/local__basic_endpoint/operator_lt_.html -asio/reference/local__basic_endpoint/operator_lt__lt_.html -asio/reference/local__basic_endpoint/operator_lt__eq_.html -asio/reference/local__basic_endpoint/operator_eq_.html -asio/reference/local__basic_endpoint/operator_eq__eq_.html -asio/reference/local__basic_endpoint/operator_gt_.html -asio/reference/local__basic_endpoint/operator_gt__eq_.html -asio/reference/local__basic_endpoint/path.html -asio/reference/local__basic_endpoint/path/overload1.html -asio/reference/local__basic_endpoint/path/overload2.html -asio/reference/local__basic_endpoint/path/overload3.html -asio/reference/local__basic_endpoint/protocol.html -asio/reference/local__basic_endpoint/protocol_type.html -asio/reference/local__basic_endpoint/resize.html -asio/reference/local__basic_endpoint/size.html -asio/reference/local__connect_pair.html -asio/reference/local__connect_pair/overload1.html -asio/reference/local__connect_pair/overload2.html -asio/reference/local__datagram_protocol.html -asio/reference/local__datagram_protocol/endpoint.html -asio/reference/local__datagram_protocol/family.html -asio/reference/local__datagram_protocol/protocol.html -asio/reference/local__datagram_protocol/socket.html -asio/reference/local__datagram_protocol/type.html -asio/reference/local__stream_protocol.html -asio/reference/local__stream_protocol/acceptor.html -asio/reference/local__stream_protocol/endpoint.html -asio/reference/local__stream_protocol/family.html -asio/reference/local__stream_protocol/iostream.html -asio/reference/local__stream_protocol/protocol.html -asio/reference/local__stream_protocol/socket.html -asio/reference/local__stream_protocol/type.html -asio/reference/make_work_guard.html -asio/reference/make_work_guard/overload1.html -asio/reference/make_work_guard/overload2.html -asio/reference/make_work_guard/overload3.html -asio/reference/make_work_guard/overload4.html -asio/reference/make_work_guard/overload5.html -asio/reference/mutable_buffer.html -asio/reference/mutable_buffer/data.html -asio/reference/mutable_buffer/mutable_buffer.html -asio/reference/mutable_buffer/mutable_buffer/overload1.html -asio/reference/mutable_buffer/mutable_buffer/overload2.html -asio/reference/mutable_buffer/operator_plus_.html -asio/reference/mutable_buffer/operator_plus_/overload1.html -asio/reference/mutable_buffer/operator_plus_/overload2.html -asio/reference/mutable_buffer/operator_plus__eq_.html -asio/reference/mutable_buffer/size.html -asio/reference/mutable_buffers_1.html -asio/reference/mutable_buffers_1/begin.html -asio/reference/mutable_buffers_1/const_iterator.html -asio/reference/mutable_buffers_1/data.html -asio/reference/mutable_buffers_1/end.html -asio/reference/mutable_buffers_1/mutable_buffers_1.html -asio/reference/mutable_buffers_1/mutable_buffers_1/overload1.html -asio/reference/mutable_buffers_1/mutable_buffers_1/overload2.html -asio/reference/mutable_buffers_1/operator_plus_.html -asio/reference/mutable_buffers_1/operator_plus_/overload1.html -asio/reference/mutable_buffers_1/operator_plus_/overload2.html -asio/reference/mutable_buffers_1/operator_plus__eq_.html -asio/reference/mutable_buffers_1/size.html -asio/reference/mutable_buffers_1/value_type.html -asio/reference/null_buffers.html -asio/reference/null_buffers/begin.html -asio/reference/null_buffers/const_iterator.html -asio/reference/null_buffers/end.html -asio/reference/null_buffers/value_type.html -asio/reference/operator_lt__lt_.html -asio/reference/placeholders__bytes_transferred.html -asio/reference/placeholders__endpoint.html -asio/reference/placeholders__error.html -asio/reference/placeholders__iterator.html -asio/reference/placeholders__results.html -asio/reference/placeholders__signal_number.html -asio/reference/posix__descriptor.html -asio/reference/posix__descriptor/assign.html -asio/reference/posix__descriptor/assign/overload1.html -asio/reference/posix__descriptor/assign/overload2.html -asio/reference/posix__descriptor/async_wait.html -asio/reference/posix__descriptor/bytes_readable.html -asio/reference/posix__descriptor/cancel.html -asio/reference/posix__descriptor/cancel/overload1.html -asio/reference/posix__descriptor/cancel/overload2.html -asio/reference/posix__descriptor/close.html -asio/reference/posix__descriptor/close/overload1.html -asio/reference/posix__descriptor/close/overload2.html -asio/reference/posix__descriptor/descriptor.html -asio/reference/posix__descriptor/descriptor/overload1.html -asio/reference/posix__descriptor/descriptor/overload2.html -asio/reference/posix__descriptor/descriptor/overload3.html -asio/reference/posix__descriptor/executor_type.html -asio/reference/posix__descriptor/get_executor.html -asio/reference/posix__descriptor/get_io_context.html -asio/reference/posix__descriptor/get_io_service.html -asio/reference/posix__descriptor/io_control.html -asio/reference/posix__descriptor/io_control/overload1.html -asio/reference/posix__descriptor/io_control/overload2.html -asio/reference/posix__descriptor/is_open.html -asio/reference/posix__descriptor/lowest_layer.html -asio/reference/posix__descriptor/lowest_layer/overload1.html -asio/reference/posix__descriptor/lowest_layer/overload2.html -asio/reference/posix__descriptor/lowest_layer_type.html -asio/reference/posix__descriptor/native_handle.html -asio/reference/posix__descriptor/native_handle_type.html -asio/reference/posix__descriptor/native_non_blocking.html -asio/reference/posix__descriptor/native_non_blocking/overload1.html -asio/reference/posix__descriptor/native_non_blocking/overload2.html -asio/reference/posix__descriptor/native_non_blocking/overload3.html -asio/reference/posix__descriptor/non_blocking.html -asio/reference/posix__descriptor/non_blocking/overload1.html -asio/reference/posix__descriptor/non_blocking/overload2.html -asio/reference/posix__descriptor/non_blocking/overload3.html -asio/reference/posix__descriptor/operator_eq_.html -asio/reference/posix__descriptor/release.html -asio/reference/posix__descriptor/wait.html -asio/reference/posix__descriptor/wait/overload1.html -asio/reference/posix__descriptor/wait/overload2.html -asio/reference/posix__descriptor/wait_type.html -asio/reference/posix__descriptor/_descriptor.html -asio/reference/posix__descriptor_base.html -asio/reference/posix__descriptor_base/bytes_readable.html -asio/reference/posix__descriptor_base/wait_type.html -asio/reference/posix__descriptor_base/_descriptor_base.html -asio/reference/posix__stream_descriptor.html -asio/reference/posix__stream_descriptor/assign.html -asio/reference/posix__stream_descriptor/assign/overload1.html -asio/reference/posix__stream_descriptor/assign/overload2.html -asio/reference/posix__stream_descriptor/async_read_some.html -asio/reference/posix__stream_descriptor/async_wait.html -asio/reference/posix__stream_descriptor/async_write_some.html -asio/reference/posix__stream_descriptor/bytes_readable.html -asio/reference/posix__stream_descriptor/cancel.html -asio/reference/posix__stream_descriptor/cancel/overload1.html -asio/reference/posix__stream_descriptor/cancel/overload2.html -asio/reference/posix__stream_descriptor/close.html -asio/reference/posix__stream_descriptor/close/overload1.html -asio/reference/posix__stream_descriptor/close/overload2.html -asio/reference/posix__stream_descriptor/executor_type.html -asio/reference/posix__stream_descriptor/get_executor.html -asio/reference/posix__stream_descriptor/get_io_context.html -asio/reference/posix__stream_descriptor/get_io_service.html -asio/reference/posix__stream_descriptor/io_control.html -asio/reference/posix__stream_descriptor/io_control/overload1.html -asio/reference/posix__stream_descriptor/io_control/overload2.html -asio/reference/posix__stream_descriptor/is_open.html -asio/reference/posix__stream_descriptor/lowest_layer.html -asio/reference/posix__stream_descriptor/lowest_layer/overload1.html -asio/reference/posix__stream_descriptor/lowest_layer/overload2.html -asio/reference/posix__stream_descriptor/lowest_layer_type.html -asio/reference/posix__stream_descriptor/native_handle.html -asio/reference/posix__stream_descriptor/native_handle_type.html -asio/reference/posix__stream_descriptor/native_non_blocking.html -asio/reference/posix__stream_descriptor/native_non_blocking/overload1.html -asio/reference/posix__stream_descriptor/native_non_blocking/overload2.html -asio/reference/posix__stream_descriptor/native_non_blocking/overload3.html -asio/reference/posix__stream_descriptor/non_blocking.html -asio/reference/posix__stream_descriptor/non_blocking/overload1.html -asio/reference/posix__stream_descriptor/non_blocking/overload2.html -asio/reference/posix__stream_descriptor/non_blocking/overload3.html -asio/reference/posix__stream_descriptor/operator_eq_.html -asio/reference/posix__stream_descriptor/read_some.html -asio/reference/posix__stream_descriptor/read_some/overload1.html -asio/reference/posix__stream_descriptor/read_some/overload2.html -asio/reference/posix__stream_descriptor/release.html -asio/reference/posix__stream_descriptor/stream_descriptor.html -asio/reference/posix__stream_descriptor/stream_descriptor/overload1.html -asio/reference/posix__stream_descriptor/stream_descriptor/overload2.html -asio/reference/posix__stream_descriptor/stream_descriptor/overload3.html -asio/reference/posix__stream_descriptor/wait.html -asio/reference/posix__stream_descriptor/wait/overload1.html -asio/reference/posix__stream_descriptor/wait/overload2.html -asio/reference/posix__stream_descriptor/wait_type.html -asio/reference/posix__stream_descriptor/write_some.html -asio/reference/posix__stream_descriptor/write_some/overload1.html -asio/reference/posix__stream_descriptor/write_some/overload2.html -asio/reference/post.html -asio/reference/post/overload1.html -asio/reference/post/overload2.html -asio/reference/post/overload3.html -asio/reference/read.html -asio/reference/read/overload1.html -asio/reference/read/overload2.html -asio/reference/read/overload3.html -asio/reference/read/overload4.html -asio/reference/read/overload5.html -asio/reference/read/overload6.html -asio/reference/read/overload7.html -asio/reference/read/overload8.html -asio/reference/read/overload9.html -asio/reference/read/overload10.html -asio/reference/read/overload11.html -asio/reference/read/overload12.html -asio/reference/read_at.html -asio/reference/read_at/overload1.html -asio/reference/read_at/overload2.html -asio/reference/read_at/overload3.html -asio/reference/read_at/overload4.html -asio/reference/read_at/overload5.html -asio/reference/read_at/overload6.html -asio/reference/read_at/overload7.html -asio/reference/read_at/overload8.html -asio/reference/read_until.html -asio/reference/read_until/overload1.html -asio/reference/read_until/overload2.html -asio/reference/read_until/overload3.html -asio/reference/read_until/overload4.html -asio/reference/read_until/overload5.html -asio/reference/read_until/overload6.html -asio/reference/read_until/overload7.html -asio/reference/read_until/overload8.html -asio/reference/read_until/overload9.html -asio/reference/read_until/overload10.html -asio/reference/read_until/overload11.html -asio/reference/read_until/overload12.html -asio/reference/read_until/overload13.html -asio/reference/read_until/overload14.html -asio/reference/read_until/overload15.html -asio/reference/read_until/overload16.html -asio/reference/resolver_errc__try_again.html -asio/reference/serial_port.html -asio/reference/serial_port/assign.html -asio/reference/serial_port/assign/overload1.html -asio/reference/serial_port/assign/overload2.html -asio/reference/serial_port/async_read_some.html -asio/reference/serial_port/async_write_some.html -asio/reference/serial_port/cancel.html -asio/reference/serial_port/cancel/overload1.html -asio/reference/serial_port/cancel/overload2.html -asio/reference/serial_port/close.html -asio/reference/serial_port/close/overload1.html -asio/reference/serial_port/close/overload2.html -asio/reference/serial_port/executor_type.html -asio/reference/serial_port/get_executor.html -asio/reference/serial_port/get_io_context.html -asio/reference/serial_port/get_io_service.html -asio/reference/serial_port/get_option.html -asio/reference/serial_port/get_option/overload1.html -asio/reference/serial_port/get_option/overload2.html -asio/reference/serial_port/is_open.html -asio/reference/serial_port/lowest_layer.html -asio/reference/serial_port/lowest_layer/overload1.html -asio/reference/serial_port/lowest_layer/overload2.html -asio/reference/serial_port/lowest_layer_type.html -asio/reference/serial_port/native_handle.html -asio/reference/serial_port/native_handle_type.html -asio/reference/serial_port/open.html -asio/reference/serial_port/open/overload1.html -asio/reference/serial_port/open/overload2.html -asio/reference/serial_port/operator_eq_.html -asio/reference/serial_port/read_some.html -asio/reference/serial_port/read_some/overload1.html -asio/reference/serial_port/read_some/overload2.html -asio/reference/serial_port/send_break.html -asio/reference/serial_port/send_break/overload1.html -asio/reference/serial_port/send_break/overload2.html -asio/reference/serial_port/serial_port.html -asio/reference/serial_port/serial_port/overload1.html -asio/reference/serial_port/serial_port/overload2.html -asio/reference/serial_port/serial_port/overload3.html -asio/reference/serial_port/serial_port/overload4.html -asio/reference/serial_port/serial_port/overload5.html -asio/reference/serial_port/set_option.html -asio/reference/serial_port/set_option/overload1.html -asio/reference/serial_port/set_option/overload2.html -asio/reference/serial_port/write_some.html -asio/reference/serial_port/write_some/overload1.html -asio/reference/serial_port/write_some/overload2.html -asio/reference/serial_port/_serial_port.html -asio/reference/serial_port_base.html -asio/reference/serial_port_base/_serial_port_base.html -asio/reference/serial_port_base__baud_rate.html -asio/reference/serial_port_base__baud_rate/baud_rate.html -asio/reference/serial_port_base__baud_rate/load.html -asio/reference/serial_port_base__baud_rate/store.html -asio/reference/serial_port_base__baud_rate/value.html -asio/reference/serial_port_base__character_size.html -asio/reference/serial_port_base__character_size/character_size.html -asio/reference/serial_port_base__character_size/load.html -asio/reference/serial_port_base__character_size/store.html -asio/reference/serial_port_base__character_size/value.html -asio/reference/serial_port_base__flow_control.html -asio/reference/serial_port_base__flow_control/flow_control.html -asio/reference/serial_port_base__flow_control/load.html -asio/reference/serial_port_base__flow_control/store.html -asio/reference/serial_port_base__flow_control/type.html -asio/reference/serial_port_base__flow_control/value.html -asio/reference/serial_port_base__parity.html -asio/reference/serial_port_base__parity/load.html -asio/reference/serial_port_base__parity/parity.html -asio/reference/serial_port_base__parity/store.html -asio/reference/serial_port_base__parity/type.html -asio/reference/serial_port_base__parity/value.html -asio/reference/serial_port_base__stop_bits.html -asio/reference/serial_port_base__stop_bits/load.html -asio/reference/serial_port_base__stop_bits/stop_bits.html -asio/reference/serial_port_base__stop_bits/store.html -asio/reference/serial_port_base__stop_bits/type.html -asio/reference/serial_port_base__stop_bits/value.html -asio/reference/service_already_exists.html -asio/reference/service_already_exists/service_already_exists.html -asio/reference/signal_set.html -asio/reference/signal_set/add.html -asio/reference/signal_set/add/overload1.html -asio/reference/signal_set/add/overload2.html -asio/reference/signal_set/async_wait.html -asio/reference/signal_set/cancel.html -asio/reference/signal_set/cancel/overload1.html -asio/reference/signal_set/cancel/overload2.html -asio/reference/signal_set/clear.html -asio/reference/signal_set/clear/overload1.html -asio/reference/signal_set/clear/overload2.html -asio/reference/signal_set/executor_type.html -asio/reference/signal_set/get_executor.html -asio/reference/signal_set/get_io_context.html -asio/reference/signal_set/get_io_service.html -asio/reference/signal_set/remove.html -asio/reference/signal_set/remove/overload1.html -asio/reference/signal_set/remove/overload2.html -asio/reference/signal_set/signal_set.html -asio/reference/signal_set/signal_set/overload1.html -asio/reference/signal_set/signal_set/overload2.html -asio/reference/signal_set/signal_set/overload3.html -asio/reference/signal_set/signal_set/overload4.html -asio/reference/signal_set/_signal_set.html -asio/reference/socket_base.html -asio/reference/socket_base/broadcast.html -asio/reference/socket_base/bytes_readable.html -asio/reference/socket_base/debug.html -asio/reference/socket_base/do_not_route.html -asio/reference/socket_base/enable_connection_aborted.html -asio/reference/socket_base/keep_alive.html -asio/reference/socket_base/linger.html -asio/reference/socket_base/max_connections.html -asio/reference/socket_base/max_listen_connections.html -asio/reference/socket_base/message_do_not_route.html -asio/reference/socket_base/message_end_of_record.html -asio/reference/socket_base/message_flags.html -asio/reference/socket_base/message_out_of_band.html -asio/reference/socket_base/message_peek.html -asio/reference/socket_base/out_of_band_inline.html -asio/reference/socket_base/receive_buffer_size.html -asio/reference/socket_base/receive_low_watermark.html -asio/reference/socket_base/reuse_address.html -asio/reference/socket_base/send_buffer_size.html -asio/reference/socket_base/send_low_watermark.html -asio/reference/socket_base/shutdown_type.html -asio/reference/socket_base/wait_type.html -asio/reference/socket_base/_socket_base.html -asio/reference/spawn.html -asio/reference/spawn/overload1.html -asio/reference/spawn/overload2.html -asio/reference/spawn/overload3.html -asio/reference/spawn/overload4.html -asio/reference/spawn/overload5.html -asio/reference/spawn/overload6.html -asio/reference/spawn/overload7.html -asio/reference/ssl__context.html -asio/reference/ssl__context/add_certificate_authority.html -asio/reference/ssl__context/add_certificate_authority/overload1.html -asio/reference/ssl__context/add_certificate_authority/overload2.html -asio/reference/ssl__context/add_verify_path.html -asio/reference/ssl__context/add_verify_path/overload1.html -asio/reference/ssl__context/add_verify_path/overload2.html -asio/reference/ssl__context/clear_options.html -asio/reference/ssl__context/clear_options/overload1.html -asio/reference/ssl__context/clear_options/overload2.html -asio/reference/ssl__context/context.html -asio/reference/ssl__context/context/overload1.html -asio/reference/ssl__context/context/overload2.html -asio/reference/ssl__context/default_workarounds.html -asio/reference/ssl__context/file_format.html -asio/reference/ssl__context/load_verify_file.html -asio/reference/ssl__context/load_verify_file/overload1.html -asio/reference/ssl__context/load_verify_file/overload2.html -asio/reference/ssl__context/method.html -asio/reference/ssl__context/native_handle.html -asio/reference/ssl__context/native_handle_type.html -asio/reference/ssl__context/no_compression.html -asio/reference/ssl__context/no_sslv2.html -asio/reference/ssl__context/no_sslv3.html -asio/reference/ssl__context/no_tlsv1.html -asio/reference/ssl__context/no_tlsv1_1.html -asio/reference/ssl__context/no_tlsv1_2.html -asio/reference/ssl__context/no_tlsv1_3.html -asio/reference/ssl__context/operator_eq_.html -asio/reference/ssl__context/options.html -asio/reference/ssl__context/password_purpose.html -asio/reference/ssl__context/set_default_verify_paths.html -asio/reference/ssl__context/set_default_verify_paths/overload1.html -asio/reference/ssl__context/set_default_verify_paths/overload2.html -asio/reference/ssl__context/set_options.html -asio/reference/ssl__context/set_options/overload1.html -asio/reference/ssl__context/set_options/overload2.html -asio/reference/ssl__context/set_password_callback.html -asio/reference/ssl__context/set_password_callback/overload1.html -asio/reference/ssl__context/set_password_callback/overload2.html -asio/reference/ssl__context/set_verify_callback.html -asio/reference/ssl__context/set_verify_callback/overload1.html -asio/reference/ssl__context/set_verify_callback/overload2.html -asio/reference/ssl__context/set_verify_depth.html -asio/reference/ssl__context/set_verify_depth/overload1.html -asio/reference/ssl__context/set_verify_depth/overload2.html -asio/reference/ssl__context/set_verify_mode.html -asio/reference/ssl__context/set_verify_mode/overload1.html -asio/reference/ssl__context/set_verify_mode/overload2.html -asio/reference/ssl__context/single_dh_use.html -asio/reference/ssl__context/use_certificate.html -asio/reference/ssl__context/use_certificate/overload1.html -asio/reference/ssl__context/use_certificate/overload2.html -asio/reference/ssl__context/use_certificate_chain.html -asio/reference/ssl__context/use_certificate_chain/overload1.html -asio/reference/ssl__context/use_certificate_chain/overload2.html -asio/reference/ssl__context/use_certificate_chain_file.html -asio/reference/ssl__context/use_certificate_chain_file/overload1.html -asio/reference/ssl__context/use_certificate_chain_file/overload2.html -asio/reference/ssl__context/use_certificate_file.html -asio/reference/ssl__context/use_certificate_file/overload1.html -asio/reference/ssl__context/use_certificate_file/overload2.html -asio/reference/ssl__context/use_private_key.html -asio/reference/ssl__context/use_private_key/overload1.html -asio/reference/ssl__context/use_private_key/overload2.html -asio/reference/ssl__context/use_private_key_file.html -asio/reference/ssl__context/use_private_key_file/overload1.html -asio/reference/ssl__context/use_private_key_file/overload2.html -asio/reference/ssl__context/use_rsa_private_key.html -asio/reference/ssl__context/use_rsa_private_key/overload1.html -asio/reference/ssl__context/use_rsa_private_key/overload2.html -asio/reference/ssl__context/use_rsa_private_key_file.html -asio/reference/ssl__context/use_rsa_private_key_file/overload1.html -asio/reference/ssl__context/use_rsa_private_key_file/overload2.html -asio/reference/ssl__context/use_tmp_dh.html -asio/reference/ssl__context/use_tmp_dh/overload1.html -asio/reference/ssl__context/use_tmp_dh/overload2.html -asio/reference/ssl__context/use_tmp_dh_file.html -asio/reference/ssl__context/use_tmp_dh_file/overload1.html -asio/reference/ssl__context/use_tmp_dh_file/overload2.html -asio/reference/ssl__context/_context.html -asio/reference/ssl__context_base.html -asio/reference/ssl__context_base/default_workarounds.html -asio/reference/ssl__context_base/file_format.html -asio/reference/ssl__context_base/method.html -asio/reference/ssl__context_base/no_compression.html -asio/reference/ssl__context_base/no_sslv2.html -asio/reference/ssl__context_base/no_sslv3.html -asio/reference/ssl__context_base/no_tlsv1.html -asio/reference/ssl__context_base/no_tlsv1_1.html -asio/reference/ssl__context_base/no_tlsv1_2.html -asio/reference/ssl__context_base/no_tlsv1_3.html -asio/reference/ssl__context_base/options.html -asio/reference/ssl__context_base/password_purpose.html -asio/reference/ssl__context_base/single_dh_use.html -asio/reference/ssl__context_base/_context_base.html -asio/reference/ssl__error__get_stream_category.html -asio/reference/ssl__error__make_error_code.html -asio/reference/ssl__error__stream_category.html -asio/reference/ssl__error__stream_errors.html -asio/reference/ssl__rfc2818_verification.html -asio/reference/ssl__rfc2818_verification/operator_lp__rp_.html -asio/reference/ssl__rfc2818_verification/result_type.html -asio/reference/ssl__rfc2818_verification/rfc2818_verification.html -asio/reference/ssl__stream.html -asio/reference/ssl__stream/async_handshake.html -asio/reference/ssl__stream/async_handshake/overload1.html -asio/reference/ssl__stream/async_handshake/overload2.html -asio/reference/ssl__stream/async_read_some.html -asio/reference/ssl__stream/async_shutdown.html -asio/reference/ssl__stream/async_write_some.html -asio/reference/ssl__stream/executor_type.html -asio/reference/ssl__stream/get_executor.html -asio/reference/ssl__stream/get_io_context.html -asio/reference/ssl__stream/get_io_service.html -asio/reference/ssl__stream/handshake.html -asio/reference/ssl__stream/handshake/overload1.html -asio/reference/ssl__stream/handshake/overload2.html -asio/reference/ssl__stream/handshake/overload3.html -asio/reference/ssl__stream/handshake/overload4.html -asio/reference/ssl__stream/handshake_type.html -asio/reference/ssl__stream/lowest_layer.html -asio/reference/ssl__stream/lowest_layer/overload1.html -asio/reference/ssl__stream/lowest_layer/overload2.html -asio/reference/ssl__stream/lowest_layer_type.html -asio/reference/ssl__stream/native_handle.html -asio/reference/ssl__stream/native_handle_type.html -asio/reference/ssl__stream/next_layer.html -asio/reference/ssl__stream/next_layer/overload1.html -asio/reference/ssl__stream/next_layer/overload2.html -asio/reference/ssl__stream/next_layer_type.html -asio/reference/ssl__stream/read_some.html -asio/reference/ssl__stream/read_some/overload1.html -asio/reference/ssl__stream/read_some/overload2.html -asio/reference/ssl__stream/set_verify_callback.html -asio/reference/ssl__stream/set_verify_callback/overload1.html -asio/reference/ssl__stream/set_verify_callback/overload2.html -asio/reference/ssl__stream/set_verify_depth.html -asio/reference/ssl__stream/set_verify_depth/overload1.html -asio/reference/ssl__stream/set_verify_depth/overload2.html -asio/reference/ssl__stream/set_verify_mode.html -asio/reference/ssl__stream/set_verify_mode/overload1.html -asio/reference/ssl__stream/set_verify_mode/overload2.html -asio/reference/ssl__stream/shutdown.html -asio/reference/ssl__stream/shutdown/overload1.html -asio/reference/ssl__stream/shutdown/overload2.html -asio/reference/ssl__stream/stream.html -asio/reference/ssl__stream/write_some.html -asio/reference/ssl__stream/write_some/overload1.html -asio/reference/ssl__stream/write_some/overload2.html -asio/reference/ssl__stream/_stream.html -asio/reference/ssl__stream__impl_struct.html -asio/reference/ssl__stream__impl_struct/ssl.html -asio/reference/ssl__stream_base.html -asio/reference/ssl__stream_base/handshake_type.html -asio/reference/ssl__stream_base/_stream_base.html -asio/reference/ssl__verify_client_once.html -asio/reference/ssl__verify_context.html -asio/reference/ssl__verify_context/native_handle.html -asio/reference/ssl__verify_context/native_handle_type.html -asio/reference/ssl__verify_context/verify_context.html -asio/reference/ssl__verify_fail_if_no_peer_cert.html -asio/reference/ssl__verify_mode.html -asio/reference/ssl__verify_none.html -asio/reference/ssl__verify_peer.html -asio/reference/steady_timer.html -asio/reference/strand.html -asio/reference/strand/context.html -asio/reference/strand/defer.html -asio/reference/strand/dispatch.html -asio/reference/strand/get_inner_executor.html -asio/reference/strand/inner_executor_type.html -asio/reference/strand/on_work_finished.html -asio/reference/strand/on_work_started.html -asio/reference/strand/operator_not__eq_.html -asio/reference/strand/operator_eq_.html -asio/reference/strand/operator_eq_/overload1.html -asio/reference/strand/operator_eq_/overload2.html -asio/reference/strand/operator_eq_/overload3.html -asio/reference/strand/operator_eq_/overload4.html -asio/reference/strand/operator_eq__eq_.html -asio/reference/strand/post.html -asio/reference/strand/running_in_this_thread.html -asio/reference/strand/strand.html -asio/reference/strand/strand/overload1.html -asio/reference/strand/strand/overload2.html -asio/reference/strand/strand/overload3.html -asio/reference/strand/strand/overload4.html -asio/reference/strand/strand/overload5.html -asio/reference/strand/strand/overload6.html -asio/reference/strand/_strand.html -asio/reference/streambuf.html -asio/reference/system_category.html -asio/reference/system_context.html -asio/reference/system_context/add_service.html -asio/reference/system_context/destroy.html -asio/reference/system_context/executor_type.html -asio/reference/system_context/fork_event.html -asio/reference/system_context/get_executor.html -asio/reference/system_context/has_service.html -asio/reference/system_context/join.html -asio/reference/system_context/make_service.html -asio/reference/system_context/notify_fork.html -asio/reference/system_context/shutdown.html -asio/reference/system_context/stop.html -asio/reference/system_context/stopped.html -asio/reference/system_context/use_service.html -asio/reference/system_context/use_service/overload1.html -asio/reference/system_context/use_service/overload2.html -asio/reference/system_context/_system_context.html -asio/reference/system_error.html -asio/reference/system_error/code.html -asio/reference/system_error/operator_eq_.html -asio/reference/system_error/system_error.html -asio/reference/system_error/system_error/overload1.html -asio/reference/system_error/system_error/overload2.html -asio/reference/system_error/system_error/overload3.html -asio/reference/system_error/what.html -asio/reference/system_error/_system_error.html -asio/reference/system_executor.html -asio/reference/system_executor/context.html -asio/reference/system_executor/defer.html -asio/reference/system_executor/dispatch.html -asio/reference/system_executor/on_work_finished.html -asio/reference/system_executor/on_work_started.html -asio/reference/system_executor/operator_not__eq_.html -asio/reference/system_executor/operator_eq__eq_.html -asio/reference/system_executor/post.html -asio/reference/system_timer.html -asio/reference/thread.html -asio/reference/thread/join.html -asio/reference/thread/thread.html -asio/reference/thread/_thread.html -asio/reference/thread_pool.html -asio/reference/thread_pool/add_service.html -asio/reference/thread_pool/destroy.html -asio/reference/thread_pool/fork_event.html -asio/reference/thread_pool/get_executor.html -asio/reference/thread_pool/has_service.html -asio/reference/thread_pool/join.html -asio/reference/thread_pool/make_service.html -asio/reference/thread_pool/notify_fork.html -asio/reference/thread_pool/shutdown.html -asio/reference/thread_pool/stop.html -asio/reference/thread_pool/thread_pool.html -asio/reference/thread_pool/thread_pool/overload1.html -asio/reference/thread_pool/thread_pool/overload2.html -asio/reference/thread_pool/use_service.html -asio/reference/thread_pool/use_service/overload1.html -asio/reference/thread_pool/use_service/overload2.html -asio/reference/thread_pool/_thread_pool.html -asio/reference/thread_pool__executor_type.html -asio/reference/thread_pool__executor_type/context.html -asio/reference/thread_pool__executor_type/defer.html -asio/reference/thread_pool__executor_type/dispatch.html -asio/reference/thread_pool__executor_type/on_work_finished.html -asio/reference/thread_pool__executor_type/on_work_started.html -asio/reference/thread_pool__executor_type/operator_not__eq_.html -asio/reference/thread_pool__executor_type/operator_eq__eq_.html -asio/reference/thread_pool__executor_type/post.html -asio/reference/thread_pool__executor_type/running_in_this_thread.html -asio/reference/time_traits_lt__ptime__gt_.html -asio/reference/time_traits_lt__ptime__gt_/add.html -asio/reference/time_traits_lt__ptime__gt_/duration_type.html -asio/reference/time_traits_lt__ptime__gt_/less_than.html -asio/reference/time_traits_lt__ptime__gt_/now.html -asio/reference/time_traits_lt__ptime__gt_/subtract.html -asio/reference/time_traits_lt__ptime__gt_/time_type.html -asio/reference/time_traits_lt__ptime__gt_/to_posix_duration.html -asio/reference/transfer_all.html -asio/reference/transfer_at_least.html -asio/reference/transfer_exactly.html -asio/reference/use_future.html -asio/reference/use_future_t.html -asio/reference/use_future_t/allocator_type.html -asio/reference/use_future_t/get_allocator.html -asio/reference/use_future_t/operator_lp__rp_.html -asio/reference/use_future_t/operator_lb__rb_.html -asio/reference/use_future_t/rebind.html -asio/reference/use_future_t/use_future_t.html -asio/reference/use_future_t/use_future_t/overload1.html -asio/reference/use_future_t/use_future_t/overload2.html -asio/reference/use_service.html -asio/reference/use_service/overload1.html -asio/reference/use_service/overload2.html -asio/reference/uses_executor.html -asio/reference/wait_traits.html -asio/reference/wait_traits/to_wait_duration.html -asio/reference/wait_traits/to_wait_duration/overload1.html -asio/reference/wait_traits/to_wait_duration/overload2.html -asio/reference/windows__object_handle.html -asio/reference/windows__object_handle/assign.html -asio/reference/windows__object_handle/assign/overload1.html -asio/reference/windows__object_handle/assign/overload2.html -asio/reference/windows__object_handle/async_wait.html -asio/reference/windows__object_handle/cancel.html -asio/reference/windows__object_handle/cancel/overload1.html -asio/reference/windows__object_handle/cancel/overload2.html -asio/reference/windows__object_handle/close.html -asio/reference/windows__object_handle/close/overload1.html -asio/reference/windows__object_handle/close/overload2.html -asio/reference/windows__object_handle/executor_type.html -asio/reference/windows__object_handle/get_executor.html -asio/reference/windows__object_handle/get_io_context.html -asio/reference/windows__object_handle/get_io_service.html -asio/reference/windows__object_handle/is_open.html -asio/reference/windows__object_handle/lowest_layer.html -asio/reference/windows__object_handle/lowest_layer/overload1.html -asio/reference/windows__object_handle/lowest_layer/overload2.html -asio/reference/windows__object_handle/lowest_layer_type.html -asio/reference/windows__object_handle/native_handle.html -asio/reference/windows__object_handle/native_handle_type.html -asio/reference/windows__object_handle/object_handle.html -asio/reference/windows__object_handle/object_handle/overload1.html -asio/reference/windows__object_handle/object_handle/overload2.html -asio/reference/windows__object_handle/object_handle/overload3.html -asio/reference/windows__object_handle/operator_eq_.html -asio/reference/windows__object_handle/wait.html -asio/reference/windows__object_handle/wait/overload1.html -asio/reference/windows__object_handle/wait/overload2.html -asio/reference/windows__overlapped_handle.html -asio/reference/windows__overlapped_handle/assign.html -asio/reference/windows__overlapped_handle/assign/overload1.html -asio/reference/windows__overlapped_handle/assign/overload2.html -asio/reference/windows__overlapped_handle/cancel.html -asio/reference/windows__overlapped_handle/cancel/overload1.html -asio/reference/windows__overlapped_handle/cancel/overload2.html -asio/reference/windows__overlapped_handle/close.html -asio/reference/windows__overlapped_handle/close/overload1.html -asio/reference/windows__overlapped_handle/close/overload2.html -asio/reference/windows__overlapped_handle/executor_type.html -asio/reference/windows__overlapped_handle/get_executor.html -asio/reference/windows__overlapped_handle/get_io_context.html -asio/reference/windows__overlapped_handle/get_io_service.html -asio/reference/windows__overlapped_handle/is_open.html -asio/reference/windows__overlapped_handle/lowest_layer.html -asio/reference/windows__overlapped_handle/lowest_layer/overload1.html -asio/reference/windows__overlapped_handle/lowest_layer/overload2.html -asio/reference/windows__overlapped_handle/lowest_layer_type.html -asio/reference/windows__overlapped_handle/native_handle.html -asio/reference/windows__overlapped_handle/native_handle_type.html -asio/reference/windows__overlapped_handle/operator_eq_.html -asio/reference/windows__overlapped_handle/overlapped_handle.html -asio/reference/windows__overlapped_handle/overlapped_handle/overload1.html -asio/reference/windows__overlapped_handle/overlapped_handle/overload2.html -asio/reference/windows__overlapped_handle/overlapped_handle/overload3.html -asio/reference/windows__overlapped_handle/_overlapped_handle.html -asio/reference/windows__overlapped_ptr.html -asio/reference/windows__overlapped_ptr/complete.html -asio/reference/windows__overlapped_ptr/get.html -asio/reference/windows__overlapped_ptr/get/overload1.html -asio/reference/windows__overlapped_ptr/get/overload2.html -asio/reference/windows__overlapped_ptr/overlapped_ptr.html -asio/reference/windows__overlapped_ptr/overlapped_ptr/overload1.html -asio/reference/windows__overlapped_ptr/overlapped_ptr/overload2.html -asio/reference/windows__overlapped_ptr/release.html -asio/reference/windows__overlapped_ptr/reset.html -asio/reference/windows__overlapped_ptr/reset/overload1.html -asio/reference/windows__overlapped_ptr/reset/overload2.html -asio/reference/windows__overlapped_ptr/_overlapped_ptr.html -asio/reference/windows__random_access_handle.html -asio/reference/windows__random_access_handle/assign.html -asio/reference/windows__random_access_handle/assign/overload1.html -asio/reference/windows__random_access_handle/assign/overload2.html -asio/reference/windows__random_access_handle/async_read_some_at.html -asio/reference/windows__random_access_handle/async_write_some_at.html -asio/reference/windows__random_access_handle/cancel.html -asio/reference/windows__random_access_handle/cancel/overload1.html -asio/reference/windows__random_access_handle/cancel/overload2.html -asio/reference/windows__random_access_handle/close.html -asio/reference/windows__random_access_handle/close/overload1.html -asio/reference/windows__random_access_handle/close/overload2.html -asio/reference/windows__random_access_handle/executor_type.html -asio/reference/windows__random_access_handle/get_executor.html -asio/reference/windows__random_access_handle/get_io_context.html -asio/reference/windows__random_access_handle/get_io_service.html -asio/reference/windows__random_access_handle/is_open.html -asio/reference/windows__random_access_handle/lowest_layer.html -asio/reference/windows__random_access_handle/lowest_layer/overload1.html -asio/reference/windows__random_access_handle/lowest_layer/overload2.html -asio/reference/windows__random_access_handle/lowest_layer_type.html -asio/reference/windows__random_access_handle/native_handle.html -asio/reference/windows__random_access_handle/native_handle_type.html -asio/reference/windows__random_access_handle/operator_eq_.html -asio/reference/windows__random_access_handle/random_access_handle.html -asio/reference/windows__random_access_handle/random_access_handle/overload1.html -asio/reference/windows__random_access_handle/random_access_handle/overload2.html -asio/reference/windows__random_access_handle/random_access_handle/overload3.html -asio/reference/windows__random_access_handle/read_some_at.html -asio/reference/windows__random_access_handle/read_some_at/overload1.html -asio/reference/windows__random_access_handle/read_some_at/overload2.html -asio/reference/windows__random_access_handle/write_some_at.html -asio/reference/windows__random_access_handle/write_some_at/overload1.html -asio/reference/windows__random_access_handle/write_some_at/overload2.html -asio/reference/windows__stream_handle.html -asio/reference/windows__stream_handle/assign.html -asio/reference/windows__stream_handle/assign/overload1.html -asio/reference/windows__stream_handle/assign/overload2.html -asio/reference/windows__stream_handle/async_read_some.html -asio/reference/windows__stream_handle/async_write_some.html -asio/reference/windows__stream_handle/cancel.html -asio/reference/windows__stream_handle/cancel/overload1.html -asio/reference/windows__stream_handle/cancel/overload2.html -asio/reference/windows__stream_handle/close.html -asio/reference/windows__stream_handle/close/overload1.html -asio/reference/windows__stream_handle/close/overload2.html -asio/reference/windows__stream_handle/executor_type.html -asio/reference/windows__stream_handle/get_executor.html -asio/reference/windows__stream_handle/get_io_context.html -asio/reference/windows__stream_handle/get_io_service.html -asio/reference/windows__stream_handle/is_open.html -asio/reference/windows__stream_handle/lowest_layer.html -asio/reference/windows__stream_handle/lowest_layer/overload1.html -asio/reference/windows__stream_handle/lowest_layer/overload2.html -asio/reference/windows__stream_handle/lowest_layer_type.html -asio/reference/windows__stream_handle/native_handle.html -asio/reference/windows__stream_handle/native_handle_type.html -asio/reference/windows__stream_handle/operator_eq_.html -asio/reference/windows__stream_handle/read_some.html -asio/reference/windows__stream_handle/read_some/overload1.html -asio/reference/windows__stream_handle/read_some/overload2.html -asio/reference/windows__stream_handle/stream_handle.html -asio/reference/windows__stream_handle/stream_handle/overload1.html -asio/reference/windows__stream_handle/stream_handle/overload2.html -asio/reference/windows__stream_handle/stream_handle/overload3.html -asio/reference/windows__stream_handle/write_some.html -asio/reference/windows__stream_handle/write_some/overload1.html -asio/reference/windows__stream_handle/write_some/overload2.html -asio/reference/write.html -asio/reference/write/overload1.html -asio/reference/write/overload2.html -asio/reference/write/overload3.html -asio/reference/write/overload4.html -asio/reference/write/overload5.html -asio/reference/write/overload6.html -asio/reference/write/overload7.html -asio/reference/write/overload8.html -asio/reference/write/overload9.html -asio/reference/write/overload10.html -asio/reference/write/overload11.html -asio/reference/write/overload12.html -asio/reference/write_at.html -asio/reference/write_at/overload1.html -asio/reference/write_at/overload2.html -asio/reference/write_at/overload3.html -asio/reference/write_at/overload4.html -asio/reference/write_at/overload5.html -asio/reference/write_at/overload6.html -asio/reference/write_at/overload7.html -asio/reference/write_at/overload8.html -asio/reference/yield_context.html -asio/net_ts.html -asio/history.html -asio/index.html diff --git a/Sources/Vendor/asio/doc/sync_op.png b/Sources/Vendor/asio/doc/sync_op.png deleted file mode 100644 index a96c8351b9f4982de5e232edbdb12297114c8496..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20243 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 diff --git a/Sources/Vendor/asio/doc/up.png b/Sources/Vendor/asio/doc/up.png deleted file mode 100644 index 17d9c3ec491ae1ba22188ce85985623c92ffa9be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7T3?v)swEqJs=3*z$5DpHG+YkL80J&NLJ|V8+ zB7$jYY0eII+qQ05v3zNFXUFBsmjeBL)sz)x&YXGl$l-*zm`9Hu{{R1f8uJZXpf0|W zAirQB7XcVt58OEcl;JG!h%9Dc;1&X5#!GkW{s0A4OI#yLg7ec#$`gxH8GI9yi}G_* zQ!*13+%k(&%kzt}ixqq$6pRcEOxnxVoCj(U18HzBN=+=u%+FH@$;?eS^Z=hXV#3jn*#4_ x=vj5p^wF)?xpx*Du6ddKc=uuXxWffq{6A*KyDFWJxdXJF!PC{xWt~$(69DY=mmvTE diff --git a/Sources/Vendor/asio/doc/up_disabled.png b/Sources/Vendor/asio/doc/up_disabled.png deleted file mode 100644 index e22bc8712192df3a8faa3264b0ec71ff3aaaa96c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1115 zcmY+@Z)^*37zgl2dzmw~oK$GMafp#cWXs;jyt!6uYtl7UeZec8`SV6X{7De9Dw2(4 zm>26}32(gcW*OddFPdfV_NT?wYHgXdTAfl#H+r5D$$dY`-IIHMf0Ezb_xin_j)wY; z^+eR*>U8+HT56YQ=DTxXyvjv5Ve7IHJsG&Xy#F3Q%RQaGE}~1@h=SLMDmvFJ(fJml zT!5&3h-ky9p~u59A~Sj2e&_VmWGa=4$F*XyxL7D;GnsO^oJh>ZqBHq?zEmnDlXI0y zMc4I7gDEtPW>6Hx&`b0Ry+#^}qc><4CD2?%a47s&%&rYXwnm@^2oK6>2RiC(}ybQxc@;;j!lN7xJKGXK5u*58HCq zi)yn~zbYIeQ(ynxTdSHPs@k~jXquO=uiH1eY2@@XO+VY(#*4k%x7x*t?&AUCt?S$* rDO!X~;(e<^-4?Sb9}HJ}I(CrQLYik+oARjr0iT6jPLE^M9tiybIrJyp diff --git a/Sources/Vendor/asio/doc/warning.png b/Sources/Vendor/asio/doc/warning.png deleted file mode 100644 index 1c33db8f34a8b42b373179b46a2d8d8a10e061a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1241 zcmeHH+e?!H6#vDtmgHCxG{Q}12(7`~)|MMe^RnTlY0JD#q1sIwW1DTCqzzwWg@Q=t zBC2Iceu@w4LHM97Gb5%*E%9MN*%m}jvs!{N@Pd8$H}vS?TsRzlzr#5kPPe|YG%fXL zDu6VdR$WC$&Oc)^X#ZjK-7LU>{!F!o39xr+d_Vw5fMTEwpb-s#9q<5Nzz6gIepyU?Lctpr{ZK zVzWaWPAC)#17S8h%;AIuf(Q_yeIybEqS0s^i1YdJcsv0ln9M{Xkpz;-I_^=P))~D~!!Hvpq{Dl8O{rN@cECkt>#DncX%I(O&3i_YgL-$m$VU zT3cLBLS%M1`o{TBX}S|Tbhc)vk!Yp)%rdDd&my(RPsxl%lU$)tC?(1~WuEwClUQn! n$Q8O{Mxt@ukkcT{K0> diff --git a/Sources/Vendor/asio/include/Makefile.am b/Sources/Vendor/asio/include/Makefile.am deleted file mode 100644 index a6ac994..0000000 --- a/Sources/Vendor/asio/include/Makefile.am +++ /dev/null @@ -1,487 +0,0 @@ -# find . -name "*.*pp" | sed -e 's/^\.\///' | sed -e 's/^.*$/ & \\/' | sort -nobase_include_HEADERS = \ - asio/associated_allocator.hpp \ - asio/associated_executor.hpp \ - asio/async_result.hpp \ - asio/basic_datagram_socket.hpp \ - asio/basic_deadline_timer.hpp \ - asio/basic_io_object.hpp \ - asio/basic_raw_socket.hpp \ - asio/basic_seq_packet_socket.hpp \ - asio/basic_serial_port.hpp \ - asio/basic_signal_set.hpp \ - asio/basic_socket_acceptor.hpp \ - asio/basic_socket.hpp \ - asio/basic_socket_iostream.hpp \ - asio/basic_socket_streambuf.hpp \ - asio/basic_streambuf_fwd.hpp \ - asio/basic_streambuf.hpp \ - asio/basic_stream_socket.hpp \ - asio/basic_waitable_timer.hpp \ - asio/bind_executor.hpp \ - asio/buffered_read_stream_fwd.hpp \ - asio/buffered_read_stream.hpp \ - asio/buffered_stream_fwd.hpp \ - asio/buffered_stream.hpp \ - asio/buffered_write_stream_fwd.hpp \ - asio/buffered_write_stream.hpp \ - asio/buffer.hpp \ - asio/buffers_iterator.hpp \ - asio/completion_condition.hpp \ - asio/connect.hpp \ - asio/coroutine.hpp \ - asio/datagram_socket_service.hpp \ - asio/deadline_timer.hpp \ - asio/deadline_timer_service.hpp \ - asio/defer.hpp \ - asio/detail/array_fwd.hpp \ - asio/detail/array.hpp \ - asio/detail/assert.hpp \ - asio/detail/atomic_count.hpp \ - asio/detail/base_from_completion_cond.hpp \ - asio/detail/bind_handler.hpp \ - asio/detail/buffered_stream_storage.hpp \ - asio/detail/buffer_resize_guard.hpp \ - asio/detail/buffer_sequence_adapter.hpp \ - asio/detail/call_stack.hpp \ - asio/detail/chrono.hpp \ - asio/detail/chrono_time_traits.hpp \ - asio/detail/completion_handler.hpp \ - asio/detail/concurrency_hint.hpp \ - asio/detail/conditionally_enabled_event.hpp \ - asio/detail/conditionally_enabled_mutex.hpp \ - asio/detail/config.hpp \ - asio/detail/consuming_buffers.hpp \ - asio/detail/cstddef.hpp \ - asio/detail/cstdint.hpp \ - asio/detail/date_time_fwd.hpp \ - asio/detail/deadline_timer_service.hpp \ - asio/detail/dependent_type.hpp \ - asio/detail/descriptor_ops.hpp \ - asio/detail/descriptor_read_op.hpp \ - asio/detail/descriptor_write_op.hpp \ - asio/detail/dev_poll_reactor.hpp \ - asio/detail/epoll_reactor.hpp \ - asio/detail/eventfd_select_interrupter.hpp \ - asio/detail/event.hpp \ - asio/detail/executor_op.hpp \ - asio/detail/fd_set_adapter.hpp \ - asio/detail/fenced_block.hpp \ - asio/detail/functional.hpp \ - asio/detail/future.hpp \ - asio/detail/gcc_arm_fenced_block.hpp \ - asio/detail/gcc_hppa_fenced_block.hpp \ - asio/detail/gcc_sync_fenced_block.hpp \ - asio/detail/gcc_x86_fenced_block.hpp \ - asio/detail/global.hpp \ - asio/detail/handler_alloc_helpers.hpp \ - asio/detail/handler_cont_helpers.hpp \ - asio/detail/handler_invoke_helpers.hpp \ - asio/detail/handler_tracking.hpp \ - asio/detail/handler_type_requirements.hpp \ - asio/detail/handler_work.hpp \ - asio/detail/hash_map.hpp \ - asio/detail/impl/buffer_sequence_adapter.ipp \ - asio/detail/impl/descriptor_ops.ipp \ - asio/detail/impl/dev_poll_reactor.hpp \ - asio/detail/impl/dev_poll_reactor.ipp \ - asio/detail/impl/epoll_reactor.hpp \ - asio/detail/impl/epoll_reactor.ipp \ - asio/detail/impl/eventfd_select_interrupter.ipp \ - asio/detail/impl/handler_tracking.ipp \ - asio/detail/impl/kqueue_reactor.hpp \ - asio/detail/impl/kqueue_reactor.ipp \ - asio/detail/impl/null_event.ipp \ - asio/detail/impl/pipe_select_interrupter.ipp \ - asio/detail/impl/posix_event.ipp \ - asio/detail/impl/posix_mutex.ipp \ - asio/detail/impl/posix_thread.ipp \ - asio/detail/impl/posix_tss_ptr.ipp \ - asio/detail/impl/reactive_descriptor_service.ipp \ - asio/detail/impl/reactive_serial_port_service.ipp \ - asio/detail/impl/reactive_socket_service_base.ipp \ - asio/detail/impl/resolver_service_base.ipp \ - asio/detail/impl/scheduler.ipp \ - asio/detail/impl/select_reactor.hpp \ - asio/detail/impl/select_reactor.ipp \ - asio/detail/impl/service_registry.hpp \ - asio/detail/impl/service_registry.ipp \ - asio/detail/impl/signal_set_service.ipp \ - asio/detail/impl/socket_ops.ipp \ - asio/detail/impl/socket_select_interrupter.ipp \ - asio/detail/impl/strand_executor_service.hpp \ - asio/detail/impl/strand_executor_service.ipp \ - asio/detail/impl/strand_service.hpp \ - asio/detail/impl/strand_service.ipp \ - asio/detail/impl/throw_error.ipp \ - asio/detail/impl/timer_queue_ptime.ipp \ - asio/detail/impl/timer_queue_set.ipp \ - asio/detail/impl/win_event.ipp \ - asio/detail/impl/win_iocp_handle_service.ipp \ - asio/detail/impl/win_iocp_io_context.hpp \ - asio/detail/impl/win_iocp_io_context.ipp \ - asio/detail/impl/win_iocp_serial_port_service.ipp \ - asio/detail/impl/win_iocp_socket_service_base.ipp \ - asio/detail/impl/win_mutex.ipp \ - asio/detail/impl/win_object_handle_service.ipp \ - asio/detail/impl/winrt_ssocket_service_base.ipp \ - asio/detail/impl/winrt_timer_scheduler.hpp \ - asio/detail/impl/winrt_timer_scheduler.ipp \ - asio/detail/impl/winsock_init.ipp \ - asio/detail/impl/win_static_mutex.ipp \ - asio/detail/impl/win_thread.ipp \ - asio/detail/impl/win_tss_ptr.ipp \ - asio/detail/io_control.hpp \ - asio/detail/is_buffer_sequence.hpp \ - asio/detail/is_executor.hpp \ - asio/detail/keyword_tss_ptr.hpp \ - asio/detail/kqueue_reactor.hpp \ - asio/detail/limits.hpp \ - asio/detail/local_free_on_block_exit.hpp \ - asio/detail/macos_fenced_block.hpp \ - asio/detail/memory.hpp \ - asio/detail/mutex.hpp \ - asio/detail/noncopyable.hpp \ - asio/detail/null_event.hpp \ - asio/detail/null_fenced_block.hpp \ - asio/detail/null_global.hpp \ - asio/detail/null_mutex.hpp \ - asio/detail/null_reactor.hpp \ - asio/detail/null_signal_blocker.hpp \ - asio/detail/null_socket_service.hpp \ - asio/detail/null_static_mutex.hpp \ - asio/detail/null_thread.hpp \ - asio/detail/null_tss_ptr.hpp \ - asio/detail/object_pool.hpp \ - asio/detail/old_win_sdk_compat.hpp \ - asio/detail/operation.hpp \ - asio/detail/op_queue.hpp \ - asio/detail/pipe_select_interrupter.hpp \ - asio/detail/pop_options.hpp \ - asio/detail/posix_event.hpp \ - asio/detail/posix_fd_set_adapter.hpp \ - asio/detail/posix_global.hpp \ - asio/detail/posix_mutex.hpp \ - asio/detail/posix_signal_blocker.hpp \ - asio/detail/posix_static_mutex.hpp \ - asio/detail/posix_thread.hpp \ - asio/detail/posix_tss_ptr.hpp \ - asio/detail/push_options.hpp \ - asio/detail/reactive_descriptor_service.hpp \ - asio/detail/reactive_null_buffers_op.hpp \ - asio/detail/reactive_serial_port_service.hpp \ - asio/detail/reactive_socket_accept_op.hpp \ - asio/detail/reactive_socket_connect_op.hpp \ - asio/detail/reactive_socket_recvfrom_op.hpp \ - asio/detail/reactive_socket_recvmsg_op.hpp \ - asio/detail/reactive_socket_recv_op.hpp \ - asio/detail/reactive_socket_send_op.hpp \ - asio/detail/reactive_socket_sendto_op.hpp \ - asio/detail/reactive_socket_service_base.hpp \ - asio/detail/reactive_socket_service.hpp \ - asio/detail/reactive_wait_op.hpp \ - asio/detail/reactor_fwd.hpp \ - asio/detail/reactor.hpp \ - asio/detail/reactor_op.hpp \ - asio/detail/reactor_op_queue.hpp \ - asio/detail/recycling_allocator.hpp \ - asio/detail/regex_fwd.hpp \ - asio/detail/resolve_endpoint_op.hpp \ - asio/detail/resolve_op.hpp \ - asio/detail/resolve_query_op.hpp \ - asio/detail/resolver_service_base.hpp \ - asio/detail/resolver_service.hpp \ - asio/detail/scheduler.hpp \ - asio/detail/scheduler_operation.hpp \ - asio/detail/scheduler_thread_info.hpp \ - asio/detail/scoped_lock.hpp \ - asio/detail/scoped_ptr.hpp \ - asio/detail/select_interrupter.hpp \ - asio/detail/select_reactor.hpp \ - asio/detail/service_registry.hpp \ - asio/detail/signal_blocker.hpp \ - asio/detail/signal_handler.hpp \ - asio/detail/signal_init.hpp \ - asio/detail/signal_op.hpp \ - asio/detail/signal_set_service.hpp \ - asio/detail/socket_holder.hpp \ - asio/detail/socket_ops.hpp \ - asio/detail/socket_option.hpp \ - asio/detail/socket_select_interrupter.hpp \ - asio/detail/socket_types.hpp \ - asio/detail/solaris_fenced_block.hpp \ - asio/detail/static_mutex.hpp \ - asio/detail/std_event.hpp \ - asio/detail/std_fenced_block.hpp \ - asio/detail/std_global.hpp \ - asio/detail/std_mutex.hpp \ - asio/detail/std_static_mutex.hpp \ - asio/detail/std_thread.hpp \ - asio/detail/strand_executor_service.hpp \ - asio/detail/strand_service.hpp \ - asio/detail/string_view.hpp \ - asio/detail/thread_context.hpp \ - asio/detail/thread_group.hpp \ - asio/detail/thread.hpp \ - asio/detail/thread_info_base.hpp \ - asio/detail/throw_error.hpp \ - asio/detail/throw_exception.hpp \ - asio/detail/timer_queue_base.hpp \ - asio/detail/timer_queue.hpp \ - asio/detail/timer_queue_ptime.hpp \ - asio/detail/timer_queue_set.hpp \ - asio/detail/timer_scheduler_fwd.hpp \ - asio/detail/timer_scheduler.hpp \ - asio/detail/tss_ptr.hpp \ - asio/detail/type_traits.hpp \ - asio/detail/variadic_templates.hpp \ - asio/detail/wait_handler.hpp \ - asio/detail/wait_op.hpp \ - asio/detail/winapp_thread.hpp \ - asio/detail/wince_thread.hpp \ - asio/detail/win_event.hpp \ - asio/detail/win_fd_set_adapter.hpp \ - asio/detail/win_fenced_block.hpp \ - asio/detail/win_global.hpp \ - asio/detail/win_iocp_handle_read_op.hpp \ - asio/detail/win_iocp_handle_service.hpp \ - asio/detail/win_iocp_handle_write_op.hpp \ - asio/detail/win_iocp_io_context.hpp \ - asio/detail/win_iocp_null_buffers_op.hpp \ - asio/detail/win_iocp_operation.hpp \ - asio/detail/win_iocp_overlapped_op.hpp \ - asio/detail/win_iocp_overlapped_ptr.hpp \ - asio/detail/win_iocp_serial_port_service.hpp \ - asio/detail/win_iocp_socket_accept_op.hpp \ - asio/detail/win_iocp_socket_connect_op.hpp \ - asio/detail/win_iocp_socket_recvfrom_op.hpp \ - asio/detail/win_iocp_socket_recvmsg_op.hpp \ - asio/detail/win_iocp_socket_recv_op.hpp \ - asio/detail/win_iocp_socket_send_op.hpp \ - asio/detail/win_iocp_socket_service_base.hpp \ - asio/detail/win_iocp_socket_service.hpp \ - asio/detail/win_iocp_thread_info.hpp \ - asio/detail/win_iocp_wait_op.hpp \ - asio/detail/win_mutex.hpp \ - asio/detail/win_object_handle_service.hpp \ - asio/detail/winrt_async_manager.hpp \ - asio/detail/winrt_async_op.hpp \ - asio/detail/winrt_resolve_op.hpp \ - asio/detail/winrt_resolver_service.hpp \ - asio/detail/winrt_socket_connect_op.hpp \ - asio/detail/winrt_socket_recv_op.hpp \ - asio/detail/winrt_socket_send_op.hpp \ - asio/detail/winrt_ssocket_service_base.hpp \ - asio/detail/winrt_ssocket_service.hpp \ - asio/detail/winrt_timer_scheduler.hpp \ - asio/detail/winrt_utils.hpp \ - asio/detail/winsock_init.hpp \ - asio/detail/win_static_mutex.hpp \ - asio/detail/win_thread.hpp \ - asio/detail/win_tss_ptr.hpp \ - asio/detail/work_dispatcher.hpp \ - asio/detail/wrapped_handler.hpp \ - asio/dispatch.hpp \ - asio/error_code.hpp \ - asio/error.hpp \ - asio/execution_context.hpp \ - asio/executor.hpp \ - asio/executor_work_guard.hpp \ - asio/experimental/co_spawn.hpp \ - asio/experimental/detached.hpp \ - asio/experimental.hpp \ - asio/experimental/impl/co_spawn.hpp \ - asio/experimental/impl/detached.hpp \ - asio/experimental/impl/redirect_error.hpp \ - asio/experimental/redirect_error.hpp \ - asio/generic/basic_endpoint.hpp \ - asio/generic/datagram_protocol.hpp \ - asio/generic/detail/endpoint.hpp \ - asio/generic/detail/impl/endpoint.ipp \ - asio/generic/raw_protocol.hpp \ - asio/generic/seq_packet_protocol.hpp \ - asio/generic/stream_protocol.hpp \ - asio/handler_alloc_hook.hpp \ - asio/handler_continuation_hook.hpp \ - asio/handler_invoke_hook.hpp \ - asio/handler_type.hpp \ - asio/high_resolution_timer.hpp \ - asio.hpp \ - asio/impl/buffered_read_stream.hpp \ - asio/impl/buffered_write_stream.hpp \ - asio/impl/connect.hpp \ - asio/impl/defer.hpp \ - asio/impl/dispatch.hpp \ - asio/impl/error_code.ipp \ - asio/impl/error.ipp \ - asio/impl/execution_context.hpp \ - asio/impl/execution_context.ipp \ - asio/impl/executor.hpp \ - asio/impl/executor.ipp \ - asio/impl/handler_alloc_hook.ipp \ - asio/impl/io_context.hpp \ - asio/impl/io_context.ipp \ - asio/impl/post.hpp \ - asio/impl/read_at.hpp \ - asio/impl/read.hpp \ - asio/impl/read_until.hpp \ - asio/impl/serial_port_base.hpp \ - asio/impl/serial_port_base.ipp \ - asio/impl/spawn.hpp \ - asio/impl/src.cpp \ - asio/impl/src.hpp \ - asio/impl/system_context.hpp \ - asio/impl/system_context.ipp \ - asio/impl/system_executor.hpp \ - asio/impl/thread_pool.hpp \ - asio/impl/thread_pool.ipp \ - asio/impl/use_future.hpp \ - asio/impl/write_at.hpp \ - asio/impl/write.hpp \ - asio/io_context.hpp \ - asio/io_context_strand.hpp \ - asio/io_service.hpp \ - asio/io_service_strand.hpp \ - asio/ip/address.hpp \ - asio/ip/address_v4.hpp \ - asio/ip/address_v4_iterator.hpp \ - asio/ip/address_v4_range.hpp \ - asio/ip/address_v6.hpp \ - asio/ip/address_v6_iterator.hpp \ - asio/ip/address_v6_range.hpp \ - asio/ip/bad_address_cast.hpp \ - asio/ip/basic_endpoint.hpp \ - asio/ip/basic_resolver_entry.hpp \ - asio/ip/basic_resolver.hpp \ - asio/ip/basic_resolver_iterator.hpp \ - asio/ip/basic_resolver_query.hpp \ - asio/ip/basic_resolver_results.hpp \ - asio/ip/detail/endpoint.hpp \ - asio/ip/detail/impl/endpoint.ipp \ - asio/ip/detail/socket_option.hpp \ - asio/ip/host_name.hpp \ - asio/ip/icmp.hpp \ - asio/ip/impl/address.hpp \ - asio/ip/impl/address.ipp \ - asio/ip/impl/address_v4.hpp \ - asio/ip/impl/address_v4.ipp \ - asio/ip/impl/address_v6.hpp \ - asio/ip/impl/address_v6.ipp \ - asio/ip/impl/basic_endpoint.hpp \ - asio/ip/impl/host_name.ipp \ - asio/ip/impl/network_v4.hpp \ - asio/ip/impl/network_v4.ipp \ - asio/ip/impl/network_v6.hpp \ - asio/ip/impl/network_v6.ipp \ - asio/ip/multicast.hpp \ - asio/ip/network_v4.hpp \ - asio/ip/network_v6.hpp \ - asio/ip/resolver_base.hpp \ - asio/ip/resolver_query_base.hpp \ - asio/ip/resolver_service.hpp \ - asio/ip/tcp.hpp \ - asio/ip/udp.hpp \ - asio/ip/unicast.hpp \ - asio/ip/v6_only.hpp \ - asio/is_executor.hpp \ - asio/is_read_buffered.hpp \ - asio/is_write_buffered.hpp \ - asio/local/basic_endpoint.hpp \ - asio/local/connect_pair.hpp \ - asio/local/datagram_protocol.hpp \ - asio/local/detail/endpoint.hpp \ - asio/local/detail/impl/endpoint.ipp \ - asio/local/stream_protocol.hpp \ - asio/packaged_task.hpp \ - asio/placeholders.hpp \ - asio/posix/basic_descriptor.hpp \ - asio/posix/basic_stream_descriptor.hpp \ - asio/posix/descriptor_base.hpp \ - asio/posix/descriptor.hpp \ - asio/posix/stream_descriptor.hpp \ - asio/posix/stream_descriptor_service.hpp \ - asio/post.hpp \ - asio/raw_socket_service.hpp \ - asio/read_at.hpp \ - asio/read.hpp \ - asio/read_until.hpp \ - asio/seq_packet_socket_service.hpp \ - asio/serial_port_base.hpp \ - asio/serial_port.hpp \ - asio/serial_port_service.hpp \ - asio/signal_set.hpp \ - asio/signal_set_service.hpp \ - asio/socket_acceptor_service.hpp \ - asio/socket_base.hpp \ - asio/spawn.hpp \ - asio/ssl/context_base.hpp \ - asio/ssl/context.hpp \ - asio/ssl/detail/buffered_handshake_op.hpp \ - asio/ssl/detail/engine.hpp \ - asio/ssl/detail/handshake_op.hpp \ - asio/ssl/detail/impl/engine.ipp \ - asio/ssl/detail/impl/openssl_init.ipp \ - asio/ssl/detail/io.hpp \ - asio/ssl/detail/openssl_init.hpp \ - asio/ssl/detail/openssl_types.hpp \ - asio/ssl/detail/password_callback.hpp \ - asio/ssl/detail/read_op.hpp \ - asio/ssl/detail/shutdown_op.hpp \ - asio/ssl/detail/stream_core.hpp \ - asio/ssl/detail/verify_callback.hpp \ - asio/ssl/detail/write_op.hpp \ - asio/ssl/error.hpp \ - asio/ssl.hpp \ - asio/ssl/impl/context.hpp \ - asio/ssl/impl/context.ipp \ - asio/ssl/impl/error.ipp \ - asio/ssl/impl/rfc2818_verification.ipp \ - asio/ssl/impl/src.hpp \ - asio/ssl/rfc2818_verification.hpp \ - asio/ssl/stream_base.hpp \ - asio/ssl/stream.hpp \ - asio/ssl/verify_context.hpp \ - asio/ssl/verify_mode.hpp \ - asio/steady_timer.hpp \ - asio/strand.hpp \ - asio/streambuf.hpp \ - asio/stream_socket_service.hpp \ - asio/system_context.hpp \ - asio/system_error.hpp \ - asio/system_executor.hpp \ - asio/system_timer.hpp \ - asio/thread.hpp \ - asio/thread_pool.hpp \ - asio/time_traits.hpp \ - asio/ts/buffer.hpp \ - asio/ts/executor.hpp \ - asio/ts/internet.hpp \ - asio/ts/io_context.hpp \ - asio/ts/netfwd.hpp \ - asio/ts/net.hpp \ - asio/ts/socket.hpp \ - asio/ts/timer.hpp \ - asio/unyield.hpp \ - asio/use_future.hpp \ - asio/uses_executor.hpp \ - asio/version.hpp \ - asio/waitable_timer_service.hpp \ - asio/wait_traits.hpp \ - asio/windows/basic_handle.hpp \ - asio/windows/basic_object_handle.hpp \ - asio/windows/basic_random_access_handle.hpp \ - asio/windows/basic_stream_handle.hpp \ - asio/windows/object_handle.hpp \ - asio/windows/object_handle_service.hpp \ - asio/windows/overlapped_handle.hpp \ - asio/windows/overlapped_ptr.hpp \ - asio/windows/random_access_handle.hpp \ - asio/windows/random_access_handle_service.hpp \ - asio/windows/stream_handle.hpp \ - asio/windows/stream_handle_service.hpp \ - asio/write_at.hpp \ - asio/write.hpp \ - asio/yield.hpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in diff --git a/Sources/Vendor/asio/include/Makefile.in b/Sources/Vendor/asio/include/Makefile.in deleted file mode 100644 index 894b5fa..0000000 --- a/Sources/Vendor/asio/include/Makefile.in +++ /dev/null @@ -1,1026 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(nobase_include_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(includedir)" -HEADERS = $(nobase_include_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ - -# find . -name "*.*pp" | sed -e 's/^\.\///' | sed -e 's/^.*$/ & \\/' | sort -nobase_include_HEADERS = \ - asio/associated_allocator.hpp \ - asio/associated_executor.hpp \ - asio/async_result.hpp \ - asio/basic_datagram_socket.hpp \ - asio/basic_deadline_timer.hpp \ - asio/basic_io_object.hpp \ - asio/basic_raw_socket.hpp \ - asio/basic_seq_packet_socket.hpp \ - asio/basic_serial_port.hpp \ - asio/basic_signal_set.hpp \ - asio/basic_socket_acceptor.hpp \ - asio/basic_socket.hpp \ - asio/basic_socket_iostream.hpp \ - asio/basic_socket_streambuf.hpp \ - asio/basic_streambuf_fwd.hpp \ - asio/basic_streambuf.hpp \ - asio/basic_stream_socket.hpp \ - asio/basic_waitable_timer.hpp \ - asio/bind_executor.hpp \ - asio/buffered_read_stream_fwd.hpp \ - asio/buffered_read_stream.hpp \ - asio/buffered_stream_fwd.hpp \ - asio/buffered_stream.hpp \ - asio/buffered_write_stream_fwd.hpp \ - asio/buffered_write_stream.hpp \ - asio/buffer.hpp \ - asio/buffers_iterator.hpp \ - asio/completion_condition.hpp \ - asio/connect.hpp \ - asio/coroutine.hpp \ - asio/datagram_socket_service.hpp \ - asio/deadline_timer.hpp \ - asio/deadline_timer_service.hpp \ - asio/defer.hpp \ - asio/detail/array_fwd.hpp \ - asio/detail/array.hpp \ - asio/detail/assert.hpp \ - asio/detail/atomic_count.hpp \ - asio/detail/base_from_completion_cond.hpp \ - asio/detail/bind_handler.hpp \ - asio/detail/buffered_stream_storage.hpp \ - asio/detail/buffer_resize_guard.hpp \ - asio/detail/buffer_sequence_adapter.hpp \ - asio/detail/call_stack.hpp \ - asio/detail/chrono.hpp \ - asio/detail/chrono_time_traits.hpp \ - asio/detail/completion_handler.hpp \ - asio/detail/concurrency_hint.hpp \ - asio/detail/conditionally_enabled_event.hpp \ - asio/detail/conditionally_enabled_mutex.hpp \ - asio/detail/config.hpp \ - asio/detail/consuming_buffers.hpp \ - asio/detail/cstddef.hpp \ - asio/detail/cstdint.hpp \ - asio/detail/date_time_fwd.hpp \ - asio/detail/deadline_timer_service.hpp \ - asio/detail/dependent_type.hpp \ - asio/detail/descriptor_ops.hpp \ - asio/detail/descriptor_read_op.hpp \ - asio/detail/descriptor_write_op.hpp \ - asio/detail/dev_poll_reactor.hpp \ - asio/detail/epoll_reactor.hpp \ - asio/detail/eventfd_select_interrupter.hpp \ - asio/detail/event.hpp \ - asio/detail/executor_op.hpp \ - asio/detail/fd_set_adapter.hpp \ - asio/detail/fenced_block.hpp \ - asio/detail/functional.hpp \ - asio/detail/future.hpp \ - asio/detail/gcc_arm_fenced_block.hpp \ - asio/detail/gcc_hppa_fenced_block.hpp \ - asio/detail/gcc_sync_fenced_block.hpp \ - asio/detail/gcc_x86_fenced_block.hpp \ - asio/detail/global.hpp \ - asio/detail/handler_alloc_helpers.hpp \ - asio/detail/handler_cont_helpers.hpp \ - asio/detail/handler_invoke_helpers.hpp \ - asio/detail/handler_tracking.hpp \ - asio/detail/handler_type_requirements.hpp \ - asio/detail/handler_work.hpp \ - asio/detail/hash_map.hpp \ - asio/detail/impl/buffer_sequence_adapter.ipp \ - asio/detail/impl/descriptor_ops.ipp \ - asio/detail/impl/dev_poll_reactor.hpp \ - asio/detail/impl/dev_poll_reactor.ipp \ - asio/detail/impl/epoll_reactor.hpp \ - asio/detail/impl/epoll_reactor.ipp \ - asio/detail/impl/eventfd_select_interrupter.ipp \ - asio/detail/impl/handler_tracking.ipp \ - asio/detail/impl/kqueue_reactor.hpp \ - asio/detail/impl/kqueue_reactor.ipp \ - asio/detail/impl/null_event.ipp \ - asio/detail/impl/pipe_select_interrupter.ipp \ - asio/detail/impl/posix_event.ipp \ - asio/detail/impl/posix_mutex.ipp \ - asio/detail/impl/posix_thread.ipp \ - asio/detail/impl/posix_tss_ptr.ipp \ - asio/detail/impl/reactive_descriptor_service.ipp \ - asio/detail/impl/reactive_serial_port_service.ipp \ - asio/detail/impl/reactive_socket_service_base.ipp \ - asio/detail/impl/resolver_service_base.ipp \ - asio/detail/impl/scheduler.ipp \ - asio/detail/impl/select_reactor.hpp \ - asio/detail/impl/select_reactor.ipp \ - asio/detail/impl/service_registry.hpp \ - asio/detail/impl/service_registry.ipp \ - asio/detail/impl/signal_set_service.ipp \ - asio/detail/impl/socket_ops.ipp \ - asio/detail/impl/socket_select_interrupter.ipp \ - asio/detail/impl/strand_executor_service.hpp \ - asio/detail/impl/strand_executor_service.ipp \ - asio/detail/impl/strand_service.hpp \ - asio/detail/impl/strand_service.ipp \ - asio/detail/impl/throw_error.ipp \ - asio/detail/impl/timer_queue_ptime.ipp \ - asio/detail/impl/timer_queue_set.ipp \ - asio/detail/impl/win_event.ipp \ - asio/detail/impl/win_iocp_handle_service.ipp \ - asio/detail/impl/win_iocp_io_context.hpp \ - asio/detail/impl/win_iocp_io_context.ipp \ - asio/detail/impl/win_iocp_serial_port_service.ipp \ - asio/detail/impl/win_iocp_socket_service_base.ipp \ - asio/detail/impl/win_mutex.ipp \ - asio/detail/impl/win_object_handle_service.ipp \ - asio/detail/impl/winrt_ssocket_service_base.ipp \ - asio/detail/impl/winrt_timer_scheduler.hpp \ - asio/detail/impl/winrt_timer_scheduler.ipp \ - asio/detail/impl/winsock_init.ipp \ - asio/detail/impl/win_static_mutex.ipp \ - asio/detail/impl/win_thread.ipp \ - asio/detail/impl/win_tss_ptr.ipp \ - asio/detail/io_control.hpp \ - asio/detail/is_buffer_sequence.hpp \ - asio/detail/is_executor.hpp \ - asio/detail/keyword_tss_ptr.hpp \ - asio/detail/kqueue_reactor.hpp \ - asio/detail/limits.hpp \ - asio/detail/local_free_on_block_exit.hpp \ - asio/detail/macos_fenced_block.hpp \ - asio/detail/memory.hpp \ - asio/detail/mutex.hpp \ - asio/detail/noncopyable.hpp \ - asio/detail/null_event.hpp \ - asio/detail/null_fenced_block.hpp \ - asio/detail/null_global.hpp \ - asio/detail/null_mutex.hpp \ - asio/detail/null_reactor.hpp \ - asio/detail/null_signal_blocker.hpp \ - asio/detail/null_socket_service.hpp \ - asio/detail/null_static_mutex.hpp \ - asio/detail/null_thread.hpp \ - asio/detail/null_tss_ptr.hpp \ - asio/detail/object_pool.hpp \ - asio/detail/old_win_sdk_compat.hpp \ - asio/detail/operation.hpp \ - asio/detail/op_queue.hpp \ - asio/detail/pipe_select_interrupter.hpp \ - asio/detail/pop_options.hpp \ - asio/detail/posix_event.hpp \ - asio/detail/posix_fd_set_adapter.hpp \ - asio/detail/posix_global.hpp \ - asio/detail/posix_mutex.hpp \ - asio/detail/posix_signal_blocker.hpp \ - asio/detail/posix_static_mutex.hpp \ - asio/detail/posix_thread.hpp \ - asio/detail/posix_tss_ptr.hpp \ - asio/detail/push_options.hpp \ - asio/detail/reactive_descriptor_service.hpp \ - asio/detail/reactive_null_buffers_op.hpp \ - asio/detail/reactive_serial_port_service.hpp \ - asio/detail/reactive_socket_accept_op.hpp \ - asio/detail/reactive_socket_connect_op.hpp \ - asio/detail/reactive_socket_recvfrom_op.hpp \ - asio/detail/reactive_socket_recvmsg_op.hpp \ - asio/detail/reactive_socket_recv_op.hpp \ - asio/detail/reactive_socket_send_op.hpp \ - asio/detail/reactive_socket_sendto_op.hpp \ - asio/detail/reactive_socket_service_base.hpp \ - asio/detail/reactive_socket_service.hpp \ - asio/detail/reactive_wait_op.hpp \ - asio/detail/reactor_fwd.hpp \ - asio/detail/reactor.hpp \ - asio/detail/reactor_op.hpp \ - asio/detail/reactor_op_queue.hpp \ - asio/detail/recycling_allocator.hpp \ - asio/detail/regex_fwd.hpp \ - asio/detail/resolve_endpoint_op.hpp \ - asio/detail/resolve_op.hpp \ - asio/detail/resolve_query_op.hpp \ - asio/detail/resolver_service_base.hpp \ - asio/detail/resolver_service.hpp \ - asio/detail/scheduler.hpp \ - asio/detail/scheduler_operation.hpp \ - asio/detail/scheduler_thread_info.hpp \ - asio/detail/scoped_lock.hpp \ - asio/detail/scoped_ptr.hpp \ - asio/detail/select_interrupter.hpp \ - asio/detail/select_reactor.hpp \ - asio/detail/service_registry.hpp \ - asio/detail/signal_blocker.hpp \ - asio/detail/signal_handler.hpp \ - asio/detail/signal_init.hpp \ - asio/detail/signal_op.hpp \ - asio/detail/signal_set_service.hpp \ - asio/detail/socket_holder.hpp \ - asio/detail/socket_ops.hpp \ - asio/detail/socket_option.hpp \ - asio/detail/socket_select_interrupter.hpp \ - asio/detail/socket_types.hpp \ - asio/detail/solaris_fenced_block.hpp \ - asio/detail/static_mutex.hpp \ - asio/detail/std_event.hpp \ - asio/detail/std_fenced_block.hpp \ - asio/detail/std_global.hpp \ - asio/detail/std_mutex.hpp \ - asio/detail/std_static_mutex.hpp \ - asio/detail/std_thread.hpp \ - asio/detail/strand_executor_service.hpp \ - asio/detail/strand_service.hpp \ - asio/detail/string_view.hpp \ - asio/detail/thread_context.hpp \ - asio/detail/thread_group.hpp \ - asio/detail/thread.hpp \ - asio/detail/thread_info_base.hpp \ - asio/detail/throw_error.hpp \ - asio/detail/throw_exception.hpp \ - asio/detail/timer_queue_base.hpp \ - asio/detail/timer_queue.hpp \ - asio/detail/timer_queue_ptime.hpp \ - asio/detail/timer_queue_set.hpp \ - asio/detail/timer_scheduler_fwd.hpp \ - asio/detail/timer_scheduler.hpp \ - asio/detail/tss_ptr.hpp \ - asio/detail/type_traits.hpp \ - asio/detail/variadic_templates.hpp \ - asio/detail/wait_handler.hpp \ - asio/detail/wait_op.hpp \ - asio/detail/winapp_thread.hpp \ - asio/detail/wince_thread.hpp \ - asio/detail/win_event.hpp \ - asio/detail/win_fd_set_adapter.hpp \ - asio/detail/win_fenced_block.hpp \ - asio/detail/win_global.hpp \ - asio/detail/win_iocp_handle_read_op.hpp \ - asio/detail/win_iocp_handle_service.hpp \ - asio/detail/win_iocp_handle_write_op.hpp \ - asio/detail/win_iocp_io_context.hpp \ - asio/detail/win_iocp_null_buffers_op.hpp \ - asio/detail/win_iocp_operation.hpp \ - asio/detail/win_iocp_overlapped_op.hpp \ - asio/detail/win_iocp_overlapped_ptr.hpp \ - asio/detail/win_iocp_serial_port_service.hpp \ - asio/detail/win_iocp_socket_accept_op.hpp \ - asio/detail/win_iocp_socket_connect_op.hpp \ - asio/detail/win_iocp_socket_recvfrom_op.hpp \ - asio/detail/win_iocp_socket_recvmsg_op.hpp \ - asio/detail/win_iocp_socket_recv_op.hpp \ - asio/detail/win_iocp_socket_send_op.hpp \ - asio/detail/win_iocp_socket_service_base.hpp \ - asio/detail/win_iocp_socket_service.hpp \ - asio/detail/win_iocp_thread_info.hpp \ - asio/detail/win_iocp_wait_op.hpp \ - asio/detail/win_mutex.hpp \ - asio/detail/win_object_handle_service.hpp \ - asio/detail/winrt_async_manager.hpp \ - asio/detail/winrt_async_op.hpp \ - asio/detail/winrt_resolve_op.hpp \ - asio/detail/winrt_resolver_service.hpp \ - asio/detail/winrt_socket_connect_op.hpp \ - asio/detail/winrt_socket_recv_op.hpp \ - asio/detail/winrt_socket_send_op.hpp \ - asio/detail/winrt_ssocket_service_base.hpp \ - asio/detail/winrt_ssocket_service.hpp \ - asio/detail/winrt_timer_scheduler.hpp \ - asio/detail/winrt_utils.hpp \ - asio/detail/winsock_init.hpp \ - asio/detail/win_static_mutex.hpp \ - asio/detail/win_thread.hpp \ - asio/detail/win_tss_ptr.hpp \ - asio/detail/work_dispatcher.hpp \ - asio/detail/wrapped_handler.hpp \ - asio/dispatch.hpp \ - asio/error_code.hpp \ - asio/error.hpp \ - asio/execution_context.hpp \ - asio/executor.hpp \ - asio/executor_work_guard.hpp \ - asio/experimental/co_spawn.hpp \ - asio/experimental/detached.hpp \ - asio/experimental.hpp \ - asio/experimental/impl/co_spawn.hpp \ - asio/experimental/impl/detached.hpp \ - asio/experimental/impl/redirect_error.hpp \ - asio/experimental/redirect_error.hpp \ - asio/generic/basic_endpoint.hpp \ - asio/generic/datagram_protocol.hpp \ - asio/generic/detail/endpoint.hpp \ - asio/generic/detail/impl/endpoint.ipp \ - asio/generic/raw_protocol.hpp \ - asio/generic/seq_packet_protocol.hpp \ - asio/generic/stream_protocol.hpp \ - asio/handler_alloc_hook.hpp \ - asio/handler_continuation_hook.hpp \ - asio/handler_invoke_hook.hpp \ - asio/handler_type.hpp \ - asio/high_resolution_timer.hpp \ - asio.hpp \ - asio/impl/buffered_read_stream.hpp \ - asio/impl/buffered_write_stream.hpp \ - asio/impl/connect.hpp \ - asio/impl/defer.hpp \ - asio/impl/dispatch.hpp \ - asio/impl/error_code.ipp \ - asio/impl/error.ipp \ - asio/impl/execution_context.hpp \ - asio/impl/execution_context.ipp \ - asio/impl/executor.hpp \ - asio/impl/executor.ipp \ - asio/impl/handler_alloc_hook.ipp \ - asio/impl/io_context.hpp \ - asio/impl/io_context.ipp \ - asio/impl/post.hpp \ - asio/impl/read_at.hpp \ - asio/impl/read.hpp \ - asio/impl/read_until.hpp \ - asio/impl/serial_port_base.hpp \ - asio/impl/serial_port_base.ipp \ - asio/impl/spawn.hpp \ - asio/impl/src.cpp \ - asio/impl/src.hpp \ - asio/impl/system_context.hpp \ - asio/impl/system_context.ipp \ - asio/impl/system_executor.hpp \ - asio/impl/thread_pool.hpp \ - asio/impl/thread_pool.ipp \ - asio/impl/use_future.hpp \ - asio/impl/write_at.hpp \ - asio/impl/write.hpp \ - asio/io_context.hpp \ - asio/io_context_strand.hpp \ - asio/io_service.hpp \ - asio/io_service_strand.hpp \ - asio/ip/address.hpp \ - asio/ip/address_v4.hpp \ - asio/ip/address_v4_iterator.hpp \ - asio/ip/address_v4_range.hpp \ - asio/ip/address_v6.hpp \ - asio/ip/address_v6_iterator.hpp \ - asio/ip/address_v6_range.hpp \ - asio/ip/bad_address_cast.hpp \ - asio/ip/basic_endpoint.hpp \ - asio/ip/basic_resolver_entry.hpp \ - asio/ip/basic_resolver.hpp \ - asio/ip/basic_resolver_iterator.hpp \ - asio/ip/basic_resolver_query.hpp \ - asio/ip/basic_resolver_results.hpp \ - asio/ip/detail/endpoint.hpp \ - asio/ip/detail/impl/endpoint.ipp \ - asio/ip/detail/socket_option.hpp \ - asio/ip/host_name.hpp \ - asio/ip/icmp.hpp \ - asio/ip/impl/address.hpp \ - asio/ip/impl/address.ipp \ - asio/ip/impl/address_v4.hpp \ - asio/ip/impl/address_v4.ipp \ - asio/ip/impl/address_v6.hpp \ - asio/ip/impl/address_v6.ipp \ - asio/ip/impl/basic_endpoint.hpp \ - asio/ip/impl/host_name.ipp \ - asio/ip/impl/network_v4.hpp \ - asio/ip/impl/network_v4.ipp \ - asio/ip/impl/network_v6.hpp \ - asio/ip/impl/network_v6.ipp \ - asio/ip/multicast.hpp \ - asio/ip/network_v4.hpp \ - asio/ip/network_v6.hpp \ - asio/ip/resolver_base.hpp \ - asio/ip/resolver_query_base.hpp \ - asio/ip/resolver_service.hpp \ - asio/ip/tcp.hpp \ - asio/ip/udp.hpp \ - asio/ip/unicast.hpp \ - asio/ip/v6_only.hpp \ - asio/is_executor.hpp \ - asio/is_read_buffered.hpp \ - asio/is_write_buffered.hpp \ - asio/local/basic_endpoint.hpp \ - asio/local/connect_pair.hpp \ - asio/local/datagram_protocol.hpp \ - asio/local/detail/endpoint.hpp \ - asio/local/detail/impl/endpoint.ipp \ - asio/local/stream_protocol.hpp \ - asio/packaged_task.hpp \ - asio/placeholders.hpp \ - asio/posix/basic_descriptor.hpp \ - asio/posix/basic_stream_descriptor.hpp \ - asio/posix/descriptor_base.hpp \ - asio/posix/descriptor.hpp \ - asio/posix/stream_descriptor.hpp \ - asio/posix/stream_descriptor_service.hpp \ - asio/post.hpp \ - asio/raw_socket_service.hpp \ - asio/read_at.hpp \ - asio/read.hpp \ - asio/read_until.hpp \ - asio/seq_packet_socket_service.hpp \ - asio/serial_port_base.hpp \ - asio/serial_port.hpp \ - asio/serial_port_service.hpp \ - asio/signal_set.hpp \ - asio/signal_set_service.hpp \ - asio/socket_acceptor_service.hpp \ - asio/socket_base.hpp \ - asio/spawn.hpp \ - asio/ssl/context_base.hpp \ - asio/ssl/context.hpp \ - asio/ssl/detail/buffered_handshake_op.hpp \ - asio/ssl/detail/engine.hpp \ - asio/ssl/detail/handshake_op.hpp \ - asio/ssl/detail/impl/engine.ipp \ - asio/ssl/detail/impl/openssl_init.ipp \ - asio/ssl/detail/io.hpp \ - asio/ssl/detail/openssl_init.hpp \ - asio/ssl/detail/openssl_types.hpp \ - asio/ssl/detail/password_callback.hpp \ - asio/ssl/detail/read_op.hpp \ - asio/ssl/detail/shutdown_op.hpp \ - asio/ssl/detail/stream_core.hpp \ - asio/ssl/detail/verify_callback.hpp \ - asio/ssl/detail/write_op.hpp \ - asio/ssl/error.hpp \ - asio/ssl.hpp \ - asio/ssl/impl/context.hpp \ - asio/ssl/impl/context.ipp \ - asio/ssl/impl/error.ipp \ - asio/ssl/impl/rfc2818_verification.ipp \ - asio/ssl/impl/src.hpp \ - asio/ssl/rfc2818_verification.hpp \ - asio/ssl/stream_base.hpp \ - asio/ssl/stream.hpp \ - asio/ssl/verify_context.hpp \ - asio/ssl/verify_mode.hpp \ - asio/steady_timer.hpp \ - asio/strand.hpp \ - asio/streambuf.hpp \ - asio/stream_socket_service.hpp \ - asio/system_context.hpp \ - asio/system_error.hpp \ - asio/system_executor.hpp \ - asio/system_timer.hpp \ - asio/thread.hpp \ - asio/thread_pool.hpp \ - asio/time_traits.hpp \ - asio/ts/buffer.hpp \ - asio/ts/executor.hpp \ - asio/ts/internet.hpp \ - asio/ts/io_context.hpp \ - asio/ts/netfwd.hpp \ - asio/ts/net.hpp \ - asio/ts/socket.hpp \ - asio/ts/timer.hpp \ - asio/unyield.hpp \ - asio/use_future.hpp \ - asio/uses_executor.hpp \ - asio/version.hpp \ - asio/waitable_timer_service.hpp \ - asio/wait_traits.hpp \ - asio/windows/basic_handle.hpp \ - asio/windows/basic_object_handle.hpp \ - asio/windows/basic_random_access_handle.hpp \ - asio/windows/basic_stream_handle.hpp \ - asio/windows/object_handle.hpp \ - asio/windows/object_handle_service.hpp \ - asio/windows/overlapped_handle.hpp \ - asio/windows/overlapped_ptr.hpp \ - asio/windows/random_access_handle.hpp \ - asio/windows/random_access_handle_service.hpp \ - asio/windows/stream_handle.hpp \ - asio/windows/stream_handle_service.hpp \ - asio/write_at.hpp \ - asio/write.hpp \ - asio/yield.hpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign include/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-nobase_includeHEADERS: $(nobase_include_HEADERS) - @$(NORMAL_INSTALL) - @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ - fi; \ - $(am__nobase_list) | while read dir files; do \ - xfiles=; for file in $$files; do \ - if test -f "$$file"; then xfiles="$$xfiles $$file"; \ - else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ - test -z "$$xfiles" || { \ - test "x$$dir" = x. || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \ - echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \ - $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \ - done - -uninstall-nobase_includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \ - $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ - dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-nobase_includeHEADERS - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-nobase_includeHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - cscopelist-am ctags ctags-am distclean distclean-generic \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-nobase_includeHEADERS install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-nobase_includeHEADERS - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/include/asio.hpp b/Sources/Vendor/asio/include/asio.hpp deleted file mode 100644 index 3356df0..0000000 --- a/Sources/Vendor/asio/include/asio.hpp +++ /dev/null @@ -1,152 +0,0 @@ -// -// asio.hpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_HPP -#define ASIO_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/async_result.hpp" -#include "asio/basic_datagram_socket.hpp" -#include "asio/basic_deadline_timer.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/basic_raw_socket.hpp" -#include "asio/basic_seq_packet_socket.hpp" -#include "asio/basic_serial_port.hpp" -#include "asio/basic_signal_set.hpp" -#include "asio/basic_socket_acceptor.hpp" -#include "asio/basic_socket_iostream.hpp" -#include "asio/basic_socket_streambuf.hpp" -#include "asio/basic_stream_socket.hpp" -#include "asio/basic_streambuf.hpp" -#include "asio/basic_waitable_timer.hpp" -#include "asio/bind_executor.hpp" -#include "asio/buffer.hpp" -#include "asio/buffered_read_stream_fwd.hpp" -#include "asio/buffered_read_stream.hpp" -#include "asio/buffered_stream_fwd.hpp" -#include "asio/buffered_stream.hpp" -#include "asio/buffered_write_stream_fwd.hpp" -#include "asio/buffered_write_stream.hpp" -#include "asio/buffers_iterator.hpp" -#include "asio/completion_condition.hpp" -#include "asio/connect.hpp" -#include "asio/coroutine.hpp" -#include "asio/datagram_socket_service.hpp" -#include "asio/deadline_timer_service.hpp" -#include "asio/deadline_timer.hpp" -#include "asio/defer.hpp" -#include "asio/dispatch.hpp" -#include "asio/error.hpp" -#include "asio/error_code.hpp" -#include "asio/execution_context.hpp" -#include "asio/executor.hpp" -#include "asio/executor_work_guard.hpp" -#include "asio/generic/basic_endpoint.hpp" -#include "asio/generic/datagram_protocol.hpp" -#include "asio/generic/raw_protocol.hpp" -#include "asio/generic/seq_packet_protocol.hpp" -#include "asio/generic/stream_protocol.hpp" -#include "asio/handler_alloc_hook.hpp" -#include "asio/handler_continuation_hook.hpp" -#include "asio/handler_invoke_hook.hpp" -#include "asio/handler_type.hpp" -#include "asio/high_resolution_timer.hpp" -#include "asio/io_context.hpp" -#include "asio/io_context_strand.hpp" -#include "asio/io_service.hpp" -#include "asio/io_service_strand.hpp" -#include "asio/ip/address.hpp" -#include "asio/ip/address_v4.hpp" -#include "asio/ip/address_v4_iterator.hpp" -#include "asio/ip/address_v4_range.hpp" -#include "asio/ip/address_v6.hpp" -#include "asio/ip/address_v6_iterator.hpp" -#include "asio/ip/address_v6_range.hpp" -#include "asio/ip/bad_address_cast.hpp" -#include "asio/ip/basic_endpoint.hpp" -#include "asio/ip/basic_resolver.hpp" -#include "asio/ip/basic_resolver_entry.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/host_name.hpp" -#include "asio/ip/icmp.hpp" -#include "asio/ip/multicast.hpp" -#include "asio/ip/resolver_base.hpp" -#include "asio/ip/resolver_query_base.hpp" -#include "asio/ip/resolver_service.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/ip/udp.hpp" -#include "asio/ip/unicast.hpp" -#include "asio/ip/v6_only.hpp" -#include "asio/is_executor.hpp" -#include "asio/is_read_buffered.hpp" -#include "asio/is_write_buffered.hpp" -#include "asio/local/basic_endpoint.hpp" -#include "asio/local/connect_pair.hpp" -#include "asio/local/datagram_protocol.hpp" -#include "asio/local/stream_protocol.hpp" -#include "asio/packaged_task.hpp" -#include "asio/placeholders.hpp" -#include "asio/posix/basic_descriptor.hpp" -#include "asio/posix/basic_stream_descriptor.hpp" -#include "asio/posix/descriptor.hpp" -#include "asio/posix/descriptor_base.hpp" -#include "asio/posix/stream_descriptor.hpp" -#include "asio/posix/stream_descriptor_service.hpp" -#include "asio/post.hpp" -#include "asio/raw_socket_service.hpp" -#include "asio/read.hpp" -#include "asio/read_at.hpp" -#include "asio/read_until.hpp" -#include "asio/seq_packet_socket_service.hpp" -#include "asio/serial_port.hpp" -#include "asio/serial_port_base.hpp" -#include "asio/serial_port_service.hpp" -#include "asio/signal_set.hpp" -#include "asio/signal_set_service.hpp" -#include "asio/socket_acceptor_service.hpp" -#include "asio/socket_base.hpp" -#include "asio/steady_timer.hpp" -#include "asio/strand.hpp" -#include "asio/stream_socket_service.hpp" -#include "asio/streambuf.hpp" -#include "asio/system_context.hpp" -#include "asio/system_error.hpp" -#include "asio/system_executor.hpp" -#include "asio/system_timer.hpp" -#include "asio/thread.hpp" -#include "asio/thread_pool.hpp" -#include "asio/time_traits.hpp" -#include "asio/use_future.hpp" -#include "asio/uses_executor.hpp" -#include "asio/version.hpp" -#include "asio/wait_traits.hpp" -#include "asio/waitable_timer_service.hpp" -#include "asio/windows/basic_handle.hpp" -#include "asio/windows/basic_object_handle.hpp" -#include "asio/windows/basic_random_access_handle.hpp" -#include "asio/windows/basic_stream_handle.hpp" -#include "asio/windows/object_handle.hpp" -#include "asio/windows/object_handle_service.hpp" -#include "asio/windows/overlapped_handle.hpp" -#include "asio/windows/overlapped_ptr.hpp" -#include "asio/windows/random_access_handle.hpp" -#include "asio/windows/random_access_handle_service.hpp" -#include "asio/windows/stream_handle.hpp" -#include "asio/windows/stream_handle_service.hpp" -#include "asio/write.hpp" -#include "asio/write_at.hpp" - -#endif // ASIO_HPP diff --git a/Sources/Vendor/asio/include/asio/associated_allocator.hpp b/Sources/Vendor/asio/include/asio/associated_allocator.hpp deleted file mode 100644 index 8b488bb..0000000 --- a/Sources/Vendor/asio/include/asio/associated_allocator.hpp +++ /dev/null @@ -1,131 +0,0 @@ -// -// associated_allocator.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_ASSOCIATED_ALLOCATOR_HPP -#define ASIO_ASSOCIATED_ALLOCATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -struct associated_allocator_check -{ - typedef void type; -}; - -template -struct associated_allocator_impl -{ - typedef E type; - - static type get(const T&, const E& e) ASIO_NOEXCEPT - { - return e; - } -}; - -template -struct associated_allocator_impl::type> -{ - typedef typename T::allocator_type type; - - static type get(const T& t, const E&) ASIO_NOEXCEPT - { - return t.get_allocator(); - } -}; - -} // namespace detail - -/// Traits type used to obtain the allocator associated with an object. -/** - * A program may specialise this traits type if the @c T template parameter in - * the specialisation is a user-defined type. The template parameter @c - * Allocator shall be a type meeting the Allocator requirements. - * - * Specialisations shall meet the following requirements, where @c t is a const - * reference to an object of type @c T, and @c a is an object of type @c - * Allocator. - * - * @li Provide a nested typedef @c type that identifies a type meeting the - * Allocator requirements. - * - * @li Provide a noexcept static member function named @c get, callable as @c - * get(t) and with return type @c type. - * - * @li Provide a noexcept static member function named @c get, callable as @c - * get(t,a) and with return type @c type. - */ -template > -struct associated_allocator -{ - /// If @c T has a nested type @c allocator_type, T::allocator_type. - /// Otherwise @c Allocator. -#if defined(GENERATING_DOCUMENTATION) - typedef see_below type; -#else // defined(GENERATING_DOCUMENTATION) - typedef typename detail::associated_allocator_impl::type type; -#endif // defined(GENERATING_DOCUMENTATION) - - /// If @c T has a nested type @c allocator_type, returns - /// t.get_allocator(). Otherwise returns @c a. - static type get(const T& t, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return detail::associated_allocator_impl::get(t, a); - } -}; - -/// Helper function to obtain an object's associated allocator. -/** - * @returns associated_allocator::get(t) - */ -template -inline typename associated_allocator::type -get_associated_allocator(const T& t) ASIO_NOEXCEPT -{ - return associated_allocator::get(t); -} - -/// Helper function to obtain an object's associated allocator. -/** - * @returns associated_allocator::get(t, a) - */ -template -inline typename associated_allocator::type -get_associated_allocator(const T& t, const Allocator& a) ASIO_NOEXCEPT -{ - return associated_allocator::get(t, a); -} - -#if defined(ASIO_HAS_ALIAS_TEMPLATES) - -template > -using associated_allocator_t - = typename associated_allocator::type; - -#endif // defined(ASIO_HAS_ALIAS_TEMPLATES) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_ASSOCIATED_ALLOCATOR_HPP diff --git a/Sources/Vendor/asio/include/asio/associated_executor.hpp b/Sources/Vendor/asio/include/asio/associated_executor.hpp deleted file mode 100644 index 4c5c207..0000000 --- a/Sources/Vendor/asio/include/asio/associated_executor.hpp +++ /dev/null @@ -1,149 +0,0 @@ -// -// associated_executor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_ASSOCIATED_EXECUTOR_HPP -#define ASIO_ASSOCIATED_EXECUTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/is_executor.hpp" -#include "asio/system_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -struct associated_executor_check -{ - typedef void type; -}; - -template -struct associated_executor_impl -{ - typedef E type; - - static type get(const T&, const E& e) ASIO_NOEXCEPT - { - return e; - } -}; - -template -struct associated_executor_impl::type> -{ - typedef typename T::executor_type type; - - static type get(const T& t, const E&) ASIO_NOEXCEPT - { - return t.get_executor(); - } -}; - -} // namespace detail - -/// Traits type used to obtain the executor associated with an object. -/** - * A program may specialise this traits type if the @c T template parameter in - * the specialisation is a user-defined type. The template parameter @c - * Executor shall be a type meeting the Executor requirements. - * - * Specialisations shall meet the following requirements, where @c t is a const - * reference to an object of type @c T, and @c e is an object of type @c - * Executor. - * - * @li Provide a nested typedef @c type that identifies a type meeting the - * Executor requirements. - * - * @li Provide a noexcept static member function named @c get, callable as @c - * get(t) and with return type @c type. - * - * @li Provide a noexcept static member function named @c get, callable as @c - * get(t,e) and with return type @c type. - */ -template -struct associated_executor -{ - /// If @c T has a nested type @c executor_type, T::executor_type. - /// Otherwise @c Executor. -#if defined(GENERATING_DOCUMENTATION) - typedef see_below type; -#else // defined(GENERATING_DOCUMENTATION) - typedef typename detail::associated_executor_impl::type type; -#endif // defined(GENERATING_DOCUMENTATION) - - /// If @c T has a nested type @c executor_type, returns - /// t.get_executor(). Otherwise returns @c ex. - static type get(const T& t, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return detail::associated_executor_impl::get(t, ex); - } -}; - -/// Helper function to obtain an object's associated executor. -/** - * @returns associated_executor::get(t) - */ -template -inline typename associated_executor::type -get_associated_executor(const T& t) ASIO_NOEXCEPT -{ - return associated_executor::get(t); -} - -/// Helper function to obtain an object's associated executor. -/** - * @returns associated_executor::get(t, ex) - */ -template -inline typename associated_executor::type -get_associated_executor(const T& t, const Executor& ex, - typename enable_if::value>::type* = 0) ASIO_NOEXCEPT -{ - return associated_executor::get(t, ex); -} - -/// Helper function to obtain an object's associated executor. -/** - * @returns associated_executor::get(t, ctx.get_executor()) - */ -template -inline typename associated_executor::type -get_associated_executor(const T& t, ExecutionContext& ctx, - typename enable_if::value>::type* = 0) ASIO_NOEXCEPT -{ - return associated_executor::get(t, ctx.get_executor()); -} - -#if defined(ASIO_HAS_ALIAS_TEMPLATES) - -template -using associated_executor_t = typename associated_executor::type; - -#endif // defined(ASIO_HAS_ALIAS_TEMPLATES) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_ASSOCIATED_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/async_result.hpp b/Sources/Vendor/asio/include/asio/async_result.hpp deleted file mode 100644 index 18acdf2..0000000 --- a/Sources/Vendor/asio/include/asio/async_result.hpp +++ /dev/null @@ -1,221 +0,0 @@ -// -// async_result.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_ASYNC_RESULT_HPP -#define ASIO_ASYNC_RESULT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/handler_type.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// An interface for customising the behaviour of an initiating function. -/** - * The async_result traits class is used for determining: - * - * @li the concrete completion handler type to be called at the end of the - * asynchronous operation; - * - * @li the initiating function return type; and - * - * @li how the return value of the initiating function is obtained. - * - * The trait allows the handler and return types to be determined at the point - * where the specific completion handler signature is known. - * - * This template may be specialised for user-defined completion token types. - * The primary template assumes that the CompletionToken is the completion - * handler. - */ -#if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -template -#else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -template -#endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -class async_result -{ -public: -#if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - /// The concrete completion handler type for the specific signature. - typedef CompletionToken completion_handler_type; - - /// The return type of the initiating function. - typedef void return_type; -#else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - // For backward compatibility, determine the concrete completion handler type - // by using the legacy handler_type trait. - typedef typename handler_type::type - completion_handler_type; - - // For backward compatibility, determine the initiating function return type - // using the legacy single-parameter version of async_result. - typedef typename async_result::type return_type; -#endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - - /// Construct an async result from a given handler. - /** - * When using a specalised async_result, the constructor has an opportunity - * to initialise some state associated with the completion handler, which is - * then returned from the initiating function. - */ - explicit async_result(completion_handler_type& h) -#if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - // No data members to initialise. -#else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - : legacy_result_(h) -#endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - { - (void)h; - } - - /// Obtain the value to be returned from the initiating function. - return_type get() - { -#if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - // Nothing to do. -#else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - return legacy_result_.get(); -#endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - } - -private: - async_result(const async_result&) ASIO_DELETED; - async_result& operator=(const async_result&) ASIO_DELETED; - -#if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - // No data members. -#else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - async_result legacy_result_; -#endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -}; - -#if !defined(ASIO_NO_DEPRECATED) - -/// (Deprecated: Use two-parameter version of async_result.) An interface for -/// customising the behaviour of an initiating function. -/** - * This template may be specialised for user-defined handler types. - */ -template -class async_result -{ -public: - /// The return type of the initiating function. - typedef void type; - - /// Construct an async result from a given handler. - /** - * When using a specalised async_result, the constructor has an opportunity - * to initialise some state associated with the handler, which is then - * returned from the initiating function. - */ - explicit async_result(Handler&) - { - } - - /// Obtain the value to be returned from the initiating function. - type get() - { - } -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Helper template to deduce the handler type from a CompletionToken, capture -/// a local copy of the handler, and then create an async_result for the -/// handler. -template -struct async_completion -{ - /// The real handler type to be used for the asynchronous operation. - typedef typename asio::async_result< - typename decay::type, - Signature>::completion_handler_type completion_handler_type; - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Constructor. - /** - * The constructor creates the concrete completion handler and makes the link - * between the handler and the asynchronous result. - */ - explicit async_completion(CompletionToken& token) - : completion_handler(static_cast::value, - completion_handler_type&, CompletionToken&&>::type>(token)), - result(completion_handler) - { - } -#else // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - explicit async_completion(typename decay::type& token) - : completion_handler(token), - result(completion_handler) - { - } - - explicit async_completion(const typename decay::type& token) - : completion_handler(token), - result(completion_handler) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// A copy of, or reference to, a real handler object. -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - typename conditional< - is_same::value, - completion_handler_type&, completion_handler_type>::type completion_handler; -#else // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - completion_handler_type completion_handler; -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// The result of the asynchronous operation's initiating function. - async_result::type, Signature> result; -}; - -namespace detail { - -template -struct async_result_helper - : async_result::type, Signature> -{ -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(GENERATING_DOCUMENTATION) -# define ASIO_INITFN_RESULT_TYPE(ct, sig) \ - void_or_deduced -#elif defined(_MSC_VER) && (_MSC_VER < 1500) -# define ASIO_INITFN_RESULT_TYPE(ct, sig) \ - typename ::asio::detail::async_result_helper< \ - ct, sig>::return_type -#define ASIO_HANDLER_TYPE(ct, sig) \ - typename ::asio::detail::async_result_helper< \ - ct, sig>::completion_handler_type -#else -# define ASIO_INITFN_RESULT_TYPE(ct, sig) \ - typename ::asio::async_result< \ - typename ::asio::decay::type, sig>::return_type -#define ASIO_HANDLER_TYPE(ct, sig) \ - typename ::asio::async_result< \ - typename ::asio::decay::type, sig>::completion_handler_type -#endif - -#endif // ASIO_ASYNC_RESULT_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_datagram_socket.hpp b/Sources/Vendor/asio/include/asio/basic_datagram_socket.hpp deleted file mode 100644 index 346cc35..0000000 --- a/Sources/Vendor/asio/include/asio/basic_datagram_socket.hpp +++ /dev/null @@ -1,1040 +0,0 @@ -// -// basic_datagram_socket.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BASIC_DATAGRAM_SOCKET_HPP -#define ASIO_BASIC_DATAGRAM_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/basic_socket.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/datagram_socket_service.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides datagram-oriented socket functionality. -/** - * The basic_datagram_socket class template provides asynchronous and blocking - * datagram-oriented socket functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template )> -class basic_datagram_socket - : public basic_socket -{ -public: - /// The native representation of a socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename basic_socket< - Protocol ASIO_SVC_TARG>::native_handle_type native_handle_type; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_datagram_socket without opening it. - /** - * This constructor creates a datagram socket without opening it. The open() - * function must be called before data can be sent or received on the socket. - * - * @param io_context The io_context object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - */ - explicit basic_datagram_socket(asio::io_context& io_context) - : basic_socket(io_context) - { - } - - /// Construct and open a basic_datagram_socket. - /** - * This constructor creates and opens a datagram socket. - * - * @param io_context The io_context object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws asio::system_error Thrown on failure. - */ - basic_datagram_socket(asio::io_context& io_context, - const protocol_type& protocol) - : basic_socket(io_context, protocol) - { - } - - /// Construct a basic_datagram_socket, opening it and binding it to the given - /// local endpoint. - /** - * This constructor creates a datagram socket and automatically opens it bound - * to the specified endpoint on the local machine. The protocol used is the - * protocol associated with the given endpoint. - * - * @param io_context The io_context object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param endpoint An endpoint on the local machine to which the datagram - * socket will be bound. - * - * @throws asio::system_error Thrown on failure. - */ - basic_datagram_socket(asio::io_context& io_context, - const endpoint_type& endpoint) - : basic_socket(io_context, endpoint) - { - } - - /// Construct a basic_datagram_socket on an existing native socket. - /** - * This constructor creates a datagram socket object to hold an existing - * native socket. - * - * @param io_context The io_context object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket The new underlying socket implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_datagram_socket(asio::io_context& io_context, - const protocol_type& protocol, const native_handle_type& native_socket) - : basic_socket( - io_context, protocol, native_socket) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_datagram_socket from another. - /** - * This constructor moves a datagram socket from one object to another. - * - * @param other The other basic_datagram_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_context&) constructor. - */ - basic_datagram_socket(basic_datagram_socket&& other) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_datagram_socket from another. - /** - * This assignment operator moves a datagram socket from one object to - * another. - * - * @param other The other basic_datagram_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_context&) constructor. - */ - basic_datagram_socket& operator=(basic_datagram_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } - - /// Move-construct a basic_datagram_socket from a socket of another protocol - /// type. - /** - * This constructor moves a datagram socket from one object to another. - * - * @param other The other basic_datagram_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_context&) constructor. - */ - template - basic_datagram_socket( - basic_datagram_socket&& other, - typename enable_if::value>::type* = 0) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_datagram_socket from a socket of another protocol - /// type. - /** - * This assignment operator moves a datagram socket from one object to - * another. - * - * @param other The other basic_datagram_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_context&) constructor. - */ - template - typename enable_if::value, - basic_datagram_socket>::type& operator=( - basic_datagram_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the socket. - /** - * This function destroys the socket, cancelling any outstanding asynchronous - * operations associated with the socket as if by calling @c cancel. - */ - ~basic_datagram_socket() - { - } - - /// Send some data on a connected socket. - /** - * 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. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected datagram socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code socket.send(asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on a connected socket. - /** - * 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. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected datagram socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, flags, ec); - asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on a connected socket. - /** - * 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. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected datagram socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return this->get_service().send( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to asynchronously send data on the datagram socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected datagram - * socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to asynchronously send data on the datagram socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected datagram - * socket. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send(this->get_implementation(), - buffers, flags, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Send a datagram to the specified endpoint. - /** - * This function is used to send a datagram to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * asio::ip::udp::endpoint destination( - * asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.send_to(asio::buffer(data, size), destination); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination) - { - asio::error_code ec; - std::size_t s = this->get_service().send_to( - this->get_implementation(), buffers, destination, 0, ec); - asio::detail::throw_error(ec, "send_to"); - return s; - } - - /// Send a datagram to the specified endpoint. - /** - * This function is used to send a datagram to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().send_to( - this->get_implementation(), buffers, destination, flags, ec); - asio::detail::throw_error(ec, "send_to"); - return s; - } - - /// Send a datagram to the specified endpoint. - /** - * This function is used to send a datagram to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - asio::error_code& ec) - { - return this->get_service().send_to(this->get_implementation(), - buffers, destination, flags, ec); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send a datagram to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * asio::ip::udp::endpoint destination( - * asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.async_send_to( - * asio::buffer(data, size), destination, handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send_to( - this->get_implementation(), buffers, destination, 0, - ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send_to( - this->get_implementation(), buffers, destination, 0, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send a datagram to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send_to( - this->get_implementation(), buffers, destination, flags, - ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send_to( - this->get_implementation(), buffers, destination, flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the datagram socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected datagram - * socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.receive(asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the datagram socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected datagram - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the datagram socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected datagram - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the datagram - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * datagram socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the datagram - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * datagram socket. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, flags, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Receive a datagram with the endpoint of the sender. - /** - * This function is used to receive a datagram. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * asio::ip::udp::endpoint sender_endpoint; - * socket.receive_from( - * asio::buffer(data, size), sender_endpoint); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint) - { - asio::error_code ec; - std::size_t s = this->get_service().receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, ec); - asio::detail::throw_error(ec, "receive_from"); - return s; - } - - /// Receive a datagram with the endpoint of the sender. - /** - * This function is used to receive a datagram. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, ec); - asio::detail::throw_error(ec, "receive_from"); - return s; - } - - /// Receive a datagram with the endpoint of the sender. - /** - * This function is used to receive a datagram. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - asio::error_code& ec) - { - return this->get_service().receive_from(this->get_implementation(), - buffers, sender_endpoint, flags, ec); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive a datagram. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.async_receive_from( - * asio::buffer(data, size), sender_endpoint, handler); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, - ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive a datagram. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, - ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_DATAGRAM_SOCKET_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_deadline_timer.hpp b/Sources/Vendor/asio/include/asio/basic_deadline_timer.hpp deleted file mode 100644 index 5b20066..0000000 --- a/Sources/Vendor/asio/include/asio/basic_deadline_timer.hpp +++ /dev/null @@ -1,628 +0,0 @@ -// -// basic_deadline_timer.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BASIC_DEADLINE_TIMER_HPP -#define ASIO_BASIC_DEADLINE_TIMER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/time_traits.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/deadline_timer_service.hpp" -#else // defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/detail/deadline_timer_service.hpp" -# define ASIO_SVC_T detail::deadline_timer_service -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides waitable timer functionality. -/** - * The basic_deadline_timer class template provides the ability to perform a - * blocking or asynchronous wait for a timer to expire. - * - * A deadline 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 asio::deadline_timer typedef. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Examples - * Performing a blocking wait: - * @code - * // Construct a timer without setting an expiry time. - * asio::deadline_timer timer(io_context); - * - * // Set an expiry time relative to now. - * timer.expires_from_now(boost::posix_time::seconds(5)); - * - * // Wait for the timer to expire. - * timer.wait(); - * @endcode - * - * @par - * Performing an asynchronous wait: - * @code - * void handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Timer expired. - * } - * } - * - * ... - * - * // Construct a timer with an absolute expiry time. - * asio::deadline_timer timer(io_context, - * boost::posix_time::time_from_string("2005-12-07 23:59:59.000")); - * - * // Start an asynchronous wait. - * timer.async_wait(handler); - * @endcode - * - * @par Changing an active deadline_timer's expiry time - * - * Changing the expiry time of a timer while there are pending asynchronous - * waits causes those wait operations to be cancelled. To ensure that the action - * associated with the timer is performed only once, use something like this: - * used: - * - * @code - * void on_some_event() - * { - * if (my_timer.expires_from_now(seconds(5)) > 0) - * { - * // We managed to cancel the timer. Start new asynchronous wait. - * my_timer.async_wait(on_timeout); - * } - * else - * { - * // Too late, timer has already expired! - * } - * } - * - * void on_timeout(const asio::error_code& e) - * { - * if (e != asio::error::operation_aborted) - * { - * // Timer was not cancelled, take necessary action. - * } - * } - * @endcode - * - * @li The asio::basic_deadline_timer::expires_from_now() function - * cancels any pending asynchronous waits, and returns the number of - * asynchronous waits that were cancelled. If it returns 0 then you were too - * late and the wait handler has already been executed, or will soon be - * executed. If it returns 1 then the wait handler was successfully cancelled. - * - * @li If a wait handler is cancelled, the asio::error_code passed to - * it contains the value asio::error::operation_aborted. - */ -template - ASIO_SVC_TPARAM_DEF2(= deadline_timer_service)> -class basic_deadline_timer - : ASIO_SVC_ACCESS basic_io_object -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The time traits type. - typedef TimeTraits traits_type; - - /// The time type. - typedef typename traits_type::time_type time_type; - - /// The duration type. - typedef typename traits_type::duration_type duration_type; - - /// Constructor. - /** - * This constructor creates a timer without setting an expiry time. The - * expires_at() or expires_from_now() functions must be called to set an - * expiry time before the timer can be waited on. - * - * @param io_context The io_context object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - */ - explicit basic_deadline_timer(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Constructor to set a particular expiry time as an absolute time. - /** - * This constructor creates a timer and sets the expiry time. - * - * @param io_context The io_context object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - * - * @param expiry_time The expiry time to be used for the timer, expressed - * as an absolute time. - */ - basic_deadline_timer(asio::io_context& io_context, - const time_type& expiry_time) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().expires_at(this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_at"); - } - - /// Constructor to set a particular expiry time relative to now. - /** - * This constructor creates a timer and sets the expiry time. - * - * @param io_context The io_context object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - * - * @param expiry_time The expiry time to be used for the timer, relative to - * now. - */ - basic_deadline_timer(asio::io_context& io_context, - const duration_type& expiry_time) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().expires_from_now( - this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_from_now"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_deadline_timer from another. - /** - * This constructor moves a timer from one object to another. - * - * @param other The other basic_deadline_timer object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_deadline_timer(io_context&) constructor. - */ - basic_deadline_timer(basic_deadline_timer&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign a basic_deadline_timer from another. - /** - * This assignment operator moves a timer from one object to another. Cancels - * any outstanding asynchronous operations associated with the target object. - * - * @param other The other basic_deadline_timer object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_deadline_timer(io_context&) constructor. - */ - basic_deadline_timer& operator=(basic_deadline_timer&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the timer. - /** - * This function destroys the timer, cancelling any outstanding asynchronous - * wait operations associated with the timer as if by calling @c cancel. - */ - ~basic_deadline_timer() - { - } - -#if defined(ASIO_ENABLE_OLD_SERVICES) - // These functions are provided by basic_io_object<>. -#else // defined(ASIO_ENABLE_OLD_SERVICES) -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - - /// Cancel any asynchronous operations that are waiting on the timer. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the timer. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel() - { - asio::error_code ec; - std::size_t s = this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - return s; - } - - /// Cancel any asynchronous operations that are waiting on the timer. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the timer. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel(asio::error_code& ec) - { - return this->get_service().cancel(this->get_implementation(), ec); - } - - /// Cancels one asynchronous operation that is waiting on the timer. - /** - * This function forces the completion of one pending asynchronous wait - * operation against the timer. Handlers are cancelled in FIFO order. The - * handler for the cancelled operation will be invoked with the - * asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @return The number of asynchronous operations that were cancelled. That is, - * either 0 or 1. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when cancel_one() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel_one() - { - asio::error_code ec; - std::size_t s = this->get_service().cancel_one( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel_one"); - return s; - } - - /// Cancels one asynchronous operation that is waiting on the timer. - /** - * This function forces the completion of one pending asynchronous wait - * operation against the timer. Handlers are cancelled in FIFO order. The - * handler for the cancelled operation will be invoked with the - * asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. That is, - * either 0 or 1. - * - * @note If the timer has already expired when cancel_one() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel_one(asio::error_code& ec) - { - return this->get_service().cancel_one(this->get_implementation(), ec); - } - - /// Get the timer's expiry time as an absolute time. - /** - * This function may be used to obtain the timer's current expiry time. - * Whether the timer has expired or not does not affect this value. - */ - time_type expires_at() const - { - return this->get_service().expires_at(this->get_implementation()); - } - - /// Set the timer's expiry time as an absolute time. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when expires_at() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_at(const time_type& expiry_time) - { - asio::error_code ec; - std::size_t s = this->get_service().expires_at( - this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_at"); - return s; - } - - /// Set the timer's expiry time as an absolute time. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when expires_at() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_at(const time_type& expiry_time, - asio::error_code& ec) - { - return this->get_service().expires_at( - this->get_implementation(), expiry_time, ec); - } - - /// Get the timer's expiry time relative to now. - /** - * This function may be used to obtain the timer's current expiry time. - * Whether the timer has expired or not does not affect this value. - */ - duration_type expires_from_now() const - { - return this->get_service().expires_from_now(this->get_implementation()); - } - - /// Set the timer's expiry time relative to now. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when expires_from_now() is called, - * then the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_from_now(const duration_type& expiry_time) - { - asio::error_code ec; - std::size_t s = this->get_service().expires_from_now( - this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_from_now"); - return s; - } - - /// Set the timer's expiry time relative to now. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when expires_from_now() is called, - * then the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_from_now(const duration_type& expiry_time, - asio::error_code& ec) - { - return this->get_service().expires_from_now( - this->get_implementation(), expiry_time, ec); - } - - /// Perform a blocking wait on the timer. - /** - * This function is used to wait for the timer to expire. This function - * blocks and does not return until the timer has expired. - * - * @throws asio::system_error Thrown on failure. - */ - void wait() - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Perform a blocking wait on the timer. - /** - * This function is used to wait for the timer to expire. This function - * blocks and does not return until the timer has expired. - * - * @param ec Set to indicate what error occurred, if any. - */ - void wait(asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), ec); - } - - /// Start an asynchronous wait on the timer. - /** - * This function may be used to initiate an asynchronous wait against the - * timer. It always returns immediately. - * - * For each call to async_wait(), the supplied handler will be called exactly - * once. The handler will be called when: - * - * @li The timer has expired. - * - * @li The timer was cancelled, in which case the handler is passed the error - * code asio::error::operation_aborted. - * - * @param handler The handler to be called when the timer expires. Copies - * will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(ASIO_MOVE_ARG(WaitHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WaitHandler. - ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_wait(this->get_implementation(), - ASIO_MOVE_CAST(WaitHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_wait(this->get_implementation(), - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# undef ASIO_SVC_T -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_BASIC_DEADLINE_TIMER_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_io_object.hpp b/Sources/Vendor/asio/include/asio/basic_io_object.hpp deleted file mode 100644 index 442e854..0000000 --- a/Sources/Vendor/asio/include/asio/basic_io_object.hpp +++ /dev/null @@ -1,290 +0,0 @@ -// -// basic_io_object.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BASIC_IO_OBJECT_HPP -#define ASIO_BASIC_IO_OBJECT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if defined(ASIO_HAS_MOVE) -namespace detail -{ - // Type trait used to determine whether a service supports move. - template - class service_has_move - { - private: - typedef IoObjectService service_type; - typedef typename service_type::implementation_type implementation_type; - - template - static auto asio_service_has_move_eval(T* t, U* u) - -> decltype(t->move_construct(*u, *u), char()); - static char (&asio_service_has_move_eval(...))[2]; - - public: - static const bool value = - sizeof(asio_service_has_move_eval( - static_cast(0), - static_cast(0))) == 1; - }; -} -#endif // defined(ASIO_HAS_MOVE) - -/// Base class for all I/O objects. -/** - * @note All I/O objects are non-copyable. However, when using C++0x, certain - * I/O objects do support move construction and move assignment. - */ -#if !defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) -template -#else -template ::value> -#endif -class basic_io_object -{ -public: - /// The type of the service that will be used to provide I/O operations. - typedef IoObjectService service_type; - - /// The underlying implementation type of I/O object. - typedef typename service_type::implementation_type implementation_type; - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return service_.get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return service_.get_io_context(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// The type of the executor associated with the object. - typedef asio::io_context::executor_type executor_type; - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return service_.get_io_context().get_executor(); - } - -protected: - /// Construct a basic_io_object. - /** - * Performs: - * @code get_service().construct(get_implementation()); @endcode - */ - explicit basic_io_object(asio::io_context& io_context) - : service_(asio::use_service(io_context)) - { - service_.construct(implementation_); - } - -#if defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_io_object. - /** - * Performs: - * @code get_service().move_construct( - * get_implementation(), other.get_implementation()); @endcode - * - * @note Available only for services that support movability, - */ - basic_io_object(basic_io_object&& other); - - /// Move-assign a basic_io_object. - /** - * Performs: - * @code get_service().move_assign(get_implementation(), - * other.get_service(), other.get_implementation()); @endcode - * - * @note Available only for services that support movability, - */ - basic_io_object& operator=(basic_io_object&& other); - - /// Perform a converting move-construction of a basic_io_object. - template - basic_io_object(IoObjectService1& other_service, - typename IoObjectService1::implementation_type& other_implementation); -#endif // defined(GENERATING_DOCUMENTATION) - - /// Protected destructor to prevent deletion through this type. - /** - * Performs: - * @code get_service().destroy(get_implementation()); @endcode - */ - ~basic_io_object() - { - service_.destroy(implementation_); - } - - /// Get the service associated with the I/O object. - service_type& get_service() - { - return service_; - } - - /// Get the service associated with the I/O object. - const service_type& get_service() const - { - return service_; - } - - /// Get the underlying implementation of the I/O object. - implementation_type& get_implementation() - { - return implementation_; - } - - /// Get the underlying implementation of the I/O object. - const implementation_type& get_implementation() const - { - return implementation_; - } - -private: - basic_io_object(const basic_io_object&); - basic_io_object& operator=(const basic_io_object&); - - // The service associated with the I/O object. - service_type& service_; - - /// The underlying implementation of the I/O object. - implementation_type implementation_; -}; - -#if defined(ASIO_HAS_MOVE) -// Specialisation for movable objects. -template -class basic_io_object -{ -public: - typedef IoObjectService service_type; - typedef typename service_type::implementation_type implementation_type; - -#if !defined(ASIO_NO_DEPRECATED) - asio::io_context& get_io_context() - { - return service_->get_io_context(); - } - - asio::io_context& get_io_service() - { - return service_->get_io_context(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - typedef asio::io_context::executor_type executor_type; - - executor_type get_executor() ASIO_NOEXCEPT - { - return service_->get_io_context().get_executor(); - } - -protected: - explicit basic_io_object(asio::io_context& io_context) - : service_(&asio::use_service(io_context)) - { - service_->construct(implementation_); - } - - basic_io_object(basic_io_object&& other) - : service_(&other.get_service()) - { - service_->move_construct(implementation_, other.implementation_); - } - - template - basic_io_object(IoObjectService1& other_service, - typename IoObjectService1::implementation_type& other_implementation) - : service_(&asio::use_service( - other_service.get_io_context())) - { - service_->converting_move_construct(implementation_, - other_service, other_implementation); - } - - ~basic_io_object() - { - service_->destroy(implementation_); - } - - basic_io_object& operator=(basic_io_object&& other) - { - service_->move_assign(implementation_, - *other.service_, other.implementation_); - service_ = other.service_; - return *this; - } - - service_type& get_service() - { - return *service_; - } - - const service_type& get_service() const - { - return *service_; - } - - implementation_type& get_implementation() - { - return implementation_; - } - - const implementation_type& get_implementation() const - { - return implementation_; - } - -private: - basic_io_object(const basic_io_object&); - void operator=(const basic_io_object&); - - IoObjectService* service_; - implementation_type implementation_; -}; -#endif // defined(ASIO_HAS_MOVE) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_IO_OBJECT_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_raw_socket.hpp b/Sources/Vendor/asio/include/asio/basic_raw_socket.hpp deleted file mode 100644 index 0de7c77..0000000 --- a/Sources/Vendor/asio/include/asio/basic_raw_socket.hpp +++ /dev/null @@ -1,1030 +0,0 @@ -// -// basic_raw_socket.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BASIC_RAW_SOCKET_HPP -#define ASIO_BASIC_RAW_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/basic_socket.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/raw_socket_service.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides raw-oriented socket functionality. -/** - * The basic_raw_socket class template provides asynchronous and blocking - * raw-oriented socket functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template )> -class basic_raw_socket - : public basic_socket -{ -public: - /// The native representation of a socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename basic_socket< - Protocol ASIO_SVC_TARG>::native_handle_type native_handle_type; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_raw_socket without opening it. - /** - * This constructor creates a raw socket without opening it. The open() - * function must be called before data can be sent or received on the socket. - * - * @param io_context The io_context object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - */ - explicit basic_raw_socket(asio::io_context& io_context) - : basic_socket(io_context) - { - } - - /// Construct and open a basic_raw_socket. - /** - * This constructor creates and opens a raw socket. - * - * @param io_context The io_context object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws asio::system_error Thrown on failure. - */ - basic_raw_socket(asio::io_context& io_context, - const protocol_type& protocol) - : basic_socket(io_context, protocol) - { - } - - /// Construct a basic_raw_socket, opening it and binding it to the given - /// local endpoint. - /** - * This constructor creates a raw socket and automatically opens it bound - * to the specified endpoint on the local machine. The protocol used is the - * protocol associated with the given endpoint. - * - * @param io_context The io_context object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param endpoint An endpoint on the local machine to which the raw - * socket will be bound. - * - * @throws asio::system_error Thrown on failure. - */ - basic_raw_socket(asio::io_context& io_context, - const endpoint_type& endpoint) - : basic_socket(io_context, endpoint) - { - } - - /// Construct a basic_raw_socket on an existing native socket. - /** - * This constructor creates a raw socket object to hold an existing - * native socket. - * - * @param io_context The io_context object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket The new underlying socket implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_raw_socket(asio::io_context& io_context, - const protocol_type& protocol, const native_handle_type& native_socket) - : basic_socket( - io_context, protocol, native_socket) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_raw_socket from another. - /** - * This constructor moves a raw socket from one object to another. - * - * @param other The other basic_raw_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_raw_socket(io_context&) constructor. - */ - basic_raw_socket(basic_raw_socket&& other) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_raw_socket from another. - /** - * This assignment operator moves a raw socket from one object to another. - * - * @param other The other basic_raw_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_raw_socket(io_context&) constructor. - */ - basic_raw_socket& operator=(basic_raw_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } - - /// Move-construct a basic_raw_socket from a socket of another protocol type. - /** - * This constructor moves a raw socket from one object to another. - * - * @param other The other basic_raw_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_raw_socket(io_context&) constructor. - */ - template - basic_raw_socket(basic_raw_socket&& other, - typename enable_if::value>::type* = 0) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_raw_socket from a socket of another protocol type. - /** - * This assignment operator moves a raw socket from one object to another. - * - * @param other The other basic_raw_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_raw_socket(io_context&) constructor. - */ - template - typename enable_if::value, - basic_raw_socket>::type& operator=( - basic_raw_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the socket. - /** - * This function destroys the socket, cancelling any outstanding asynchronous - * operations associated with the socket as if by calling @c cancel. - */ - ~basic_raw_socket() - { - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected raw socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code socket.send(asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected raw socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, flags, ec); - asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected raw socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return this->get_service().send( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected raw - * socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected raw - * socket. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send(this->get_implementation(), - buffers, flags, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Send raw data to the specified endpoint. - /** - * This function is used to send raw data to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * asio::ip::udp::endpoint destination( - * asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.send_to(asio::buffer(data, size), destination); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination) - { - asio::error_code ec; - std::size_t s = this->get_service().send_to( - this->get_implementation(), buffers, destination, 0, ec); - asio::detail::throw_error(ec, "send_to"); - return s; - } - - /// Send raw data to the specified endpoint. - /** - * This function is used to send raw data to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().send_to( - this->get_implementation(), buffers, destination, flags, ec); - asio::detail::throw_error(ec, "send_to"); - return s; - } - - /// Send raw data to the specified endpoint. - /** - * This function is used to send raw data to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - asio::error_code& ec) - { - return this->get_service().send_to(this->get_implementation(), - buffers, destination, flags, ec); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send raw data to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * asio::ip::udp::endpoint destination( - * asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.async_send_to( - * asio::buffer(data, size), destination, handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send_to(this->get_implementation(), - buffers, destination, 0, ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send_to(this->get_implementation(), - buffers, destination, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send raw data to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send_to( - this->get_implementation(), buffers, destination, flags, - ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send_to( - this->get_implementation(), buffers, destination, flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the raw socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected raw - * socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.receive(asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the raw socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected raw - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the raw socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected raw - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the raw - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * raw socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the raw - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * raw socket. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, flags, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Receive raw data with the endpoint of the sender. - /** - * This function is used to receive raw data. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * asio::ip::udp::endpoint sender_endpoint; - * socket.receive_from( - * asio::buffer(data, size), sender_endpoint); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint) - { - asio::error_code ec; - std::size_t s = this->get_service().receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, ec); - asio::detail::throw_error(ec, "receive_from"); - return s; - } - - /// Receive raw data with the endpoint of the sender. - /** - * This function is used to receive raw data. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, ec); - asio::detail::throw_error(ec, "receive_from"); - return s; - } - - /// Receive raw data with the endpoint of the sender. - /** - * This function is used to receive raw data. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - asio::error_code& ec) - { - return this->get_service().receive_from(this->get_implementation(), - buffers, sender_endpoint, flags, ec); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive raw data. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.async_receive_from( - * asio::buffer(data, size), 0, sender_endpoint, handler); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, - ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive raw data. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, - ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_RAW_SOCKET_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_seq_packet_socket.hpp b/Sources/Vendor/asio/include/asio/basic_seq_packet_socket.hpp deleted file mode 100644 index 3655d88..0000000 --- a/Sources/Vendor/asio/include/asio/basic_seq_packet_socket.hpp +++ /dev/null @@ -1,618 +0,0 @@ -// -// basic_seq_packet_socket.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BASIC_SEQ_PACKET_SOCKET_HPP -#define ASIO_BASIC_SEQ_PACKET_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/basic_socket.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/seq_packet_socket_service.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides sequenced packet socket functionality. -/** - * The basic_seq_packet_socket class template provides asynchronous and blocking - * sequenced packet socket functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template )> -class basic_seq_packet_socket - : public basic_socket -{ -public: - /// The native representation of a socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename basic_socket< - Protocol ASIO_SVC_TARG>::native_handle_type native_handle_type; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_seq_packet_socket without opening it. - /** - * This constructor creates a sequenced packet socket without opening it. The - * socket needs to be opened and then connected or accepted before data can - * be sent or received on it. - * - * @param io_context The io_context object that the sequenced packet socket - * will use to dispatch handlers for any asynchronous operations performed on - * the socket. - */ - explicit basic_seq_packet_socket(asio::io_context& io_context) - : basic_socket(io_context) - { - } - - /// Construct and open a basic_seq_packet_socket. - /** - * This constructor creates and opens a sequenced_packet socket. The socket - * needs to be connected or accepted before data can be sent or received on - * it. - * - * @param io_context The io_context object that the sequenced packet socket - * will use to dispatch handlers for any asynchronous operations performed on - * the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws asio::system_error Thrown on failure. - */ - basic_seq_packet_socket(asio::io_context& io_context, - const protocol_type& protocol) - : basic_socket(io_context, protocol) - { - } - - /// Construct a basic_seq_packet_socket, opening it and binding it to the - /// given local endpoint. - /** - * This constructor creates a sequenced packet socket and automatically opens - * it bound to the specified endpoint on the local machine. The protocol used - * is the protocol associated with the given endpoint. - * - * @param io_context The io_context object that the sequenced packet socket - * will use to dispatch handlers for any asynchronous operations performed on - * the socket. - * - * @param endpoint An endpoint on the local machine to which the sequenced - * packet socket will be bound. - * - * @throws asio::system_error Thrown on failure. - */ - basic_seq_packet_socket(asio::io_context& io_context, - const endpoint_type& endpoint) - : basic_socket(io_context, endpoint) - { - } - - /// Construct a basic_seq_packet_socket on an existing native socket. - /** - * This constructor creates a sequenced packet socket object to hold an - * existing native socket. - * - * @param io_context The io_context object that the sequenced packet socket - * will use to dispatch handlers for any asynchronous operations performed on - * the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket The new underlying socket implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_seq_packet_socket(asio::io_context& io_context, - const protocol_type& protocol, const native_handle_type& native_socket) - : basic_socket( - io_context, protocol, native_socket) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_seq_packet_socket from another. - /** - * This constructor moves a sequenced packet socket from one object to - * another. - * - * @param other The other basic_seq_packet_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_seq_packet_socket(io_context&) constructor. - */ - basic_seq_packet_socket(basic_seq_packet_socket&& other) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_seq_packet_socket from another. - /** - * This assignment operator moves a sequenced packet socket from one object to - * another. - * - * @param other The other basic_seq_packet_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_seq_packet_socket(io_context&) constructor. - */ - basic_seq_packet_socket& operator=(basic_seq_packet_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } - - /// Move-construct a basic_seq_packet_socket from a socket of another protocol - /// type. - /** - * This constructor moves a sequenced packet socket from one object to - * another. - * - * @param other The other basic_seq_packet_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_seq_packet_socket(io_context&) constructor. - */ - template - basic_seq_packet_socket( - basic_seq_packet_socket&& other, - typename enable_if::value>::type* = 0) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_seq_packet_socket from a socket of another protocol - /// type. - /** - * This assignment operator moves a sequenced packet socket from one object to - * another. - * - * @param other The other basic_seq_packet_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_seq_packet_socket(io_context&) constructor. - */ - template - typename enable_if::value, - basic_seq_packet_socket>::type& operator=( - basic_seq_packet_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the socket. - /** - * This function destroys the socket, cancelling any outstanding asynchronous - * operations associated with the socket as if by calling @c cancel. - */ - ~basic_seq_packet_socket() - { - } - - /// Send some data on the socket. - /** - * This function is used to send data on the sequenced packet socket. The - * function call will block until the data has been sent successfully, or an - * until error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.send(asio::buffer(data, size), 0); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, flags, ec); - asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on the socket. - /** - * This function is used to send data on the sequenced packet socket. The - * function call will block the data has been sent successfully, or an until - * error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. Returns 0 if an error occurred. - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref write function if you need to ensure that all data - * is written before the blocking operation completes. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return this->get_service().send( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send data on the sequenced packet - * socket. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(asio::buffer(data, size), 0, handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send(this->get_implementation(), - buffers, flags, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Receive some data on the socket. - /** - * This function is used to receive data on the sequenced packet socket. The - * function call will block until data has been received successfully, or - * until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param out_flags After the receive call completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.receive(asio::buffer(data, size), out_flags); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags& out_flags) - { - asio::error_code ec; -#if defined(ASIO_ENABLE_OLD_SERVICES) - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, 0, out_flags, ec); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - std::size_t s = this->get_service().receive_with_flags( - this->get_implementation(), buffers, 0, out_flags, ec); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on the socket. - /** - * This function is used to receive data on the sequenced packet socket. The - * function call will block until data has been received successfully, or - * until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param in_flags Flags specifying how the receive call is to be made. - * - * @param out_flags After the receive call completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.receive(asio::buffer(data, size), 0, out_flags); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags in_flags, - socket_base::message_flags& out_flags) - { - asio::error_code ec; -#if defined(ASIO_ENABLE_OLD_SERVICES) - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, in_flags, out_flags, ec); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - std::size_t s = this->get_service().receive_with_flags( - this->get_implementation(), buffers, in_flags, out_flags, ec); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the sequenced packet socket. The - * function call will block until data has been received successfully, or - * until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param in_flags Flags specifying how the receive call is to be made. - * - * @param out_flags After the receive call completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. Returns 0 if an error occurred. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, asio::error_code& ec) - { -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().receive(this->get_implementation(), - buffers, in_flags, out_flags, ec); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().receive_with_flags(this->get_implementation(), - buffers, in_flags, out_flags, ec); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive data from the sequenced - * packet socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param out_flags Once the asynchronous operation completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. The caller must guarantee that the referenced - * variable remains valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(asio::buffer(data, size), out_flags, handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags& out_flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive( - this->get_implementation(), buffers, 0, out_flags, - ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive_with_flags( - this->get_implementation(), buffers, 0, out_flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive data from the sequenced - * data socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param in_flags Flags specifying how the receive call is to be made. - * - * @param out_flags Once the asynchronous operation completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. The caller must guarantee that the referenced - * variable remains valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive( - * asio::buffer(data, size), - * 0, out_flags, handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive( - this->get_implementation(), buffers, in_flags, out_flags, - ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive_with_flags( - this->get_implementation(), buffers, in_flags, out_flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_SEQ_PACKET_SOCKET_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_serial_port.hpp b/Sources/Vendor/asio/include/asio/basic_serial_port.hpp deleted file mode 100644 index 32262f8..0000000 --- a/Sources/Vendor/asio/include/asio/basic_serial_port.hpp +++ /dev/null @@ -1,688 +0,0 @@ -// -// basic_serial_port.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_BASIC_SERIAL_PORT_HPP -#define ASIO_BASIC_SERIAL_PORT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_SERIAL_PORT) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/serial_port_base.hpp" -#include "asio/serial_port_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides serial port functionality. -/** - * The basic_serial_port class template provides functionality that is common - * to all serial ports. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_serial_port - : public basic_io_object, - public serial_port_base -{ -public: - /// The native representation of a serial port. - typedef typename SerialPortService::native_handle_type native_handle_type; - - /// A basic_serial_port is always the lowest layer. - typedef basic_serial_port lowest_layer_type; - - /// Construct a basic_serial_port without opening it. - /** - * This constructor creates a serial port without opening it. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - */ - explicit basic_serial_port(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct and open a basic_serial_port. - /** - * This constructor creates and opens a serial port for the specified device - * name. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param device The platform-specific device name for this serial - * port. - */ - explicit basic_serial_port(asio::io_context& io_context, - const char* device) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Construct and open a basic_serial_port. - /** - * This constructor creates and opens a serial port for the specified device - * name. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param device The platform-specific device name for this serial - * port. - */ - explicit basic_serial_port(asio::io_context& io_context, - const std::string& device) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Construct a basic_serial_port on an existing native serial port. - /** - * This constructor creates a serial port object to hold an existing native - * serial port. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param native_serial_port A native serial port. - * - * @throws asio::system_error Thrown on failure. - */ - basic_serial_port(asio::io_context& io_context, - const native_handle_type& native_serial_port) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_serial_port from another. - /** - * This constructor moves a serial port from one object to another. - * - * @param other The other basic_serial_port object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_serial_port(io_context&) constructor. - */ - basic_serial_port(basic_serial_port&& other) - : basic_io_object( - ASIO_MOVE_CAST(basic_serial_port)(other)) - { - } - - /// Move-assign a basic_serial_port from another. - /** - * This assignment operator moves a serial port from one object to another. - * - * @param other The other basic_serial_port object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_serial_port(io_context&) constructor. - */ - basic_serial_port& operator=(basic_serial_port&& other) - { - basic_io_object::operator=( - ASIO_MOVE_CAST(basic_serial_port)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a basic_serial_port cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a basic_serial_port cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Open the serial port using the specified device name. - /** - * This function opens the serial port for the specified device name. - * - * @param device The platform-specific device name. - * - * @throws asio::system_error Thrown on failure. - */ - void open(const std::string& device) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Open the serial port using the specified device name. - /** - * This function opens the serial port using the given platform-specific - * device name. - * - * @param device The platform-specific device name. - * - * @param ec Set the indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID open(const std::string& device, - asio::error_code& ec) - { - this->get_service().open(this->get_implementation(), device, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native serial port to the serial port. - /* - * This function opens the serial port to hold an existing native serial port. - * - * @param native_serial_port A native serial port. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& native_serial_port) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native serial port to the serial port. - /* - * This function opens the serial port to hold an existing native serial port. - * - * @param native_serial_port A native serial port. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const native_handle_type& native_serial_port, - asio::error_code& ec) - { - this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the serial port is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the serial port. - /** - * This function is used to close the serial port. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the serial port. - /** - * This function is used to close the serial port. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native serial port representation. - /** - * This function may be used to obtain the underlying representation of the - * serial port. This is intended to allow access to native serial port - * functionality that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the serial port. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the serial port. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Send a break sequence to the serial port. - /** - * This function causes a break sequence of platform-specific duration to be - * sent out the serial port. - * - * @throws asio::system_error Thrown on failure. - */ - void send_break() - { - asio::error_code ec; - this->get_service().send_break(this->get_implementation(), ec); - asio::detail::throw_error(ec, "send_break"); - } - - /// Send a break sequence to the serial port. - /** - * This function causes a break sequence of platform-specific duration to be - * sent out the serial port. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID send_break(asio::error_code& ec) - { - this->get_service().send_break(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Set an option on the serial port. - /** - * This function is used to set an option on the serial port. - * - * @param option The option value to be set on the serial port. - * - * @throws asio::system_error Thrown on failure. - * - * @sa SettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - void set_option(const SettableSerialPortOption& option) - { - asio::error_code ec; - this->get_service().set_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "set_option"); - } - - /// Set an option on the serial port. - /** - * This function is used to set an option on the serial port. - * - * @param option The option value to be set on the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa SettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - ASIO_SYNC_OP_VOID set_option(const SettableSerialPortOption& option, - asio::error_code& ec) - { - this->get_service().set_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get an option from the serial port. - /** - * This function is used to get the current value of an option on the serial - * port. - * - * @param option The option value to be obtained from the serial port. - * - * @throws asio::system_error Thrown on failure. - * - * @sa GettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - void get_option(GettableSerialPortOption& option) - { - asio::error_code ec; - this->get_service().get_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "get_option"); - } - - /// Get an option from the serial port. - /** - * This function is used to get the current value of an option on the serial - * port. - * - * @param option The option value to be obtained from the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa GettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - ASIO_SYNC_OP_VOID get_option(GettableSerialPortOption& option, - asio::error_code& ec) - { - this->get_service().get_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Write some data to the serial port. - /** - * This function is used to write data to the serial port. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the serial port. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.write_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the serial port. - /** - * This function is used to write data to the serial port. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().write_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the serial port. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the serial port. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.async_write_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_write_some(this->get_implementation(), - buffers, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Read some data from the serial port. - /** - * This function is used to read data from the serial port. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.read_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the serial port. - /** - * This function is used to read data from the serial port. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().read_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the serial port. - * The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.async_read_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_read_some(this->get_implementation(), - buffers, ASIO_MOVE_CAST(ReadHandler)(handler)); - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_SERIAL_PORT) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_BASIC_SERIAL_PORT_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_signal_set.hpp b/Sources/Vendor/asio/include/asio/basic_signal_set.hpp deleted file mode 100644 index cf34643..0000000 --- a/Sources/Vendor/asio/include/asio/basic_signal_set.hpp +++ /dev/null @@ -1,391 +0,0 @@ -// -// basic_signal_set.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BASIC_SIGNAL_SET_HPP -#define ASIO_BASIC_SIGNAL_SET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/signal_set_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides signal functionality. -/** - * The basic_signal_set class template provides the ability to perform an - * asynchronous wait for one or more signals to occur. - * - * Most applications will use the asio::signal_set typedef. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Example - * Performing an asynchronous wait: - * @code - * void handler( - * const asio::error_code& error, - * int signal_number) - * { - * if (!error) - * { - * // A signal occurred. - * } - * } - * - * ... - * - * // Construct a signal set registered for process termination. - * asio::signal_set signals(io_context, SIGINT, SIGTERM); - * - * // Start an asynchronous wait for one of the signals to occur. - * signals.async_wait(handler); - * @endcode - * - * @par Queueing of signal notifications - * - * If a signal is registered with a signal_set, and the signal occurs when - * there are no waiting handlers, then the signal notification is queued. The - * next async_wait operation on that signal_set will dequeue the notification. - * If multiple notifications are queued, subsequent async_wait operations - * dequeue them one at a time. Signal notifications are dequeued in order of - * ascending signal number. - * - * If a signal number is removed from a signal_set (using the @c remove or @c - * erase member functions) then any queued notifications for that signal are - * discarded. - * - * @par Multiple registration of signals - * - * The same signal number may be registered with different signal_set objects. - * When the signal occurs, one handler is called for each signal_set object. - * - * Note that multiple registration only works for signals that are registered - * using Asio. The application must not also register a signal handler using - * functions such as @c signal() or @c sigaction(). - * - * @par Signal masking on POSIX platforms - * - * POSIX allows signals to be blocked using functions such as @c sigprocmask() - * and @c pthread_sigmask(). For signals to be delivered, programs must ensure - * that any signals registered using signal_set objects are unblocked in at - * least one thread. - */ -template -class basic_signal_set - : public basic_io_object -{ -public: - /// Construct a signal set without adding any signals. - /** - * This constructor creates a signal set without registering for any signals. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - */ - explicit basic_signal_set(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct a signal set and add one signal. - /** - * This constructor creates a signal set and registers for one signal. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code asio::signal_set signals(io_context); - * signals.add(signal_number_1); @endcode - */ - basic_signal_set(asio::io_context& io_context, int signal_number_1) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number_1, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Construct a signal set and add two signals. - /** - * This constructor creates a signal set and registers for two signals. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The first signal number to be added. - * - * @param signal_number_2 The second signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code asio::signal_set signals(io_context); - * signals.add(signal_number_1); - * signals.add(signal_number_2); @endcode - */ - basic_signal_set(asio::io_context& io_context, int signal_number_1, - int signal_number_2) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number_1, ec); - asio::detail::throw_error(ec, "add"); - this->get_service().add(this->get_implementation(), signal_number_2, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Construct a signal set and add three signals. - /** - * This constructor creates a signal set and registers for three signals. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The first signal number to be added. - * - * @param signal_number_2 The second signal number to be added. - * - * @param signal_number_3 The third signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code asio::signal_set signals(io_context); - * signals.add(signal_number_1); - * signals.add(signal_number_2); - * signals.add(signal_number_3); @endcode - */ - basic_signal_set(asio::io_context& io_context, int signal_number_1, - int signal_number_2, int signal_number_3) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number_1, ec); - asio::detail::throw_error(ec, "add"); - this->get_service().add(this->get_implementation(), signal_number_2, ec); - asio::detail::throw_error(ec, "add"); - this->get_service().add(this->get_implementation(), signal_number_3, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Add a signal to a signal_set. - /** - * This function adds the specified signal to the set. It has no effect if the - * signal is already in the set. - * - * @param signal_number The signal to be added to the set. - * - * @throws asio::system_error Thrown on failure. - */ - void add(int signal_number) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Add a signal to a signal_set. - /** - * This function adds the specified signal to the set. It has no effect if the - * signal is already in the set. - * - * @param signal_number The signal to be added to the set. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID add(int signal_number, asio::error_code& ec) - { - this->get_service().add(this->get_implementation(), signal_number, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Remove a signal from a signal_set. - /** - * This function removes the specified signal from the set. It has no effect - * if the signal is not in the set. - * - * @param signal_number The signal to be removed from the set. - * - * @throws asio::system_error Thrown on failure. - * - * @note Removes any notifications that have been queued for the specified - * signal number. - */ - void remove(int signal_number) - { - asio::error_code ec; - this->get_service().remove(this->get_implementation(), signal_number, ec); - asio::detail::throw_error(ec, "remove"); - } - - /// Remove a signal from a signal_set. - /** - * This function removes the specified signal from the set. It has no effect - * if the signal is not in the set. - * - * @param signal_number The signal to be removed from the set. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Removes any notifications that have been queued for the specified - * signal number. - */ - ASIO_SYNC_OP_VOID remove(int signal_number, - asio::error_code& ec) - { - this->get_service().remove(this->get_implementation(), signal_number, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Remove all signals from a signal_set. - /** - * This function removes all signals from the set. It has no effect if the set - * is already empty. - * - * @throws asio::system_error Thrown on failure. - * - * @note Removes all queued notifications. - */ - void clear() - { - asio::error_code ec; - this->get_service().clear(this->get_implementation(), ec); - asio::detail::throw_error(ec, "clear"); - } - - /// Remove all signals from a signal_set. - /** - * This function removes all signals from the set. It has no effect if the set - * is already empty. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Removes all queued notifications. - */ - ASIO_SYNC_OP_VOID clear(asio::error_code& ec) - { - this->get_service().clear(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Cancel all operations associated with the signal set. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the signal set. The handler for each cancelled - * operation will be invoked with the asio::error::operation_aborted - * error code. - * - * Cancellation does not alter the set of registered signals. - * - * @throws asio::system_error Thrown on failure. - * - * @note If a registered signal occurred before cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all operations associated with the signal set. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the signal set. The handler for each cancelled - * operation will be invoked with the asio::error::operation_aborted - * error code. - * - * Cancellation does not alter the set of registered signals. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note If a registered signal occurred before cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous operation to wait for a signal to be delivered. - /** - * This function may be used to initiate an asynchronous wait against the - * signal set. It always returns immediately. - * - * For each call to async_wait(), the supplied handler will be called exactly - * once. The handler will be called when: - * - * @li One of the registered signals in the signal set occurs; or - * - * @li The signal set was cancelled, in which case the handler is passed the - * error code asio::error::operation_aborted. - * - * @param handler The handler to be called when the signal occurs. Copies - * will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * int signal_number // Indicates which signal occurred. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(SignalHandler, - void (asio::error_code, int)) - async_wait(ASIO_MOVE_ARG(SignalHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a SignalHandler. - ASIO_SIGNAL_HANDLER_CHECK(SignalHandler, handler) type_check; - - return this->get_service().async_wait(this->get_implementation(), - ASIO_MOVE_CAST(SignalHandler)(handler)); - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_BASIC_SIGNAL_SET_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_socket.hpp b/Sources/Vendor/asio/include/asio/basic_socket.hpp deleted file mode 100644 index 3dfacb4..0000000 --- a/Sources/Vendor/asio/include/asio/basic_socket.hpp +++ /dev/null @@ -1,1757 +0,0 @@ -// -// basic_socket.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BASIC_SOCKET_HPP -#define ASIO_BASIC_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/post.hpp" -#include "asio/socket_base.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/winrt_ssocket_service.hpp" -# define ASIO_SVC_T detail::winrt_ssocket_service -# elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_socket_service.hpp" -# define ASIO_SVC_T detail::win_iocp_socket_service -# else -# include "asio/detail/reactive_socket_service.hpp" -# define ASIO_SVC_T detail::reactive_socket_service -# endif -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides socket functionality. -/** - * The basic_socket class template provides functionality that is common to both - * stream-oriented and datagram-oriented sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_socket - : ASIO_SVC_ACCESS basic_io_object, - public socket_base -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The native representation of a socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename ASIO_SVC_T::native_handle_type native_handle_type; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - -#if !defined(ASIO_NO_EXTENSIONS) - /// A basic_socket is always the lowest layer. - typedef basic_socket lowest_layer_type; -#endif // !defined(ASIO_NO_EXTENSIONS) - - /// Construct a basic_socket without opening it. - /** - * This constructor creates a socket without opening it. - * - * @param io_context The io_context object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - */ - explicit basic_socket(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct and open a basic_socket. - /** - * This constructor creates and opens a socket. - * - * @param io_context The io_context object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws asio::system_error Thrown on failure. - */ - basic_socket(asio::io_context& io_context, - const protocol_type& protocol) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), protocol, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Construct a basic_socket, opening it and binding it to the given local - /// endpoint. - /** - * This constructor creates a socket and automatically opens it bound to the - * specified endpoint on the local machine. The protocol used is the protocol - * associated with the given endpoint. - * - * @param io_context The io_context object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param endpoint An endpoint on the local machine to which the socket will - * be bound. - * - * @throws asio::system_error Thrown on failure. - */ - basic_socket(asio::io_context& io_context, - const endpoint_type& endpoint) - : basic_io_object(io_context) - { - asio::error_code ec; - const protocol_type protocol = endpoint.protocol(); - this->get_service().open(this->get_implementation(), protocol, ec); - asio::detail::throw_error(ec, "open"); - this->get_service().bind(this->get_implementation(), endpoint, ec); - asio::detail::throw_error(ec, "bind"); - } - - /// Construct a basic_socket on an existing native socket. - /** - * This constructor creates a socket object to hold an existing native socket. - * - * @param io_context The io_context object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket A native socket. - * - * @throws asio::system_error Thrown on failure. - */ - basic_socket(asio::io_context& io_context, - const protocol_type& protocol, const native_handle_type& native_socket) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - protocol, native_socket, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_socket from another. - /** - * This constructor moves a socket from one object to another. - * - * @param other The other basic_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_context&) constructor. - */ - basic_socket(basic_socket&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign a basic_socket from another. - /** - * This assignment operator moves a socket from one object to another. - * - * @param other The other basic_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_context&) constructor. - */ - basic_socket& operator=(basic_socket&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } - - // All sockets have access to each other's implementations. - template - friend class basic_socket; - - /// Move-construct a basic_socket from a socket of another protocol type. - /** - * This constructor moves a socket from one object to another. - * - * @param other The other basic_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_context&) constructor. - */ - template - basic_socket(basic_socket&& other, - typename enable_if::value>::type* = 0) - : basic_io_object( - other.get_service(), other.get_implementation()) - { - } - - /// Move-assign a basic_socket from a socket of another protocol type. - /** - * This assignment operator moves a socket from one object to another. - * - * @param other The other basic_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_context&) constructor. - */ - template - typename enable_if::value, - basic_socket>::type& operator=( - basic_socket&& other) - { - basic_socket tmp(std::move(other)); - basic_io_object::operator=(std::move(tmp)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - -#if defined(ASIO_ENABLE_OLD_SERVICES) - // These functions are provided by basic_io_object<>. -#else // defined(ASIO_ENABLE_OLD_SERVICES) -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#if !defined(ASIO_NO_EXTENSIONS) - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a basic_socket cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a basic_socket cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } -#endif // !defined(ASIO_NO_EXTENSIONS) - - /// Open the socket using the specified protocol. - /** - * This function opens the socket so that it will use the specified protocol. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * socket.open(asio::ip::tcp::v4()); - * @endcode - */ - void open(const protocol_type& protocol = protocol_type()) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), protocol, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Open the socket using the specified protocol. - /** - * This function opens the socket so that it will use the specified protocol. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * asio::error_code ec; - * socket.open(asio::ip::tcp::v4(), ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID open(const protocol_type& protocol, - asio::error_code& ec) - { - this->get_service().open(this->get_implementation(), protocol, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native socket to the socket. - /* - * This function opens the socket to hold an existing native socket. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_socket A native socket. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const protocol_type& protocol, - const native_handle_type& native_socket) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - protocol, native_socket, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native socket to the socket. - /* - * This function opens the socket to hold an existing native socket. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_socket A native socket. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const protocol_type& protocol, - const native_handle_type& native_socket, asio::error_code& ec) - { - this->get_service().assign(this->get_implementation(), - protocol, native_socket, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the socket. - /** - * This function is used to close the socket. Any asynchronous send, receive - * or connect operations will be cancelled immediately, and will complete - * with the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. Note that, even if - * the function indicates an error, the underlying descriptor is closed. - * - * @note For portable behaviour with respect to graceful closure of a - * connected socket, call shutdown() before closing the socket. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the socket. - /** - * This function is used to close the socket. Any asynchronous send, receive - * or connect operations will be cancelled immediately, and will complete - * with the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. Note that, even if - * the function indicates an error, the underlying descriptor is closed. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::error_code ec; - * socket.close(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - * - * @note For portable behaviour with respect to graceful closure of a - * connected socket, call shutdown() before closing the socket. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Release ownership of the underlying native socket. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the asio::error::operation_aborted error. Ownership - * of the native socket is then transferred to the caller. - * - * @throws asio::system_error Thrown on failure. - * - * @note This function is unsupported on Windows versions prior to Windows - * 8.1, and will fail with asio::error::operation_not_supported on - * these platforms. - */ -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603) - __declspec(deprecated("This function always fails with " - "operation_not_supported when used on Windows versions " - "prior to Windows 8.1.")) -#endif - native_handle_type release() - { - asio::error_code ec; - native_handle_type s = this->get_service().release( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "release"); - return s; - } - - /// Release ownership of the underlying native socket. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the asio::error::operation_aborted error. Ownership - * of the native socket is then transferred to the caller. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note This function is unsupported on Windows versions prior to Windows - * 8.1, and will fail with asio::error::operation_not_supported on - * these platforms. - */ -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603) - __declspec(deprecated("This function always fails with " - "operation_not_supported when used on Windows versions " - "prior to Windows 8.1.")) -#endif - native_handle_type release(asio::error_code& ec) - { - return this->get_service().release(this->get_implementation(), ec); - } - - /// Get the native socket representation. - /** - * This function may be used to obtain the underlying representation of the - * socket. This is intended to allow access to native socket functionality - * that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the socket. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls to cancel() will always fail with - * asio::error::operation_not_supported when run on Windows XP, Windows - * Server 2003, and earlier versions of Windows, unless - * ASIO_ENABLE_CANCELIO is defined. However, the CancelIo function has - * two issues that should be considered before enabling its use: - * - * @li It will only cancel asynchronous operations that were initiated in the - * current thread. - * - * @li It can appear to complete without error, but the request to cancel the - * unfinished operations may be silently ignored by the operating system. - * Whether it works or not seems to depend on the drivers that are installed. - * - * For portable cancellation, consider using one of the following - * alternatives: - * - * @li Disable asio's I/O completion port backend by defining - * ASIO_DISABLE_IOCP. - * - * @li Use the close() function to simultaneously cancel the outstanding - * operations and close the socket. - * - * When running on Windows Vista, Windows Server 2008, and later, the - * CancelIoEx function is always used. This function does not have the - * problems described above. - */ -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600) \ - && !defined(ASIO_ENABLE_CANCELIO) - __declspec(deprecated("By default, this function always fails with " - "operation_not_supported when used on Windows XP, Windows Server 2003, " - "or earlier. Consult documentation for details.")) -#endif - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the socket. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls to cancel() will always fail with - * asio::error::operation_not_supported when run on Windows XP, Windows - * Server 2003, and earlier versions of Windows, unless - * ASIO_ENABLE_CANCELIO is defined. However, the CancelIo function has - * two issues that should be considered before enabling its use: - * - * @li It will only cancel asynchronous operations that were initiated in the - * current thread. - * - * @li It can appear to complete without error, but the request to cancel the - * unfinished operations may be silently ignored by the operating system. - * Whether it works or not seems to depend on the drivers that are installed. - * - * For portable cancellation, consider using one of the following - * alternatives: - * - * @li Disable asio's I/O completion port backend by defining - * ASIO_DISABLE_IOCP. - * - * @li Use the close() function to simultaneously cancel the outstanding - * operations and close the socket. - * - * When running on Windows Vista, Windows Server 2008, and later, the - * CancelIoEx function is always used. This function does not have the - * problems described above. - */ -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600) \ - && !defined(ASIO_ENABLE_CANCELIO) - __declspec(deprecated("By default, this function always fails with " - "operation_not_supported when used on Windows XP, Windows Server 2003, " - "or earlier. Consult documentation for details.")) -#endif - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - /** - * This function is used to check whether the socket input is currently - * positioned at the out-of-band data mark. - * - * @return A bool indicating whether the socket is at the out-of-band data - * mark. - * - * @throws asio::system_error Thrown on failure. - */ - bool at_mark() const - { - asio::error_code ec; - bool b = this->get_service().at_mark(this->get_implementation(), ec); - asio::detail::throw_error(ec, "at_mark"); - return b; - } - - /// Determine whether the socket is at the out-of-band data mark. - /** - * This function is used to check whether the socket input is currently - * positioned at the out-of-band data mark. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return A bool indicating whether the socket is at the out-of-band data - * mark. - */ - bool at_mark(asio::error_code& ec) const - { - return this->get_service().at_mark(this->get_implementation(), ec); - } - - /// Determine the number of bytes available for reading. - /** - * This function is used to determine the number of bytes that may be read - * without blocking. - * - * @return The number of bytes that may be read without blocking, or 0 if an - * error occurs. - * - * @throws asio::system_error Thrown on failure. - */ - std::size_t available() const - { - asio::error_code ec; - std::size_t s = this->get_service().available( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "available"); - return s; - } - - /// Determine the number of bytes available for reading. - /** - * This function is used to determine the number of bytes that may be read - * without blocking. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of bytes that may be read without blocking, or 0 if an - * error occurs. - */ - std::size_t available(asio::error_code& ec) const - { - return this->get_service().available(this->get_implementation(), ec); - } - - /// Bind the socket to the given local endpoint. - /** - * This function binds the socket to the specified endpoint on the local - * machine. - * - * @param endpoint An endpoint on the local machine to which the socket will - * be bound. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * socket.open(asio::ip::tcp::v4()); - * socket.bind(asio::ip::tcp::endpoint( - * asio::ip::tcp::v4(), 12345)); - * @endcode - */ - void bind(const endpoint_type& endpoint) - { - asio::error_code ec; - this->get_service().bind(this->get_implementation(), endpoint, ec); - asio::detail::throw_error(ec, "bind"); - } - - /// Bind the socket to the given local endpoint. - /** - * This function binds the socket to the specified endpoint on the local - * machine. - * - * @param endpoint An endpoint on the local machine to which the socket will - * be bound. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * socket.open(asio::ip::tcp::v4()); - * asio::error_code ec; - * socket.bind(asio::ip::tcp::endpoint( - * asio::ip::tcp::v4(), 12345), ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID bind(const endpoint_type& endpoint, - asio::error_code& ec) - { - this->get_service().bind(this->get_implementation(), endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Connect the socket to the specified endpoint. - /** - * This function is used to connect a socket to the specified remote endpoint. - * The function call will block until the connection is successfully made or - * an error occurs. - * - * The socket is automatically opened if it is not already open. If the - * connect fails, and the socket was automatically opened, the socket is - * not returned to the closed state. - * - * @param peer_endpoint The remote endpoint to which the socket will be - * connected. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * asio::ip::tcp::endpoint endpoint( - * asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.connect(endpoint); - * @endcode - */ - void connect(const endpoint_type& peer_endpoint) - { - asio::error_code ec; - if (!is_open()) - { - this->get_service().open(this->get_implementation(), - peer_endpoint.protocol(), ec); - asio::detail::throw_error(ec, "connect"); - } - this->get_service().connect(this->get_implementation(), peer_endpoint, ec); - asio::detail::throw_error(ec, "connect"); - } - - /// Connect the socket to the specified endpoint. - /** - * This function is used to connect a socket to the specified remote endpoint. - * The function call will block until the connection is successfully made or - * an error occurs. - * - * The socket is automatically opened if it is not already open. If the - * connect fails, and the socket was automatically opened, the socket is - * not returned to the closed state. - * - * @param peer_endpoint The remote endpoint to which the socket will be - * connected. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * asio::ip::tcp::endpoint endpoint( - * asio::ip::address::from_string("1.2.3.4"), 12345); - * asio::error_code ec; - * socket.connect(endpoint, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID connect(const endpoint_type& peer_endpoint, - asio::error_code& ec) - { - if (!is_open()) - { - this->get_service().open(this->get_implementation(), - peer_endpoint.protocol(), ec); - if (ec) - { - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - this->get_service().connect(this->get_implementation(), peer_endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous connect. - /** - * This function is used to asynchronously connect a socket to the specified - * remote endpoint. The function call always returns immediately. - * - * The socket is automatically opened if it is not already open. If the - * connect fails, and the socket was automatically opened, the socket is - * not returned to the closed state. - * - * @param peer_endpoint The remote endpoint to which the socket will be - * connected. Copies will be made of the endpoint object as required. - * - * @param handler The handler to be called when the connection operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void connect_handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Connect succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::socket socket(io_context); - * asio::ip::tcp::endpoint endpoint( - * asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.async_connect(endpoint, connect_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(ConnectHandler, - void (asio::error_code)) - async_connect(const endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(ConnectHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ConnectHandler. - ASIO_CONNECT_HANDLER_CHECK(ConnectHandler, handler) type_check; - - if (!is_open()) - { - asio::error_code ec; - const protocol_type protocol = peer_endpoint.protocol(); - this->get_service().open(this->get_implementation(), protocol, ec); - if (ec) - { - async_completion init(handler); - - asio::post(this->get_executor(), - asio::detail::bind_handler( - ASIO_MOVE_CAST(ASIO_HANDLER_TYPE( - ConnectHandler, void (asio::error_code)))( - init.completion_handler), ec)); - - return init.result.get(); - } - } - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_connect(this->get_implementation(), - peer_endpoint, ASIO_MOVE_CAST(ConnectHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_connect( - this->get_implementation(), peer_endpoint, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Set an option on the socket. - /** - * This function is used to set an option on the socket. - * - * @param option The new option value to be set on the socket. - * - * @throws asio::system_error Thrown on failure. - * - * @sa SettableSocketOption @n - * asio::socket_base::broadcast @n - * asio::socket_base::do_not_route @n - * asio::socket_base::keep_alive @n - * asio::socket_base::linger @n - * asio::socket_base::receive_buffer_size @n - * asio::socket_base::receive_low_watermark @n - * asio::socket_base::reuse_address @n - * asio::socket_base::send_buffer_size @n - * asio::socket_base::send_low_watermark @n - * asio::ip::multicast::join_group @n - * asio::ip::multicast::leave_group @n - * asio::ip::multicast::enable_loopback @n - * asio::ip::multicast::outbound_interface @n - * asio::ip::multicast::hops @n - * asio::ip::tcp::no_delay - * - * @par Example - * Setting the IPPROTO_TCP/TCP_NODELAY option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::no_delay option(true); - * socket.set_option(option); - * @endcode - */ - template - void set_option(const SettableSocketOption& option) - { - asio::error_code ec; - this->get_service().set_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "set_option"); - } - - /// Set an option on the socket. - /** - * This function is used to set an option on the socket. - * - * @param option The new option value to be set on the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa SettableSocketOption @n - * asio::socket_base::broadcast @n - * asio::socket_base::do_not_route @n - * asio::socket_base::keep_alive @n - * asio::socket_base::linger @n - * asio::socket_base::receive_buffer_size @n - * asio::socket_base::receive_low_watermark @n - * asio::socket_base::reuse_address @n - * asio::socket_base::send_buffer_size @n - * asio::socket_base::send_low_watermark @n - * asio::ip::multicast::join_group @n - * asio::ip::multicast::leave_group @n - * asio::ip::multicast::enable_loopback @n - * asio::ip::multicast::outbound_interface @n - * asio::ip::multicast::hops @n - * asio::ip::tcp::no_delay - * - * @par Example - * Setting the IPPROTO_TCP/TCP_NODELAY option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::no_delay option(true); - * asio::error_code ec; - * socket.set_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - ASIO_SYNC_OP_VOID set_option(const SettableSocketOption& option, - asio::error_code& ec) - { - this->get_service().set_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get an option from the socket. - /** - * This function is used to get the current value of an option on the socket. - * - * @param option The option value to be obtained from the socket. - * - * @throws asio::system_error Thrown on failure. - * - * @sa GettableSocketOption @n - * asio::socket_base::broadcast @n - * asio::socket_base::do_not_route @n - * asio::socket_base::keep_alive @n - * asio::socket_base::linger @n - * asio::socket_base::receive_buffer_size @n - * asio::socket_base::receive_low_watermark @n - * asio::socket_base::reuse_address @n - * asio::socket_base::send_buffer_size @n - * asio::socket_base::send_low_watermark @n - * asio::ip::multicast::join_group @n - * asio::ip::multicast::leave_group @n - * asio::ip::multicast::enable_loopback @n - * asio::ip::multicast::outbound_interface @n - * asio::ip::multicast::hops @n - * asio::ip::tcp::no_delay - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::socket::keep_alive option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - */ - template - void get_option(GettableSocketOption& option) const - { - asio::error_code ec; - this->get_service().get_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "get_option"); - } - - /// Get an option from the socket. - /** - * This function is used to get the current value of an option on the socket. - * - * @param option The option value to be obtained from the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa GettableSocketOption @n - * asio::socket_base::broadcast @n - * asio::socket_base::do_not_route @n - * asio::socket_base::keep_alive @n - * asio::socket_base::linger @n - * asio::socket_base::receive_buffer_size @n - * asio::socket_base::receive_low_watermark @n - * asio::socket_base::reuse_address @n - * asio::socket_base::send_buffer_size @n - * asio::socket_base::send_low_watermark @n - * asio::ip::multicast::join_group @n - * asio::ip::multicast::leave_group @n - * asio::ip::multicast::enable_loopback @n - * asio::ip::multicast::outbound_interface @n - * asio::ip::multicast::hops @n - * asio::ip::tcp::no_delay - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::socket::keep_alive option; - * asio::error_code ec; - * socket.get_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * bool is_set = option.value(); - * @endcode - */ - template - ASIO_SYNC_OP_VOID get_option(GettableSocketOption& option, - asio::error_code& ec) const - { - this->get_service().get_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the socket. - /** - * This function is used to execute an IO control command on the socket. - * - * @param command The IO control command to be performed on the socket. - * - * @throws asio::system_error Thrown on failure. - * - * @sa IoControlCommand @n - * asio::socket_base::bytes_readable @n - * asio::socket_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::socket::bytes_readable command; - * socket.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - void io_control(IoControlCommand& command) - { - asio::error_code ec; - this->get_service().io_control(this->get_implementation(), command, ec); - asio::detail::throw_error(ec, "io_control"); - } - - /// Perform an IO control command on the socket. - /** - * This function is used to execute an IO control command on the socket. - * - * @param command The IO control command to be performed on the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa IoControlCommand @n - * asio::socket_base::bytes_readable @n - * asio::socket_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::socket::bytes_readable command; - * asio::error_code ec; - * socket.io_control(command, ec); - * if (ec) - * { - * // An error occurred. - * } - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - ASIO_SYNC_OP_VOID io_control(IoControlCommand& command, - asio::error_code& ec) - { - this->get_service().io_control(this->get_implementation(), command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the socket. - /** - * @returns @c true if the socket's synchronous operations will fail with - * asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - bool non_blocking() const - { - return this->get_service().non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the socket. - /** - * @param mode If @c true, the socket's synchronous operations will fail with - * asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @throws asio::system_error Thrown on failure. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - void non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().non_blocking(this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "non_blocking"); - } - - /// Sets the non-blocking mode of the socket. - /** - * @param mode If @c true, the socket's synchronous operations will fail with - * asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - ASIO_SYNC_OP_VOID non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().non_blocking(this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native socket implementation. - /** - * This function is used to retrieve the non-blocking mode of the underlying - * native socket. This mode has no effect on the behaviour of the socket - * object's synchronous operations. - * - * @returns @c true if the underlying socket is in non-blocking mode and - * direct system calls may fail with asio::error::would_block (or the - * equivalent system error). - * - * @note The current non-blocking mode is cached by the socket object. - * Consequently, the return value may be incorrect if the non-blocking mode - * was set directly on the native socket. - * - * @par Example - * This function is intended to allow the encapsulation of arbitrary - * non-blocking system calls as asynchronous operations, in a way that is - * transparent to the user of the socket object. The following example - * illustrates how Linux's @c sendfile system call might be encapsulated: - * @code template - * struct sendfile_op - * { - * tcp::socket& sock_; - * int fd_; - * Handler handler_; - * off_t offset_; - * std::size_t total_bytes_transferred_; - * - * // Function call operator meeting WriteHandler requirements. - * // Used as the handler for the async_write_some operation. - * void operator()(asio::error_code ec, std::size_t) - * { - * // Put the underlying socket into non-blocking mode. - * if (!ec) - * if (!sock_.native_non_blocking()) - * sock_.native_non_blocking(true, ec); - * - * if (!ec) - * { - * for (;;) - * { - * // Try the system call. - * errno = 0; - * int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536); - * ec = asio::error_code(n < 0 ? errno : 0, - * asio::error::get_system_category()); - * total_bytes_transferred_ += ec ? 0 : n; - * - * // Retry operation immediately if interrupted by signal. - * if (ec == asio::error::interrupted) - * continue; - * - * // Check if we need to run the operation again. - * if (ec == asio::error::would_block - * || ec == asio::error::try_again) - * { - * // We have to wait for the socket to become ready again. - * sock_.async_wait(tcp::socket::wait_write, *this); - * return; - * } - * - * if (ec || n == 0) - * { - * // An error occurred, or we have reached the end of the file. - * // Either way we must exit the loop so we can call the handler. - * break; - * } - * - * // Loop around to try calling sendfile again. - * } - * } - * - * // Pass result back to user's handler. - * handler_(ec, total_bytes_transferred_); - * } - * }; - * - * template - * void async_sendfile(tcp::socket& sock, int fd, Handler h) - * { - * sendfile_op op = { sock, fd, h, 0, 0 }; - * sock.async_wait(tcp::socket::wait_write, op); - * } @endcode - */ - bool native_non_blocking() const - { - return this->get_service().native_non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the native socket implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native socket. It has no effect on the behaviour of the socket object's - * synchronous operations. - * - * @param mode If @c true, the underlying socket is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @throws asio::system_error Thrown on failure. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - * - * @par Example - * This function is intended to allow the encapsulation of arbitrary - * non-blocking system calls as asynchronous operations, in a way that is - * transparent to the user of the socket object. The following example - * illustrates how Linux's @c sendfile system call might be encapsulated: - * @code template - * struct sendfile_op - * { - * tcp::socket& sock_; - * int fd_; - * Handler handler_; - * off_t offset_; - * std::size_t total_bytes_transferred_; - * - * // Function call operator meeting WriteHandler requirements. - * // Used as the handler for the async_write_some operation. - * void operator()(asio::error_code ec, std::size_t) - * { - * // Put the underlying socket into non-blocking mode. - * if (!ec) - * if (!sock_.native_non_blocking()) - * sock_.native_non_blocking(true, ec); - * - * if (!ec) - * { - * for (;;) - * { - * // Try the system call. - * errno = 0; - * int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536); - * ec = asio::error_code(n < 0 ? errno : 0, - * asio::error::get_system_category()); - * total_bytes_transferred_ += ec ? 0 : n; - * - * // Retry operation immediately if interrupted by signal. - * if (ec == asio::error::interrupted) - * continue; - * - * // Check if we need to run the operation again. - * if (ec == asio::error::would_block - * || ec == asio::error::try_again) - * { - * // We have to wait for the socket to become ready again. - * sock_.async_wait(tcp::socket::wait_write, *this); - * return; - * } - * - * if (ec || n == 0) - * { - * // An error occurred, or we have reached the end of the file. - * // Either way we must exit the loop so we can call the handler. - * break; - * } - * - * // Loop around to try calling sendfile again. - * } - * } - * - * // Pass result back to user's handler. - * handler_(ec, total_bytes_transferred_); - * } - * }; - * - * template - * void async_sendfile(tcp::socket& sock, int fd, Handler h) - * { - * sendfile_op op = { sock, fd, h, 0, 0 }; - * sock.async_wait(tcp::socket::wait_write, op); - * } @endcode - */ - void native_non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "native_non_blocking"); - } - - /// Sets the non-blocking mode of the native socket implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native socket. It has no effect on the behaviour of the socket object's - * synchronous operations. - * - * @param mode If @c true, the underlying socket is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @param ec Set to indicate what error occurred, if any. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - * - * @par Example - * This function is intended to allow the encapsulation of arbitrary - * non-blocking system calls as asynchronous operations, in a way that is - * transparent to the user of the socket object. The following example - * illustrates how Linux's @c sendfile system call might be encapsulated: - * @code template - * struct sendfile_op - * { - * tcp::socket& sock_; - * int fd_; - * Handler handler_; - * off_t offset_; - * std::size_t total_bytes_transferred_; - * - * // Function call operator meeting WriteHandler requirements. - * // Used as the handler for the async_write_some operation. - * void operator()(asio::error_code ec, std::size_t) - * { - * // Put the underlying socket into non-blocking mode. - * if (!ec) - * if (!sock_.native_non_blocking()) - * sock_.native_non_blocking(true, ec); - * - * if (!ec) - * { - * for (;;) - * { - * // Try the system call. - * errno = 0; - * int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536); - * ec = asio::error_code(n < 0 ? errno : 0, - * asio::error::get_system_category()); - * total_bytes_transferred_ += ec ? 0 : n; - * - * // Retry operation immediately if interrupted by signal. - * if (ec == asio::error::interrupted) - * continue; - * - * // Check if we need to run the operation again. - * if (ec == asio::error::would_block - * || ec == asio::error::try_again) - * { - * // We have to wait for the socket to become ready again. - * sock_.async_wait(tcp::socket::wait_write, *this); - * return; - * } - * - * if (ec || n == 0) - * { - * // An error occurred, or we have reached the end of the file. - * // Either way we must exit the loop so we can call the handler. - * break; - * } - * - * // Loop around to try calling sendfile again. - * } - * } - * - * // Pass result back to user's handler. - * handler_(ec, total_bytes_transferred_); - * } - * }; - * - * template - * void async_sendfile(tcp::socket& sock, int fd, Handler h) - * { - * sendfile_op op = { sock, fd, h, 0, 0 }; - * sock.async_wait(tcp::socket::wait_write, op); - * } @endcode - */ - ASIO_SYNC_OP_VOID native_non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the local endpoint of the socket. - /** - * This function is used to obtain the locally bound endpoint of the socket. - * - * @returns An object that represents the local endpoint of the socket. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::endpoint endpoint = socket.local_endpoint(); - * @endcode - */ - endpoint_type local_endpoint() const - { - asio::error_code ec; - endpoint_type ep = this->get_service().local_endpoint( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "local_endpoint"); - return ep; - } - - /// Get the local endpoint of the socket. - /** - * This function is used to obtain the locally bound endpoint of the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns An object that represents the local endpoint of the socket. - * Returns a default-constructed endpoint object if an error occurred. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::error_code ec; - * asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - endpoint_type local_endpoint(asio::error_code& ec) const - { - return this->get_service().local_endpoint(this->get_implementation(), ec); - } - - /// Get the remote endpoint of the socket. - /** - * This function is used to obtain the remote endpoint of the socket. - * - * @returns An object that represents the remote endpoint of the socket. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(); - * @endcode - */ - endpoint_type remote_endpoint() const - { - asio::error_code ec; - endpoint_type ep = this->get_service().remote_endpoint( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "remote_endpoint"); - return ep; - } - - /// Get the remote endpoint of the socket. - /** - * This function is used to obtain the remote endpoint of the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns An object that represents the remote endpoint of the socket. - * Returns a default-constructed endpoint object if an error occurred. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::error_code ec; - * asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - endpoint_type remote_endpoint(asio::error_code& ec) const - { - return this->get_service().remote_endpoint(this->get_implementation(), ec); - } - - /// Disable sends or receives on the socket. - /** - * This function is used to disable send operations, receive operations, or - * both. - * - * @param what Determines what types of operation will no longer be allowed. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * Shutting down the send side of the socket: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * socket.shutdown(asio::ip::tcp::socket::shutdown_send); - * @endcode - */ - void shutdown(shutdown_type what) - { - asio::error_code ec; - this->get_service().shutdown(this->get_implementation(), what, ec); - asio::detail::throw_error(ec, "shutdown"); - } - - /// Disable sends or receives on the socket. - /** - * This function is used to disable send operations, receive operations, or - * both. - * - * @param what Determines what types of operation will no longer be allowed. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * Shutting down the send side of the socket: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::error_code ec; - * socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID shutdown(shutdown_type what, - asio::error_code& ec) - { - this->get_service().shutdown(this->get_implementation(), what, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the socket to become ready to read, ready to write, or to have - /// pending error conditions. - /** - * This function is used to perform a blocking wait for a socket to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired socket state. - * - * @par Example - * Waiting for a socket to become readable. - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * socket.wait(asio::ip::tcp::socket::wait_read); - * @endcode - */ - void wait(wait_type w) - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), w, ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Wait for the socket to become ready to read, ready to write, or to have - /// pending error conditions. - /** - * This function is used to perform a blocking wait for a socket to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired socket state. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * Waiting for a socket to become readable. - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::error_code ec; - * socket.wait(asio::ip::tcp::socket::wait_read, ec); - * @endcode - */ - ASIO_SYNC_OP_VOID wait(wait_type w, asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the socket to become ready to read, ready to - /// write, or to have pending error conditions. - /** - * This function is used to perform an asynchronous wait for a socket to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired socket state. - * - * @param handler The handler to be called when the wait operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void wait_handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Wait succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::socket socket(io_context); - * ... - * socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(wait_type w, ASIO_MOVE_ARG(WaitHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WaitHandler. - ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_wait(this->get_implementation(), - w, ASIO_MOVE_CAST(WaitHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_wait(this->get_implementation(), - w, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - -protected: - /// Protected destructor to prevent deletion through this type. - /** - * This function destroys the socket, cancelling any outstanding asynchronous - * operations associated with the socket as if by calling @c cancel. - */ - ~basic_socket() - { - } - -private: - // Disallow copying and assignment. - basic_socket(const basic_socket&) ASIO_DELETED; - basic_socket& operator=(const basic_socket&) ASIO_DELETED; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# undef ASIO_SVC_T -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_BASIC_SOCKET_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_socket_acceptor.hpp b/Sources/Vendor/asio/include/asio/basic_socket_acceptor.hpp deleted file mode 100644 index ed201bb..0000000 --- a/Sources/Vendor/asio/include/asio/basic_socket_acceptor.hpp +++ /dev/null @@ -1,1986 +0,0 @@ -// -// basic_socket_acceptor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BASIC_SOCKET_ACCEPTOR_HPP -#define ASIO_BASIC_SOCKET_ACCEPTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/basic_socket.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/socket_base.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/socket_acceptor_service.hpp" -#else // defined(ASIO_ENABLE_OLD_SERVICES) -# if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/null_socket_service.hpp" -# define ASIO_SVC_T detail::null_socket_service -# elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_socket_service.hpp" -# define ASIO_SVC_T detail::win_iocp_socket_service -# else -# include "asio/detail/reactive_socket_service.hpp" -# define ASIO_SVC_T detail::reactive_socket_service -# endif -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides the ability to accept new connections. -/** - * The basic_socket_acceptor class template is used for accepting new socket - * connections. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Example - * Opening a socket acceptor with the SO_REUSEADDR option enabled: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), port); - * acceptor.open(endpoint.protocol()); - * acceptor.set_option(asio::ip::tcp::acceptor::reuse_address(true)); - * acceptor.bind(endpoint); - * acceptor.listen(); - * @endcode - */ -template )> -class basic_socket_acceptor - : ASIO_SVC_ACCESS basic_io_object, - public socket_base -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The native representation of an acceptor. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename ASIO_SVC_T::native_handle_type native_handle_type; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct an acceptor without opening it. - /** - * This constructor creates an acceptor without opening it to listen for new - * connections. The open() function must be called before the acceptor can - * accept new socket connections. - * - * @param io_context The io_context object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - */ - explicit basic_socket_acceptor(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct an open acceptor. - /** - * This constructor creates an acceptor and automatically opens it. - * - * @param io_context The io_context object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws asio::system_error Thrown on failure. - */ - basic_socket_acceptor(asio::io_context& io_context, - const protocol_type& protocol) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), protocol, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Construct an acceptor opened on the given endpoint. - /** - * This constructor creates an acceptor and automatically opens it to listen - * for new connections on the specified endpoint. - * - * @param io_context The io_context object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - * - * @param endpoint An endpoint on the local machine on which the acceptor - * will listen for new connections. - * - * @param reuse_addr Whether the constructor should set the socket option - * socket_base::reuse_address. - * - * @throws asio::system_error Thrown on failure. - * - * @note This constructor is equivalent to the following code: - * @code - * basic_socket_acceptor acceptor(io_context); - * acceptor.open(endpoint.protocol()); - * if (reuse_addr) - * acceptor.set_option(socket_base::reuse_address(true)); - * acceptor.bind(endpoint); - * acceptor.listen(listen_backlog); - * @endcode - */ - basic_socket_acceptor(asio::io_context& io_context, - const endpoint_type& endpoint, bool reuse_addr = true) - : basic_io_object(io_context) - { - asio::error_code ec; - const protocol_type protocol = endpoint.protocol(); - this->get_service().open(this->get_implementation(), protocol, ec); - asio::detail::throw_error(ec, "open"); - if (reuse_addr) - { - this->get_service().set_option(this->get_implementation(), - socket_base::reuse_address(true), ec); - asio::detail::throw_error(ec, "set_option"); - } - this->get_service().bind(this->get_implementation(), endpoint, ec); - asio::detail::throw_error(ec, "bind"); - this->get_service().listen(this->get_implementation(), - socket_base::max_listen_connections, ec); - asio::detail::throw_error(ec, "listen"); - } - - /// Construct a basic_socket_acceptor on an existing native acceptor. - /** - * This constructor creates an acceptor object to hold an existing native - * acceptor. - * - * @param io_context The io_context object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_acceptor A native acceptor. - * - * @throws asio::system_error Thrown on failure. - */ - basic_socket_acceptor(asio::io_context& io_context, - const protocol_type& protocol, const native_handle_type& native_acceptor) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - protocol, native_acceptor, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_socket_acceptor from another. - /** - * This constructor moves an acceptor from one object to another. - * - * @param other The other basic_socket_acceptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket_acceptor(io_context&) constructor. - */ - basic_socket_acceptor(basic_socket_acceptor&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign a basic_socket_acceptor from another. - /** - * This assignment operator moves an acceptor from one object to another. - * - * @param other The other basic_socket_acceptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket_acceptor(io_context&) constructor. - */ - basic_socket_acceptor& operator=(basic_socket_acceptor&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } - - // All socket acceptors have access to each other's implementations. - template - friend class basic_socket_acceptor; - - /// Move-construct a basic_socket_acceptor from an acceptor of another - /// protocol type. - /** - * This constructor moves an acceptor from one object to another. - * - * @param other The other basic_socket_acceptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_context&) constructor. - */ - template - basic_socket_acceptor( - basic_socket_acceptor&& other, - typename enable_if::value>::type* = 0) - : basic_io_object( - other.get_service(), other.get_implementation()) - { - } - - /// Move-assign a basic_socket_acceptor from an acceptor of another protocol - /// type. - /** - * This assignment operator moves an acceptor from one object to another. - * - * @param other The other basic_socket_acceptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_context&) constructor. - */ - template - typename enable_if::value, - basic_socket_acceptor>::type& operator=( - basic_socket_acceptor&& other) - { - basic_socket_acceptor tmp(std::move(other)); - basic_io_object::operator=(std::move(tmp)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the acceptor. - /** - * This function destroys the acceptor, cancelling any outstanding - * asynchronous operations associated with the acceptor as if by calling - * @c cancel. - */ - ~basic_socket_acceptor() - { - } - -#if defined(ASIO_ENABLE_OLD_SERVICES) - // These functions are provided by basic_io_object<>. -#else // defined(ASIO_ENABLE_OLD_SERVICES) -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - - /// Open the acceptor using the specified protocol. - /** - * This function opens the socket acceptor so that it will use the specified - * protocol. - * - * @param protocol An object specifying which protocol is to be used. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * acceptor.open(asio::ip::tcp::v4()); - * @endcode - */ - void open(const protocol_type& protocol = protocol_type()) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), protocol, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Open the acceptor using the specified protocol. - /** - * This function opens the socket acceptor so that it will use the specified - * protocol. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * asio::error_code ec; - * acceptor.open(asio::ip::tcp::v4(), ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID open(const protocol_type& protocol, - asio::error_code& ec) - { - this->get_service().open(this->get_implementation(), protocol, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assigns an existing native acceptor to the acceptor. - /* - * This function opens the acceptor to hold an existing native acceptor. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_acceptor A native acceptor. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const protocol_type& protocol, - const native_handle_type& native_acceptor) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - protocol, native_acceptor, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assigns an existing native acceptor to the acceptor. - /* - * This function opens the acceptor to hold an existing native acceptor. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_acceptor A native acceptor. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const protocol_type& protocol, - const native_handle_type& native_acceptor, asio::error_code& ec) - { - this->get_service().assign(this->get_implementation(), - protocol, native_acceptor, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the acceptor is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Bind the acceptor to the given local endpoint. - /** - * This function binds the socket acceptor to the specified endpoint on the - * local machine. - * - * @param endpoint An endpoint on the local machine to which the socket - * acceptor will be bound. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), 12345); - * acceptor.open(endpoint.protocol()); - * acceptor.bind(endpoint); - * @endcode - */ - void bind(const endpoint_type& endpoint) - { - asio::error_code ec; - this->get_service().bind(this->get_implementation(), endpoint, ec); - asio::detail::throw_error(ec, "bind"); - } - - /// Bind the acceptor to the given local endpoint. - /** - * This function binds the socket acceptor to the specified endpoint on the - * local machine. - * - * @param endpoint An endpoint on the local machine to which the socket - * acceptor will be bound. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), 12345); - * acceptor.open(endpoint.protocol()); - * asio::error_code ec; - * acceptor.bind(endpoint, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID bind(const endpoint_type& endpoint, - asio::error_code& ec) - { - this->get_service().bind(this->get_implementation(), endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Place the acceptor into the state where it will listen for new - /// connections. - /** - * This function puts the socket acceptor into the state where it may accept - * new connections. - * - * @param backlog The maximum length of the queue of pending connections. - * - * @throws asio::system_error Thrown on failure. - */ - void listen(int backlog = socket_base::max_listen_connections) - { - asio::error_code ec; - this->get_service().listen(this->get_implementation(), backlog, ec); - asio::detail::throw_error(ec, "listen"); - } - - /// Place the acceptor into the state where it will listen for new - /// connections. - /** - * This function puts the socket acceptor into the state where it may accept - * new connections. - * - * @param backlog The maximum length of the queue of pending connections. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::error_code ec; - * acceptor.listen(asio::socket_base::max_listen_connections, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID listen(int backlog, asio::error_code& ec) - { - this->get_service().listen(this->get_implementation(), backlog, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Close the acceptor. - /** - * This function is used to close the acceptor. Any asynchronous accept - * operations will be cancelled immediately. - * - * A subsequent call to open() is required before the acceptor can again be - * used to again perform socket accept operations. - * - * @throws asio::system_error Thrown on failure. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the acceptor. - /** - * This function is used to close the acceptor. Any asynchronous accept - * operations will be cancelled immediately. - * - * A subsequent call to open() is required before the acceptor can again be - * used to again perform socket accept operations. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::error_code ec; - * acceptor.close(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Release ownership of the underlying native acceptor. - /** - * This function causes all outstanding asynchronous accept operations to - * finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. Ownership of the - * native acceptor is then transferred to the caller. - * - * @throws asio::system_error Thrown on failure. - * - * @note This function is unsupported on Windows versions prior to Windows - * 8.1, and will fail with asio::error::operation_not_supported on - * these platforms. - */ -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603) - __declspec(deprecated("This function always fails with " - "operation_not_supported when used on Windows versions " - "prior to Windows 8.1.")) -#endif - native_handle_type release() - { - asio::error_code ec; - native_handle_type s = this->get_service().release( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "release"); - return s; - } - - /// Release ownership of the underlying native acceptor. - /** - * This function causes all outstanding asynchronous accept operations to - * finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. Ownership of the - * native acceptor is then transferred to the caller. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note This function is unsupported on Windows versions prior to Windows - * 8.1, and will fail with asio::error::operation_not_supported on - * these platforms. - */ -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603) - __declspec(deprecated("This function always fails with " - "operation_not_supported when used on Windows versions " - "prior to Windows 8.1.")) -#endif - native_handle_type release(asio::error_code& ec) - { - return this->get_service().release(this->get_implementation(), ec); - } - - /// Get the native acceptor representation. - /** - * This function may be used to obtain the underlying representation of the - * acceptor. This is intended to allow access to native acceptor functionality - * that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the acceptor. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the acceptor. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Set an option on the acceptor. - /** - * This function is used to set an option on the acceptor. - * - * @param option The new option value to be set on the acceptor. - * - * @throws asio::system_error Thrown on failure. - * - * @sa SettableSocketOption @n - * asio::socket_base::reuse_address - * asio::socket_base::enable_connection_aborted - * - * @par Example - * Setting the SOL_SOCKET/SO_REUSEADDR option: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::acceptor::reuse_address option(true); - * acceptor.set_option(option); - * @endcode - */ - template - void set_option(const SettableSocketOption& option) - { - asio::error_code ec; - this->get_service().set_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "set_option"); - } - - /// Set an option on the acceptor. - /** - * This function is used to set an option on the acceptor. - * - * @param option The new option value to be set on the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa SettableSocketOption @n - * asio::socket_base::reuse_address - * asio::socket_base::enable_connection_aborted - * - * @par Example - * Setting the SOL_SOCKET/SO_REUSEADDR option: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::acceptor::reuse_address option(true); - * asio::error_code ec; - * acceptor.set_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - ASIO_SYNC_OP_VOID set_option(const SettableSocketOption& option, - asio::error_code& ec) - { - this->get_service().set_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get an option from the acceptor. - /** - * This function is used to get the current value of an option on the - * acceptor. - * - * @param option The option value to be obtained from the acceptor. - * - * @throws asio::system_error Thrown on failure. - * - * @sa GettableSocketOption @n - * asio::socket_base::reuse_address - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_REUSEADDR option: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::acceptor::reuse_address option; - * acceptor.get_option(option); - * bool is_set = option.get(); - * @endcode - */ - template - void get_option(GettableSocketOption& option) const - { - asio::error_code ec; - this->get_service().get_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "get_option"); - } - - /// Get an option from the acceptor. - /** - * This function is used to get the current value of an option on the - * acceptor. - * - * @param option The option value to be obtained from the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa GettableSocketOption @n - * asio::socket_base::reuse_address - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_REUSEADDR option: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::acceptor::reuse_address option; - * asio::error_code ec; - * acceptor.get_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * bool is_set = option.get(); - * @endcode - */ - template - ASIO_SYNC_OP_VOID get_option(GettableSocketOption& option, - asio::error_code& ec) const - { - this->get_service().get_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the acceptor. - /** - * This function is used to execute an IO control command on the acceptor. - * - * @param command The IO control command to be performed on the acceptor. - * - * @throws asio::system_error Thrown on failure. - * - * @sa IoControlCommand @n - * asio::socket_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::acceptor::non_blocking_io command(true); - * socket.io_control(command); - * @endcode - */ - template - void io_control(IoControlCommand& command) - { - asio::error_code ec; - this->get_service().io_control(this->get_implementation(), command, ec); - asio::detail::throw_error(ec, "io_control"); - } - - /// Perform an IO control command on the acceptor. - /** - * This function is used to execute an IO control command on the acceptor. - * - * @param command The IO control command to be performed on the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa IoControlCommand @n - * asio::socket_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::acceptor::non_blocking_io command(true); - * asio::error_code ec; - * socket.io_control(command, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - ASIO_SYNC_OP_VOID io_control(IoControlCommand& command, - asio::error_code& ec) - { - this->get_service().io_control(this->get_implementation(), command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the acceptor. - /** - * @returns @c true if the acceptor's synchronous operations will fail with - * asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - bool non_blocking() const - { - return this->get_service().non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the acceptor. - /** - * @param mode If @c true, the acceptor's synchronous operations will fail - * with asio::error::would_block if they are unable to perform the - * requested operation immediately. If @c false, synchronous operations will - * block until complete. - * - * @throws asio::system_error Thrown on failure. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - void non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().non_blocking(this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "non_blocking"); - } - - /// Sets the non-blocking mode of the acceptor. - /** - * @param mode If @c true, the acceptor's synchronous operations will fail - * with asio::error::would_block if they are unable to perform the - * requested operation immediately. If @c false, synchronous operations will - * block until complete. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - ASIO_SYNC_OP_VOID non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().non_blocking(this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native acceptor implementation. - /** - * This function is used to retrieve the non-blocking mode of the underlying - * native acceptor. This mode has no effect on the behaviour of the acceptor - * object's synchronous operations. - * - * @returns @c true if the underlying acceptor is in non-blocking mode and - * direct system calls may fail with asio::error::would_block (or the - * equivalent system error). - * - * @note The current non-blocking mode is cached by the acceptor object. - * Consequently, the return value may be incorrect if the non-blocking mode - * was set directly on the native acceptor. - */ - bool native_non_blocking() const - { - return this->get_service().native_non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the native acceptor implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native acceptor. It has no effect on the behaviour of the acceptor object's - * synchronous operations. - * - * @param mode If @c true, the underlying acceptor is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @throws asio::system_error Thrown on failure. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - */ - void native_non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "native_non_blocking"); - } - - /// Sets the non-blocking mode of the native acceptor implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native acceptor. It has no effect on the behaviour of the acceptor object's - * synchronous operations. - * - * @param mode If @c true, the underlying acceptor is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @param ec Set to indicate what error occurred, if any. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - */ - ASIO_SYNC_OP_VOID native_non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the local endpoint of the acceptor. - /** - * This function is used to obtain the locally bound endpoint of the acceptor. - * - * @returns An object that represents the local endpoint of the acceptor. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(); - * @endcode - */ - endpoint_type local_endpoint() const - { - asio::error_code ec; - endpoint_type ep = this->get_service().local_endpoint( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "local_endpoint"); - return ep; - } - - /// Get the local endpoint of the acceptor. - /** - * This function is used to obtain the locally bound endpoint of the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns An object that represents the local endpoint of the acceptor. - * Returns a default-constructed endpoint object if an error occurred and the - * error handler did not throw an exception. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::error_code ec; - * asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - endpoint_type local_endpoint(asio::error_code& ec) const - { - return this->get_service().local_endpoint(this->get_implementation(), ec); - } - - /// Wait for the acceptor to become ready to read, ready to write, or to have - /// pending error conditions. - /** - * This function is used to perform a blocking wait for an acceptor to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired acceptor state. - * - * @par Example - * Waiting for an acceptor to become readable. - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * acceptor.wait(asio::ip::tcp::acceptor::wait_read); - * @endcode - */ - void wait(wait_type w) - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), w, ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Wait for the acceptor to become ready to read, ready to write, or to have - /// pending error conditions. - /** - * This function is used to perform a blocking wait for an acceptor to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired acceptor state. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * Waiting for an acceptor to become readable. - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::error_code ec; - * acceptor.wait(asio::ip::tcp::acceptor::wait_read, ec); - * @endcode - */ - ASIO_SYNC_OP_VOID wait(wait_type w, asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the acceptor to become ready to read, ready to - /// write, or to have pending error conditions. - /** - * This function is used to perform an asynchronous wait for an acceptor to - * enter a ready to read, write or error condition state. - * - * @param w Specifies the desired acceptor state. - * - * @param handler The handler to be called when the wait operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void wait_handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Wait succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * acceptor.async_wait( - * asio::ip::tcp::acceptor::wait_read, - * wait_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(wait_type w, ASIO_MOVE_ARG(WaitHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WaitHandler. - ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_wait(this->get_implementation(), - w, ASIO_MOVE_CAST(WaitHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_wait(this->get_implementation(), - w, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - -#if !defined(ASIO_NO_EXTENSIONS) - /// Accept a new connection. - /** - * 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. - * - * @param peer The socket into which the new connection will be accepted. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(io_context); - * acceptor.accept(socket); - * @endcode - */ -#if defined(ASIO_ENABLE_OLD_SERVICES) - template - void accept(basic_socket& peer, - typename enable_if::value>::type* = 0) -#else // defined(ASIO_ENABLE_OLD_SERVICES) - template - void accept(basic_socket& peer, - typename enable_if::value>::type* = 0) -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - { - asio::error_code ec; - this->get_service().accept(this->get_implementation(), - peer, static_cast(0), ec); - asio::detail::throw_error(ec, "accept"); - } - - /// Accept a new connection. - /** - * 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. - * - * @param peer The socket into which the new connection will be accepted. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(io_context); - * asio::error_code ec; - * acceptor.accept(socket, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ -#if defined(ASIO_ENABLE_OLD_SERVICES) - template - ASIO_SYNC_OP_VOID accept( - basic_socket& peer, - asio::error_code& ec, - typename enable_if::value>::type* = 0) -#else // defined(ASIO_ENABLE_OLD_SERVICES) - template - ASIO_SYNC_OP_VOID accept( - basic_socket& peer, asio::error_code& ec, - typename enable_if::value>::type* = 0) -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - { - this->get_service().accept(this->get_implementation(), - peer, static_cast(0), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection into a - * socket. The function call always returns immediately. - * - * @param peer The socket into which the new connection will be accepted. - * Ownership of the peer object is retained by the caller, which must - * guarantee that it is valid until the handler is called. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void accept_handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Accept succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(io_context); - * acceptor.async_accept(socket, accept_handler); - * @endcode - */ -#if defined(ASIO_ENABLE_OLD_SERVICES) - template - ASIO_INITFN_RESULT_TYPE(AcceptHandler, - void (asio::error_code)) - async_accept(basic_socket& peer, - ASIO_MOVE_ARG(AcceptHandler) handler, - typename enable_if::value>::type* = 0) -#else // defined(ASIO_ENABLE_OLD_SERVICES) - template - ASIO_INITFN_RESULT_TYPE(AcceptHandler, - void (asio::error_code)) - async_accept(basic_socket& peer, - ASIO_MOVE_ARG(AcceptHandler) handler, - typename enable_if::value>::type* = 0) -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a AcceptHandler. - ASIO_ACCEPT_HANDLER_CHECK(AcceptHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_accept(this->get_implementation(), - peer, static_cast(0), - ASIO_MOVE_CAST(AcceptHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_accept(this->get_implementation(), - peer, static_cast(0), init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Accept a new connection and obtain the endpoint of the peer - /** - * This function is used to accept a new connection from a peer into the - * given socket, and additionally provide the endpoint of the remote peer. - * The function call will block until a new connection has been accepted - * successfully or an error occurs. - * - * @param peer The socket into which the new connection will be accepted. - * - * @param peer_endpoint An endpoint object which will receive the endpoint of - * the remote peer. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(io_context); - * asio::ip::tcp::endpoint endpoint; - * acceptor.accept(socket, endpoint); - * @endcode - */ -#if defined(ASIO_ENABLE_OLD_SERVICES) - template - void accept(basic_socket& peer, - endpoint_type& peer_endpoint) -#else // defined(ASIO_ENABLE_OLD_SERVICES) - void accept(basic_socket& peer, endpoint_type& peer_endpoint) -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - { - asio::error_code ec; - this->get_service().accept(this->get_implementation(), - peer, &peer_endpoint, ec); - asio::detail::throw_error(ec, "accept"); - } - - /// Accept a new connection and obtain the endpoint of the peer - /** - * This function is used to accept a new connection from a peer into the - * given socket, and additionally provide the endpoint of the remote peer. - * The function call will block until a new connection has been accepted - * successfully or an error occurs. - * - * @param peer The socket into which the new connection will be accepted. - * - * @param peer_endpoint An endpoint object which will receive the endpoint of - * the remote peer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(io_context); - * asio::ip::tcp::endpoint endpoint; - * asio::error_code ec; - * acceptor.accept(socket, endpoint, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ -#if defined(ASIO_ENABLE_OLD_SERVICES) - template - ASIO_SYNC_OP_VOID accept( - basic_socket& peer, - endpoint_type& peer_endpoint, asio::error_code& ec) -#else // defined(ASIO_ENABLE_OLD_SERVICES) - ASIO_SYNC_OP_VOID accept(basic_socket& peer, - endpoint_type& peer_endpoint, asio::error_code& ec) -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - { - this->get_service().accept( - this->get_implementation(), peer, &peer_endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection into a - * socket, and additionally obtain the endpoint of the remote peer. The - * function call always returns immediately. - * - * @param peer The socket into which the new connection will be accepted. - * Ownership of the peer object is retained by the caller, which must - * guarantee that it is valid until the handler is called. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. Ownership of the peer_endpoint object is - * retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -#if defined(ASIO_ENABLE_OLD_SERVICES) - template - ASIO_INITFN_RESULT_TYPE(AcceptHandler, - void (asio::error_code)) - async_accept(basic_socket& peer, - endpoint_type& peer_endpoint, ASIO_MOVE_ARG(AcceptHandler) handler) -#else // defined(ASIO_ENABLE_OLD_SERVICES) - template - ASIO_INITFN_RESULT_TYPE(AcceptHandler, - void (asio::error_code)) - async_accept(basic_socket& peer, - endpoint_type& peer_endpoint, ASIO_MOVE_ARG(AcceptHandler) handler) -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a AcceptHandler. - ASIO_ACCEPT_HANDLER_CHECK(AcceptHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_accept(this->get_implementation(), peer, - &peer_endpoint, ASIO_MOVE_CAST(AcceptHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_accept(this->get_implementation(), - peer, &peer_endpoint, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -#endif // !defined(ASIO_NO_EXTENSIONS) - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @returns A socket object representing the newly accepted connection. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(acceptor.accept()); - * @endcode - */ - typename Protocol::socket accept() - { - asio::error_code ec; - typename Protocol::socket peer( - this->get_service().accept( - this->get_implementation(), 0, 0, ec)); - asio::detail::throw_error(ec, "accept"); - return peer; - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns On success, a socket object representing the newly accepted - * connection. On error, a socket object where is_open() is false. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(acceptor.accept(ec)); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - typename Protocol::socket accept(asio::error_code& ec) - { - return this->get_service().accept(this->get_implementation(), 0, 0, ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection. The - * function call always returns immediately. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * typename Protocol::socket peer // On success, the newly accepted socket. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void accept_handler(const asio::error_code& error, - * asio::ip::tcp::socket peer) - * { - * if (!error) - * { - * // Accept succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * acceptor.async_accept(accept_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler, - void (asio::error_code, typename Protocol::socket)) - async_accept(ASIO_MOVE_ARG(MoveAcceptHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a MoveAcceptHandler. - ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler, - handler, typename Protocol::socket) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_accept( - this->get_implementation(), static_cast(0), - static_cast(0), - ASIO_MOVE_CAST(MoveAcceptHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_accept( - this->get_implementation(), static_cast(0), - static_cast(0), init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param io_context The io_context object to be used for the newly accepted - * socket. - * - * @returns A socket object representing the newly accepted connection. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(acceptor.accept()); - * @endcode - */ - typename Protocol::socket accept(asio::io_context& io_context) - { - asio::error_code ec; - typename Protocol::socket peer( - this->get_service().accept(this->get_implementation(), - &io_context, static_cast(0), ec)); - asio::detail::throw_error(ec, "accept"); - return peer; - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param io_context The io_context object to be used for the newly accepted - * socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns On success, a socket object representing the newly accepted - * connection. On error, a socket object where is_open() is false. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(acceptor.accept(io_context2, ec)); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - typename Protocol::socket accept( - asio::io_context& io_context, asio::error_code& ec) - { - return this->get_service().accept(this->get_implementation(), - &io_context, static_cast(0), ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection. The - * function call always returns immediately. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param io_context The io_context object to be used for the newly accepted - * socket. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * typename Protocol::socket peer // On success, the newly accepted socket. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void accept_handler(const asio::error_code& error, - * asio::ip::tcp::socket peer) - * { - * if (!error) - * { - * // Accept succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * acceptor.async_accept(io_context2, accept_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler, - void (asio::error_code, typename Protocol::socket)) - async_accept(asio::io_context& io_context, - ASIO_MOVE_ARG(MoveAcceptHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a MoveAcceptHandler. - ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler, - handler, typename Protocol::socket) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_accept(this->get_implementation(), - &io_context, static_cast(0), - ASIO_MOVE_CAST(MoveAcceptHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_accept(this->get_implementation(), - &io_context, static_cast(0), init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. - * - * @returns A socket object representing the newly accepted connection. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::endpoint endpoint; - * asio::ip::tcp::socket socket(acceptor.accept(endpoint)); - * @endcode - */ - typename Protocol::socket accept(endpoint_type& peer_endpoint) - { - asio::error_code ec; - typename Protocol::socket peer( - this->get_service().accept(this->get_implementation(), - static_cast(0), &peer_endpoint, ec)); - asio::detail::throw_error(ec, "accept"); - return peer; - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns On success, a socket object representing the newly accepted - * connection. On error, a socket object where is_open() is false. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::endpoint endpoint; - * asio::ip::tcp::socket socket(acceptor.accept(endpoint, ec)); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - typename Protocol::socket accept( - endpoint_type& peer_endpoint, asio::error_code& ec) - { - return this->get_service().accept(this->get_implementation(), - static_cast(0), &peer_endpoint, ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection. The - * function call always returns immediately. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. Ownership of the peer_endpoint object is - * retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * typename Protocol::socket peer // On success, the newly accepted socket. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void accept_handler(const asio::error_code& error, - * asio::ip::tcp::socket peer) - * { - * if (!error) - * { - * // Accept succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::endpoint endpoint; - * acceptor.async_accept(endpoint, accept_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler, - void (asio::error_code, typename Protocol::socket)) - async_accept(endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(MoveAcceptHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a MoveAcceptHandler. - ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler, - handler, typename Protocol::socket) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_accept(this->get_implementation(), - static_cast(0), &peer_endpoint, - ASIO_MOVE_CAST(MoveAcceptHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_accept(this->get_implementation(), - static_cast(0), &peer_endpoint, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param io_context The io_context object to be used for the newly accepted - * socket. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. - * - * @returns A socket object representing the newly accepted connection. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::endpoint endpoint; - * asio::ip::tcp::socket socket( - * acceptor.accept(io_context2, endpoint)); - * @endcode - */ - typename Protocol::socket accept( - asio::io_context& io_context, endpoint_type& peer_endpoint) - { - asio::error_code ec; - typename Protocol::socket peer( - this->get_service().accept(this->get_implementation(), - &io_context, &peer_endpoint, ec)); - asio::detail::throw_error(ec, "accept"); - return peer; - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param io_context The io_context object to be used for the newly accepted - * socket. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns On success, a socket object representing the newly accepted - * connection. On error, a socket object where is_open() is false. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::endpoint endpoint; - * asio::ip::tcp::socket socket( - * acceptor.accept(io_context2, endpoint, ec)); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - typename Protocol::socket accept(asio::io_context& io_context, - endpoint_type& peer_endpoint, asio::error_code& ec) - { - return this->get_service().accept(this->get_implementation(), - &io_context, &peer_endpoint, ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection. The - * function call always returns immediately. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param io_context The io_context object to be used for the newly accepted - * socket. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. Ownership of the peer_endpoint object is - * retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * typename Protocol::socket peer // On success, the newly accepted socket. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void accept_handler(const asio::error_code& error, - * asio::ip::tcp::socket peer) - * { - * if (!error) - * { - * // Accept succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::endpoint endpoint; - * acceptor.async_accept(io_context2, endpoint, accept_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler, - void (asio::error_code, typename Protocol::socket)) - async_accept(asio::io_context& io_context, - endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(MoveAcceptHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a MoveAcceptHandler. - ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler, - handler, typename Protocol::socket) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_accept( - this->get_implementation(), &io_context, &peer_endpoint, - ASIO_MOVE_CAST(MoveAcceptHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_accept(this->get_implementation(), - &io_context, &peer_endpoint, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# undef ASIO_SVC_T -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_BASIC_SOCKET_ACCEPTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_socket_iostream.hpp b/Sources/Vendor/asio/include/asio/basic_socket_iostream.hpp deleted file mode 100644 index 6681367..0000000 --- a/Sources/Vendor/asio/include/asio/basic_socket_iostream.hpp +++ /dev/null @@ -1,430 +0,0 @@ -// -// basic_socket_iostream.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BASIC_SOCKET_IOSTREAM_HPP -#define ASIO_BASIC_SOCKET_IOSTREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_NO_IOSTREAM) - -#include -#include -#include "asio/basic_socket_streambuf.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/stream_socket_service.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#if !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -# include "asio/detail/variadic_templates.hpp" - -// A macro that should expand to: -// template -// explicit basic_socket_iostream(T1 x1, ..., Tn xn) -// : std::basic_iostream( -// &this->detail::socket_iostream_base< -// Protocol ASIO_SVC_TARG, Clock, -// WaitTraits ASIO_SVC_TARG1>::streambuf_) -// { -// if (rdbuf()->connect(x1, ..., xn) == 0) -// this->setstate(std::ios_base::failbit); -// } -// This macro should only persist within this file. - -# define ASIO_PRIVATE_CTR_DEF(n) \ - template \ - explicit basic_socket_iostream(ASIO_VARIADIC_BYVAL_PARAMS(n)) \ - : std::basic_iostream( \ - &this->detail::socket_iostream_base< \ - Protocol ASIO_SVC_TARG, Clock, \ - WaitTraits ASIO_SVC_TARG1>::streambuf_) \ - { \ - this->setf(std::ios_base::unitbuf); \ - if (rdbuf()->connect(ASIO_VARIADIC_BYVAL_ARGS(n)) == 0) \ - this->setstate(std::ios_base::failbit); \ - } \ - /**/ - -// A macro that should expand to: -// template -// void connect(T1 x1, ..., Tn xn) -// { -// if (rdbuf()->connect(x1, ..., xn) == 0) -// this->setstate(std::ios_base::failbit); -// } -// This macro should only persist within this file. - -# define ASIO_PRIVATE_CONNECT_DEF(n) \ - template \ - void connect(ASIO_VARIADIC_BYVAL_PARAMS(n)) \ - { \ - if (rdbuf()->connect(ASIO_VARIADIC_BYVAL_ARGS(n)) == 0) \ - this->setstate(std::ios_base::failbit); \ - } \ - /**/ - -#endif // !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// A separate base class is used to ensure that the streambuf is initialised -// prior to the basic_socket_iostream's basic_iostream base class. -template -class socket_iostream_base -{ -protected: - socket_iostream_base() - { - } - -#if defined(ASIO_HAS_MOVE) - socket_iostream_base(socket_iostream_base&& other) - : streambuf_(std::move(other.streambuf_)) - { - } - - socket_iostream_base(basic_stream_socket s) - : streambuf_(std::move(s)) - { - } - - socket_iostream_base& operator=(socket_iostream_base&& other) - { - streambuf_ = std::move(other.streambuf_); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - basic_socket_streambuf streambuf_; -}; - -} // namespace detail - -#if !defined(ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL) -#define ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL - -// Forward declaration with defaulted arguments. -template ), -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typename Clock = boost::posix_time::ptime, - typename WaitTraits = time_traits - ASIO_SVC_TPARAM1_DEF2(= deadline_timer_service)> -#else // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typename Clock = chrono::steady_clock, - typename WaitTraits = wait_traits - ASIO_SVC_TPARAM1_DEF1(= steady_timer::service_type)> -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) -class basic_socket_iostream; - -#endif // !defined(ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL) - -/// Iostream interface for a socket. -#if defined(GENERATING_DOCUMENTATION) -template > -#else // defined(GENERATING_DOCUMENTATION) -template -#endif // defined(GENERATING_DOCUMENTATION) -class basic_socket_iostream - : private detail::socket_iostream_base, - public std::basic_iostream -{ -private: - // These typedefs are intended keep this class's implementation independent - // of whether it's using Boost.DateClock, Boost.Chrono or std::chrono. -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typedef WaitTraits traits_helper; -#else // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typedef detail::chrono_time_traits traits_helper; -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - -public: - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// The clock type. - typedef Clock clock_type; - -#if defined(GENERATING_DOCUMENTATION) - /// (Deprecated: Use time_point.) The time type. - typedef typename WaitTraits::time_type time_type; - - /// The time type. - typedef typename WaitTraits::time_point time_point; - - /// (Deprecated: Use duration.) The duration type. - typedef typename WaitTraits::duration_type duration_type; - - /// The duration type. - typedef typename WaitTraits::duration duration; -#else -# if !defined(ASIO_NO_DEPRECATED) - typedef typename traits_helper::time_type time_type; - typedef typename traits_helper::duration_type duration_type; -# endif // !defined(ASIO_NO_DEPRECATED) - typedef typename traits_helper::time_type time_point; - typedef typename traits_helper::duration_type duration; -#endif - - /// Construct a basic_socket_iostream without establishing a connection. - basic_socket_iostream() - : std::basic_iostream( - &this->detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>::streambuf_) - { - this->setf(std::ios_base::unitbuf); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Construct a basic_socket_iostream from the supplied socket. - explicit basic_socket_iostream(basic_stream_socket s) - : detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>(std::move(s)), - std::basic_iostream( - &this->detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>::streambuf_) - { - this->setf(std::ios_base::unitbuf); - } - -#if defined(ASIO_HAS_STD_IOSTREAM_MOVE) \ - || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_socket_iostream from another. - basic_socket_iostream(basic_socket_iostream&& other) - : detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>(std::move(other)), - std::basic_iostream(std::move(other)) - { - this->set_rdbuf(&this->detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>::streambuf_); - } - - /// Move-assign a basic_socket_iostream from another. - basic_socket_iostream& operator=(basic_socket_iostream&& other) - { - std::basic_iostream::operator=(std::move(other)); - detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_STD_IOSTREAM_MOVE) - // || defined(GENERATING_DOCUMENTATION) -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - -#if defined(GENERATING_DOCUMENTATION) - /// Establish a connection to an endpoint corresponding to a resolver query. - /** - * This constructor automatically establishes a connection based on the - * supplied resolver query parameters. The arguments are used to construct - * a resolver query object. - */ - template - explicit basic_socket_iostream(T1 t1, ..., TN tn); -#elif defined(ASIO_HAS_VARIADIC_TEMPLATES) - template - explicit basic_socket_iostream(T... x) - : std::basic_iostream( - &this->detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>::streambuf_) - { - this->setf(std::ios_base::unitbuf); - if (rdbuf()->connect(x...) == 0) - this->setstate(std::ios_base::failbit); - } -#else - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_CTR_DEF) -#endif - -#if defined(GENERATING_DOCUMENTATION) - /// Establish a connection to an endpoint corresponding to a resolver query. - /** - * This function automatically establishes a connection based on the supplied - * resolver query parameters. The arguments are used to construct a resolver - * query object. - */ - template - void connect(T1 t1, ..., TN tn); -#elif defined(ASIO_HAS_VARIADIC_TEMPLATES) - template - void connect(T... x) - { - if (rdbuf()->connect(x...) == 0) - this->setstate(std::ios_base::failbit); - } -#else - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_CONNECT_DEF) -#endif - - /// Close the connection. - void close() - { - if (rdbuf()->close() == 0) - this->setstate(std::ios_base::failbit); - } - - /// Return a pointer to the underlying streambuf. - basic_socket_streambuf* rdbuf() const - { - return const_cast*>( - &this->detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>::streambuf_); - } - - /// Get a reference to the underlying socket. - basic_socket& socket() - { - return rdbuf()->socket(); - } - - /// Get the last error associated with the stream. - /** - * @return An \c error_code corresponding to the last error from the stream. - * - * @par Example - * To print the error associated with a failure to establish a connection: - * @code tcp::iostream s("www.boost.org", "http"); - * if (!s) - * { - * std::cout << "Error: " << s.error().message() << std::endl; - * } @endcode - */ - const asio::error_code& error() const - { - return rdbuf()->error(); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use expiry().) Get the stream's expiry time as an absolute - /// time. - /** - * @return An absolute time value representing the stream's expiry time. - */ - time_point expires_at() const - { - return rdbuf()->expires_at(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the stream's expiry time as an absolute time. - /** - * @return An absolute time value representing the stream's expiry time. - */ - time_point expiry() const - { - return rdbuf()->expiry(); - } - - /// Set the stream's expiry time as an absolute time. - /** - * This function sets the expiry time associated with the stream. Stream - * operations performed after this time (where the operations cannot be - * completed using the internal buffers) will fail with the error - * asio::error::operation_aborted. - * - * @param expiry_time The expiry time to be used for the stream. - */ - void expires_at(const time_point& expiry_time) - { - rdbuf()->expires_at(expiry_time); - } - - /// Set the stream's expiry time relative to now. - /** - * This function sets the expiry time associated with the stream. Stream - * operations performed after this time (where the operations cannot be - * completed using the internal buffers) will fail with the error - * asio::error::operation_aborted. - * - * @param expiry_time The expiry time to be used for the timer. - */ - void expires_after(const duration& expiry_time) - { - rdbuf()->expires_after(expiry_time); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use expiry().) Get the stream's expiry time relative to now. - /** - * @return A relative time value representing the stream's expiry time. - */ - duration expires_from_now() const - { - return rdbuf()->expires_from_now(); - } - - /// (Deprecated: Use expires_after().) Set the stream's expiry time relative - /// to now. - /** - * This function sets the expiry time associated with the stream. Stream - * operations performed after this time (where the operations cannot be - * completed using the internal buffers) will fail with the error - * asio::error::operation_aborted. - * - * @param expiry_time The expiry time to be used for the timer. - */ - void expires_from_now(const duration& expiry_time) - { - rdbuf()->expires_from_now(expiry_time); - } -#endif // !defined(ASIO_NO_DEPRECATED) - -private: - // Disallow copying and assignment. - basic_socket_iostream(const basic_socket_iostream&) ASIO_DELETED; - basic_socket_iostream& operator=( - const basic_socket_iostream&) ASIO_DELETED; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_HAS_VARIADIC_TEMPLATES) -# undef ASIO_PRIVATE_CTR_DEF -# undef ASIO_PRIVATE_CONNECT_DEF -#endif // !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_BASIC_SOCKET_IOSTREAM_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_socket_streambuf.hpp b/Sources/Vendor/asio/include/asio/basic_socket_streambuf.hpp deleted file mode 100644 index 56a3637..0000000 --- a/Sources/Vendor/asio/include/asio/basic_socket_streambuf.hpp +++ /dev/null @@ -1,707 +0,0 @@ -// -// basic_socket_streambuf.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BASIC_SOCKET_STREAMBUF_HPP -#define ASIO_BASIC_SOCKET_STREAMBUF_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_NO_IOSTREAM) - -#include -#include -#include "asio/basic_socket.hpp" -#include "asio/basic_stream_socket.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/stream_socket_service.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) -# if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/deadline_timer_service.hpp" -# else // defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/detail/deadline_timer_service.hpp" -# endif // defined(ASIO_ENABLE_OLD_SERVICES) -#else // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) -# include "asio/steady_timer.hpp" -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - -#if !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -# include "asio/detail/variadic_templates.hpp" - -// A macro that should expand to: -// template -// basic_socket_streambuf* connect(T1 x1, ..., Tn xn) -// { -// init_buffers(); -// typedef typename Protocol::resolver resolver_type; -// resolver_type resolver(socket().get_executor().context()); -// connect_to_endpoints( -// resolver.resolve(x1, ..., xn, ec_)); -// return !ec_ ? this : 0; -// } -// This macro should only persist within this file. - -# define ASIO_PRIVATE_CONNECT_DEF(n) \ - template \ - basic_socket_streambuf* connect(ASIO_VARIADIC_BYVAL_PARAMS(n)) \ - { \ - init_buffers(); \ - typedef typename Protocol::resolver resolver_type; \ - resolver_type resolver(socket().get_executor().context()); \ - connect_to_endpoints( \ - resolver.resolve(ASIO_VARIADIC_BYVAL_ARGS(n), ec_)); \ - return !ec_ ? this : 0; \ - } \ - /**/ - -#endif // !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# define ASIO_SVC_T1 detail::deadline_timer_service -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// A separate base class is used to ensure that the io_context member is -// initialised prior to the basic_socket_streambuf's basic_socket base class. -class socket_streambuf_io_context -{ -protected: - socket_streambuf_io_context(io_context* ctx) - : default_io_context_(ctx) - { - } - - shared_ptr default_io_context_; -}; - -// A separate base class is used to ensure that the dynamically allocated -// buffers are constructed prior to the basic_socket_streambuf's basic_socket -// base class. This makes moving the socket is the last potentially throwing -// step in the streambuf's move constructor, giving the constructor a strong -// exception safety guarantee. -class socket_streambuf_buffers -{ -protected: - socket_streambuf_buffers() - : get_buffer_(buffer_size), - put_buffer_(buffer_size) - { - } - - enum { buffer_size = 512 }; - std::vector get_buffer_; - std::vector put_buffer_; -}; - -} // namespace detail - -#if !defined(ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL) -#define ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL - -// Forward declaration with defaulted arguments. -template ), -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typename Clock = boost::posix_time::ptime, - typename WaitTraits = time_traits - ASIO_SVC_TPARAM1_DEF2(= deadline_timer_service)> -#else // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typename Clock = chrono::steady_clock, - typename WaitTraits = wait_traits - ASIO_SVC_TPARAM1_DEF1(= steady_timer::service_type)> -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) -class basic_socket_streambuf; - -#endif // !defined(ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL) - -/// Iostream streambuf for a socket. -#if defined(GENERATING_DOCUMENTATION) -template > -#else // defined(GENERATING_DOCUMENTATION) -template -#endif // defined(GENERATING_DOCUMENTATION) -class basic_socket_streambuf - : public std::streambuf, - private detail::socket_streambuf_io_context, - private detail::socket_streambuf_buffers, -#if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - private basic_socket -#else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - public basic_socket -#endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -{ -private: - // These typedefs are intended keep this class's implementation independent - // of whether it's using Boost.DateClock, Boost.Chrono or std::chrono. -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typedef WaitTraits traits_helper; -#else // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typedef detail::chrono_time_traits traits_helper; -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - -public: - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// The clock type. - typedef Clock clock_type; - -#if defined(GENERATING_DOCUMENTATION) - /// (Deprecated: Use time_point.) The time type. - typedef typename WaitTraits::time_type time_type; - - /// The time type. - typedef typename WaitTraits::time_point time_point; - - /// (Deprecated: Use duration.) The duration type. - typedef typename WaitTraits::duration_type duration_type; - - /// The duration type. - typedef typename WaitTraits::duration duration; -#else -# if !defined(ASIO_NO_DEPRECATED) - typedef typename traits_helper::time_type time_type; - typedef typename traits_helper::duration_type duration_type; -# endif // !defined(ASIO_NO_DEPRECATED) - typedef typename traits_helper::time_type time_point; - typedef typename traits_helper::duration_type duration; -#endif - - /// Construct a basic_socket_streambuf without establishing a connection. - basic_socket_streambuf() - : detail::socket_streambuf_io_context(new io_context), - basic_socket(*default_io_context_), - expiry_time_(max_expiry_time()) - { - init_buffers(); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Construct a basic_socket_streambuf from the supplied socket. - explicit basic_socket_streambuf(basic_stream_socket s) - : detail::socket_streambuf_io_context(0), - basic_socket(std::move(s)), - expiry_time_(max_expiry_time()) - { - init_buffers(); - } - - /// Move-construct a basic_socket_streambuf from another. - basic_socket_streambuf(basic_socket_streambuf&& other) - : detail::socket_streambuf_io_context(other), - basic_socket(std::move(other.socket())), - ec_(other.ec_), - expiry_time_(other.expiry_time_) - { - get_buffer_.swap(other.get_buffer_); - put_buffer_.swap(other.put_buffer_); - setg(other.eback(), other.gptr(), other.egptr()); - setp(other.pptr(), other.epptr()); - other.ec_ = asio::error_code(); - other.expiry_time_ = max_expiry_time(); - other.init_buffers(); - } - - /// Move-assign a basic_socket_streambuf from another. - basic_socket_streambuf& operator=(basic_socket_streambuf&& other) - { - this->close(); - socket() = std::move(other.socket()); - detail::socket_streambuf_io_context::operator=(other); - ec_ = other.ec_; - expiry_time_ = other.expiry_time_; - get_buffer_.swap(other.get_buffer_); - put_buffer_.swap(other.put_buffer_); - setg(other.eback(), other.gptr(), other.egptr()); - setp(other.pptr(), other.epptr()); - other.ec_ = asio::error_code(); - other.expiry_time_ = max_expiry_time(); - other.put_buffer_.resize(buffer_size); - other.init_buffers(); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destructor flushes buffered data. - virtual ~basic_socket_streambuf() - { - if (pptr() != pbase()) - overflow(traits_type::eof()); - } - - /// Establish a connection. - /** - * This function establishes a connection to the specified endpoint. - * - * @return \c this if a connection was successfully established, a null - * pointer otherwise. - */ - basic_socket_streambuf* connect(const endpoint_type& endpoint) - { - init_buffers(); - ec_ = asio::error_code(); - this->connect_to_endpoints(&endpoint, &endpoint + 1); - return !ec_ ? this : 0; - } - -#if defined(GENERATING_DOCUMENTATION) - /// Establish a connection. - /** - * This function automatically establishes a connection based on the supplied - * resolver query parameters. The arguments are used to construct a resolver - * query object. - * - * @return \c this if a connection was successfully established, a null - * pointer otherwise. - */ - template - basic_socket_streambuf* connect(T1 t1, ..., TN tn); -#elif defined(ASIO_HAS_VARIADIC_TEMPLATES) - template - basic_socket_streambuf* connect(T... x) - { - init_buffers(); - typedef typename Protocol::resolver resolver_type; - resolver_type resolver(socket().get_executor().context()); - connect_to_endpoints(resolver.resolve(x..., ec_)); - return !ec_ ? this : 0; - } -#else - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_CONNECT_DEF) -#endif - - /// Close the connection. - /** - * @return \c this if a connection was successfully established, a null - * pointer otherwise. - */ - basic_socket_streambuf* close() - { - sync(); - socket().close(ec_); - if (!ec_) - init_buffers(); - return !ec_ ? this : 0; - } - - /// Get a reference to the underlying socket. - basic_socket& socket() - { - return *this; - } - - /// Get the last error associated with the stream buffer. - /** - * @return An \c error_code corresponding to the last error from the stream - * buffer. - */ - const asio::error_code& error() const - { - return ec_; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use error().) Get the last error associated with the stream - /// buffer. - /** - * @return An \c error_code corresponding to the last error from the stream - * buffer. - */ - const asio::error_code& puberror() const - { - return error(); - } - - /// (Deprecated: Use expiry().) Get the stream buffer's expiry time as an - /// absolute time. - /** - * @return An absolute time value representing the stream buffer's expiry - * time. - */ - time_point expires_at() const - { - return expiry_time_; - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the stream buffer's expiry time as an absolute time. - /** - * @return An absolute time value representing the stream buffer's expiry - * time. - */ - time_point expiry() const - { - return expiry_time_; - } - - /// Set the stream buffer's expiry time as an absolute time. - /** - * This function sets the expiry time associated with the stream. Stream - * operations performed after this time (where the operations cannot be - * completed using the internal buffers) will fail with the error - * asio::error::operation_aborted. - * - * @param expiry_time The expiry time to be used for the stream. - */ - void expires_at(const time_point& expiry_time) - { - expiry_time_ = expiry_time; - } - - /// Set the stream buffer's expiry time relative to now. - /** - * This function sets the expiry time associated with the stream. Stream - * operations performed after this time (where the operations cannot be - * completed using the internal buffers) will fail with the error - * asio::error::operation_aborted. - * - * @param expiry_time The expiry time to be used for the timer. - */ - void expires_after(const duration& expiry_time) - { - expiry_time_ = traits_helper::add(traits_helper::now(), expiry_time); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use expiry().) Get the stream buffer's expiry time relative - /// to now. - /** - * @return A relative time value representing the stream buffer's expiry time. - */ - duration expires_from_now() const - { - return traits_helper::subtract(expires_at(), traits_helper::now()); - } - - /// (Deprecated: Use expires_after().) Set the stream buffer's expiry time - /// relative to now. - /** - * This function sets the expiry time associated with the stream. Stream - * operations performed after this time (where the operations cannot be - * completed using the internal buffers) will fail with the error - * asio::error::operation_aborted. - * - * @param expiry_time The expiry time to be used for the timer. - */ - void expires_from_now(const duration& expiry_time) - { - expiry_time_ = traits_helper::add(traits_helper::now(), expiry_time); - } -#endif // !defined(ASIO_NO_DEPRECATED) - -protected: - int_type underflow() - { -#if defined(ASIO_WINDOWS_RUNTIME) - ec_ = asio::error::operation_not_supported; - return traits_type::eof(); -#else // defined(ASIO_WINDOWS_RUNTIME) - if (gptr() != egptr()) - return traits_type::eof(); - - for (;;) - { - // Check if we are past the expiry time. - if (traits_helper::less_than(expiry_time_, traits_helper::now())) - { - ec_ = asio::error::timed_out; - return traits_type::eof(); - } - - // Try to complete the operation without blocking. - if (!socket().native_non_blocking()) - socket().native_non_blocking(true, ec_); - detail::buffer_sequence_adapter - bufs(asio::buffer(get_buffer_) + putback_max); - detail::signed_size_type bytes = detail::socket_ops::recv( - socket().native_handle(), bufs.buffers(), bufs.count(), 0, ec_); - - // Check if operation succeeded. - if (bytes > 0) - { - setg(&get_buffer_[0], &get_buffer_[0] + putback_max, - &get_buffer_[0] + putback_max + bytes); - return traits_type::to_int_type(*gptr()); - } - - // Check for EOF. - if (bytes == 0) - { - ec_ = asio::error::eof; - return traits_type::eof(); - } - - // Operation failed. - if (ec_ != asio::error::would_block - && ec_ != asio::error::try_again) - return traits_type::eof(); - - // Wait for socket to become ready. - if (detail::socket_ops::poll_read( - socket().native_handle(), 0, timeout(), ec_) < 0) - return traits_type::eof(); - } -#endif // defined(ASIO_WINDOWS_RUNTIME) - } - - int_type overflow(int_type c) - { -#if defined(ASIO_WINDOWS_RUNTIME) - ec_ = asio::error::operation_not_supported; - return traits_type::eof(); -#else // defined(ASIO_WINDOWS_RUNTIME) - char_type ch = traits_type::to_char_type(c); - - // Determine what needs to be sent. - const_buffer output_buffer; - if (put_buffer_.empty()) - { - if (traits_type::eq_int_type(c, traits_type::eof())) - return traits_type::not_eof(c); // Nothing to do. - output_buffer = asio::buffer(&ch, sizeof(char_type)); - } - else - { - output_buffer = asio::buffer(pbase(), - (pptr() - pbase()) * sizeof(char_type)); - } - - while (output_buffer.size() > 0) - { - // Check if we are past the expiry time. - if (traits_helper::less_than(expiry_time_, traits_helper::now())) - { - ec_ = asio::error::timed_out; - return traits_type::eof(); - } - - // Try to complete the operation without blocking. - if (!socket().native_non_blocking()) - socket().native_non_blocking(true, ec_); - detail::buffer_sequence_adapter< - const_buffer, const_buffer> bufs(output_buffer); - detail::signed_size_type bytes = detail::socket_ops::send( - socket().native_handle(), bufs.buffers(), bufs.count(), 0, ec_); - - // Check if operation succeeded. - if (bytes > 0) - { - output_buffer += static_cast(bytes); - continue; - } - - // Operation failed. - if (ec_ != asio::error::would_block - && ec_ != asio::error::try_again) - return traits_type::eof(); - - // Wait for socket to become ready. - if (detail::socket_ops::poll_write( - socket().native_handle(), 0, timeout(), ec_) < 0) - return traits_type::eof(); - } - - if (!put_buffer_.empty()) - { - setp(&put_buffer_[0], &put_buffer_[0] + put_buffer_.size()); - - // If the new character is eof then our work here is done. - if (traits_type::eq_int_type(c, traits_type::eof())) - return traits_type::not_eof(c); - - // Add the new character to the output buffer. - *pptr() = ch; - pbump(1); - } - - return c; -#endif // defined(ASIO_WINDOWS_RUNTIME) - } - - int sync() - { - return overflow(traits_type::eof()); - } - - std::streambuf* setbuf(char_type* s, std::streamsize n) - { - if (pptr() == pbase() && s == 0 && n == 0) - { - put_buffer_.clear(); - setp(0, 0); - sync(); - return this; - } - - return 0; - } - -private: - // Disallow copying and assignment. - basic_socket_streambuf(const basic_socket_streambuf&) ASIO_DELETED; - basic_socket_streambuf& operator=( - const basic_socket_streambuf&) ASIO_DELETED; - - void init_buffers() - { - setg(&get_buffer_[0], - &get_buffer_[0] + putback_max, - &get_buffer_[0] + putback_max); - - if (put_buffer_.empty()) - setp(0, 0); - else - setp(&put_buffer_[0], &put_buffer_[0] + put_buffer_.size()); - } - - int timeout() const - { - int64_t msec = traits_helper::to_posix_duration( - traits_helper::subtract(expiry_time_, - traits_helper::now())).total_milliseconds(); - if (msec > (std::numeric_limits::max)()) - msec = (std::numeric_limits::max)(); - else if (msec < 0) - msec = 0; - return static_cast(msec); - } - - template - void connect_to_endpoints(const EndpointSequence& endpoints) - { - this->connect_to_endpoints(endpoints.begin(), endpoints.end()); - } - - template - void connect_to_endpoints(EndpointIterator begin, EndpointIterator end) - { -#if defined(ASIO_WINDOWS_RUNTIME) - ec_ = asio::error::operation_not_supported; -#else // defined(ASIO_WINDOWS_RUNTIME) - if (ec_) - return; - - ec_ = asio::error::not_found; - for (EndpointIterator i = begin; i != end; ++i) - { - // Check if we are past the expiry time. - if (traits_helper::less_than(expiry_time_, traits_helper::now())) - { - ec_ = asio::error::timed_out; - return; - } - - // Close and reopen the socket. - typename Protocol::endpoint ep(*i); - socket().close(ec_); - socket().open(ep.protocol(), ec_); - if (ec_) - continue; - - // Try to complete the operation without blocking. - if (!socket().native_non_blocking()) - socket().native_non_blocking(true, ec_); - detail::socket_ops::connect(socket().native_handle(), - ep.data(), ep.size(), ec_); - - // Check if operation succeeded. - if (!ec_) - return; - - // Operation failed. - if (ec_ != asio::error::in_progress - && ec_ != asio::error::would_block) - continue; - - // Wait for socket to become ready. - if (detail::socket_ops::poll_connect( - socket().native_handle(), timeout(), ec_) < 0) - continue; - - // Get the error code from the connect operation. - int connect_error = 0; - size_t connect_error_len = sizeof(connect_error); - if (detail::socket_ops::getsockopt(socket().native_handle(), 0, - SOL_SOCKET, SO_ERROR, &connect_error, &connect_error_len, ec_) - == detail::socket_error_retval) - return; - - // Check the result of the connect operation. - ec_ = asio::error_code(connect_error, - asio::error::get_system_category()); - if (!ec_) - return; - } -#endif // defined(ASIO_WINDOWS_RUNTIME) - } - - // Helper function to get the maximum expiry time. - static time_point max_expiry_time() - { -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - return boost::posix_time::pos_infin; -#else // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - return (time_point::max)(); -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - } - - enum { putback_max = 8 }; - asio::error_code ec_; - time_point expiry_time_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# undef ASIO_SVC_T1 -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#if !defined(ASIO_HAS_VARIADIC_TEMPLATES) -# undef ASIO_PRIVATE_CONNECT_DEF -#endif // !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_BASIC_SOCKET_STREAMBUF_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_stream_socket.hpp b/Sources/Vendor/asio/include/asio/basic_stream_socket.hpp deleted file mode 100644 index eea8862..0000000 --- a/Sources/Vendor/asio/include/asio/basic_stream_socket.hpp +++ /dev/null @@ -1,921 +0,0 @@ -// -// basic_stream_socket.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BASIC_STREAM_SOCKET_HPP -#define ASIO_BASIC_STREAM_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/basic_socket.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/stream_socket_service.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides stream-oriented socket functionality. -/** - * The basic_stream_socket class template provides asynchronous and blocking - * stream-oriented socket functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template )> -class basic_stream_socket - : public basic_socket -{ -public: - /// The native representation of a socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename basic_socket< - Protocol ASIO_SVC_TARG>::native_handle_type native_handle_type; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_stream_socket without opening it. - /** - * This constructor creates a stream socket without opening it. The socket - * needs to be opened and then connected or accepted before data can be sent - * or received on it. - * - * @param io_context The io_context object that the stream socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - */ - explicit basic_stream_socket(asio::io_context& io_context) - : basic_socket(io_context) - { - } - - /// Construct and open a basic_stream_socket. - /** - * This constructor creates and opens a stream socket. The socket needs to be - * connected or accepted before data can be sent or received on it. - * - * @param io_context The io_context object that the stream socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws asio::system_error Thrown on failure. - */ - basic_stream_socket(asio::io_context& io_context, - const protocol_type& protocol) - : basic_socket(io_context, protocol) - { - } - - /// Construct a basic_stream_socket, opening it and binding it to the given - /// local endpoint. - /** - * This constructor creates a stream socket and automatically opens it bound - * to the specified endpoint on the local machine. The protocol used is the - * protocol associated with the given endpoint. - * - * @param io_context The io_context object that the stream socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param endpoint An endpoint on the local machine to which the stream - * socket will be bound. - * - * @throws asio::system_error Thrown on failure. - */ - basic_stream_socket(asio::io_context& io_context, - const endpoint_type& endpoint) - : basic_socket(io_context, endpoint) - { - } - - /// Construct a basic_stream_socket on an existing native socket. - /** - * This constructor creates a stream socket object to hold an existing native - * socket. - * - * @param io_context The io_context object that the stream socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket The new underlying socket implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_stream_socket(asio::io_context& io_context, - const protocol_type& protocol, const native_handle_type& native_socket) - : basic_socket( - io_context, protocol, native_socket) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_stream_socket from another. - /** - * This constructor moves a stream socket from one object to another. - * - * @param other The other basic_stream_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_socket(io_context&) constructor. - */ - basic_stream_socket(basic_stream_socket&& other) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_stream_socket from another. - /** - * This assignment operator moves a stream socket from one object to another. - * - * @param other The other basic_stream_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_socket(io_context&) constructor. - */ - basic_stream_socket& operator=(basic_stream_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } - - /// Move-construct a basic_stream_socket from a socket of another protocol - /// type. - /** - * This constructor moves a stream socket from one object to another. - * - * @param other The other basic_stream_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_socket(io_context&) constructor. - */ - template - basic_stream_socket( - basic_stream_socket&& other, - typename enable_if::value>::type* = 0) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_stream_socket from a socket of another protocol type. - /** - * This assignment operator moves a stream socket from one object to another. - * - * @param other The other basic_stream_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_socket(io_context&) constructor. - */ - template - typename enable_if::value, - basic_stream_socket>::type& operator=( - basic_stream_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the socket. - /** - * This function destroys the socket, cancelling any outstanding asynchronous - * operations associated with the socket as if by calling @c cancel. - */ - ~basic_stream_socket() - { - } - - /// Send some data on the socket. - /** - * This function is used to send data on the stream socket. The function - * call will block until one or more bytes of the data has been sent - * successfully, or an until error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref write function if you need to ensure that all data - * is written before the blocking operation completes. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.send(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on the socket. - /** - * This function is used to send data on the stream socket. The function - * call will block until one or more bytes of the data has been sent - * successfully, or an until error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref write function if you need to ensure that all data - * is written before the blocking operation completes. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.send(asio::buffer(data, size), 0); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, flags, ec); - asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on the socket. - /** - * This function is used to send data on the stream socket. The function - * call will block until one or more bytes of the data has been sent - * successfully, or an until error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. Returns 0 if an error occurred. - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref write function if you need to ensure that all data - * is written before the blocking operation completes. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return this->get_service().send( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send data on the stream socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send( - this->get_implementation(), buffers, 0, - ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send( - this->get_implementation(), buffers, 0, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send data on the stream socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(asio::buffer(data, size), 0, handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send( - this->get_implementation(), buffers, flags, - ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send( - this->get_implementation(), buffers, flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Receive some data on the socket. - /** - * This function is used to receive data on the stream socket. The function - * call will block until one or more bytes of data has been received - * successfully, or until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.receive(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on the socket. - /** - * This function is used to receive data on the stream socket. The function - * call will block until one or more bytes of data has been received - * successfully, or until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.receive(asio::buffer(data, size), 0); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the stream socket. The function - * call will block until one or more bytes of data has been received - * successfully, or until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. Returns 0 if an error occurred. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive data from the stream - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref async_read function if you need to ensure - * that the requested amount of data is received before the asynchronous - * operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive data from the stream - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref async_read function if you need to ensure - * that the requested amount of data is received before the asynchronous - * operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(asio::buffer(data, size), 0, handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, flags, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Write some data to the socket. - /** - * This function is used to write data to the stream socket. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the socket. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * socket.write_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the socket. - /** - * This function is used to write data to the stream socket. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().send(this->get_implementation(), buffers, 0, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the stream socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the socket. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_write_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Read some data from the socket. - /** - * This function is used to read data from the stream socket. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * socket.read_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the socket. - /** - * This function is used to read data from the stream socket. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().receive( - this->get_implementation(), buffers, 0, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the stream socket. - * The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_read_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_STREAM_SOCKET_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_streambuf.hpp b/Sources/Vendor/asio/include/asio/basic_streambuf.hpp deleted file mode 100644 index 14f85d2..0000000 --- a/Sources/Vendor/asio/include/asio/basic_streambuf.hpp +++ /dev/null @@ -1,452 +0,0 @@ -// -// basic_streambuf.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BASIC_STREAMBUF_HPP -#define ASIO_BASIC_STREAMBUF_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_NO_IOSTREAM) - -#include -#include -#include -#include -#include -#include "asio/basic_streambuf_fwd.hpp" -#include "asio/buffer.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/throw_exception.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Automatically resizable buffer class based on std::streambuf. -/** - * The @c basic_streambuf class is derived from @c std::streambuf to associate - * the streambuf's input and output sequences with one or more character - * arrays. These character arrays are internal to the @c basic_streambuf - * object, but direct access to the array elements is provided to permit them - * to be used efficiently with I/O operations. Characters written to the output - * sequence of a @c basic_streambuf object are appended to the input sequence - * of the same object. - * - * The @c basic_streambuf class's public interface is intended to permit the - * following implementation strategies: - * - * @li A single contiguous character array, which is reallocated as necessary - * to accommodate changes in the size of the character sequence. This is the - * implementation approach currently used in Asio. - * - * @li A sequence of one or more character arrays, where each array is of the - * same size. Additional character array objects are appended to the sequence - * to accommodate changes in the size of the character sequence. - * - * @li A sequence of one or more character arrays of varying sizes. Additional - * character array objects are appended to the sequence to accommodate changes - * in the size of the character sequence. - * - * The constructor for basic_streambuf accepts a @c size_t argument specifying - * the maximum of the sum of the sizes of the input sequence and output - * sequence. During the lifetime of the @c basic_streambuf object, the following - * invariant holds: - * @code size() <= max_size()@endcode - * Any member function that would, if successful, cause the invariant to be - * violated shall throw an exception of class @c std::length_error. - * - * The constructor for @c basic_streambuf takes an Allocator argument. A copy - * of this argument is used for any memory allocation performed, by the - * constructor and by all member functions, during the lifetime of each @c - * basic_streambuf object. - * - * @par Examples - * Writing directly from an streambuf to a socket: - * @code - * asio::streambuf b; - * std::ostream os(&b); - * os << "Hello, World!\n"; - * - * // try sending some data in input sequence - * size_t n = sock.send(b.data()); - * - * b.consume(n); // sent data is removed from input sequence - * @endcode - * - * Reading from a socket directly into a streambuf: - * @code - * asio::streambuf b; - * - * // reserve 512 bytes in output sequence - * asio::streambuf::mutable_buffers_type bufs = b.prepare(512); - * - * size_t n = sock.receive(bufs); - * - * // received data is "committed" from output sequence to input sequence - * b.commit(n); - * - * std::istream is(&b); - * std::string s; - * is >> s; - * @endcode - */ -#if defined(GENERATING_DOCUMENTATION) -template > -#else -template -#endif -class basic_streambuf - : public std::streambuf, - private noncopyable -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The type used to represent the input sequence as a list of buffers. - typedef implementation_defined const_buffers_type; - - /// The type used to represent the output sequence as a list of buffers. - typedef implementation_defined mutable_buffers_type; -#else - typedef ASIO_CONST_BUFFER const_buffers_type; - typedef ASIO_MUTABLE_BUFFER mutable_buffers_type; -#endif - - /// Construct a basic_streambuf object. - /** - * Constructs a streambuf with the specified maximum size. The initial size - * of the streambuf's input sequence is 0. - */ - explicit basic_streambuf( - std::size_t maximum_size = (std::numeric_limits::max)(), - const Allocator& allocator = Allocator()) - : max_size_(maximum_size), - buffer_(allocator) - { - std::size_t pend = (std::min)(max_size_, buffer_delta); - buffer_.resize((std::max)(pend, 1)); - setg(&buffer_[0], &buffer_[0], &buffer_[0]); - setp(&buffer_[0], &buffer_[0] + pend); - } - - /// Get the size of the input sequence. - /** - * @returns The size of the input sequence. The value is equal to that - * calculated for @c s in the following code: - * @code - * size_t s = 0; - * const_buffers_type bufs = data(); - * const_buffers_type::const_iterator i = bufs.begin(); - * while (i != bufs.end()) - * { - * const_buffer buf(*i++); - * s += buf.size(); - * } - * @endcode - */ - std::size_t size() const ASIO_NOEXCEPT - { - return pptr() - gptr(); - } - - /// Get the maximum size of the basic_streambuf. - /** - * @returns The allowed maximum of the sum of the sizes of the input sequence - * and output sequence. - */ - std::size_t max_size() const ASIO_NOEXCEPT - { - return max_size_; - } - - /// Get the current capacity of the basic_streambuf. - /** - * @returns The current total capacity of the streambuf, i.e. for both the - * input sequence and output sequence. - */ - std::size_t capacity() const ASIO_NOEXCEPT - { - return buffer_.capacity(); - } - - /// Get a list of buffers that represents the input sequence. - /** - * @returns An object of type @c const_buffers_type that satisfies - * ConstBufferSequence requirements, representing all character arrays in the - * input sequence. - * - * @note The returned object is invalidated by any @c basic_streambuf member - * function that modifies the input sequence or output sequence. - */ - const_buffers_type data() const ASIO_NOEXCEPT - { - return asio::buffer(asio::const_buffer(gptr(), - (pptr() - gptr()) * sizeof(char_type))); - } - - /// Get a list of buffers that represents the output sequence, with the given - /// size. - /** - * Ensures that the output sequence can accommodate @c n characters, - * reallocating character array objects as necessary. - * - * @returns An object of type @c mutable_buffers_type that satisfies - * MutableBufferSequence requirements, representing character array objects - * at the start of the output sequence such that the sum of the buffer sizes - * is @c n. - * - * @throws std::length_error If size() + n > max_size(). - * - * @note The returned object is invalidated by any @c basic_streambuf member - * function that modifies the input sequence or output sequence. - */ - mutable_buffers_type prepare(std::size_t n) - { - reserve(n); - return asio::buffer(asio::mutable_buffer( - pptr(), n * sizeof(char_type))); - } - - /// Move characters from the output sequence to the input sequence. - /** - * Appends @c n characters from the start of the output sequence to the input - * sequence. The beginning of the output sequence is advanced by @c n - * characters. - * - * Requires a preceding call prepare(x) where x >= n, and - * no intervening operations that modify the input or output sequence. - * - * @note If @c 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. - */ - void commit(std::size_t n) - { - n = std::min(n, epptr() - pptr()); - pbump(static_cast(n)); - setg(eback(), gptr(), pptr()); - } - - /// Remove characters from the input sequence. - /** - * Removes @c n characters from the beginning of the input sequence. - * - * @note If @c n is greater than the size of the input sequence, the entire - * input sequence is consumed and no error is issued. - */ - void consume(std::size_t n) - { - if (egptr() < pptr()) - setg(&buffer_[0], gptr(), pptr()); - if (gptr() + n > pptr()) - n = pptr() - gptr(); - gbump(static_cast(n)); - } - -protected: - enum { buffer_delta = 128 }; - - /// Override std::streambuf behaviour. - /** - * Behaves according to the specification of @c std::streambuf::underflow(). - */ - int_type underflow() - { - if (gptr() < pptr()) - { - setg(&buffer_[0], gptr(), pptr()); - return traits_type::to_int_type(*gptr()); - } - else - { - return traits_type::eof(); - } - } - - /// Override std::streambuf behaviour. - /** - * Behaves according to the specification of @c std::streambuf::overflow(), - * with the specialisation that @c std::length_error is thrown if appending - * the character to the input sequence would require the condition - * size() > max_size() to be true. - */ - int_type overflow(int_type c) - { - if (!traits_type::eq_int_type(c, traits_type::eof())) - { - if (pptr() == epptr()) - { - std::size_t buffer_size = pptr() - gptr(); - if (buffer_size < max_size_ && max_size_ - buffer_size < buffer_delta) - { - reserve(max_size_ - buffer_size); - } - else - { - reserve(buffer_delta); - } - } - - *pptr() = traits_type::to_char_type(c); - pbump(1); - return c; - } - - return traits_type::not_eof(c); - } - - void reserve(std::size_t n) - { - // Get current stream positions as offsets. - std::size_t gnext = gptr() - &buffer_[0]; - std::size_t pnext = pptr() - &buffer_[0]; - std::size_t pend = epptr() - &buffer_[0]; - - // Check if there is already enough space in the put area. - if (n <= pend - pnext) - { - return; - } - - // Shift existing contents of get area to start of buffer. - if (gnext > 0) - { - pnext -= gnext; - std::memmove(&buffer_[0], &buffer_[0] + gnext, pnext); - } - - // Ensure buffer is large enough to hold at least the specified size. - if (n > pend - pnext) - { - if (n <= max_size_ && pnext <= max_size_ - n) - { - pend = pnext + n; - buffer_.resize((std::max)(pend, 1)); - } - else - { - std::length_error ex("asio::streambuf too long"); - asio::detail::throw_exception(ex); - } - } - - // Update stream positions. - setg(&buffer_[0], &buffer_[0], &buffer_[0] + pnext); - setp(&buffer_[0] + pnext, &buffer_[0] + pend); - } - -private: - std::size_t max_size_; - std::vector buffer_; - - // Helper function to get the preferred size for reading data. - friend std::size_t read_size_helper( - basic_streambuf& sb, std::size_t max_size) - { - return std::min( - std::max(512, sb.buffer_.capacity() - sb.size()), - std::min(max_size, sb.max_size() - sb.size())); - } -}; - -/// Adapts basic_streambuf to the dynamic buffer sequence type requirements. -#if defined(GENERATING_DOCUMENTATION) -template > -#else -template -#endif -class basic_streambuf_ref -{ -public: - /// The type used to represent the input sequence as a list of buffers. - typedef typename basic_streambuf::const_buffers_type - const_buffers_type; - - /// The type used to represent the output sequence as a list of buffers. - typedef typename basic_streambuf::mutable_buffers_type - mutable_buffers_type; - - /// Construct a basic_streambuf_ref for the given basic_streambuf object. - explicit basic_streambuf_ref(basic_streambuf& sb) - : sb_(sb) - { - } - - /// Copy construct a basic_streambuf_ref. - basic_streambuf_ref(const basic_streambuf_ref& other) ASIO_NOEXCEPT - : sb_(other.sb_) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move construct a basic_streambuf_ref. - basic_streambuf_ref(basic_streambuf_ref&& other) ASIO_NOEXCEPT - : sb_(other.sb_) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Get the size of the input sequence. - std::size_t size() const ASIO_NOEXCEPT - { - return sb_.size(); - } - - /// Get the maximum size of the dynamic buffer. - std::size_t max_size() const ASIO_NOEXCEPT - { - return sb_.max_size(); - } - - /// Get the current capacity of the dynamic buffer. - std::size_t capacity() const ASIO_NOEXCEPT - { - return sb_.capacity(); - } - - /// Get a list of buffers that represents the input sequence. - const_buffers_type data() const ASIO_NOEXCEPT - { - return sb_.data(); - } - - /// Get a list of buffers that represents the output sequence, with the given - /// size. - mutable_buffers_type prepare(std::size_t n) - { - return sb_.prepare(n); - } - - /// Move bytes from the output sequence to the input sequence. - void commit(std::size_t n) - { - return sb_.commit(n); - } - - /// Remove characters from the input sequence. - void consume(std::size_t n) - { - return sb_.consume(n); - } - -private: - basic_streambuf& sb_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_BASIC_STREAMBUF_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_streambuf_fwd.hpp b/Sources/Vendor/asio/include/asio/basic_streambuf_fwd.hpp deleted file mode 100644 index ed54fe9..0000000 --- a/Sources/Vendor/asio/include/asio/basic_streambuf_fwd.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// -// basic_streambuf_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BASIC_STREAMBUF_FWD_HPP -#define ASIO_BASIC_STREAMBUF_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_NO_IOSTREAM) - -#include - -namespace asio { - -template > -class basic_streambuf; - -template > -class basic_streambuf_ref; - -} // namespace asio - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_BASIC_STREAMBUF_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_waitable_timer.hpp b/Sources/Vendor/asio/include/asio/basic_waitable_timer.hpp deleted file mode 100644 index 22b85a6..0000000 --- a/Sources/Vendor/asio/include/asio/basic_waitable_timer.hpp +++ /dev/null @@ -1,705 +0,0 @@ -// -// basic_waitable_timer.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BASIC_WAITABLE_TIMER_HPP -#define ASIO_BASIC_WAITABLE_TIMER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/wait_traits.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/waitable_timer_service.hpp" -#else // defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/detail/chrono_time_traits.hpp" -# include "asio/detail/deadline_timer_service.hpp" -# define ASIO_SVC_T \ - detail::deadline_timer_service< \ - detail::chrono_time_traits > -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if !defined(ASIO_BASIC_WAITABLE_TIMER_FWD_DECL) -#define ASIO_BASIC_WAITABLE_TIMER_FWD_DECL - -// Forward declaration with defaulted arguments. -template - ASIO_SVC_TPARAM_DEF2(= waitable_timer_service)> -class basic_waitable_timer; - -#endif // !defined(ASIO_BASIC_WAITABLE_TIMER_FWD_DECL) - -/// Provides waitable timer functionality. -/** - * The basic_waitable_timer class template provides the ability to perform a - * blocking or asynchronous wait for a timer to expire. - * - * 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 one of the asio::steady_timer, - * asio::system_timer or asio::high_resolution_timer typedefs. - * - * @note This waitable timer functionality is for use with the C++11 standard - * library's @c <chrono> facility, or with the Boost.Chrono library. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Examples - * Performing a blocking wait (C++11): - * @code - * // Construct a timer without setting an expiry time. - * asio::steady_timer timer(io_context); - * - * // Set an expiry time relative to now. - * timer.expires_after(std::chrono::seconds(5)); - * - * // Wait for the timer to expire. - * timer.wait(); - * @endcode - * - * @par - * Performing an asynchronous wait (C++11): - * @code - * void handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Timer expired. - * } - * } - * - * ... - * - * // Construct a timer with an absolute expiry time. - * asio::steady_timer timer(io_context, - * std::chrono::steady_clock::now() + std::chrono::seconds(60)); - * - * // Start an asynchronous wait. - * timer.async_wait(handler); - * @endcode - * - * @par Changing an active waitable timer's expiry time - * - * Changing the expiry time of a timer while there are pending asynchronous - * waits causes those wait operations to be cancelled. To ensure that the action - * associated with the timer is performed only once, use something like this: - * used: - * - * @code - * void on_some_event() - * { - * if (my_timer.expires_after(seconds(5)) > 0) - * { - * // We managed to cancel the timer. Start new asynchronous wait. - * my_timer.async_wait(on_timeout); - * } - * else - * { - * // Too late, timer has already expired! - * } - * } - * - * void on_timeout(const asio::error_code& e) - * { - * if (e != asio::error::operation_aborted) - * { - * // Timer was not cancelled, take necessary action. - * } - * } - * @endcode - * - * @li The asio::basic_waitable_timer::expires_after() function - * cancels any pending asynchronous waits, and returns the number of - * asynchronous waits that were cancelled. If it returns 0 then you were too - * late and the wait handler has already been executed, or will soon be - * executed. If it returns 1 then the wait handler was successfully cancelled. - * - * @li If a wait handler is cancelled, the asio::error_code passed to - * it contains the value asio::error::operation_aborted. - */ -template -class basic_waitable_timer - : ASIO_SVC_ACCESS basic_io_object -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The clock type. - typedef Clock clock_type; - - /// The duration type of the clock. - typedef typename clock_type::duration duration; - - /// The time point type of the clock. - typedef typename clock_type::time_point time_point; - - /// The wait traits type. - typedef WaitTraits traits_type; - - /// Constructor. - /** - * This constructor creates a timer without setting an expiry time. The - * expires_at() or expires_after() functions must be called to set an expiry - * time before the timer can be waited on. - * - * @param io_context The io_context object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - */ - explicit basic_waitable_timer(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Constructor to set a particular expiry time as an absolute time. - /** - * This constructor creates a timer and sets the expiry time. - * - * @param io_context The io_context object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - * - * @param expiry_time The expiry time to be used for the timer, expressed - * as an absolute time. - */ - basic_waitable_timer(asio::io_context& io_context, - const time_point& expiry_time) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().expires_at(this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_at"); - } - - /// Constructor to set a particular expiry time relative to now. - /** - * This constructor creates a timer and sets the expiry time. - * - * @param io_context The io_context object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - * - * @param expiry_time The expiry time to be used for the timer, relative to - * now. - */ - basic_waitable_timer(asio::io_context& io_context, - const duration& expiry_time) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().expires_after( - this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_after"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_waitable_timer from another. - /** - * This constructor moves a timer from one object to another. - * - * @param other The other basic_waitable_timer object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_waitable_timer(io_context&) constructor. - */ - basic_waitable_timer(basic_waitable_timer&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign a basic_waitable_timer from another. - /** - * This assignment operator moves a timer from one object to another. Cancels - * any outstanding asynchronous operations associated with the target object. - * - * @param other The other basic_waitable_timer object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_waitable_timer(io_context&) constructor. - */ - basic_waitable_timer& operator=(basic_waitable_timer&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the timer. - /** - * This function destroys the timer, cancelling any outstanding asynchronous - * wait operations associated with the timer as if by calling @c cancel. - */ - ~basic_waitable_timer() - { - } - -#if defined(ASIO_ENABLE_OLD_SERVICES) - // These functions are provided by basic_io_object<>. -#else // defined(ASIO_ENABLE_OLD_SERVICES) -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - - /// Cancel any asynchronous operations that are waiting on the timer. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the timer. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel() - { - asio::error_code ec; - std::size_t s = this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - return s; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use non-error_code overload.) Cancel any asynchronous - /// operations that are waiting on the timer. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the timer. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel(asio::error_code& ec) - { - return this->get_service().cancel(this->get_implementation(), ec); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Cancels one asynchronous operation that is waiting on the timer. - /** - * This function forces the completion of one pending asynchronous wait - * operation against the timer. Handlers are cancelled in FIFO order. The - * handler for the cancelled operation will be invoked with the - * asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @return The number of asynchronous operations that were cancelled. That is, - * either 0 or 1. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when cancel_one() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel_one() - { - asio::error_code ec; - std::size_t s = this->get_service().cancel_one( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel_one"); - return s; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use non-error_code overload.) Cancels one asynchronous - /// operation that is waiting on the timer. - /** - * This function forces the completion of one pending asynchronous wait - * operation against the timer. Handlers are cancelled in FIFO order. The - * handler for the cancelled operation will be invoked with the - * asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. That is, - * either 0 or 1. - * - * @note If the timer has already expired when cancel_one() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel_one(asio::error_code& ec) - { - return this->get_service().cancel_one(this->get_implementation(), ec); - } - - /// (Deprecated: Use expiry().) Get the timer's expiry time as an absolute - /// time. - /** - * This function may be used to obtain the timer's current expiry time. - * Whether the timer has expired or not does not affect this value. - */ - time_point expires_at() const - { - return this->get_service().expires_at(this->get_implementation()); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the timer's expiry time as an absolute time. - /** - * This function may be used to obtain the timer's current expiry time. - * Whether the timer has expired or not does not affect this value. - */ - time_point expiry() const - { - return this->get_service().expiry(this->get_implementation()); - } - - /// Set the timer's expiry time as an absolute time. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when expires_at() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_at(const time_point& expiry_time) - { - asio::error_code ec; - std::size_t s = this->get_service().expires_at( - this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_at"); - return s; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use non-error_code overload.) Set the timer's expiry time as - /// an absolute time. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when expires_at() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_at(const time_point& expiry_time, - asio::error_code& ec) - { - return this->get_service().expires_at( - this->get_implementation(), expiry_time, ec); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Set the timer's expiry time relative to now. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when expires_after() is called, - * then the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_after(const duration& expiry_time) - { - asio::error_code ec; - std::size_t s = this->get_service().expires_after( - this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_after"); - return s; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use expiry().) Get the timer's expiry time relative to now. - /** - * This function may be used to obtain the timer's current expiry time. - * Whether the timer has expired or not does not affect this value. - */ - duration expires_from_now() const - { - return this->get_service().expires_from_now(this->get_implementation()); - } - - /// (Deprecated: Use expires_after().) Set the timer's expiry time relative - /// to now. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when expires_from_now() is called, - * then the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_from_now(const duration& expiry_time) - { - asio::error_code ec; - std::size_t s = this->get_service().expires_from_now( - this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_from_now"); - return s; - } - - /// (Deprecated: Use expires_after().) Set the timer's expiry time relative - /// to now. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when expires_from_now() is called, - * then the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_from_now(const duration& expiry_time, - asio::error_code& ec) - { - return this->get_service().expires_from_now( - this->get_implementation(), expiry_time, ec); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Perform a blocking wait on the timer. - /** - * This function is used to wait for the timer to expire. This function - * blocks and does not return until the timer has expired. - * - * @throws asio::system_error Thrown on failure. - */ - void wait() - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Perform a blocking wait on the timer. - /** - * This function is used to wait for the timer to expire. This function - * blocks and does not return until the timer has expired. - * - * @param ec Set to indicate what error occurred, if any. - */ - void wait(asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), ec); - } - - /// Start an asynchronous wait on the timer. - /** - * This function may be used to initiate an asynchronous wait against the - * timer. It always returns immediately. - * - * For each call to async_wait(), the supplied handler will be called exactly - * once. The handler will be called when: - * - * @li The timer has expired. - * - * @li The timer was cancelled, in which case the handler is passed the error - * code asio::error::operation_aborted. - * - * @param handler The handler to be called when the timer expires. Copies - * will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(ASIO_MOVE_ARG(WaitHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WaitHandler. - ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_wait(this->get_implementation(), - ASIO_MOVE_CAST(WaitHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_wait(this->get_implementation(), - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - -private: - // Disallow copying and assignment. - basic_waitable_timer(const basic_waitable_timer&) ASIO_DELETED; - basic_waitable_timer& operator=( - const basic_waitable_timer&) ASIO_DELETED; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# undef ASIO_SVC_T -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_BASIC_WAITABLE_TIMER_HPP diff --git a/Sources/Vendor/asio/include/asio/bind_executor.hpp b/Sources/Vendor/asio/include/asio/bind_executor.hpp deleted file mode 100644 index 9e2094b..0000000 --- a/Sources/Vendor/asio/include/asio/bind_executor.hpp +++ /dev/null @@ -1,611 +0,0 @@ -// -// bind_executor.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BIND_EXECUTOR_HPP -#define ASIO_BIND_EXECUTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/detail/variadic_templates.hpp" -#include "asio/associated_executor.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/async_result.hpp" -#include "asio/execution_context.hpp" -#include "asio/is_executor.hpp" -#include "asio/uses_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -struct executor_binder_check -{ - typedef void type; -}; - -// Helper to automatically define nested typedef result_type. - -template -struct executor_binder_result_type -{ -protected: - typedef void result_type_or_void; -}; - -template -struct executor_binder_result_type::type> -{ - typedef typename T::result_type result_type; -protected: - typedef result_type result_type_or_void; -}; - -template -struct executor_binder_result_type -{ - typedef R result_type; -protected: - typedef result_type result_type_or_void; -}; - -template -struct executor_binder_result_type -{ - typedef R result_type; -protected: - typedef result_type result_type_or_void; -}; - -template -struct executor_binder_result_type -{ - typedef R result_type; -protected: - typedef result_type result_type_or_void; -}; - -template -struct executor_binder_result_type -{ - typedef R result_type; -protected: - typedef result_type result_type_or_void; -}; - -template -struct executor_binder_result_type -{ - typedef R result_type; -protected: - typedef result_type result_type_or_void; -}; - -template -struct executor_binder_result_type -{ - typedef R result_type; -protected: - typedef result_type result_type_or_void; -}; - -// Helper to automatically define nested typedef argument_type. - -template -struct executor_binder_argument_type {}; - -template -struct executor_binder_argument_type::type> -{ - typedef typename T::argument_type argument_type; -}; - -template -struct executor_binder_argument_type -{ - typedef A1 argument_type; -}; - -template -struct executor_binder_argument_type -{ - typedef A1 argument_type; -}; - -// Helper to automatically define nested typedefs first_argument_type and -// second_argument_type. - -template -struct executor_binder_argument_types {}; - -template -struct executor_binder_argument_types::type> -{ - typedef typename T::first_argument_type first_argument_type; - typedef typename T::second_argument_type second_argument_type; -}; - -template -struct executor_binder_argument_type -{ - typedef A1 first_argument_type; - typedef A2 second_argument_type; -}; - -template -struct executor_binder_argument_type -{ - typedef A1 first_argument_type; - typedef A2 second_argument_type; -}; - -// Helper to: -// - Apply the empty base optimisation to the executor. -// - Perform uses_executor construction of the target type, if required. - -template -class executor_binder_base; - -template -class executor_binder_base - : protected Executor -{ -protected: - template - executor_binder_base(ASIO_MOVE_ARG(E) e, ASIO_MOVE_ARG(U) u) - : executor_(ASIO_MOVE_CAST(E)(e)), - target_(executor_arg_t(), executor_, ASIO_MOVE_CAST(U)(u)) - { - } - - Executor executor_; - T target_; -}; - -template -class executor_binder_base -{ -protected: - template - executor_binder_base(ASIO_MOVE_ARG(E) e, ASIO_MOVE_ARG(U) u) - : executor_(ASIO_MOVE_CAST(E)(e)), - target_(ASIO_MOVE_CAST(U)(u)) - { - } - - Executor executor_; - T target_; -}; - -// Helper to enable SFINAE on zero-argument operator() below. - -template -struct executor_binder_result_of0 -{ - typedef void type; -}; - -template -struct executor_binder_result_of0::type>::type> -{ - typedef typename result_of::type type; -}; - -} // namespace detail - -/// A call wrapper type to bind an executor of type @c Executor to an object of -/// type @c T. -template -class executor_binder -#if !defined(GENERATING_DOCUMENTATION) - : public detail::executor_binder_result_type, - public detail::executor_binder_argument_type, - public detail::executor_binder_argument_types, - private detail::executor_binder_base< - T, Executor, uses_executor::value> -#endif // !defined(GENERATING_DOCUMENTATION) -{ -public: - /// The type of the target object. - typedef T target_type; - - /// The type of the associated executor. - typedef Executor executor_type; - -#if defined(GENERATING_DOCUMENTATION) - /// The return type if a function. - /** - * The type of @c result_type is based on the type @c T of the wrapper's - * target object: - * - * @li if @c T is a pointer to function type, @c result_type is a synonym for - * the return type of @c T; - * - * @li if @c T is a class type with a member type @c result_type, then @c - * result_type is a synonym for @c T::result_type; - * - * @li otherwise @c result_type is not defined. - */ - typedef see_below result_type; - - /// The type of the function's argument. - /** - * The type of @c argument_type is based on the type @c T of the wrapper's - * target object: - * - * @li if @c T is a pointer to a function type accepting a single argument, - * @c argument_type is a synonym for the return type of @c T; - * - * @li if @c T is a class type with a member type @c argument_type, then @c - * argument_type is a synonym for @c T::argument_type; - * - * @li otherwise @c argument_type is not defined. - */ - typedef see_below argument_type; - - /// The type of the function's first argument. - /** - * The type of @c first_argument_type is based on the type @c T of the - * wrapper's target object: - * - * @li if @c T is a pointer to a function type accepting two arguments, @c - * first_argument_type is a synonym for the return type of @c T; - * - * @li if @c T is a class type with a member type @c first_argument_type, - * then @c first_argument_type is a synonym for @c T::first_argument_type; - * - * @li otherwise @c first_argument_type is not defined. - */ - typedef see_below first_argument_type; - - /// The type of the function's second argument. - /** - * The type of @c second_argument_type is based on the type @c T of the - * wrapper's target object: - * - * @li if @c T is a pointer to a function type accepting two arguments, @c - * second_argument_type is a synonym for the return type of @c T; - * - * @li if @c T is a class type with a member type @c first_argument_type, - * then @c second_argument_type is a synonym for @c T::second_argument_type; - * - * @li otherwise @c second_argument_type is not defined. - */ - typedef see_below second_argument_type; -#endif // defined(GENERATING_DOCUMENTATION) - - /// Construct an executor wrapper for the specified object. - /** - * This constructor is only valid if the type @c T is constructible from type - * @c U. - */ - template - executor_binder(executor_arg_t, const executor_type& e, - ASIO_MOVE_ARG(U) u) - : base_type(e, ASIO_MOVE_CAST(U)(u)) - { - } - - /// Copy constructor. - executor_binder(const executor_binder& other) - : base_type(other.get_executor(), other.get()) - { - } - - /// Construct a copy, but specify a different executor. - executor_binder(executor_arg_t, const executor_type& e, - const executor_binder& other) - : base_type(e, other.get()) - { - } - - /// Construct a copy of a different executor wrapper type. - /** - * This constructor is only valid if the @c Executor type is constructible - * from type @c OtherExecutor, and the type @c T is constructible from type - * @c U. - */ - template - executor_binder(const executor_binder& other) - : base_type(other.get_executor(), other.get()) - { - } - - /// Construct a copy of a different executor wrapper type, but specify a - /// different executor. - /** - * This constructor is only valid if the type @c T is constructible from type - * @c U. - */ - template - executor_binder(executor_arg_t, const executor_type& e, - const executor_binder& other) - : base_type(e, other.get()) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Move constructor. - executor_binder(executor_binder&& other) - : base_type(ASIO_MOVE_CAST(executor_type)(other.get_executor()), - ASIO_MOVE_CAST(T)(other.get())) - { - } - - /// Move construct the target object, but specify a different executor. - executor_binder(executor_arg_t, const executor_type& e, - executor_binder&& other) - : base_type(e, ASIO_MOVE_CAST(T)(other.get())) - { - } - - /// Move construct from a different executor wrapper type. - template - executor_binder(executor_binder&& other) - : base_type(ASIO_MOVE_CAST(OtherExecutor)(other.get_executor()), - ASIO_MOVE_CAST(U)(other.get())) - { - } - - /// Move construct from a different executor wrapper type, but specify a - /// different executor. - template - executor_binder(executor_arg_t, const executor_type& e, - executor_binder&& other) - : base_type(e, ASIO_MOVE_CAST(U)(other.get())) - { - } - -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destructor. - ~executor_binder() - { - } - - /// Obtain a reference to the target object. - target_type& get() ASIO_NOEXCEPT - { - return this->target_; - } - - /// Obtain a reference to the target object. - const target_type& get() const ASIO_NOEXCEPT - { - return this->target_; - } - - /// Obtain the associated executor. - executor_type get_executor() const ASIO_NOEXCEPT - { - return this->executor_; - } - -#if defined(GENERATING_DOCUMENTATION) - - template auto operator()(Args&& ...); - template auto operator()(Args&& ...) const; - -#elif defined(ASIO_HAS_VARIADIC_TEMPLATES) - - /// Forwarding function call operator. - template - typename result_of::type operator()( - ASIO_MOVE_ARG(Args)... args) - { - return this->target_(ASIO_MOVE_CAST(Args)(args)...); - } - - /// Forwarding function call operator. - template - typename result_of::type operator()( - ASIO_MOVE_ARG(Args)... args) const - { - return this->target_(ASIO_MOVE_CAST(Args)(args)...); - } - -#elif defined(ASIO_HAS_STD_TYPE_TRAITS) && !defined(_MSC_VER) - - typename detail::executor_binder_result_of0::type operator()() - { - return this->target_(); - } - - typename detail::executor_binder_result_of0::type operator()() const - { - return this->target_(); - } - -#define ASIO_PRIVATE_BIND_EXECUTOR_CALL_DEF(n) \ - template \ - typename result_of::type operator()( \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - return this->target_(ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - typename result_of::type operator()( \ - ASIO_VARIADIC_MOVE_PARAMS(n)) const \ - { \ - return this->target_(ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_BIND_EXECUTOR_CALL_DEF) -#undef ASIO_PRIVATE_BIND_EXECUTOR_CALL_DEF - -#else // defined(ASIO_HAS_STD_TYPE_TRAITS) && !defined(_MSC_VER) - - typedef typename detail::executor_binder_result_type::result_type_or_void - result_type_or_void; - - result_type_or_void operator()() - { - return this->target_(); - } - - result_type_or_void operator()() const - { - return this->target_(); - } - -#define ASIO_PRIVATE_BIND_EXECUTOR_CALL_DEF(n) \ - template \ - result_type_or_void operator()( \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - return this->target_(ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - result_type_or_void operator()( \ - ASIO_VARIADIC_MOVE_PARAMS(n)) const \ - { \ - return this->target_(ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_BIND_EXECUTOR_CALL_DEF) -#undef ASIO_PRIVATE_BIND_EXECUTOR_CALL_DEF - -#endif // defined(ASIO_HAS_STD_TYPE_TRAITS) && !defined(_MSC_VER) - -private: - typedef detail::executor_binder_base::value> base_type; -}; - -/// Associate an object of type @c T with an executor of type @c Executor. -template -inline executor_binder::type, Executor> -bind_executor(const Executor& ex, ASIO_MOVE_ARG(T) t, - typename enable_if::value>::type* = 0) -{ - return executor_binder::type, Executor>( - executor_arg_t(), ex, ASIO_MOVE_CAST(T)(t)); -} - -/// Associate an object of type @c T with an execution context's executor. -template -inline executor_binder::type, - typename ExecutionContext::executor_type> -bind_executor(ExecutionContext& ctx, ASIO_MOVE_ARG(T) t, - typename enable_if::value>::type* = 0) -{ - return executor_binder::type, - typename ExecutionContext::executor_type>( - executor_arg_t(), ctx.get_executor(), ASIO_MOVE_CAST(T)(t)); -} - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct uses_executor, Executor> - : true_type {}; - -template -class async_result, Signature> -{ -public: - typedef executor_binder< - typename async_result::completion_handler_type, Executor> - completion_handler_type; - - typedef typename async_result::return_type return_type; - - explicit async_result(executor_binder& b) - : target_(b.get()) - { - } - - return_type get() - { - return target_.get(); - } - -private: - async_result(const async_result&) ASIO_DELETED; - async_result& operator=(const async_result&) ASIO_DELETED; - - async_result target_; -}; - -#if !defined(ASIO_NO_DEPRECATED) - -template -struct handler_type, Signature> -{ - typedef executor_binder< - typename handler_type::type, Executor> type; -}; - -template -class async_result > -{ -public: - typedef typename async_result::type type; - - explicit async_result(executor_binder& b) - : target_(b.get()) - { - } - - type get() - { - return target_.get(); - } - -private: - async_result target_; -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -struct associated_allocator, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const executor_binder& b, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(b.get(), a); - } -}; - -template -struct associated_executor, Executor1> -{ - typedef Executor type; - - static type get(const executor_binder& b, - const Executor1& = Executor1()) ASIO_NOEXCEPT - { - return b.get_executor(); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BIND_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/buffer.hpp b/Sources/Vendor/asio/include/asio/buffer.hpp deleted file mode 100644 index 56a1488..0000000 --- a/Sources/Vendor/asio/include/asio/buffer.hpp +++ /dev/null @@ -1,2169 +0,0 @@ -// -// buffer.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BUFFER_HPP -#define ASIO_BUFFER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include -#include -#include -#include "asio/detail/array_fwd.hpp" -#include "asio/detail/string_view.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/detail/type_traits.hpp" - -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1700) -# if defined(_HAS_ITERATOR_DEBUGGING) && (_HAS_ITERATOR_DEBUGGING != 0) -# if !defined(ASIO_DISABLE_BUFFER_DEBUGGING) -# define ASIO_ENABLE_BUFFER_DEBUGGING -# endif // !defined(ASIO_DISABLE_BUFFER_DEBUGGING) -# endif // defined(_HAS_ITERATOR_DEBUGGING) -#endif // defined(ASIO_MSVC) && (ASIO_MSVC >= 1700) - -#if defined(__GNUC__) -# if defined(_GLIBCXX_DEBUG) -# if !defined(ASIO_DISABLE_BUFFER_DEBUGGING) -# define ASIO_ENABLE_BUFFER_DEBUGGING -# endif // !defined(ASIO_DISABLE_BUFFER_DEBUGGING) -# endif // defined(_GLIBCXX_DEBUG) -#endif // defined(__GNUC__) - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) -# include "asio/detail/functional.hpp" -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - -#if defined(ASIO_HAS_BOOST_WORKAROUND) -# include -# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) \ - || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) -# define ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND -# endif // BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) - // || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) -#endif // defined(ASIO_HAS_BOOST_WORKAROUND) - -#if defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND) -# include "asio/detail/type_traits.hpp" -#endif // defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -class mutable_buffer; -class const_buffer; - -/// Holds a buffer that can be modified. -/** - * The mutable_buffer class provides a safe representation of a buffer that can - * be modified. It does not own the underlying data, and so is cheap to copy or - * assign. - * - * @par Accessing Buffer Contents - * - * The contents of a buffer may be accessed using the @c data() and @c size() - * member functions: - * - * @code asio::mutable_buffer b1 = ...; - * std::size_t s1 = b1.size(); - * unsigned char* p1 = static_cast(b1.data()); - * @endcode - * - * The @c data() member function permits violations of type safety, so uses of - * it in application code should be carefully considered. - */ -class mutable_buffer -{ -public: - /// Construct an empty buffer. - mutable_buffer() ASIO_NOEXCEPT - : data_(0), - size_(0) - { - } - - /// Construct a buffer to represent a given memory range. - mutable_buffer(void* data, std::size_t size) ASIO_NOEXCEPT - : data_(data), - size_(size) - { - } - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - mutable_buffer(void* data, std::size_t size, - asio::detail::function debug_check) - : data_(data), - size_(size), - debug_check_(debug_check) - { - } - - const asio::detail::function& get_debug_check() const - { - return debug_check_; - } -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - - /// Get a pointer to the beginning of the memory range. - void* data() const ASIO_NOEXCEPT - { -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - if (size_ && debug_check_) - debug_check_(); -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - return data_; - } - - /// Get the size of the memory range. - std::size_t size() const ASIO_NOEXCEPT - { - return size_; - } - - /// Move the start of the buffer by the specified number of bytes. - mutable_buffer& operator+=(std::size_t n) ASIO_NOEXCEPT - { - std::size_t offset = n < size_ ? n : size_; - data_ = static_cast(data_) + offset; - size_ -= offset; - return *this; - } - -private: - void* data_; - std::size_t size_; - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - asio::detail::function debug_check_; -#endif // ASIO_ENABLE_BUFFER_DEBUGGING -}; - -#if !defined(ASIO_NO_DEPRECATED) - -/// (Deprecated: Use mutable_buffer.) Adapts a single modifiable buffer so that -/// it meets the requirements of the MutableBufferSequence concept. -class mutable_buffers_1 - : public mutable_buffer -{ -public: - /// The type for each element in the list of buffers. - typedef mutable_buffer value_type; - - /// A random-access iterator type that may be used to read elements. - typedef const mutable_buffer* const_iterator; - - /// Construct to represent a given memory range. - mutable_buffers_1(void* data, std::size_t size) ASIO_NOEXCEPT - : mutable_buffer(data, size) - { - } - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - mutable_buffers_1(void* data, std::size_t size, - asio::detail::function debug_check) - : mutable_buffer(data, size, debug_check) - { - } -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - - /// Construct to represent a single modifiable buffer. - explicit mutable_buffers_1(const mutable_buffer& b) ASIO_NOEXCEPT - : mutable_buffer(b) - { - } - - /// Get a random-access iterator to the first element. - const_iterator begin() const ASIO_NOEXCEPT - { - return this; - } - - /// Get a random-access iterator for one past the last element. - const_iterator end() const ASIO_NOEXCEPT - { - return begin() + 1; - } -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Holds a buffer that cannot be modified. -/** - * The const_buffer class provides a safe representation of a buffer that cannot - * be modified. It does not own the underlying data, and so is cheap to copy or - * assign. - * - * @par Accessing Buffer Contents - * - * The contents of a buffer may be accessed using the @c data() and @c size() - * member functions: - * - * @code asio::const_buffer b1 = ...; - * std::size_t s1 = b1.size(); - * const unsigned char* p1 = static_cast(b1.data()); - * @endcode - * - * The @c data() member function permits violations of type safety, so uses of - * it in application code should be carefully considered. - */ -class const_buffer -{ -public: - /// Construct an empty buffer. - const_buffer() ASIO_NOEXCEPT - : data_(0), - size_(0) - { - } - - /// Construct a buffer to represent a given memory range. - const_buffer(const void* data, std::size_t size) ASIO_NOEXCEPT - : data_(data), - size_(size) - { - } - - /// Construct a non-modifiable buffer from a modifiable one. - const_buffer(const mutable_buffer& b) ASIO_NOEXCEPT - : data_(b.data()), - size_(b.size()) -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , debug_check_(b.get_debug_check()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - { - } - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - const_buffer(const void* data, std::size_t size, - asio::detail::function debug_check) - : data_(data), - size_(size), - debug_check_(debug_check) - { - } - - const asio::detail::function& get_debug_check() const - { - return debug_check_; - } -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - - /// Get a pointer to the beginning of the memory range. - const void* data() const ASIO_NOEXCEPT - { -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - if (size_ && debug_check_) - debug_check_(); -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - return data_; - } - - /// Get the size of the memory range. - std::size_t size() const ASIO_NOEXCEPT - { - return size_; - } - - /// Move the start of the buffer by the specified number of bytes. - const_buffer& operator+=(std::size_t n) ASIO_NOEXCEPT - { - std::size_t offset = n < size_ ? n : size_; - data_ = static_cast(data_) + offset; - size_ -= offset; - return *this; - } - -private: - const void* data_; - std::size_t size_; - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - asio::detail::function debug_check_; -#endif // ASIO_ENABLE_BUFFER_DEBUGGING -}; - -#if !defined(ASIO_NO_DEPRECATED) - -/// (Deprecated: Use const_buffer.) Adapts a single non-modifiable buffer so -/// that it meets the requirements of the ConstBufferSequence concept. -class const_buffers_1 - : public const_buffer -{ -public: - /// The type for each element in the list of buffers. - typedef const_buffer value_type; - - /// A random-access iterator type that may be used to read elements. - typedef const const_buffer* const_iterator; - - /// Construct to represent a given memory range. - const_buffers_1(const void* data, std::size_t size) ASIO_NOEXCEPT - : const_buffer(data, size) - { - } - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - const_buffers_1(const void* data, std::size_t size, - asio::detail::function debug_check) - : const_buffer(data, size, debug_check) - { - } -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - - /// Construct to represent a single non-modifiable buffer. - explicit const_buffers_1(const const_buffer& b) ASIO_NOEXCEPT - : const_buffer(b) - { - } - - /// Get a random-access iterator to the first element. - const_iterator begin() const ASIO_NOEXCEPT - { - return this; - } - - /// Get a random-access iterator for one past the last element. - const_iterator end() const ASIO_NOEXCEPT - { - return begin() + 1; - } -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -/// (Deprecated: Use the socket/descriptor wait() and async_wait() member -/// functions.) An implementation of both the ConstBufferSequence and -/// MutableBufferSequence concepts to represent a null buffer sequence. -class null_buffers -{ -public: - /// The type for each element in the list of buffers. - typedef mutable_buffer value_type; - - /// A random-access iterator type that may be used to read elements. - typedef const mutable_buffer* const_iterator; - - /// Get a random-access iterator to the first element. - const_iterator begin() const ASIO_NOEXCEPT - { - return &buf_; - } - - /// Get a random-access iterator for one past the last element. - const_iterator end() const ASIO_NOEXCEPT - { - return &buf_; - } - -private: - mutable_buffer buf_; -}; - -/** @defgroup buffer_sequence_begin asio::buffer_sequence_begin - * - * @brief The asio::buffer_sequence_begin function returns an iterator - * pointing to the first element in a buffer sequence. - */ -/*@{*/ - -/// Get an iterator to the first element in a buffer sequence. -inline const mutable_buffer* buffer_sequence_begin(const mutable_buffer& b) -{ - return &b; -} - -/// Get an iterator to the first element in a buffer sequence. -inline const const_buffer* buffer_sequence_begin(const const_buffer& b) -{ - return &b; -} - -#if defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION) - -/// Get an iterator to the first element in a buffer sequence. -template -inline auto buffer_sequence_begin(C& c) -> decltype(c.begin()) -{ - return c.begin(); -} - -/// Get an iterator to the first element in a buffer sequence. -template -inline auto buffer_sequence_begin(const C& c) -> decltype(c.begin()) -{ - return c.begin(); -} - -#else // defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION) - -template -inline typename C::iterator buffer_sequence_begin(C& c) -{ - return c.begin(); -} - -template -inline typename C::const_iterator buffer_sequence_begin(const C& c) -{ - return c.begin(); -} - -#endif // defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION) - -/*@}*/ - -/** @defgroup buffer_sequence_end asio::buffer_sequence_end - * - * @brief The asio::buffer_sequence_end function returns an iterator - * pointing to one past the end element in a buffer sequence. - */ -/*@{*/ - -/// Get an iterator to one past the end element in a buffer sequence. -inline const mutable_buffer* buffer_sequence_end(const mutable_buffer& b) -{ - return &b + 1; -} - -/// Get an iterator to one past the end element in a buffer sequence. -inline const const_buffer* buffer_sequence_end(const const_buffer& b) -{ - return &b + 1; -} - -#if defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION) - -/// Get an iterator to one past the end element in a buffer sequence. -template -inline auto buffer_sequence_end(C& c) -> decltype(c.end()) -{ - return c.end(); -} - -/// Get an iterator to one past the end element in a buffer sequence. -template -inline auto buffer_sequence_end(const C& c) -> decltype(c.end()) -{ - return c.end(); -} - -#else // defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION) - -template -inline typename C::iterator buffer_sequence_end(C& c) -{ - return c.end(); -} - -template -inline typename C::const_iterator buffer_sequence_end(const C& c) -{ - return c.end(); -} - -#endif // defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION) - -/*@}*/ - -namespace detail { - -// Tag types used to select appropriately optimised overloads. -struct one_buffer {}; -struct multiple_buffers {}; - -// Helper trait to detect single buffers. -template -struct buffer_sequence_cardinality : - conditional< - is_same::value -#if !defined(ASIO_NO_DEPRECATED) - || is_same::value - || is_same::value -#endif // !defined(ASIO_NO_DEPRECATED) - || is_same::value, - one_buffer, multiple_buffers>::type {}; - -template -inline std::size_t buffer_size(one_buffer, - Iterator begin, Iterator) ASIO_NOEXCEPT -{ - return const_buffer(*begin).size(); -} - -template -inline std::size_t buffer_size(multiple_buffers, - Iterator begin, Iterator end) ASIO_NOEXCEPT -{ - std::size_t total_buffer_size = 0; - - Iterator iter = begin; - for (; iter != end; ++iter) - { - const_buffer b(*iter); - total_buffer_size += b.size(); - } - - return total_buffer_size; -} - -} // namespace detail - -/// Get the total number of bytes in a buffer sequence. -/** - * The @c buffer_size function determines the total size of all buffers in the - * buffer sequence, as if computed as follows: - * - * @code size_t total_size = 0; - * auto i = asio::buffer_sequence_begin(buffers); - * auto end = asio::buffer_sequence_end(buffers); - * for (; i != end; ++i) - * { - * const_buffer b(*i); - * total_size += b.size(); - * } - * return total_size; @endcode - * - * The @c BufferSequence template parameter may meet either of the @c - * ConstBufferSequence or @c MutableBufferSequence type requirements. - */ -template -inline std::size_t buffer_size(const BufferSequence& b) ASIO_NOEXCEPT -{ - return detail::buffer_size( - detail::buffer_sequence_cardinality(), - asio::buffer_sequence_begin(b), - asio::buffer_sequence_end(b)); -} - -#if !defined(ASIO_NO_DEPRECATED) - -/** @defgroup buffer_cast asio::buffer_cast - * - * @brief (Deprecated: Use the @c data() member function.) The - * asio::buffer_cast function is used to obtain a pointer to the - * underlying memory region associated with a buffer. - * - * @par Examples: - * - * To access the memory of a non-modifiable buffer, use: - * @code asio::const_buffer b1 = ...; - * const unsigned char* p1 = asio::buffer_cast(b1); - * @endcode - * - * To access the memory of a modifiable buffer, use: - * @code asio::mutable_buffer b2 = ...; - * unsigned char* p2 = asio::buffer_cast(b2); - * @endcode - * - * The asio::buffer_cast function permits violations of type safety, so - * uses of it in application code should be carefully considered. - */ -/*@{*/ - -/// Cast a non-modifiable buffer to a specified pointer to POD type. -template -inline PointerToPodType buffer_cast(const mutable_buffer& b) ASIO_NOEXCEPT -{ - return static_cast(b.data()); -} - -/// Cast a non-modifiable buffer to a specified pointer to POD type. -template -inline PointerToPodType buffer_cast(const const_buffer& b) ASIO_NOEXCEPT -{ - return static_cast(b.data()); -} - -/*@}*/ - -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Create a new modifiable buffer that is offset from the start of another. -/** - * @relates mutable_buffer - */ -inline mutable_buffer operator+(const mutable_buffer& b, - std::size_t n) ASIO_NOEXCEPT -{ - std::size_t offset = n < b.size() ? n : b.size(); - char* new_data = static_cast(b.data()) + offset; - std::size_t new_size = b.size() - offset; - return mutable_buffer(new_data, new_size -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , b.get_debug_check() -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new modifiable buffer that is offset from the start of another. -/** - * @relates mutable_buffer - */ -inline mutable_buffer operator+(std::size_t n, - const mutable_buffer& b) ASIO_NOEXCEPT -{ - return b + n; -} - -/// Create a new non-modifiable buffer that is offset from the start of another. -/** - * @relates const_buffer - */ -inline const_buffer operator+(const const_buffer& b, - std::size_t n) ASIO_NOEXCEPT -{ - std::size_t offset = n < b.size() ? n : b.size(); - const char* new_data = static_cast(b.data()) + offset; - std::size_t new_size = b.size() - offset; - return const_buffer(new_data, new_size -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , b.get_debug_check() -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new non-modifiable buffer that is offset from the start of another. -/** - * @relates const_buffer - */ -inline const_buffer operator+(std::size_t n, - const const_buffer& b) ASIO_NOEXCEPT -{ - return b + n; -} - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) -namespace detail { - -template -class buffer_debug_check -{ -public: - buffer_debug_check(Iterator iter) - : iter_(iter) - { - } - - ~buffer_debug_check() - { -#if defined(ASIO_MSVC) && (ASIO_MSVC == 1400) - // MSVC 8's string iterator checking may crash in a std::string::iterator - // object's destructor when the iterator points to an already-destroyed - // std::string object, unless the iterator is cleared first. - iter_ = Iterator(); -#endif // defined(ASIO_MSVC) && (ASIO_MSVC == 1400) - } - - void operator()() - { - (void)*iter_; - } - -private: - Iterator iter_; -}; - -} // namespace detail -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - -/** @defgroup buffer asio::buffer - * - * @brief The asio::buffer function is used to create a buffer object to - * represent raw memory, an array of POD elements, a vector of POD elements, - * or a std::string. - * - * A buffer object represents a contiguous region of memory as a 2-tuple - * consisting of a pointer and size in bytes. A tuple of the form {void*, - * size_t} specifies a mutable (modifiable) region of memory. Similarly, a - * tuple of the form {const void*, size_t} specifies a const - * (non-modifiable) region of memory. These two forms correspond to the classes - * mutable_buffer and const_buffer, respectively. To mirror C++'s conversion - * rules, a mutable_buffer is implicitly convertible to a const_buffer, and the - * opposite conversion is not permitted. - * - * The simplest use case involves reading or writing a single buffer of a - * specified size: - * - * @code sock.send(asio::buffer(data, size)); @endcode - * - * In the above example, the return value of asio::buffer meets the - * requirements of the ConstBufferSequence concept so that it may be directly - * passed to the socket's write function. A buffer created for modifiable - * memory also meets the requirements of the MutableBufferSequence concept. - * - * An individual buffer may be created from a builtin array, std::vector, - * std::array or boost::array of POD elements. This helps prevent buffer - * overruns by automatically determining the size of the buffer: - * - * @code char d1[128]; - * size_t bytes_transferred = sock.receive(asio::buffer(d1)); - * - * std::vector d2(128); - * bytes_transferred = sock.receive(asio::buffer(d2)); - * - * std::array d3; - * bytes_transferred = sock.receive(asio::buffer(d3)); - * - * boost::array d4; - * bytes_transferred = sock.receive(asio::buffer(d4)); @endcode - * - * In all three cases above, the buffers created are exactly 128 bytes long. - * Note that a vector is @e 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. - * - * @par Accessing Buffer Contents - * - * The contents of a buffer may be accessed using the @c data() and @c size() - * member functions: - * - * @code asio::mutable_buffer b1 = ...; - * std::size_t s1 = b1.size(); - * unsigned char* p1 = static_cast(b1.data()); - * - * asio::const_buffer b2 = ...; - * std::size_t s2 = b2.size(); - * const void* p2 = b2.data(); @endcode - * - * The @c data() member function permits violations of type safety, so - * uses of it in application code should be carefully considered. - * - * For convenience, a @ref buffer_size function is provided that works with - * both buffers and buffer sequences (that is, types meeting the - * ConstBufferSequence or MutableBufferSequence type requirements). In this - * case, the function returns the total size of all buffers in the sequence. - * - * @par Buffer Copying - * - * The @ref buffer_copy function may be used to copy raw bytes between - * individual buffers and buffer sequences. -* - * In particular, when used with the @ref buffer_size function, the @ref - * buffer_copy function can be used to linearise a sequence of buffers. For - * example: - * - * @code vector buffers = ...; - * - * vector data(asio::buffer_size(buffers)); - * asio::buffer_copy(asio::buffer(data), buffers); @endcode - * - * Note that @ref buffer_copy is implemented in terms of @c memcpy, and - * consequently it cannot be used to copy between overlapping memory regions. - * - * @par Buffer Invalidation - * - * A buffer object does not have any ownership of the memory it refers to. It - * is the responsibility of the application to ensure the memory region remains - * valid until it is no longer required for an I/O operation. When the memory - * is no longer available, the buffer is said to have been invalidated. - * - * For the asio::buffer overloads that accept an argument of type - * std::vector, the buffer objects returned are invalidated by any vector - * operation that also invalidates all references, pointers and iterators - * referring to the elements in the sequence (C++ Std, 23.2.4) - * - * For the asio::buffer overloads that accept an argument of type - * std::basic_string, the buffer objects returned are invalidated according to - * the rules defined for invalidation of references, pointers and iterators - * referring to elements of the sequence (C++ Std, 21.3). - * - * @par Buffer Arithmetic - * - * Buffer objects may be manipulated using simple arithmetic in a safe way - * which helps prevent buffer overruns. Consider an array initialised as - * follows: - * - * @code boost::array a = { 'a', 'b', 'c', 'd', 'e' }; @endcode - * - * A buffer object @c b1 created using: - * - * @code b1 = asio::buffer(a); @endcode - * - * represents the entire array, { 'a', 'b', 'c', 'd', 'e' }. An - * optional second argument to the asio::buffer function may be used to - * limit the size, in bytes, of the buffer: - * - * @code b2 = asio::buffer(a, 3); @endcode - * - * such that @c b2 represents the data { 'a', 'b', 'c' }. Even if the - * size argument exceeds the actual size of the array, the size of the buffer - * object created will be limited to the array size. - * - * An offset may be applied to an existing buffer to create a new one: - * - * @code b3 = b1 + 2; @endcode - * - * where @c b3 will set to represent { 'c', 'd', 'e' }. If the offset - * exceeds the size of the existing buffer, the newly created buffer will be - * empty. - * - * Both an offset and size may be specified to create a buffer that corresponds - * to a specific range of bytes within an existing buffer: - * - * @code b4 = asio::buffer(b1 + 1, 3); @endcode - * - * so that @c b4 will refer to the bytes { 'b', 'c', 'd' }. - * - * @par Buffers and Scatter-Gather I/O - * - * To read or write using multiple buffers (i.e. scatter-gather I/O), multiple - * buffer objects may be assigned into a container that supports the - * MutableBufferSequence (for read) or ConstBufferSequence (for write) concepts: - * - * @code - * char d1[128]; - * std::vector d2(128); - * boost::array d3; - * - * boost::array bufs1 = { - * asio::buffer(d1), - * asio::buffer(d2), - * asio::buffer(d3) }; - * bytes_transferred = sock.receive(bufs1); - * - * std::vector bufs2; - * bufs2.push_back(asio::buffer(d1)); - * bufs2.push_back(asio::buffer(d2)); - * bufs2.push_back(asio::buffer(d3)); - * bytes_transferred = sock.send(bufs2); @endcode - */ -/*@{*/ - -#if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -# define ASIO_MUTABLE_BUFFER mutable_buffer -# define ASIO_CONST_BUFFER const_buffer -#else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -# define ASIO_MUTABLE_BUFFER mutable_buffers_1 -# define ASIO_CONST_BUFFER const_buffers_1 -#endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - -/// Create a new modifiable buffer from an existing buffer. -/** - * @returns mutable_buffer(b). - */ -inline ASIO_MUTABLE_BUFFER buffer( - const mutable_buffer& b) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(b); -} - -/// Create a new modifiable buffer from an existing buffer. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * b.data(), - * min(b.size(), max_size_in_bytes)); @endcode - */ -inline ASIO_MUTABLE_BUFFER buffer(const mutable_buffer& b, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER( - mutable_buffer(b.data(), - b.size() < max_size_in_bytes - ? b.size() : max_size_in_bytes -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , b.get_debug_check() -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - )); -} - -/// Create a new non-modifiable buffer from an existing buffer. -/** - * @returns const_buffer(b). - */ -inline ASIO_CONST_BUFFER buffer( - const const_buffer& b) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(b); -} - -/// Create a new non-modifiable buffer from an existing buffer. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * b.data(), - * min(b.size(), max_size_in_bytes)); @endcode - */ -inline ASIO_CONST_BUFFER buffer(const const_buffer& b, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(b.data(), - b.size() < max_size_in_bytes - ? b.size() : max_size_in_bytes -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , b.get_debug_check() -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new modifiable buffer that represents the given memory range. -/** - * @returns mutable_buffer(data, size_in_bytes). - */ -inline ASIO_MUTABLE_BUFFER buffer(void* data, - std::size_t size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data, size_in_bytes); -} - -/// Create a new non-modifiable buffer that represents the given memory range. -/** - * @returns const_buffer(data, size_in_bytes). - */ -inline ASIO_CONST_BUFFER buffer(const void* data, - std::size_t size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data, size_in_bytes); -} - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * static_cast(data), - * N * sizeof(PodType)); @endcode - */ -template -inline ASIO_MUTABLE_BUFFER buffer(PodType (&data)[N]) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data, N * sizeof(PodType)); -} - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * static_cast(data), - * min(N * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_MUTABLE_BUFFER buffer(PodType (&data)[N], - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data, - N * sizeof(PodType) < max_size_in_bytes - ? N * sizeof(PodType) : max_size_in_bytes); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * static_cast(data), - * N * sizeof(PodType)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer( - const PodType (&data)[N]) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data, N * sizeof(PodType)); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * static_cast(data), - * min(N * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer(const PodType (&data)[N], - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data, - N * sizeof(PodType) < max_size_in_bytes - ? N * sizeof(PodType) : max_size_in_bytes); -} - -#if defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND) - -// Borland C++ and Sun Studio think the overloads: -// -// unspecified buffer(boost::array& array ...); -// -// and -// -// unspecified buffer(boost::array& array ...); -// -// are ambiguous. This will be worked around by using a buffer_types traits -// class that contains typedefs for the appropriate buffer and container -// classes, based on whether PodType is const or non-const. - -namespace detail { - -template -struct buffer_types_base; - -template <> -struct buffer_types_base -{ - typedef mutable_buffer buffer_type; - typedef ASIO_MUTABLE_BUFFER container_type; -}; - -template <> -struct buffer_types_base -{ - typedef const_buffer buffer_type; - typedef ASIO_CONST_BUFFER container_type; -}; - -template -struct buffer_types - : public buffer_types_base::value> -{ -}; - -} // namespace detail - -template -inline typename detail::buffer_types::container_type -buffer(boost::array& data) ASIO_NOEXCEPT -{ - typedef typename asio::detail::buffer_types::buffer_type - buffer_type; - typedef typename asio::detail::buffer_types::container_type - container_type; - return container_type( - buffer_type(data.c_array(), data.size() * sizeof(PodType))); -} - -template -inline typename detail::buffer_types::container_type -buffer(boost::array& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - typedef typename asio::detail::buffer_types::buffer_type - buffer_type; - typedef typename asio::detail::buffer_types::container_type - container_type; - return container_type( - buffer_type(data.c_array(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes)); -} - -#else // defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND) - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline ASIO_MUTABLE_BUFFER buffer( - boost::array& data) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER( - data.c_array(), data.size() * sizeof(PodType)); -} - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_MUTABLE_BUFFER buffer(boost::array& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data.c_array(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer( - boost::array& data) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType)); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer(boost::array& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes); -} - -#endif // defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND) - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer( - const boost::array& data) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType)); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer(const boost::array& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes); -} - -#if defined(ASIO_HAS_STD_ARRAY) || defined(GENERATING_DOCUMENTATION) - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline ASIO_MUTABLE_BUFFER buffer( - std::array& data) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data.data(), data.size() * sizeof(PodType)); -} - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_MUTABLE_BUFFER buffer(std::array& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data.data(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer( - std::array& data) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType)); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer(std::array& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer( - const std::array& data) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType)); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer(const std::array& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes); -} - -#endif // defined(ASIO_HAS_STD_ARRAY) || defined(GENERATING_DOCUMENTATION) - -/// Create a new modifiable buffer that represents the given POD vector. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.size() ? &data[0] : 0, - * data.size() * sizeof(PodType)); @endcode - * - * @note The buffer is invalidated by any vector operation that would also - * invalidate iterators. - */ -template -inline ASIO_MUTABLE_BUFFER buffer( - std::vector& data) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER( - data.size() ? &data[0] : 0, data.size() * sizeof(PodType) -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::vector::iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new modifiable buffer that represents the given POD vector. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.size() ? &data[0] : 0, - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - * - * @note The buffer is invalidated by any vector operation that would also - * invalidate iterators. - */ -template -inline ASIO_MUTABLE_BUFFER buffer(std::vector& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data.size() ? &data[0] : 0, - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::vector::iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new non-modifiable buffer that represents the given POD vector. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.size() ? &data[0] : 0, - * data.size() * sizeof(PodType)); @endcode - * - * @note The buffer is invalidated by any vector operation that would also - * invalidate iterators. - */ -template -inline ASIO_CONST_BUFFER buffer( - const std::vector& data) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER( - data.size() ? &data[0] : 0, data.size() * sizeof(PodType) -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::vector::const_iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new non-modifiable buffer that represents the given POD vector. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.size() ? &data[0] : 0, - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - * - * @note The buffer is invalidated by any vector operation that would also - * invalidate iterators. - */ -template -inline ASIO_CONST_BUFFER buffer( - const std::vector& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.size() ? &data[0] : 0, - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::vector::const_iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new modifiable buffer that represents the given string. -/** - * @returns mutable_buffer(data.size() ? &data[0] : 0, - * data.size() * sizeof(Elem)). - * - * @note The buffer is invalidated by any non-const operation called on the - * given string object. - */ -template -inline ASIO_MUTABLE_BUFFER buffer( - std::basic_string& data) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data.size() ? &data[0] : 0, - data.size() * sizeof(Elem) -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::basic_string::iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new modifiable buffer that represents the given string. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.size() ? &data[0] : 0, - * min(data.size() * sizeof(Elem), max_size_in_bytes)); @endcode - * - * @note The buffer is invalidated by any non-const operation called on the - * given string object. - */ -template -inline ASIO_MUTABLE_BUFFER buffer( - std::basic_string& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data.size() ? &data[0] : 0, - data.size() * sizeof(Elem) < max_size_in_bytes - ? data.size() * sizeof(Elem) : max_size_in_bytes -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::basic_string::iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new non-modifiable buffer that represents the given string. -/** - * @returns const_buffer(data.data(), data.size() * sizeof(Elem)). - * - * @note The buffer is invalidated by any non-const operation called on the - * given string object. - */ -template -inline ASIO_CONST_BUFFER buffer( - const std::basic_string& data) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(Elem) -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::basic_string::const_iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new non-modifiable buffer that represents the given string. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * min(data.size() * sizeof(Elem), max_size_in_bytes)); @endcode - * - * @note The buffer is invalidated by any non-const operation called on the - * given string object. - */ -template -inline ASIO_CONST_BUFFER buffer( - const std::basic_string& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), - data.size() * sizeof(Elem) < max_size_in_bytes - ? data.size() * sizeof(Elem) : max_size_in_bytes -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::basic_string::const_iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -#if defined(ASIO_HAS_STRING_VIEW) \ - || defined(GENERATING_DOCUMENTATION) - -/// Create a new modifiable buffer that represents the given string_view. -/** - * @returns mutable_buffer(data.size() ? &data[0] : 0, - * data.size() * sizeof(Elem)). - */ -template -inline ASIO_CONST_BUFFER buffer( - basic_string_view data) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.size() ? &data[0] : 0, - data.size() * sizeof(Elem) -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename basic_string_view::iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new non-modifiable buffer that represents the given string. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.size() ? &data[0] : 0, - * min(data.size() * sizeof(Elem), max_size_in_bytes)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer( - basic_string_view data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.size() ? &data[0] : 0, - data.size() * sizeof(Elem) < max_size_in_bytes - ? data.size() * sizeof(Elem) : max_size_in_bytes -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename basic_string_view::iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -#endif // defined(ASIO_HAS_STRING_VIEW) - // || defined(GENERATING_DOCUMENTATION) - -/*@}*/ - -/// Adapt a basic_string to the DynamicBuffer requirements. -/** - * Requires that sizeof(Elem) == 1. - */ -template -class dynamic_string_buffer -{ -public: - /// The type used to represent the input sequence as a list of buffers. - typedef ASIO_CONST_BUFFER const_buffers_type; - - /// The type used to represent the output sequence as a list of buffers. - typedef ASIO_MUTABLE_BUFFER mutable_buffers_type; - - /// Construct a dynamic buffer from a string. - /** - * @param s The string to be used as backing storage for the dynamic buffer. - * Any existing data in the string is treated as the dynamic buffer's input - * sequence. The object stores a reference to the string and the user is - * responsible for ensuring that the string object remains valid until the - * dynamic_string_buffer object is destroyed. - * - * @param maximum_size Specifies a maximum size for the buffer, in bytes. - */ - explicit dynamic_string_buffer(std::basic_string& s, - std::size_t maximum_size = - (std::numeric_limits::max)()) ASIO_NOEXCEPT - : string_(s), - size_(string_.size()), - max_size_(maximum_size) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move construct a dynamic buffer. - dynamic_string_buffer(dynamic_string_buffer&& other) ASIO_NOEXCEPT - : string_(other.string_), - size_(other.size_), - max_size_(other.max_size_) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Get the size of the input sequence. - std::size_t size() const ASIO_NOEXCEPT - { - return size_; - } - - /// Get the maximum size of the dynamic buffer. - /** - * @returns The allowed maximum of the sum of the sizes of the input sequence - * and output sequence. - */ - std::size_t max_size() const ASIO_NOEXCEPT - { - return max_size_; - } - - /// Get the current capacity of the dynamic buffer. - /** - * @returns The current total capacity of the buffer, i.e. for both the input - * sequence and output sequence. - */ - std::size_t capacity() const ASIO_NOEXCEPT - { - return string_.capacity(); - } - - /// Get a list of buffers that represents the input sequence. - /** - * @returns An object of type @c const_buffers_type that satisfies - * ConstBufferSequence requirements, representing the basic_string memory in - * input sequence. - * - * @note The returned object is invalidated by any @c dynamic_string_buffer - * or @c basic_string member function that modifies the input sequence or - * output sequence. - */ - const_buffers_type data() const ASIO_NOEXCEPT - { - return const_buffers_type(asio::buffer(string_, size_)); - } - - /// Get a list of buffers that represents the output sequence, with the given - /// size. - /** - * Ensures that the output sequence can accommodate @c n bytes, resizing the - * basic_string object as necessary. - * - * @returns An object of type @c mutable_buffers_type that satisfies - * MutableBufferSequence requirements, representing basic_string memory - * at the start of the output sequence of size @c n. - * - * @throws std::length_error If size() + n > max_size(). - * - * @note The returned object is invalidated by any @c dynamic_string_buffer - * or @c basic_string member function that modifies the input sequence or - * output sequence. - */ - mutable_buffers_type prepare(std::size_t n) - { - if (size () > max_size() || max_size() - size() < n) - { - std::length_error ex("dynamic_string_buffer too long"); - asio::detail::throw_exception(ex); - } - - string_.resize(size_ + n); - - return asio::buffer(asio::buffer(string_) + size_, n); - } - - /// Move bytes from the output sequence to the input sequence. - /** - * @param n The number of bytes to append from the start of the output - * sequence to the end of the input sequence. The remainder of the output - * sequence is discarded. - * - * Requires a preceding call prepare(x) where x >= n, and - * no intervening operations that modify the input or output sequence. - * - * @note If @c 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. - */ - void commit(std::size_t n) - { - size_ += (std::min)(n, string_.size() - size_); - string_.resize(size_); - } - - /// Remove characters from the input sequence. - /** - * Removes @c n characters from the beginning of the input sequence. - * - * @note If @c n is greater than the size of the input sequence, the entire - * input sequence is consumed and no error is issued. - */ - void consume(std::size_t n) - { - std::size_t consume_length = (std::min)(n, size_); - string_.erase(0, consume_length); - size_ -= consume_length; - } - -private: - std::basic_string& string_; - std::size_t size_; - const std::size_t max_size_; -}; - -/// Adapt a vector to the DynamicBuffer requirements. -/** - * Requires that sizeof(Elem) == 1. - */ -template -class dynamic_vector_buffer -{ -public: - /// The type used to represent the input sequence as a list of buffers. - typedef ASIO_CONST_BUFFER const_buffers_type; - - /// The type used to represent the output sequence as a list of buffers. - typedef ASIO_MUTABLE_BUFFER mutable_buffers_type; - - /// Construct a dynamic buffer from a string. - /** - * @param v The vector to be used as backing storage for the dynamic buffer. - * Any existing data in the vector is treated as the dynamic buffer's input - * sequence. The object stores a reference to the vector and the user is - * responsible for ensuring that the vector object remains valid until the - * dynamic_vector_buffer object is destroyed. - * - * @param maximum_size Specifies a maximum size for the buffer, in bytes. - */ - explicit dynamic_vector_buffer(std::vector& v, - std::size_t maximum_size = - (std::numeric_limits::max)()) ASIO_NOEXCEPT - : vector_(v), - size_(vector_.size()), - max_size_(maximum_size) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move construct a dynamic buffer. - dynamic_vector_buffer(dynamic_vector_buffer&& other) ASIO_NOEXCEPT - : vector_(other.vector_), - size_(other.size_), - max_size_(other.max_size_) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Get the size of the input sequence. - std::size_t size() const ASIO_NOEXCEPT - { - return size_; - } - - /// Get the maximum size of the dynamic buffer. - /** - * @returns The allowed maximum of the sum of the sizes of the input sequence - * and output sequence. - */ - std::size_t max_size() const ASIO_NOEXCEPT - { - return max_size_; - } - - /// Get the current capacity of the dynamic buffer. - /** - * @returns The current total capacity of the buffer, i.e. for both the input - * sequence and output sequence. - */ - std::size_t capacity() const ASIO_NOEXCEPT - { - return vector_.capacity(); - } - - /// Get a list of buffers that represents the input sequence. - /** - * @returns An object of type @c const_buffers_type that satisfies - * ConstBufferSequence requirements, representing the basic_string memory in - * input sequence. - * - * @note The returned object is invalidated by any @c dynamic_vector_buffer - * or @c basic_string member function that modifies the input sequence or - * output sequence. - */ - const_buffers_type data() const ASIO_NOEXCEPT - { - return const_buffers_type(asio::buffer(vector_, size_)); - } - - /// Get a list of buffers that represents the output sequence, with the given - /// size. - /** - * Ensures that the output sequence can accommodate @c n bytes, resizing the - * basic_string object as necessary. - * - * @returns An object of type @c mutable_buffers_type that satisfies - * MutableBufferSequence requirements, representing basic_string memory - * at the start of the output sequence of size @c n. - * - * @throws std::length_error If size() + n > max_size(). - * - * @note The returned object is invalidated by any @c dynamic_vector_buffer - * or @c basic_string member function that modifies the input sequence or - * output sequence. - */ - mutable_buffers_type prepare(std::size_t n) - { - if (size () > max_size() || max_size() - size() < n) - { - std::length_error ex("dynamic_vector_buffer too long"); - asio::detail::throw_exception(ex); - } - - vector_.resize(size_ + n); - - return asio::buffer(asio::buffer(vector_) + size_, n); - } - - /// Move bytes from the output sequence to the input sequence. - /** - * @param n The number of bytes to append from the start of the output - * sequence to the end of the input sequence. The remainder of the output - * sequence is discarded. - * - * Requires a preceding call prepare(x) where x >= n, and - * no intervening operations that modify the input or output sequence. - * - * @note If @c 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. - */ - void commit(std::size_t n) - { - size_ += (std::min)(n, vector_.size() - size_); - vector_.resize(size_); - } - - /// Remove characters from the input sequence. - /** - * Removes @c n characters from the beginning of the input sequence. - * - * @note If @c n is greater than the size of the input sequence, the entire - * input sequence is consumed and no error is issued. - */ - void consume(std::size_t n) - { - std::size_t consume_length = (std::min)(n, size_); - vector_.erase(vector_.begin(), vector_.begin() + consume_length); - size_ -= consume_length; - } - -private: - std::vector& vector_; - std::size_t size_; - const std::size_t max_size_; -}; - -/** @defgroup dynamic_buffer asio::dynamic_buffer - * - * @brief The asio::dynamic_buffer function is used to create a - * dynamically resized buffer from a @c std::basic_string or @c std::vector. - */ -/*@{*/ - -/// Create a new dynamic buffer that represents the given string. -/** - * @returns dynamic_string_buffer(data). - */ -template -inline dynamic_string_buffer dynamic_buffer( - std::basic_string& data) ASIO_NOEXCEPT -{ - return dynamic_string_buffer(data); -} - -/// Create a new dynamic buffer that represents the given string. -/** - * @returns dynamic_string_buffer(data, - * max_size). - */ -template -inline dynamic_string_buffer dynamic_buffer( - std::basic_string& data, - std::size_t max_size) ASIO_NOEXCEPT -{ - return dynamic_string_buffer(data, max_size); -} - -/// Create a new dynamic buffer that represents the given vector. -/** - * @returns dynamic_vector_buffer(data). - */ -template -inline dynamic_vector_buffer dynamic_buffer( - std::vector& data) ASIO_NOEXCEPT -{ - return dynamic_vector_buffer(data); -} - -/// Create a new dynamic buffer that represents the given vector. -/** - * @returns dynamic_vector_buffer(data, max_size). - */ -template -inline dynamic_vector_buffer dynamic_buffer( - std::vector& data, - std::size_t max_size) ASIO_NOEXCEPT -{ - return dynamic_vector_buffer(data, max_size); -} - -/*@}*/ - -/** @defgroup buffer_copy asio::buffer_copy - * - * @brief The asio::buffer_copy function is used to copy bytes from a - * source buffer (or buffer sequence) to a target buffer (or buffer sequence). - * - * The @c buffer_copy function is available in two forms: - * - * @li A 2-argument form: @c buffer_copy(target, source) - * - * @li A 3-argument form: @c buffer_copy(target, source, max_bytes_to_copy) - * - * Both forms return the number of bytes actually copied. The number of bytes - * copied is the lesser of: - * - * @li @c buffer_size(target) - * - * @li @c buffer_size(source) - * - * @li @c If specified, @c max_bytes_to_copy. - * - * This prevents buffer overflow, regardless of the buffer sizes used in the - * copy operation. - * - * Note that @ref buffer_copy is implemented in terms of @c memcpy, and - * consequently it cannot be used to copy between overlapping memory regions. - */ -/*@{*/ - -namespace detail { - -inline std::size_t buffer_copy_1(const mutable_buffer& target, - const const_buffer& source) -{ - using namespace std; // For memcpy. - std::size_t target_size = target.size(); - std::size_t source_size = source.size(); - std::size_t n = target_size < source_size ? target_size : source_size; - if (n > 0) - memcpy(target.data(), source.data(), n); - return n; -} - -template -inline std::size_t buffer_copy(one_buffer, one_buffer, - TargetIterator target_begin, TargetIterator, - SourceIterator source_begin, SourceIterator) ASIO_NOEXCEPT -{ - return (buffer_copy_1)(*target_begin, *source_begin); -} - -template -inline std::size_t buffer_copy(one_buffer, one_buffer, - TargetIterator target_begin, TargetIterator, - SourceIterator source_begin, SourceIterator, - std::size_t max_bytes_to_copy) ASIO_NOEXCEPT -{ - return (buffer_copy_1)(*target_begin, - asio::buffer(*source_begin, max_bytes_to_copy)); -} - -template -std::size_t buffer_copy(one_buffer, multiple_buffers, - TargetIterator target_begin, TargetIterator, - SourceIterator source_begin, SourceIterator source_end, - std::size_t max_bytes_to_copy - = (std::numeric_limits::max)()) ASIO_NOEXCEPT -{ - std::size_t total_bytes_copied = 0; - SourceIterator source_iter = source_begin; - - for (mutable_buffer target_buffer( - asio::buffer(*target_begin, max_bytes_to_copy)); - target_buffer.size() && source_iter != source_end; ++source_iter) - { - const_buffer source_buffer(*source_iter); - std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer); - total_bytes_copied += bytes_copied; - target_buffer += bytes_copied; - } - - return total_bytes_copied; -} - -template -std::size_t buffer_copy(multiple_buffers, one_buffer, - TargetIterator target_begin, TargetIterator target_end, - SourceIterator source_begin, SourceIterator, - std::size_t max_bytes_to_copy - = (std::numeric_limits::max)()) ASIO_NOEXCEPT -{ - std::size_t total_bytes_copied = 0; - TargetIterator target_iter = target_begin; - - for (const_buffer source_buffer( - asio::buffer(*source_begin, max_bytes_to_copy)); - source_buffer.size() && target_iter != target_end; ++target_iter) - { - mutable_buffer target_buffer(*target_iter); - std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer); - total_bytes_copied += bytes_copied; - source_buffer += bytes_copied; - } - - return total_bytes_copied; -} - -template -std::size_t buffer_copy(multiple_buffers, multiple_buffers, - TargetIterator target_begin, TargetIterator target_end, - SourceIterator source_begin, SourceIterator source_end) ASIO_NOEXCEPT -{ - std::size_t total_bytes_copied = 0; - - TargetIterator target_iter = target_begin; - std::size_t target_buffer_offset = 0; - - SourceIterator source_iter = source_begin; - std::size_t source_buffer_offset = 0; - - while (target_iter != target_end && source_iter != source_end) - { - mutable_buffer target_buffer = - mutable_buffer(*target_iter) + target_buffer_offset; - - const_buffer source_buffer = - const_buffer(*source_iter) + source_buffer_offset; - - std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer); - total_bytes_copied += bytes_copied; - - if (bytes_copied == target_buffer.size()) - { - ++target_iter; - target_buffer_offset = 0; - } - else - target_buffer_offset += bytes_copied; - - if (bytes_copied == source_buffer.size()) - { - ++source_iter; - source_buffer_offset = 0; - } - else - source_buffer_offset += bytes_copied; - } - - return total_bytes_copied; -} - -template -std::size_t buffer_copy(multiple_buffers, multiple_buffers, - TargetIterator target_begin, TargetIterator target_end, - SourceIterator source_begin, SourceIterator source_end, - std::size_t max_bytes_to_copy) ASIO_NOEXCEPT -{ - std::size_t total_bytes_copied = 0; - - TargetIterator target_iter = target_begin; - std::size_t target_buffer_offset = 0; - - SourceIterator source_iter = source_begin; - std::size_t source_buffer_offset = 0; - - while (total_bytes_copied != max_bytes_to_copy - && target_iter != target_end && source_iter != source_end) - { - mutable_buffer target_buffer = - mutable_buffer(*target_iter) + target_buffer_offset; - - const_buffer source_buffer = - const_buffer(*source_iter) + source_buffer_offset; - - std::size_t bytes_copied = (buffer_copy_1)( - target_buffer, asio::buffer(source_buffer, - max_bytes_to_copy - total_bytes_copied)); - total_bytes_copied += bytes_copied; - - if (bytes_copied == target_buffer.size()) - { - ++target_iter; - target_buffer_offset = 0; - } - else - target_buffer_offset += bytes_copied; - - if (bytes_copied == source_buffer.size()) - { - ++source_iter; - source_buffer_offset = 0; - } - else - source_buffer_offset += bytes_copied; - } - - return total_bytes_copied; -} - -} // namespace detail - -/// Copies bytes from a source buffer sequence to a target buffer sequence. -/** - * @param target A modifiable buffer sequence representing the memory regions to - * which the bytes will be copied. - * - * @param source A non-modifiable buffer sequence representing the memory - * regions from which the bytes will be copied. - * - * @returns The number of bytes copied. - * - * @note The number of bytes copied is the lesser of: - * - * @li @c buffer_size(target) - * - * @li @c buffer_size(source) - * - * This function is implemented in terms of @c memcpy, and consequently it - * cannot be used to copy between overlapping memory regions. - */ -template -inline std::size_t buffer_copy(const MutableBufferSequence& target, - const ConstBufferSequence& source) ASIO_NOEXCEPT -{ - return detail::buffer_copy( - detail::buffer_sequence_cardinality(), - detail::buffer_sequence_cardinality(), - asio::buffer_sequence_begin(target), - asio::buffer_sequence_end(target), - asio::buffer_sequence_begin(source), - asio::buffer_sequence_end(source)); -} - -/// Copies a limited number of bytes from a source buffer sequence to a target -/// buffer sequence. -/** - * @param target A modifiable buffer sequence representing the memory regions to - * which the bytes will be copied. - * - * @param source A non-modifiable buffer sequence representing the memory - * regions from which the bytes will be copied. - * - * @param max_bytes_to_copy The maximum number of bytes to be copied. - * - * @returns The number of bytes copied. - * - * @note The number of bytes copied is the lesser of: - * - * @li @c buffer_size(target) - * - * @li @c buffer_size(source) - * - * @li @c max_bytes_to_copy - * - * This function is implemented in terms of @c memcpy, and consequently it - * cannot be used to copy between overlapping memory regions. - */ -template -inline std::size_t buffer_copy(const MutableBufferSequence& target, - const ConstBufferSequence& source, - std::size_t max_bytes_to_copy) ASIO_NOEXCEPT -{ - return detail::buffer_copy( - detail::buffer_sequence_cardinality(), - detail::buffer_sequence_cardinality(), - asio::buffer_sequence_begin(target), - asio::buffer_sequence_end(target), - asio::buffer_sequence_begin(source), - asio::buffer_sequence_end(source), max_bytes_to_copy); -} - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" -#include "asio/detail/is_buffer_sequence.hpp" -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Trait to determine whether a type satisfies the MutableBufferSequence -/// requirements. -template -struct is_mutable_buffer_sequence -#if defined(GENERATING_DOCUMENTATION) - : integral_constant -#else // defined(GENERATING_DOCUMENTATION) - : asio::detail::is_buffer_sequence -#endif // defined(GENERATING_DOCUMENTATION) -{ -}; - -/// Trait to determine whether a type satisfies the ConstBufferSequence -/// requirements. -template -struct is_const_buffer_sequence -#if defined(GENERATING_DOCUMENTATION) - : integral_constant -#else // defined(GENERATING_DOCUMENTATION) - : asio::detail::is_buffer_sequence -#endif // defined(GENERATING_DOCUMENTATION) -{ -}; - -/// Trait to determine whether a type satisfies the DynamicBuffer requirements. -template -struct is_dynamic_buffer -#if defined(GENERATING_DOCUMENTATION) - : integral_constant -#else // defined(GENERATING_DOCUMENTATION) - : asio::detail::is_dynamic_buffer -#endif // defined(GENERATING_DOCUMENTATION) -{ -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BUFFER_HPP diff --git a/Sources/Vendor/asio/include/asio/buffered_read_stream.hpp b/Sources/Vendor/asio/include/asio/buffered_read_stream.hpp deleted file mode 100644 index c3e7f0b..0000000 --- a/Sources/Vendor/asio/include/asio/buffered_read_stream.hpp +++ /dev/null @@ -1,257 +0,0 @@ -// -// buffered_read_stream.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BUFFERED_READ_STREAM_HPP -#define ASIO_BUFFERED_READ_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/buffered_read_stream_fwd.hpp" -#include "asio/buffer.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_resize_guard.hpp" -#include "asio/detail/buffered_stream_storage.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Adds buffering to the read-related operations of a stream. -/** - * The buffered_read_stream class template can be used to add buffering to the - * synchronous and asynchronous read operations of a stream. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class buffered_read_stream - : private noncopyable -{ -public: - /// The type of the next layer. - typedef typename remove_reference::type next_layer_type; - - /// The type of the lowest layer. - typedef typename next_layer_type::lowest_layer_type lowest_layer_type; - - /// The type of the executor associated with the object. - typedef typename lowest_layer_type::executor_type executor_type; - -#if defined(GENERATING_DOCUMENTATION) - /// The default buffer size. - static const std::size_t default_buffer_size = implementation_defined; -#else - ASIO_STATIC_CONSTANT(std::size_t, default_buffer_size = 1024); -#endif - - /// Construct, passing the specified argument to initialise the next layer. - template - explicit buffered_read_stream(Arg& a) - : next_layer_(a), - storage_(default_buffer_size) - { - } - - /// Construct, passing the specified argument to initialise the next layer. - template - buffered_read_stream(Arg& a, std::size_t buffer_size) - : next_layer_(a), - storage_(buffer_size) - { - } - - /// Get a reference to the next layer. - next_layer_type& next_layer() - { - return next_layer_; - } - - /// Get a reference to the lowest layer. - lowest_layer_type& lowest_layer() - { - return next_layer_.lowest_layer(); - } - - /// Get a const reference to the lowest layer. - const lowest_layer_type& lowest_layer() const - { - return next_layer_.lowest_layer(); - } - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return next_layer_.lowest_layer().get_executor(); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_context() - { - return next_layer_.get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_service() - { - return next_layer_.get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Close the stream. - void close() - { - next_layer_.close(); - } - - /// Close the stream. - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - next_layer_.close(ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Write the given data to the stream. Returns the number of bytes written. - /// Throws an exception on failure. - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - return next_layer_.write_some(buffers); - } - - /// Write the given data to the stream. Returns the number of bytes written, - /// or 0 if an error occurred. - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return next_layer_.write_some(buffers, ec); - } - - /// Start an asynchronous write. The data being written must be valid for the - /// lifetime of the asynchronous operation. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - return next_layer_.async_write_some(buffers, - ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Fill the buffer with some data. Returns the number of bytes placed in the - /// buffer as a result of the operation. Throws an exception on failure. - std::size_t fill(); - - /// Fill the buffer with some data. Returns the number of bytes placed in the - /// buffer as a result of the operation, or 0 if an error occurred. - std::size_t fill(asio::error_code& ec); - - /// Start an asynchronous fill. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_fill(ASIO_MOVE_ARG(ReadHandler) handler); - - /// Read some data from the stream. Returns the number of bytes read. Throws - /// an exception on failure. - template - std::size_t read_some(const MutableBufferSequence& buffers); - - /// Read some data from the stream. Returns the number of bytes read or 0 if - /// an error occurred. - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec); - - /// Start an asynchronous read. The buffer into which the data will be read - /// must be valid for the lifetime of the asynchronous operation. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler); - - /// Peek at the incoming data on the stream. Returns the number of bytes read. - /// Throws an exception on failure. - template - std::size_t peek(const MutableBufferSequence& buffers); - - /// Peek at the incoming data on the stream. Returns the number of bytes read, - /// or 0 if an error occurred. - template - std::size_t peek(const MutableBufferSequence& buffers, - asio::error_code& ec); - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail() - { - return storage_.size(); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail(asio::error_code& ec) - { - ec = asio::error_code(); - return storage_.size(); - } - -private: - /// Copy data out of the internal buffer to the specified target buffer. - /// Returns the number of bytes copied. - template - std::size_t copy(const MutableBufferSequence& buffers) - { - std::size_t bytes_copied = asio::buffer_copy( - buffers, storage_.data(), storage_.size()); - storage_.consume(bytes_copied); - return bytes_copied; - } - - /// Copy data from the internal buffer to the specified target buffer, without - /// removing the data from the internal buffer. Returns the number of bytes - /// copied. - template - std::size_t peek_copy(const MutableBufferSequence& buffers) - { - return asio::buffer_copy(buffers, storage_.data(), storage_.size()); - } - - /// The next layer. - Stream next_layer_; - - // The data in the buffer. - detail::buffered_stream_storage storage_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/buffered_read_stream.hpp" - -#endif // ASIO_BUFFERED_READ_STREAM_HPP diff --git a/Sources/Vendor/asio/include/asio/buffered_read_stream_fwd.hpp b/Sources/Vendor/asio/include/asio/buffered_read_stream_fwd.hpp deleted file mode 100644 index 334b88a..0000000 --- a/Sources/Vendor/asio/include/asio/buffered_read_stream_fwd.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// buffered_read_stream_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BUFFERED_READ_STREAM_FWD_HPP -#define ASIO_BUFFERED_READ_STREAM_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -namespace asio { - -template -class buffered_read_stream; - -} // namespace asio - -#endif // ASIO_BUFFERED_READ_STREAM_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/buffered_stream.hpp b/Sources/Vendor/asio/include/asio/buffered_stream.hpp deleted file mode 100644 index 8014fa4..0000000 --- a/Sources/Vendor/asio/include/asio/buffered_stream.hpp +++ /dev/null @@ -1,278 +0,0 @@ -// -// buffered_stream.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BUFFERED_STREAM_HPP -#define ASIO_BUFFERED_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/buffered_read_stream.hpp" -#include "asio/buffered_write_stream.hpp" -#include "asio/buffered_stream_fwd.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Adds buffering to the read- and write-related operations of a stream. -/** - * The buffered_stream class template can be used to add buffering to the - * synchronous and asynchronous read and write operations of a stream. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class buffered_stream - : private noncopyable -{ -public: - /// The type of the next layer. - typedef typename remove_reference::type next_layer_type; - - /// The type of the lowest layer. - typedef typename next_layer_type::lowest_layer_type lowest_layer_type; - - /// The type of the executor associated with the object. - typedef typename lowest_layer_type::executor_type executor_type; - - /// Construct, passing the specified argument to initialise the next layer. - template - explicit buffered_stream(Arg& a) - : inner_stream_impl_(a), - stream_impl_(inner_stream_impl_) - { - } - - /// Construct, passing the specified argument to initialise the next layer. - template - explicit buffered_stream(Arg& a, std::size_t read_buffer_size, - std::size_t write_buffer_size) - : inner_stream_impl_(a, write_buffer_size), - stream_impl_(inner_stream_impl_, read_buffer_size) - { - } - - /// Get a reference to the next layer. - next_layer_type& next_layer() - { - return stream_impl_.next_layer().next_layer(); - } - - /// Get a reference to the lowest layer. - lowest_layer_type& lowest_layer() - { - return stream_impl_.lowest_layer(); - } - - /// Get a const reference to the lowest layer. - const lowest_layer_type& lowest_layer() const - { - return stream_impl_.lowest_layer(); - } - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return stream_impl_.lowest_layer().get_executor(); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_context() - { - return stream_impl_.get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_service() - { - return stream_impl_.get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Close the stream. - void close() - { - stream_impl_.close(); - } - - /// Close the stream. - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - stream_impl_.close(ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Flush all data from the buffer to the next layer. Returns the number of - /// bytes written to the next layer on the last write operation. Throws an - /// exception on failure. - std::size_t flush() - { - return stream_impl_.next_layer().flush(); - } - - /// Flush all data from the buffer to the next layer. Returns the number of - /// bytes written to the next layer on the last write operation, or 0 if an - /// error occurred. - std::size_t flush(asio::error_code& ec) - { - return stream_impl_.next_layer().flush(ec); - } - - /// Start an asynchronous flush. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_flush(ASIO_MOVE_ARG(WriteHandler) handler) - { - return stream_impl_.next_layer().async_flush( - ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Write the given data to the stream. Returns the number of bytes written. - /// Throws an exception on failure. - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - return stream_impl_.write_some(buffers); - } - - /// Write the given data to the stream. Returns the number of bytes written, - /// or 0 if an error occurred. - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return stream_impl_.write_some(buffers, ec); - } - - /// Start an asynchronous write. The data being written must be valid for the - /// lifetime of the asynchronous operation. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - return stream_impl_.async_write_some(buffers, - ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Fill the buffer with some data. Returns the number of bytes placed in the - /// buffer as a result of the operation. Throws an exception on failure. - std::size_t fill() - { - return stream_impl_.fill(); - } - - /// Fill the buffer with some data. Returns the number of bytes placed in the - /// buffer as a result of the operation, or 0 if an error occurred. - std::size_t fill(asio::error_code& ec) - { - return stream_impl_.fill(ec); - } - - /// Start an asynchronous fill. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_fill(ASIO_MOVE_ARG(ReadHandler) handler) - { - return stream_impl_.async_fill(ASIO_MOVE_CAST(ReadHandler)(handler)); - } - - /// Read some data from the stream. Returns the number of bytes read. Throws - /// an exception on failure. - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - return stream_impl_.read_some(buffers); - } - - /// Read some data from the stream. Returns the number of bytes read or 0 if - /// an error occurred. - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return stream_impl_.read_some(buffers, ec); - } - - /// Start an asynchronous read. The buffer into which the data will be read - /// must be valid for the lifetime of the asynchronous operation. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - return stream_impl_.async_read_some(buffers, - ASIO_MOVE_CAST(ReadHandler)(handler)); - } - - /// Peek at the incoming data on the stream. Returns the number of bytes read. - /// Throws an exception on failure. - template - std::size_t peek(const MutableBufferSequence& buffers) - { - return stream_impl_.peek(buffers); - } - - /// Peek at the incoming data on the stream. Returns the number of bytes read, - /// or 0 if an error occurred. - template - std::size_t peek(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return stream_impl_.peek(buffers, ec); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail() - { - return stream_impl_.in_avail(); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail(asio::error_code& ec) - { - return stream_impl_.in_avail(ec); - } - -private: - // The buffered write stream. - typedef buffered_write_stream write_stream_type; - write_stream_type inner_stream_impl_; - - // The buffered read stream. - typedef buffered_read_stream read_stream_type; - read_stream_type stream_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BUFFERED_STREAM_HPP diff --git a/Sources/Vendor/asio/include/asio/buffered_stream_fwd.hpp b/Sources/Vendor/asio/include/asio/buffered_stream_fwd.hpp deleted file mode 100644 index 3492979..0000000 --- a/Sources/Vendor/asio/include/asio/buffered_stream_fwd.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// buffered_stream_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BUFFERED_STREAM_FWD_HPP -#define ASIO_BUFFERED_STREAM_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -namespace asio { - -template -class buffered_stream; - -} // namespace asio - -#endif // ASIO_BUFFERED_STREAM_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/buffered_write_stream.hpp b/Sources/Vendor/asio/include/asio/buffered_write_stream.hpp deleted file mode 100644 index aac33d3..0000000 --- a/Sources/Vendor/asio/include/asio/buffered_write_stream.hpp +++ /dev/null @@ -1,249 +0,0 @@ -// -// buffered_write_stream.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BUFFERED_WRITE_STREAM_HPP -#define ASIO_BUFFERED_WRITE_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/buffered_write_stream_fwd.hpp" -#include "asio/buffer.hpp" -#include "asio/completion_condition.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffered_stream_storage.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/write.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Adds buffering to the write-related operations of a stream. -/** - * The buffered_write_stream class template can be used to add buffering to the - * synchronous and asynchronous write operations of a stream. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class buffered_write_stream - : private noncopyable -{ -public: - /// The type of the next layer. - typedef typename remove_reference::type next_layer_type; - - /// The type of the lowest layer. - typedef typename next_layer_type::lowest_layer_type lowest_layer_type; - - /// The type of the executor associated with the object. - typedef typename lowest_layer_type::executor_type executor_type; - -#if defined(GENERATING_DOCUMENTATION) - /// The default buffer size. - static const std::size_t default_buffer_size = implementation_defined; -#else - ASIO_STATIC_CONSTANT(std::size_t, default_buffer_size = 1024); -#endif - - /// Construct, passing the specified argument to initialise the next layer. - template - explicit buffered_write_stream(Arg& a) - : next_layer_(a), - storage_(default_buffer_size) - { - } - - /// Construct, passing the specified argument to initialise the next layer. - template - buffered_write_stream(Arg& a, std::size_t buffer_size) - : next_layer_(a), - storage_(buffer_size) - { - } - - /// Get a reference to the next layer. - next_layer_type& next_layer() - { - return next_layer_; - } - - /// Get a reference to the lowest layer. - lowest_layer_type& lowest_layer() - { - return next_layer_.lowest_layer(); - } - - /// Get a const reference to the lowest layer. - const lowest_layer_type& lowest_layer() const - { - return next_layer_.lowest_layer(); - } - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return next_layer_.lowest_layer().get_executor(); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_context() - { - return next_layer_.get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_service() - { - return next_layer_.get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Close the stream. - void close() - { - next_layer_.close(); - } - - /// Close the stream. - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - next_layer_.close(ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Flush all data from the buffer to the next layer. Returns the number of - /// bytes written to the next layer on the last write operation. Throws an - /// exception on failure. - std::size_t flush(); - - /// Flush all data from the buffer to the next layer. Returns the number of - /// bytes written to the next layer on the last write operation, or 0 if an - /// error occurred. - std::size_t flush(asio::error_code& ec); - - /// Start an asynchronous flush. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_flush(ASIO_MOVE_ARG(WriteHandler) handler); - - /// Write the given data to the stream. Returns the number of bytes written. - /// Throws an exception on failure. - template - std::size_t write_some(const ConstBufferSequence& buffers); - - /// Write the given data to the stream. Returns the number of bytes written, - /// or 0 if an error occurred and the error handler did not throw. - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec); - - /// Start an asynchronous write. The data being written must be valid for the - /// lifetime of the asynchronous operation. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler); - - /// Read some data from the stream. Returns the number of bytes read. Throws - /// an exception on failure. - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - return next_layer_.read_some(buffers); - } - - /// Read some data from the stream. Returns the number of bytes read or 0 if - /// an error occurred. - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return next_layer_.read_some(buffers, ec); - } - - /// Start an asynchronous read. The buffer into which the data will be read - /// must be valid for the lifetime of the asynchronous operation. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - return next_layer_.async_read_some(buffers, - ASIO_MOVE_CAST(ReadHandler)(handler)); - } - - /// Peek at the incoming data on the stream. Returns the number of bytes read. - /// Throws an exception on failure. - template - std::size_t peek(const MutableBufferSequence& buffers) - { - return next_layer_.peek(buffers); - } - - /// Peek at the incoming data on the stream. Returns the number of bytes read, - /// or 0 if an error occurred. - template - std::size_t peek(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return next_layer_.peek(buffers, ec); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail() - { - return next_layer_.in_avail(); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail(asio::error_code& ec) - { - return next_layer_.in_avail(ec); - } - -private: - /// Copy data into the internal buffer from the specified source buffer. - /// Returns the number of bytes copied. - template - std::size_t copy(const ConstBufferSequence& buffers); - - /// The next layer. - Stream next_layer_; - - // The data in the buffer. - detail::buffered_stream_storage storage_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/buffered_write_stream.hpp" - -#endif // ASIO_BUFFERED_WRITE_STREAM_HPP diff --git a/Sources/Vendor/asio/include/asio/buffered_write_stream_fwd.hpp b/Sources/Vendor/asio/include/asio/buffered_write_stream_fwd.hpp deleted file mode 100644 index 6ef54ba..0000000 --- a/Sources/Vendor/asio/include/asio/buffered_write_stream_fwd.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// buffered_write_stream_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BUFFERED_WRITE_STREAM_FWD_HPP -#define ASIO_BUFFERED_WRITE_STREAM_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -namespace asio { - -template -class buffered_write_stream; - -} // namespace asio - -#endif // ASIO_BUFFERED_WRITE_STREAM_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/buffers_iterator.hpp b/Sources/Vendor/asio/include/asio/buffers_iterator.hpp deleted file mode 100644 index f5c9d4c..0000000 --- a/Sources/Vendor/asio/include/asio/buffers_iterator.hpp +++ /dev/null @@ -1,521 +0,0 @@ -// -// buffers_iterator.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_BUFFERS_ITERATOR_HPP -#define ASIO_BUFFERS_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include "asio/buffer.hpp" -#include "asio/detail/assert.hpp" -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - template - struct buffers_iterator_types_helper; - - template <> - struct buffers_iterator_types_helper - { - typedef const_buffer buffer_type; - template - struct byte_type - { - typedef typename add_const::type type; - }; - }; - - template <> - struct buffers_iterator_types_helper - { - typedef mutable_buffer buffer_type; - template - struct byte_type - { - typedef ByteType type; - }; - }; - - template - struct buffers_iterator_types - { - enum - { - is_mutable = is_convertible< - typename BufferSequence::value_type, - mutable_buffer>::value - }; - typedef buffers_iterator_types_helper helper; - typedef typename helper::buffer_type buffer_type; - typedef typename helper::template byte_type::type byte_type; - typedef typename BufferSequence::const_iterator const_iterator; - }; - - template - struct buffers_iterator_types - { - typedef mutable_buffer buffer_type; - typedef ByteType byte_type; - typedef const mutable_buffer* const_iterator; - }; - - template - struct buffers_iterator_types - { - typedef const_buffer buffer_type; - typedef typename add_const::type byte_type; - typedef const const_buffer* const_iterator; - }; - -#if !defined(ASIO_NO_DEPRECATED) - - template - struct buffers_iterator_types - { - typedef mutable_buffer buffer_type; - typedef ByteType byte_type; - typedef const mutable_buffer* const_iterator; - }; - - template - struct buffers_iterator_types - { - typedef const_buffer buffer_type; - typedef typename add_const::type byte_type; - typedef const const_buffer* const_iterator; - }; - -#endif // !defined(ASIO_NO_DEPRECATED) -} - -/// A random access iterator over the bytes in a buffer sequence. -template -class buffers_iterator -{ -private: - typedef typename detail::buffers_iterator_types< - BufferSequence, ByteType>::buffer_type buffer_type; - - typedef typename detail::buffers_iterator_types::const_iterator buffer_sequence_iterator_type; - -public: - /// The type used for the distance between two iterators. - typedef std::ptrdiff_t difference_type; - - /// The type of the value pointed to by the iterator. - typedef ByteType value_type; - -#if defined(GENERATING_DOCUMENTATION) - /// The type of the result of applying operator->() to the iterator. - /** - * If the buffer sequence stores buffer objects that are convertible to - * mutable_buffer, this is a pointer to a non-const ByteType. Otherwise, a - * pointer to a const ByteType. - */ - typedef const_or_non_const_ByteType* pointer; -#else // defined(GENERATING_DOCUMENTATION) - typedef typename detail::buffers_iterator_types< - BufferSequence, ByteType>::byte_type* pointer; -#endif // defined(GENERATING_DOCUMENTATION) - -#if defined(GENERATING_DOCUMENTATION) - /// The type of the result of applying operator*() to the iterator. - /** - * If the buffer sequence stores buffer objects that are convertible to - * mutable_buffer, this is a reference to a non-const ByteType. Otherwise, a - * reference to a const ByteType. - */ - typedef const_or_non_const_ByteType& reference; -#else // defined(GENERATING_DOCUMENTATION) - typedef typename detail::buffers_iterator_types< - BufferSequence, ByteType>::byte_type& reference; -#endif // defined(GENERATING_DOCUMENTATION) - - /// The iterator category. - typedef std::random_access_iterator_tag iterator_category; - - /// Default constructor. Creates an iterator in an undefined state. - buffers_iterator() - : current_buffer_(), - current_buffer_position_(0), - begin_(), - current_(), - end_(), - position_(0) - { - } - - /// Construct an iterator representing the beginning of the buffers' data. - static buffers_iterator begin(const BufferSequence& buffers) -#if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 3) - __attribute__ ((__noinline__)) -#endif // defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 3) - { - buffers_iterator new_iter; - new_iter.begin_ = asio::buffer_sequence_begin(buffers); - new_iter.current_ = asio::buffer_sequence_begin(buffers); - new_iter.end_ = asio::buffer_sequence_end(buffers); - while (new_iter.current_ != new_iter.end_) - { - new_iter.current_buffer_ = *new_iter.current_; - if (new_iter.current_buffer_.size() > 0) - break; - ++new_iter.current_; - } - return new_iter; - } - - /// Construct an iterator representing the end of the buffers' data. - static buffers_iterator end(const BufferSequence& buffers) -#if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 3) - __attribute__ ((__noinline__)) -#endif // defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 3) - { - buffers_iterator new_iter; - new_iter.begin_ = asio::buffer_sequence_begin(buffers); - new_iter.current_ = asio::buffer_sequence_begin(buffers); - new_iter.end_ = asio::buffer_sequence_end(buffers); - while (new_iter.current_ != new_iter.end_) - { - buffer_type buffer = *new_iter.current_; - new_iter.position_ += buffer.size(); - ++new_iter.current_; - } - return new_iter; - } - - /// Dereference an iterator. - reference operator*() const - { - return dereference(); - } - - /// Dereference an iterator. - pointer operator->() const - { - return &dereference(); - } - - /// Access an individual element. - reference operator[](std::ptrdiff_t difference) const - { - buffers_iterator tmp(*this); - tmp.advance(difference); - return *tmp; - } - - /// Increment operator (prefix). - buffers_iterator& operator++() - { - increment(); - return *this; - } - - /// Increment operator (postfix). - buffers_iterator operator++(int) - { - buffers_iterator tmp(*this); - ++*this; - return tmp; - } - - /// Decrement operator (prefix). - buffers_iterator& operator--() - { - decrement(); - return *this; - } - - /// Decrement operator (postfix). - buffers_iterator operator--(int) - { - buffers_iterator tmp(*this); - --*this; - return tmp; - } - - /// Addition operator. - buffers_iterator& operator+=(std::ptrdiff_t difference) - { - advance(difference); - return *this; - } - - /// Subtraction operator. - buffers_iterator& operator-=(std::ptrdiff_t difference) - { - advance(-difference); - return *this; - } - - /// Addition operator. - friend buffers_iterator operator+(const buffers_iterator& iter, - std::ptrdiff_t difference) - { - buffers_iterator tmp(iter); - tmp.advance(difference); - return tmp; - } - - /// Addition operator. - friend buffers_iterator operator+(std::ptrdiff_t difference, - const buffers_iterator& iter) - { - buffers_iterator tmp(iter); - tmp.advance(difference); - return tmp; - } - - /// Subtraction operator. - friend buffers_iterator operator-(const buffers_iterator& iter, - std::ptrdiff_t difference) - { - buffers_iterator tmp(iter); - tmp.advance(-difference); - return tmp; - } - - /// Subtraction operator. - friend std::ptrdiff_t operator-(const buffers_iterator& a, - const buffers_iterator& b) - { - return b.distance_to(a); - } - - /// Test two iterators for equality. - friend bool operator==(const buffers_iterator& a, const buffers_iterator& b) - { - return a.equal(b); - } - - /// Test two iterators for inequality. - friend bool operator!=(const buffers_iterator& a, const buffers_iterator& b) - { - return !a.equal(b); - } - - /// Compare two iterators. - friend bool operator<(const buffers_iterator& a, const buffers_iterator& b) - { - return a.distance_to(b) > 0; - } - - /// Compare two iterators. - friend bool operator<=(const buffers_iterator& a, const buffers_iterator& b) - { - return !(b < a); - } - - /// Compare two iterators. - friend bool operator>(const buffers_iterator& a, const buffers_iterator& b) - { - return b < a; - } - - /// Compare two iterators. - friend bool operator>=(const buffers_iterator& a, const buffers_iterator& b) - { - return !(a < b); - } - -private: - // Dereference the iterator. - reference dereference() const - { - return static_cast( - current_buffer_.data())[current_buffer_position_]; - } - - // Compare two iterators for equality. - bool equal(const buffers_iterator& other) const - { - return position_ == other.position_; - } - - // Increment the iterator. - void increment() - { - ASIO_ASSERT(current_ != end_ && "iterator out of bounds"); - ++position_; - - // Check if the increment can be satisfied by the current buffer. - ++current_buffer_position_; - if (current_buffer_position_ != current_buffer_.size()) - return; - - // Find the next non-empty buffer. - ++current_; - current_buffer_position_ = 0; - while (current_ != end_) - { - current_buffer_ = *current_; - if (current_buffer_.size() > 0) - return; - ++current_; - } - } - - // Decrement the iterator. - void decrement() - { - ASIO_ASSERT(position_ > 0 && "iterator out of bounds"); - --position_; - - // Check if the decrement can be satisfied by the current buffer. - if (current_buffer_position_ != 0) - { - --current_buffer_position_; - return; - } - - // Find the previous non-empty buffer. - buffer_sequence_iterator_type iter = current_; - while (iter != begin_) - { - --iter; - buffer_type buffer = *iter; - std::size_t buffer_size = buffer.size(); - if (buffer_size > 0) - { - current_ = iter; - current_buffer_ = buffer; - current_buffer_position_ = buffer_size - 1; - return; - } - } - } - - // Advance the iterator by the specified distance. - void advance(std::ptrdiff_t n) - { - if (n > 0) - { - ASIO_ASSERT(current_ != end_ && "iterator out of bounds"); - for (;;) - { - std::ptrdiff_t current_buffer_balance - = current_buffer_.size() - current_buffer_position_; - - // Check if the advance can be satisfied by the current buffer. - if (current_buffer_balance > n) - { - position_ += n; - current_buffer_position_ += n; - return; - } - - // Update position. - n -= current_buffer_balance; - position_ += current_buffer_balance; - - // Move to next buffer. If it is empty then it will be skipped on the - // next iteration of this loop. - if (++current_ == end_) - { - ASIO_ASSERT(n == 0 && "iterator out of bounds"); - current_buffer_ = buffer_type(); - current_buffer_position_ = 0; - return; - } - current_buffer_ = *current_; - current_buffer_position_ = 0; - } - } - else if (n < 0) - { - std::size_t abs_n = -n; - ASIO_ASSERT(position_ >= abs_n && "iterator out of bounds"); - for (;;) - { - // Check if the advance can be satisfied by the current buffer. - if (current_buffer_position_ >= abs_n) - { - position_ -= abs_n; - current_buffer_position_ -= abs_n; - return; - } - - // Update position. - abs_n -= current_buffer_position_; - position_ -= current_buffer_position_; - - // Check if we've reached the beginning of the buffers. - if (current_ == begin_) - { - ASIO_ASSERT(abs_n == 0 && "iterator out of bounds"); - current_buffer_position_ = 0; - return; - } - - // Find the previous non-empty buffer. - buffer_sequence_iterator_type iter = current_; - while (iter != begin_) - { - --iter; - buffer_type buffer = *iter; - std::size_t buffer_size = buffer.size(); - if (buffer_size > 0) - { - current_ = iter; - current_buffer_ = buffer; - current_buffer_position_ = buffer_size; - break; - } - } - } - } - } - - // Determine the distance between two iterators. - std::ptrdiff_t distance_to(const buffers_iterator& other) const - { - return other.position_ - position_; - } - - buffer_type current_buffer_; - std::size_t current_buffer_position_; - buffer_sequence_iterator_type begin_; - buffer_sequence_iterator_type current_; - buffer_sequence_iterator_type end_; - std::size_t position_; -}; - -/// Construct an iterator representing the beginning of the buffers' data. -template -inline buffers_iterator buffers_begin( - const BufferSequence& buffers) -{ - return buffers_iterator::begin(buffers); -} - -/// Construct an iterator representing the end of the buffers' data. -template -inline buffers_iterator buffers_end( - const BufferSequence& buffers) -{ - return buffers_iterator::end(buffers); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BUFFERS_ITERATOR_HPP diff --git a/Sources/Vendor/asio/include/asio/completion_condition.hpp b/Sources/Vendor/asio/include/asio/completion_condition.hpp deleted file mode 100644 index 563f417..0000000 --- a/Sources/Vendor/asio/include/asio/completion_condition.hpp +++ /dev/null @@ -1,218 +0,0 @@ -// -// completion_condition.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_COMPLETION_CONDITION_HPP -#define ASIO_COMPLETION_CONDITION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail { - -// The default maximum number of bytes to transfer in a single operation. -enum default_max_transfer_size_t { default_max_transfer_size = 65536 }; - -// Adapt result of old-style completion conditions (which had a bool result -// where true indicated that the operation was complete). -inline std::size_t adapt_completion_condition_result(bool result) -{ - return result ? 0 : default_max_transfer_size; -} - -// Adapt result of current completion conditions (which have a size_t result -// where 0 means the operation is complete, and otherwise the result is the -// maximum number of bytes to transfer on the next underlying operation). -inline std::size_t adapt_completion_condition_result(std::size_t result) -{ - return result; -} - -class transfer_all_t -{ -public: - typedef std::size_t result_type; - - template - std::size_t operator()(const Error& err, std::size_t) - { - return !!err ? 0 : default_max_transfer_size; - } -}; - -class transfer_at_least_t -{ -public: - typedef std::size_t result_type; - - explicit transfer_at_least_t(std::size_t minimum) - : minimum_(minimum) - { - } - - template - std::size_t operator()(const Error& err, std::size_t bytes_transferred) - { - return (!!err || bytes_transferred >= minimum_) - ? 0 : default_max_transfer_size; - } - -private: - std::size_t minimum_; -}; - -class transfer_exactly_t -{ -public: - typedef std::size_t result_type; - - explicit transfer_exactly_t(std::size_t size) - : size_(size) - { - } - - template - std::size_t operator()(const Error& err, std::size_t bytes_transferred) - { - return (!!err || bytes_transferred >= size_) ? 0 : - (size_ - bytes_transferred < default_max_transfer_size - ? size_ - bytes_transferred : std::size_t(default_max_transfer_size)); - } - -private: - std::size_t size_; -}; - -} // namespace detail - -/** - * @defgroup completion_condition Completion Condition Function Objects - * - * Function objects used for determining when a read or write operation should - * complete. - */ -/*@{*/ - -/// Return a completion condition function object that indicates that a read or -/// write operation should continue until all of the data has been transferred, -/// or until an error occurs. -/** - * This function is used to create an object, of unspecified type, that meets - * CompletionCondition requirements. - * - * @par Example - * Reading until a buffer is full: - * @code - * boost::array buf; - * asio::error_code ec; - * std::size_t n = asio::read( - * sock, asio::buffer(buf), - * asio::transfer_all(), ec); - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * // n == 128 - * } - * @endcode - */ -#if defined(GENERATING_DOCUMENTATION) -unspecified transfer_all(); -#else -inline detail::transfer_all_t transfer_all() -{ - return detail::transfer_all_t(); -} -#endif - -/// Return a completion condition function object that indicates that a read or -/// write operation should continue until a minimum number of bytes has been -/// transferred, or until an error occurs. -/** - * This function is used to create an object, of unspecified type, that meets - * CompletionCondition requirements. - * - * @par Example - * Reading until a buffer is full or contains at least 64 bytes: - * @code - * boost::array buf; - * asio::error_code ec; - * std::size_t n = asio::read( - * sock, asio::buffer(buf), - * asio::transfer_at_least(64), ec); - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * // n >= 64 && n <= 128 - * } - * @endcode - */ -#if defined(GENERATING_DOCUMENTATION) -unspecified transfer_at_least(std::size_t minimum); -#else -inline detail::transfer_at_least_t transfer_at_least(std::size_t minimum) -{ - return detail::transfer_at_least_t(minimum); -} -#endif - -/// Return a completion condition function object that indicates that a read or -/// write operation should continue until an exact number of bytes has been -/// transferred, or until an error occurs. -/** - * This function is used to create an object, of unspecified type, that meets - * CompletionCondition requirements. - * - * @par Example - * Reading until a buffer is full or contains exactly 64 bytes: - * @code - * boost::array buf; - * asio::error_code ec; - * std::size_t n = asio::read( - * sock, asio::buffer(buf), - * asio::transfer_exactly(64), ec); - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * // n == 64 - * } - * @endcode - */ -#if defined(GENERATING_DOCUMENTATION) -unspecified transfer_exactly(std::size_t size); -#else -inline detail::transfer_exactly_t transfer_exactly(std::size_t size) -{ - return detail::transfer_exactly_t(size); -} -#endif - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_COMPLETION_CONDITION_HPP diff --git a/Sources/Vendor/asio/include/asio/connect.hpp b/Sources/Vendor/asio/include/asio/connect.hpp deleted file mode 100644 index 89a9f35..0000000 --- a/Sources/Vendor/asio/include/asio/connect.hpp +++ /dev/null @@ -1,1060 +0,0 @@ -// -// connect.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_CONNECT_HPP -#define ASIO_CONNECT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/async_result.hpp" -#include "asio/basic_socket.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - char (&has_iterator_helper(...))[2]; - - template - char has_iterator_helper(T*, typename T::iterator* = 0); - - template - struct has_iterator_typedef - { - enum { value = (sizeof((has_iterator_helper)((T*)(0))) == 1) }; - }; -} // namespace detail - -/// Type trait used to determine whether a type is an endpoint sequence that can -/// be used with with @c connect and @c async_connect. -template -struct is_endpoint_sequence -{ -#if defined(GENERATING_DOCUMENTATION) - /// The value member is true if the type may be used as an endpoint sequence. - static const bool value; -#else - enum - { - value = detail::has_iterator_typedef::value - }; -#endif -}; - -/** - * @defgroup connect asio::connect - * - * @brief The @c connect function is a composed operation that establishes a - * socket connection by trying each endpoint in a sequence. - */ -/*@{*/ - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param endpoints A sequence of endpoints. - * - * @returns The successfully connected endpoint. - * - * @throws asio::system_error Thrown on failure. If the sequence is - * empty, the associated @c error_code is asio::error::not_found. - * Otherwise, contains the error from the last connection attempt. - * - * @par Example - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::socket s(io_context); - * asio::connect(s, r.resolve(q)); @endcode - */ -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, - typename enable_if::value>::type* = 0); - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param endpoints A sequence of endpoints. - * - * @param ec Set to indicate what error occurred, if any. If the sequence is - * empty, set to asio::error::not_found. Otherwise, contains the error - * from the last connection attempt. - * - * @returns On success, the successfully connected endpoint. Otherwise, a - * default-constructed endpoint. - * - * @par Example - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::socket s(io_context); - * asio::error_code ec; - * asio::connect(s, r.resolve(q), ec); - * if (ec) - * { - * // An error occurred. - * } @endcode - */ -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, asio::error_code& ec, - typename enable_if::value>::type* = 0); - -#if !defined(ASIO_NO_DEPRECATED) -/// (Deprecated: Use range overload.) Establishes a socket connection by trying -/// each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @returns On success, an iterator denoting the successfully connected - * endpoint. Otherwise, the end iterator. - * - * @throws asio::system_error Thrown on failure. If the sequence is - * empty, the associated @c error_code is asio::error::not_found. - * Otherwise, contains the error from the last connection attempt. - * - * @note This overload assumes that a default constructed object of type @c - * Iterator represents the end of the sequence. This is a valid assumption for - * iterator types such as @c asio::ip::tcp::resolver::iterator. - */ -template -Iterator connect(basic_socket& s, Iterator begin, - typename enable_if::value>::type* = 0); - -/// (Deprecated: Use range overload.) Establishes a socket connection by trying -/// each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param ec Set to indicate what error occurred, if any. If the sequence is - * empty, set to asio::error::not_found. Otherwise, contains the error - * from the last connection attempt. - * - * @returns On success, an iterator denoting the successfully connected - * endpoint. Otherwise, the end iterator. - * - * @note This overload assumes that a default constructed object of type @c - * Iterator represents the end of the sequence. This is a valid assumption for - * iterator types such as @c asio::ip::tcp::resolver::iterator. - */ -template -Iterator connect(basic_socket& s, - Iterator begin, asio::error_code& ec, - typename enable_if::value>::type* = 0); -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param end An iterator pointing to the end of a sequence of endpoints. - * - * @returns An iterator denoting the successfully connected endpoint. - * - * @throws asio::system_error Thrown on failure. If the sequence is - * empty, the associated @c error_code is asio::error::not_found. - * Otherwise, contains the error from the last connection attempt. - * - * @par Example - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::resolver::results_type e = r.resolve(q); - * tcp::socket s(io_context); - * asio::connect(s, e.begin(), e.end()); @endcode - */ -template -Iterator connect(basic_socket& s, - Iterator begin, Iterator end); - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param end An iterator pointing to the end of a sequence of endpoints. - * - * @param ec Set to indicate what error occurred, if any. If the sequence is - * empty, set to asio::error::not_found. Otherwise, contains the error - * from the last connection attempt. - * - * @returns On success, an iterator denoting the successfully connected - * endpoint. Otherwise, the end iterator. - * - * @par Example - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::resolver::results_type e = r.resolve(q); - * tcp::socket s(io_context); - * asio::error_code ec; - * asio::connect(s, e.begin(), e.end(), ec); - * if (ec) - * { - * // An error occurred. - * } @endcode - */ -template -Iterator connect(basic_socket& s, - Iterator begin, Iterator end, asio::error_code& ec); - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param endpoints A sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @returns The successfully connected endpoint. - * - * @throws asio::system_error Thrown on failure. If the sequence is - * empty, the associated @c error_code is asio::error::not_found. - * Otherwise, contains the error from the last connection attempt. - * - * @par Example - * The following connect condition function object can be used to output - * information about the individual connection attempts: - * @code struct my_connect_condition - * { - * bool operator()( - * const asio::error_code& ec, - * const::tcp::endpoint& next) - * { - * if (ec) std::cout << "Error: " << ec.message() << std::endl; - * std::cout << "Trying: " << next << std::endl; - * return true; - * } - * }; @endcode - * It would be used with the asio::connect function as follows: - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::socket s(io_context); - * tcp::endpoint e = asio::connect(s, - * r.resolve(q), my_connect_condition()); - * std::cout << "Connected to: " << e << std::endl; @endcode - */ -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, ConnectCondition connect_condition, - typename enable_if::value>::type* = 0); - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param endpoints A sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @param ec Set to indicate what error occurred, if any. If the sequence is - * empty, set to asio::error::not_found. Otherwise, contains the error - * from the last connection attempt. - * - * @returns On success, the successfully connected endpoint. Otherwise, a - * default-constructed endpoint. - * - * @par Example - * The following connect condition function object can be used to output - * information about the individual connection attempts: - * @code struct my_connect_condition - * { - * bool operator()( - * const asio::error_code& ec, - * const::tcp::endpoint& next) - * { - * if (ec) std::cout << "Error: " << ec.message() << std::endl; - * std::cout << "Trying: " << next << std::endl; - * return true; - * } - * }; @endcode - * It would be used with the asio::connect function as follows: - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::socket s(io_context); - * asio::error_code ec; - * tcp::endpoint e = asio::connect(s, - * r.resolve(q), my_connect_condition(), ec); - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * std::cout << "Connected to: " << e << std::endl; - * } @endcode - */ -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, ConnectCondition connect_condition, - asio::error_code& ec, - typename enable_if::value>::type* = 0); - -#if !defined(ASIO_NO_DEPRECATED) -/// (Deprecated: Use range overload.) Establishes a socket connection by trying -/// each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @returns On success, an iterator denoting the successfully connected - * endpoint. Otherwise, the end iterator. - * - * @throws asio::system_error Thrown on failure. If the sequence is - * empty, the associated @c error_code is asio::error::not_found. - * Otherwise, contains the error from the last connection attempt. - * - * @note This overload assumes that a default constructed object of type @c - * Iterator represents the end of the sequence. This is a valid assumption for - * iterator types such as @c asio::ip::tcp::resolver::iterator. - */ -template -Iterator connect(basic_socket& s, - Iterator begin, ConnectCondition connect_condition, - typename enable_if::value>::type* = 0); - -/// (Deprecated: Use range overload.) Establishes a socket connection by trying -/// each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @param ec Set to indicate what error occurred, if any. If the sequence is - * empty, set to asio::error::not_found. Otherwise, contains the error - * from the last connection attempt. - * - * @returns On success, an iterator denoting the successfully connected - * endpoint. Otherwise, the end iterator. - * - * @note This overload assumes that a default constructed object of type @c - * Iterator represents the end of the sequence. This is a valid assumption for - * iterator types such as @c asio::ip::tcp::resolver::iterator. - */ -template -Iterator connect(basic_socket& s, Iterator begin, - ConnectCondition connect_condition, asio::error_code& ec, - typename enable_if::value>::type* = 0); -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param end An iterator pointing to the end of a sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @returns An iterator denoting the successfully connected endpoint. - * - * @throws asio::system_error Thrown on failure. If the sequence is - * empty, the associated @c error_code is asio::error::not_found. - * Otherwise, contains the error from the last connection attempt. - * - * @par Example - * The following connect condition function object can be used to output - * information about the individual connection attempts: - * @code struct my_connect_condition - * { - * bool operator()( - * const asio::error_code& ec, - * const::tcp::endpoint& next) - * { - * if (ec) std::cout << "Error: " << ec.message() << std::endl; - * std::cout << "Trying: " << next << std::endl; - * return true; - * } - * }; @endcode - * It would be used with the asio::connect function as follows: - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::resolver::results_type e = r.resolve(q); - * tcp::socket s(io_context); - * tcp::resolver::results_type::iterator i = asio::connect( - * s, e.begin(), e.end(), my_connect_condition()); - * std::cout << "Connected to: " << i->endpoint() << std::endl; @endcode - */ -template -Iterator connect(basic_socket& s, Iterator begin, - Iterator end, ConnectCondition connect_condition); - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param end An iterator pointing to the end of a sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @param ec Set to indicate what error occurred, if any. If the sequence is - * empty, set to asio::error::not_found. Otherwise, contains the error - * from the last connection attempt. - * - * @returns On success, an iterator denoting the successfully connected - * endpoint. Otherwise, the end iterator. - * - * @par Example - * The following connect condition function object can be used to output - * information about the individual connection attempts: - * @code struct my_connect_condition - * { - * bool operator()( - * const asio::error_code& ec, - * const::tcp::endpoint& next) - * { - * if (ec) std::cout << "Error: " << ec.message() << std::endl; - * std::cout << "Trying: " << next << std::endl; - * return true; - * } - * }; @endcode - * It would be used with the asio::connect function as follows: - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::resolver::results_type e = r.resolve(q); - * tcp::socket s(io_context); - * asio::error_code ec; - * tcp::resolver::results_type::iterator i = asio::connect( - * s, e.begin(), e.end(), my_connect_condition()); - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * std::cout << "Connected to: " << i->endpoint() << std::endl; - * } @endcode - */ -template -Iterator connect(basic_socket& s, - Iterator begin, Iterator end, ConnectCondition connect_condition, - asio::error_code& ec); - -/*@}*/ - -/** - * @defgroup async_connect asio::async_connect - * - * @brief The @c async_connect function is a composed asynchronous operation - * that establishes a socket connection by trying each endpoint in a sequence. - */ -/*@{*/ - -/// Asynchronously establishes a socket connection by trying each endpoint in a -/// sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c async_connect - * member function, once for each endpoint in the sequence, until a connection - * is successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param endpoints A sequence of endpoints. - * - * @param handler The handler to be called when the connect operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * // Result of operation. if the sequence is empty, set to - * // asio::error::not_found. Otherwise, contains the - * // error from the last connection attempt. - * const asio::error_code& error, - * - * // On success, the successfully connected endpoint. - * // Otherwise, a default-constructed endpoint. - * const typename Protocol::endpoint& endpoint - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::socket s(io_context); - * - * // ... - * - * r.async_resolve(q, resolve_handler); - * - * // ... - * - * void resolve_handler( - * const asio::error_code& ec, - * tcp::resolver::results_type results) - * { - * if (!ec) - * { - * asio::async_connect(s, results, connect_handler); - * } - * } - * - * // ... - * - * void connect_handler( - * const asio::error_code& ec, - * const tcp::endpoint& endpoint) - * { - * // ... - * } @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(RangeConnectHandler, - void (asio::error_code, typename Protocol::endpoint)) -async_connect(basic_socket& s, - const EndpointSequence& endpoints, - ASIO_MOVE_ARG(RangeConnectHandler) handler, - typename enable_if::value>::type* = 0); - -#if !defined(ASIO_NO_DEPRECATED) -/// (Deprecated: Use range overload.) Asynchronously establishes a socket -/// connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c async_connect - * member function, once for each endpoint in the sequence, until a connection - * is successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param handler The handler to be called when the connect operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * // Result of operation. if the sequence is empty, set to - * // asio::error::not_found. Otherwise, contains the - * // error from the last connection attempt. - * const asio::error_code& error, - * - * // On success, an iterator denoting the successfully - * // connected endpoint. Otherwise, the end iterator. - * Iterator iterator - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note This overload assumes that a default constructed object of type @c - * Iterator represents the end of the sequence. This is a valid assumption for - * iterator types such as @c asio::ip::tcp::resolver::iterator. - */ -template -ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, - Iterator begin, ASIO_MOVE_ARG(IteratorConnectHandler) handler, - typename enable_if::value>::type* = 0); -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Asynchronously establishes a socket connection by trying each endpoint in a -/// sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c async_connect - * member function, once for each endpoint in the sequence, until a connection - * is successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param end An iterator pointing to the end of a sequence of endpoints. - * - * @param handler The handler to be called when the connect operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * // Result of operation. if the sequence is empty, set to - * // asio::error::not_found. Otherwise, contains the - * // error from the last connection attempt. - * const asio::error_code& error, - * - * // On success, an iterator denoting the successfully - * // connected endpoint. Otherwise, the end iterator. - * Iterator iterator - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code std::vector endpoints = ...; - * tcp::socket s(io_context); - * asio::async_connect(s, - * endpoints.begin(), endpoints.end(), - * connect_handler); - * - * // ... - * - * void connect_handler( - * const asio::error_code& ec, - * std::vector::iterator i) - * { - * // ... - * } @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, - Iterator begin, Iterator end, - ASIO_MOVE_ARG(IteratorConnectHandler) handler); - -/// Asynchronously establishes a socket connection by trying each endpoint in a -/// sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c async_connect - * member function, once for each endpoint in the sequence, until a connection - * is successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param endpoints A sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @param handler The handler to be called when the connect operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * // Result of operation. if the sequence is empty, set to - * // asio::error::not_found. Otherwise, contains the - * // error from the last connection attempt. - * const asio::error_code& error, - * - * // On success, an iterator denoting the successfully - * // connected endpoint. Otherwise, the end iterator. - * Iterator iterator - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * The following connect condition function object can be used to output - * information about the individual connection attempts: - * @code struct my_connect_condition - * { - * bool operator()( - * const asio::error_code& ec, - * const::tcp::endpoint& next) - * { - * if (ec) std::cout << "Error: " << ec.message() << std::endl; - * std::cout << "Trying: " << next << std::endl; - * return true; - * } - * }; @endcode - * It would be used with the asio::connect function as follows: - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::socket s(io_context); - * - * // ... - * - * r.async_resolve(q, resolve_handler); - * - * // ... - * - * void resolve_handler( - * const asio::error_code& ec, - * tcp::resolver::results_type results) - * { - * if (!ec) - * { - * asio::async_connect(s, results, - * my_connect_condition(), - * connect_handler); - * } - * } - * - * // ... - * - * void connect_handler( - * const asio::error_code& ec, - * const tcp::endpoint& endpoint) - * { - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * std::cout << "Connected to: " << endpoint << std::endl; - * } - * } @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(RangeConnectHandler, - void (asio::error_code, typename Protocol::endpoint)) -async_connect(basic_socket& s, - const EndpointSequence& endpoints, ConnectCondition connect_condition, - ASIO_MOVE_ARG(RangeConnectHandler) handler, - typename enable_if::value>::type* = 0); - -#if !defined(ASIO_NO_DEPRECATED) -/// (Deprecated: Use range overload.) Asynchronously establishes a socket -/// connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c async_connect - * member function, once for each endpoint in the sequence, until a connection - * is successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @param handler The handler to be called when the connect operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * // Result of operation. if the sequence is empty, set to - * // asio::error::not_found. Otherwise, contains the - * // error from the last connection attempt. - * const asio::error_code& error, - * - * // On success, an iterator denoting the successfully - * // connected endpoint. Otherwise, the end iterator. - * Iterator iterator - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note This overload assumes that a default constructed object of type @c - * Iterator represents the end of the sequence. This is a valid assumption for - * iterator types such as @c asio::ip::tcp::resolver::iterator. - */ -template -ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, Iterator begin, - ConnectCondition connect_condition, - ASIO_MOVE_ARG(IteratorConnectHandler) handler, - typename enable_if::value>::type* = 0); -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Asynchronously establishes a socket connection by trying each endpoint in a -/// sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c async_connect - * member function, once for each endpoint in the sequence, until a connection - * is successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param end An iterator pointing to the end of a sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @param handler The handler to be called when the connect operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * // Result of operation. if the sequence is empty, set to - * // asio::error::not_found. Otherwise, contains the - * // error from the last connection attempt. - * const asio::error_code& error, - * - * // On success, an iterator denoting the successfully - * // connected endpoint. Otherwise, the end iterator. - * Iterator iterator - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * The following connect condition function object can be used to output - * information about the individual connection attempts: - * @code struct my_connect_condition - * { - * bool operator()( - * const asio::error_code& ec, - * const::tcp::endpoint& next) - * { - * if (ec) std::cout << "Error: " << ec.message() << std::endl; - * std::cout << "Trying: " << next << std::endl; - * return true; - * } - * }; @endcode - * It would be used with the asio::connect function as follows: - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::socket s(io_context); - * - * // ... - * - * r.async_resolve(q, resolve_handler); - * - * // ... - * - * void resolve_handler( - * const asio::error_code& ec, - * tcp::resolver::iterator i) - * { - * if (!ec) - * { - * tcp::resolver::iterator end; - * asio::async_connect(s, i, end, - * my_connect_condition(), - * connect_handler); - * } - * } - * - * // ... - * - * void connect_handler( - * const asio::error_code& ec, - * tcp::resolver::iterator i) - * { - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * std::cout << "Connected to: " << i->endpoint() << std::endl; - * } - * } @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, - Iterator begin, Iterator end, ConnectCondition connect_condition, - ASIO_MOVE_ARG(IteratorConnectHandler) handler); - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/connect.hpp" - -#endif diff --git a/Sources/Vendor/asio/include/asio/coroutine.hpp b/Sources/Vendor/asio/include/asio/coroutine.hpp deleted file mode 100644 index cd2d99e..0000000 --- a/Sources/Vendor/asio/include/asio/coroutine.hpp +++ /dev/null @@ -1,328 +0,0 @@ -// -// coroutine.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_COROUTINE_HPP -#define ASIO_COROUTINE_HPP - -namespace asio { -namespace detail { - -class coroutine_ref; - -} // namespace detail - -/// Provides support for implementing stackless coroutines. -/** - * The @c 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: - * - * @code class session : coroutine - * { - * ... - * }; @endcode - * - * or as a data member: - * - * @code class session - * { - * ... - * coroutine coro_; - * }; @endcode - * - * or even bound in as a function argument using lambdas or @c 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. - * - * @par 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: - * - * @code #include @endcode - * - * and may conversely be undefined as follows: - * - * @code #include @endcode - * - * reenter - * - * The @c 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: - * - * @code reenter (this) - * { - * ... coroutine body ... - * } @endcode - * - * and if a data member or other variable you can write: - * - * @code reenter (coro_) - * { - * ... coroutine body ... - * } @endcode - * - * When @c reenter is executed at runtime, control jumps to the location of the - * last @c yield or @c fork. - * - * The coroutine body may also be a single statement, such as: - * - * @code reenter (this) for (;;) - * { - * ... - * } @endcode - * - * @b Limitation: The @c 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 @c yield keyword is often used with asynchronous operations: - * - * @code yield socket_->async_read_some(buffer(*buffer_), *this); @endcode - * - * This divides into four logical steps: - * - * @li @c yield saves the current state of the coroutine. - * @li The statement initiates the asynchronous operation. - * @li The resume point is defined immediately following the statement. - * @li Control is transferred to the end of the coroutine body. - * - * When the asynchronous operation completes, the function object is invoked - * and @c 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: - * - * @code yield - * { - * mutable_buffers_1 b = buffer(*buffer_); - * socket_->async_read_some(b, *this); - * } @endcode - * - * yield return expression ; - * - * This form of @c yield is often used in generators or coroutine-based parsers. - * For example, the function object: - * - * @code struct interleave : coroutine - * { - * istream& is1; - * istream& is2; - * char operator()(char c) - * { - * reenter (this) for (;;) - * { - * yield return is1.get(); - * yield return is2.get(); - * } - * } - * }; @endcode - * - * defines a trivial coroutine that interleaves the characters from two input - * streams. - * - * This type of @c yield divides into three logical steps: - * - * @li @c yield saves the current state of the coroutine. - * @li The resume point is defined immediately following the semicolon. - * @li The value of the expression is returned from the function. - * - * yield ; - * - * This form of @c yield is equivalent to the following steps: - * - * @li @c yield saves the current state of the coroutine. - * @li The resume point is defined immediately following the semicolon. - * @li 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: - * - * @code struct task : coroutine - * { - * ... - * void operator()() - * { - * reenter (this) - * { - * while (... not finished ...) - * { - * ... do something ... - * yield; - * ... do some more ... - * yield; - * } - * } - * } - * ... - * }; - * ... - * task t1, t2; - * for (;;) - * { - * t1(); - * t2(); - * } @endcode - * - * yield break ; - * - * The final form of @c yield is used to explicitly terminate the coroutine. - * This form is comprised of two steps: - * - * @li @c yield sets the coroutine state to indicate termination. - * @li 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 @c fork pseudo-keyword is used when "forking" a coroutine, i.e. splitting - * it into two (or more) copies. One use of @c fork is in a server, where a new - * coroutine is created to handle each client connection: - * - * @code reenter (this) - * { - * do - * { - * socket_.reset(new tcp::socket(io_context_)); - * yield acceptor->async_accept(*socket_, *this); - * fork server(*this)(); - * } while (is_parent()); - * ... client-specific handling follows ... - * } @endcode - * - * The logical steps involved in a @c fork are: - * - * @li @c fork saves the current state of the coroutine. - * @li The statement creates a copy of the coroutine and either executes it - * immediately or schedules it for later execution. - * @li The resume point is defined immediately following the semicolon. - * @li 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 @c 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_context::post(). - * - * @par 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: - * - * @li @c ASIO_CORO_REENTER instead of @c reenter - * @li @c ASIO_CORO_YIELD instead of @c yield - * @li @c ASIO_CORO_FORK instead of @c fork - */ -class coroutine -{ -public: - /// Constructs a coroutine in its initial state. - coroutine() : value_(0) {} - - /// Returns true if the coroutine is the child of a fork. - bool is_child() const { return value_ < 0; } - - /// Returns true if the coroutine is the parent of a fork. - bool is_parent() const { return !is_child(); } - - /// Returns true if the coroutine has reached its terminal state. - bool is_complete() const { return value_ == -1; } - -private: - friend class detail::coroutine_ref; - int value_; -}; - - -namespace detail { - -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_; -}; - -} // namespace detail -} // namespace asio - -#define ASIO_CORO_REENTER(c) \ - switch (::asio::detail::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 /* fall-through */ case 0: - -#define ASIO_CORO_YIELD_IMPL(n) \ - for (_coro_value = (n);;) \ - if (_coro_value == 0) \ - { \ - case (n): ; \ - break; \ - } \ - else \ - switch (_coro_value ? 0 : 1) \ - for (;;) \ - /* fall-through */ case -1: if (_coro_value) \ - goto terminate_coroutine; \ - else for (;;) \ - /* fall-through */ case 1: if (_coro_value) \ - goto bail_out_of_coroutine; \ - else /* fall-through */ case 0: - -#define ASIO_CORO_FORK_IMPL(n) \ - for (_coro_value = -(n);; _coro_value = (n)) \ - if (_coro_value == (n)) \ - { \ - case -(n): ; \ - break; \ - } \ - else - -#if defined(_MSC_VER) -# define ASIO_CORO_YIELD ASIO_CORO_YIELD_IMPL(__COUNTER__ + 1) -# define ASIO_CORO_FORK ASIO_CORO_FORK_IMPL(__COUNTER__ + 1) -#else // defined(_MSC_VER) -# define ASIO_CORO_YIELD ASIO_CORO_YIELD_IMPL(__LINE__) -# define ASIO_CORO_FORK ASIO_CORO_FORK_IMPL(__LINE__) -#endif // defined(_MSC_VER) - -#endif // ASIO_COROUTINE_HPP diff --git a/Sources/Vendor/asio/include/asio/datagram_socket_service.hpp b/Sources/Vendor/asio/include/asio/datagram_socket_service.hpp deleted file mode 100644 index 7dc1a3b..0000000 --- a/Sources/Vendor/asio/include/asio/datagram_socket_service.hpp +++ /dev/null @@ -1,466 +0,0 @@ -// -// datagram_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DATAGRAM_SOCKET_SERVICE_HPP -#define ASIO_DATAGRAM_SOCKET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/null_socket_service.hpp" -#elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_socket_service.hpp" -#else -# include "asio/detail/reactive_socket_service.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a datagram socket. -template -class datagram_socket_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - -private: - // The type of the platform-specific implementation. -#if defined(ASIO_WINDOWS_RUNTIME) - typedef detail::null_socket_service service_impl_type; -#elif defined(ASIO_HAS_IOCP) - typedef detail::win_iocp_socket_service service_impl_type; -#else - typedef detail::reactive_socket_service service_impl_type; -#endif - -public: - /// The type of a datagram socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// The native socket type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new datagram socket service for the specified io_context. - explicit datagram_socket_service(asio::io_context& io_context) - : asio::detail::service_base< - datagram_socket_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new datagram socket implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new datagram socket implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another datagram socket implementation. - void move_assign(implementation_type& impl, - datagram_socket_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } - - // All socket services have access to each other's implementations. - template friend class datagram_socket_service; - - /// Move-construct a new datagram socket implementation from another protocol - /// type. - template - void converting_move_construct(implementation_type& impl, - datagram_socket_service& other_service, - typename datagram_socket_service< - Protocol1>::implementation_type& other_impl, - typename enable_if::value>::type* = 0) - { - service_impl_.template converting_move_construct( - impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a datagram socket implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - // Open a new datagram socket implementation. - ASIO_SYNC_OP_VOID open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - if (protocol.type() == ASIO_OS_DEF(SOCK_DGRAM)) - service_impl_.open(impl, protocol, ec); - else - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native socket to a datagram socket. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_socket, - asio::error_code& ec) - { - service_impl_.assign(impl, protocol, native_socket, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a datagram socket implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Release ownership of the underlying socket. - native_handle_type release(implementation_type& impl, - asio::error_code& ec) - { - return service_impl_.release(impl, ec); - } - - /// Get the native socket implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the socket. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.at_mark(impl, ec); - } - - /// Determine the number of bytes available for reading. - std::size_t available(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.available(impl, ec); - } - - // Bind the datagram socket to the specified local endpoint. - ASIO_SYNC_OP_VOID bind(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - service_impl_.bind(impl, endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Connect the datagram socket to the specified endpoint. - ASIO_SYNC_OP_VOID connect(implementation_type& impl, - const endpoint_type& peer_endpoint, asio::error_code& ec) - { - service_impl_.connect(impl, peer_endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous connect. - template - ASIO_INITFN_RESULT_TYPE(ConnectHandler, - void (asio::error_code)) - async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(ConnectHandler) handler) - { - async_completion init(handler); - - service_impl_.async_connect(impl, peer_endpoint, init.completion_handler); - - return init.result.get(); - } - - /// Set a socket option. - template - ASIO_SYNC_OP_VOID set_option(implementation_type& impl, - const SettableSocketOption& option, asio::error_code& ec) - { - service_impl_.set_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get a socket option. - template - ASIO_SYNC_OP_VOID get_option(const implementation_type& impl, - GettableSocketOption& option, asio::error_code& ec) const - { - service_impl_.get_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the socket. - template - ASIO_SYNC_OP_VOID io_control(implementation_type& impl, - IoControlCommand& command, asio::error_code& ec) - { - service_impl_.io_control(impl, command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the socket. - bool non_blocking(const implementation_type& impl) const - { - return service_impl_.non_blocking(impl); - } - - /// Sets the non-blocking mode of the socket. - ASIO_SYNC_OP_VOID non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const implementation_type& impl) const - { - return service_impl_.native_non_blocking(impl); - } - - /// Sets the non-blocking mode of the native socket implementation. - ASIO_SYNC_OP_VOID native_non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.native_non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.local_endpoint(impl, ec); - } - - /// Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.remote_endpoint(impl, ec); - } - - /// Disable sends or receives on the socket. - ASIO_SYNC_OP_VOID shutdown(implementation_type& impl, - socket_base::shutdown_type what, asio::error_code& ec) - { - service_impl_.shutdown(impl, what, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the socket to become ready to read, ready to write, or to have - /// pending error conditions. - ASIO_SYNC_OP_VOID wait(implementation_type& impl, - socket_base::wait_type w, asio::error_code& ec) - { - service_impl_.wait(impl, w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the socket to become ready to read, ready to - /// write, or to have pending error conditions. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, socket_base::wait_type w, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, w, init.completion_handler); - - return init.result.get(); - } - - /// Send the given data to the peer. - template - std::size_t send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.send(impl, buffers, flags, ec); - } - - /// Start an asynchronous send. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(implementation_type& impl, const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - async_completion init(handler); - - service_impl_.async_send(impl, buffers, flags, init.completion_handler); - - return init.result.get(); - } - - /// Send a datagram to the specified endpoint. - template - std::size_t send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.send_to(impl, buffers, destination, flags, ec); - } - - /// Start an asynchronous send. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - async_completion init(handler); - - service_impl_.async_send_to(impl, buffers, - destination, flags, init.completion_handler); - - return init.result.get(); - } - - /// Receive some data from the peer. - template - std::size_t receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.receive(impl, buffers, flags, ec); - } - - /// Start an asynchronous receive. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - async_completion init(handler); - - service_impl_.async_receive(impl, buffers, flags, init.completion_handler); - - return init.result.get(); - } - - /// Receive a datagram with the endpoint of the sender. - template - std::size_t receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.receive_from(impl, buffers, sender_endpoint, flags, - ec); - } - - /// Start an asynchronous receive that will get the endpoint of the sender. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - async_completion init(handler); - - service_impl_.async_receive_from(impl, buffers, - sender_endpoint, flags, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_DATAGRAM_SOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/deadline_timer.hpp b/Sources/Vendor/asio/include/asio/deadline_timer.hpp deleted file mode 100644 index 5a21554..0000000 --- a/Sources/Vendor/asio/include/asio/deadline_timer.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// -// deadline_timer.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DEADLINE_TIMER_HPP -#define ASIO_DEADLINE_TIMER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/detail/socket_types.hpp" // Must come before posix_time. -#include "asio/basic_deadline_timer.hpp" - -#include - -namespace asio { - -/// Typedef for the typical usage of timer. Uses a UTC clock. -typedef basic_deadline_timer deadline_timer; - -} // namespace asio - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_DEADLINE_TIMER_HPP diff --git a/Sources/Vendor/asio/include/asio/deadline_timer_service.hpp b/Sources/Vendor/asio/include/asio/deadline_timer_service.hpp deleted file mode 100644 index 2dcc83e..0000000 --- a/Sources/Vendor/asio/include/asio/deadline_timer_service.hpp +++ /dev/null @@ -1,173 +0,0 @@ -// -// deadline_timer_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DEADLINE_TIMER_SERVICE_HPP -#define ASIO_DEADLINE_TIMER_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/deadline_timer_service.hpp" -#include "asio/io_context.hpp" -#include "asio/time_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a timer. -template > -class deadline_timer_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base< - deadline_timer_service > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The time traits type. - typedef TimeTraits traits_type; - - /// The time type. - typedef typename traits_type::time_type time_type; - - /// The duration type. - typedef typename traits_type::duration_type duration_type; - -private: - // The type of the platform-specific implementation. - typedef detail::deadline_timer_service service_impl_type; - -public: - /// The implementation type of the deadline timer. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// Construct a new timer service for the specified io_context. - explicit deadline_timer_service(asio::io_context& io_context) - : asio::detail::service_base< - deadline_timer_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new timer implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a timer implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Cancel any asynchronous wait operations associated with the timer. - std::size_t cancel(implementation_type& impl, asio::error_code& ec) - { - return service_impl_.cancel(impl, ec); - } - - /// Cancels one asynchronous wait operation associated with the timer. - std::size_t cancel_one(implementation_type& impl, - asio::error_code& ec) - { - return service_impl_.cancel_one(impl, ec); - } - - /// Get the expiry time for the timer as an absolute time. - time_type expires_at(const implementation_type& impl) const - { - return service_impl_.expiry(impl); - } - - /// Set the expiry time for the timer as an absolute time. - std::size_t expires_at(implementation_type& impl, - const time_type& expiry_time, asio::error_code& ec) - { - return service_impl_.expires_at(impl, expiry_time, ec); - } - - /// Get the expiry time for the timer relative to now. - duration_type expires_from_now(const implementation_type& impl) const - { - return TimeTraits::subtract(service_impl_.expiry(impl), TimeTraits::now()); - } - - /// Set the expiry time for the timer relative to now. - std::size_t expires_from_now(implementation_type& impl, - const duration_type& expiry_time, asio::error_code& ec) - { - return service_impl_.expires_after(impl, expiry_time, ec); - } - - // Perform a blocking wait on the timer. - void wait(implementation_type& impl, asio::error_code& ec) - { - service_impl_.wait(impl, ec); - } - - // Start an asynchronous wait on the timer. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_DEADLINE_TIMER_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/defer.hpp b/Sources/Vendor/asio/include/asio/defer.hpp deleted file mode 100644 index a0897f2..0000000 --- a/Sources/Vendor/asio/include/asio/defer.hpp +++ /dev/null @@ -1,107 +0,0 @@ -// -// defer.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DEFER_HPP -#define ASIO_DEFER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/execution_context.hpp" -#include "asio/is_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Submits a completion token or function object for execution. -/** - * This function submits an object for execution using the object's associated - * executor. The function object is queued for execution, and is never called - * from the current thread prior to returning from defer(). - * - * This function has the following effects: - * - * @li Constructs a function object handler of type @c Handler, initialized - * with handler(forward(token)). - * - * @li Constructs an object @c result of type async_result, - * initializing the object as result(handler). - * - * @li Obtains the handler's associated executor object @c ex by performing - * get_associated_executor(handler). - * - * @li Obtains the handler's associated allocator object @c alloc by performing - * get_associated_allocator(handler). - * - * @li Performs ex.defer(std::move(handler), alloc). - * - * @li Returns result.get(). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) defer( - ASIO_MOVE_ARG(CompletionToken) token); - -/// Submits a completion token or function object for execution. -/** - * This function submits an object for execution using the specified executor. - * The function object is queued for execution, and is never called from the - * current thread prior to returning from defer(). - * - * This function has the following effects: - * - * @li Constructs a function object handler of type @c Handler, initialized - * with handler(forward(token)). - * - * @li Constructs an object @c result of type async_result, - * initializing the object as result(handler). - * - * @li Obtains the handler's associated executor object @c ex1 by performing - * get_associated_executor(handler). - * - * @li Creates a work object @c w by performing make_work(ex1). - * - * @li Obtains the handler's associated allocator object @c alloc by performing - * get_associated_allocator(handler). - * - * @li Constructs a function object @c f with a function call operator that - * performs ex1.dispatch(std::move(handler), alloc) followed by - * w.reset(). - * - * @li Performs Executor(ex).defer(std::move(f), alloc). - * - * @li Returns result.get(). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) defer( - const Executor& ex, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type* = 0); - -/// Submits a completion token or function object for execution. -/** - * @returns defer(ctx.get_executor(), forward(token)). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) defer( - ExecutionContext& ctx, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type* = 0); - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/defer.hpp" - -#endif // ASIO_DEFER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/array.hpp b/Sources/Vendor/asio/include/asio/detail/array.hpp deleted file mode 100644 index ba42974..0000000 --- a/Sources/Vendor/asio/include/asio/detail/array.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// -// detail/array.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_ARRAY_HPP -#define ASIO_DETAIL_ARRAY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_STD_ARRAY) -# include -#else // defined(ASIO_HAS_STD_ARRAY) -# include -#endif // defined(ASIO_HAS_STD_ARRAY) - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_STD_ARRAY) -using std::array; -#else // defined(ASIO_HAS_STD_ARRAY) -using boost::array; -#endif // defined(ASIO_HAS_STD_ARRAY) - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_ARRAY_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/array_fwd.hpp b/Sources/Vendor/asio/include/asio/detail/array_fwd.hpp deleted file mode 100644 index 4161db0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/array_fwd.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// detail/array_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_ARRAY_FWD_HPP -#define ASIO_DETAIL_ARRAY_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -namespace boost { - -template -class array; - -} // namespace boost - -// Standard library components can't be forward declared, so we'll have to -// include the array header. Fortunately, it's fairly lightweight and doesn't -// add significantly to the compile time. -#if defined(ASIO_HAS_STD_ARRAY) -# include -#endif // defined(ASIO_HAS_STD_ARRAY) - -#endif // ASIO_DETAIL_ARRAY_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/assert.hpp b/Sources/Vendor/asio/include/asio/detail/assert.hpp deleted file mode 100644 index a952a44..0000000 --- a/Sources/Vendor/asio/include/asio/detail/assert.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// -// detail/assert.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_ASSERT_HPP -#define ASIO_DETAIL_ASSERT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_BOOST_ASSERT) -# include -#else // defined(ASIO_HAS_BOOST_ASSERT) -# include -#endif // defined(ASIO_HAS_BOOST_ASSERT) - -#if defined(ASIO_HAS_BOOST_ASSERT) -# define ASIO_ASSERT(expr) BOOST_ASSERT(expr) -#else // defined(ASIO_HAS_BOOST_ASSERT) -# define ASIO_ASSERT(expr) assert(expr) -#endif // defined(ASIO_HAS_BOOST_ASSERT) - -#endif // ASIO_DETAIL_ASSERT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/atomic_count.hpp b/Sources/Vendor/asio/include/asio/detail/atomic_count.hpp deleted file mode 100644 index 2bf75a5..0000000 --- a/Sources/Vendor/asio/include/asio/detail/atomic_count.hpp +++ /dev/null @@ -1,45 +0,0 @@ -// -// detail/atomic_count.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_ATOMIC_COUNT_HPP -#define ASIO_DETAIL_ATOMIC_COUNT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_THREADS) -// Nothing to include. -#elif defined(ASIO_HAS_STD_ATOMIC) -# include -#else // defined(ASIO_HAS_STD_ATOMIC) -# include -#endif // defined(ASIO_HAS_STD_ATOMIC) - -namespace asio { -namespace detail { - -#if !defined(ASIO_HAS_THREADS) -typedef long atomic_count; -inline void increment(atomic_count& a, long b) { a += b; } -#elif defined(ASIO_HAS_STD_ATOMIC) -typedef std::atomic atomic_count; -inline void increment(atomic_count& a, long b) { a += b; } -#else // defined(ASIO_HAS_STD_ATOMIC) -typedef boost::detail::atomic_count atomic_count; -inline void increment(atomic_count& a, long b) { while (b > 0) ++a, --b; } -#endif // defined(ASIO_HAS_STD_ATOMIC) - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_ATOMIC_COUNT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/base_from_completion_cond.hpp b/Sources/Vendor/asio/include/asio/detail/base_from_completion_cond.hpp deleted file mode 100644 index 73b4a95..0000000 --- a/Sources/Vendor/asio/include/asio/detail/base_from_completion_cond.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// -// detail/base_from_completion_cond.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_BASE_FROM_COMPLETION_COND_HPP -#define ASIO_DETAIL_BASE_FROM_COMPLETION_COND_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/completion_condition.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class base_from_completion_cond -{ -protected: - explicit base_from_completion_cond(CompletionCondition completion_condition) - : completion_condition_(completion_condition) - { - } - - std::size_t check_for_completion( - const asio::error_code& ec, - std::size_t total_transferred) - { - return detail::adapt_completion_condition_result( - completion_condition_(ec, total_transferred)); - } - -private: - CompletionCondition completion_condition_; -}; - -template <> -class base_from_completion_cond -{ -protected: - explicit base_from_completion_cond(transfer_all_t) - { - } - - static std::size_t check_for_completion( - const asio::error_code& ec, - std::size_t total_transferred) - { - return transfer_all_t()(ec, total_transferred); - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_BASE_FROM_COMPLETION_COND_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/bind_handler.hpp b/Sources/Vendor/asio/include/asio/detail/bind_handler.hpp deleted file mode 100644 index 0f4f066..0000000 --- a/Sources/Vendor/asio/include/asio/detail/bind_handler.hpp +++ /dev/null @@ -1,816 +0,0 @@ -// -// detail/bind_handler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_BIND_HANDLER_HPP -#define ASIO_DETAIL_BIND_HANDLER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class binder1 -{ -public: - template - binder1(int, ASIO_MOVE_ARG(T) handler, const Arg1& arg1) - : handler_(ASIO_MOVE_CAST(T)(handler)), - arg1_(arg1) - { - } - - binder1(Handler& handler, const Arg1& arg1) - : handler_(ASIO_MOVE_CAST(Handler)(handler)), - arg1_(arg1) - { - } - -#if defined(ASIO_HAS_MOVE) - binder1(const binder1& other) - : handler_(other.handler_), - arg1_(other.arg1_) - { - } - - binder1(binder1&& other) - : handler_(ASIO_MOVE_CAST(Handler)(other.handler_)), - arg1_(ASIO_MOVE_CAST(Arg1)(other.arg1_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - handler_(static_cast(arg1_)); - } - - void operator()() const - { - handler_(arg1_); - } - -//private: - Handler handler_; - Arg1 arg1_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder1* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder1* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - binder1* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - binder1* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder1* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline binder1::type, Arg1> bind_handler( - ASIO_MOVE_ARG(Handler) handler, const Arg1& arg1) -{ - return binder1::type, Arg1>(0, - ASIO_MOVE_CAST(Handler)(handler), arg1); -} - -template -class binder2 -{ -public: - template - binder2(int, ASIO_MOVE_ARG(T) handler, - const Arg1& arg1, const Arg2& arg2) - : handler_(ASIO_MOVE_CAST(T)(handler)), - arg1_(arg1), - arg2_(arg2) - { - } - - binder2(Handler& handler, const Arg1& arg1, const Arg2& arg2) - : handler_(ASIO_MOVE_CAST(Handler)(handler)), - arg1_(arg1), - arg2_(arg2) - { - } - -#if defined(ASIO_HAS_MOVE) - binder2(const binder2& other) - : handler_(other.handler_), - arg1_(other.arg1_), - arg2_(other.arg2_) - { - } - - binder2(binder2&& other) - : handler_(ASIO_MOVE_CAST(Handler)(other.handler_)), - arg1_(ASIO_MOVE_CAST(Arg1)(other.arg1_)), - arg2_(ASIO_MOVE_CAST(Arg2)(other.arg2_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - handler_(static_cast(arg1_), - static_cast(arg2_)); - } - - void operator()() const - { - handler_(arg1_, arg2_); - } - -//private: - Handler handler_; - Arg1 arg1_; - Arg2 arg2_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder2* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder2* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - binder2* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - binder2* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder2* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline binder2::type, Arg1, Arg2> bind_handler( - ASIO_MOVE_ARG(Handler) handler, const Arg1& arg1, const Arg2& arg2) -{ - return binder2::type, Arg1, Arg2>(0, - ASIO_MOVE_CAST(Handler)(handler), arg1, arg2); -} - -template -class binder3 -{ -public: - template - binder3(int, ASIO_MOVE_ARG(T) handler, const Arg1& arg1, - const Arg2& arg2, const Arg3& arg3) - : handler_(ASIO_MOVE_CAST(T)(handler)), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3) - { - } - - binder3(Handler& handler, const Arg1& arg1, - const Arg2& arg2, const Arg3& arg3) - : handler_(ASIO_MOVE_CAST(Handler)(handler)), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3) - { - } - -#if defined(ASIO_HAS_MOVE) - binder3(const binder3& other) - : handler_(other.handler_), - arg1_(other.arg1_), - arg2_(other.arg2_), - arg3_(other.arg3_) - { - } - - binder3(binder3&& other) - : handler_(ASIO_MOVE_CAST(Handler)(other.handler_)), - arg1_(ASIO_MOVE_CAST(Arg1)(other.arg1_)), - arg2_(ASIO_MOVE_CAST(Arg2)(other.arg2_)), - arg3_(ASIO_MOVE_CAST(Arg3)(other.arg3_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - handler_(static_cast(arg1_), - static_cast(arg2_), static_cast(arg3_)); - } - - void operator()() const - { - handler_(arg1_, arg2_, arg3_); - } - -//private: - Handler handler_; - Arg1 arg1_; - Arg2 arg2_; - Arg3 arg3_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder3* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder3* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - binder3* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - binder3* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder3* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline binder3::type, Arg1, Arg2, Arg3> bind_handler( - ASIO_MOVE_ARG(Handler) handler, const Arg1& arg1, const Arg2& arg2, - const Arg3& arg3) -{ - return binder3::type, Arg1, Arg2, Arg3>(0, - ASIO_MOVE_CAST(Handler)(handler), arg1, arg2, arg3); -} - -template -class binder4 -{ -public: - template - binder4(int, ASIO_MOVE_ARG(T) handler, const Arg1& arg1, - const Arg2& arg2, const Arg3& arg3, const Arg4& arg4) - : handler_(ASIO_MOVE_CAST(T)(handler)), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3), - arg4_(arg4) - { - } - - binder4(Handler& handler, const Arg1& arg1, - const Arg2& arg2, const Arg3& arg3, const Arg4& arg4) - : handler_(ASIO_MOVE_CAST(Handler)(handler)), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3), - arg4_(arg4) - { - } - -#if defined(ASIO_HAS_MOVE) - binder4(const binder4& other) - : handler_(other.handler_), - arg1_(other.arg1_), - arg2_(other.arg2_), - arg3_(other.arg3_), - arg4_(other.arg4_) - { - } - - binder4(binder4&& other) - : handler_(ASIO_MOVE_CAST(Handler)(other.handler_)), - arg1_(ASIO_MOVE_CAST(Arg1)(other.arg1_)), - arg2_(ASIO_MOVE_CAST(Arg2)(other.arg2_)), - arg3_(ASIO_MOVE_CAST(Arg3)(other.arg3_)), - arg4_(ASIO_MOVE_CAST(Arg4)(other.arg4_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - handler_(static_cast(arg1_), - static_cast(arg2_), static_cast(arg3_), - static_cast(arg4_)); - } - - void operator()() const - { - handler_(arg1_, arg2_, arg3_, arg4_); - } - -//private: - Handler handler_; - Arg1 arg1_; - Arg2 arg2_; - Arg3 arg3_; - Arg4 arg4_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder4* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder4* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - binder4* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - binder4* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder4* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline binder4::type, Arg1, Arg2, Arg3, Arg4> -bind_handler(ASIO_MOVE_ARG(Handler) handler, const Arg1& arg1, - const Arg2& arg2, const Arg3& arg3, const Arg4& arg4) -{ - return binder4::type, Arg1, Arg2, Arg3, Arg4>(0, - ASIO_MOVE_CAST(Handler)(handler), arg1, arg2, arg3, arg4); -} - -template -class binder5 -{ -public: - template - binder5(int, ASIO_MOVE_ARG(T) handler, const Arg1& arg1, - const Arg2& arg2, const Arg3& arg3, const Arg4& arg4, const Arg5& arg5) - : handler_(ASIO_MOVE_CAST(T)(handler)), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3), - arg4_(arg4), - arg5_(arg5) - { - } - - binder5(Handler& handler, const Arg1& arg1, const Arg2& arg2, - const Arg3& arg3, const Arg4& arg4, const Arg5& arg5) - : handler_(ASIO_MOVE_CAST(Handler)(handler)), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3), - arg4_(arg4), - arg5_(arg5) - { - } - -#if defined(ASIO_HAS_MOVE) - binder5(const binder5& other) - : handler_(other.handler_), - arg1_(other.arg1_), - arg2_(other.arg2_), - arg3_(other.arg3_), - arg4_(other.arg4_), - arg5_(other.arg5_) - { - } - - binder5(binder5&& other) - : handler_(ASIO_MOVE_CAST(Handler)(other.handler_)), - arg1_(ASIO_MOVE_CAST(Arg1)(other.arg1_)), - arg2_(ASIO_MOVE_CAST(Arg2)(other.arg2_)), - arg3_(ASIO_MOVE_CAST(Arg3)(other.arg3_)), - arg4_(ASIO_MOVE_CAST(Arg4)(other.arg4_)), - arg5_(ASIO_MOVE_CAST(Arg5)(other.arg5_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - handler_(static_cast(arg1_), - static_cast(arg2_), static_cast(arg3_), - static_cast(arg4_), static_cast(arg5_)); - } - - void operator()() const - { - handler_(arg1_, arg2_, arg3_, arg4_, arg5_); - } - -//private: - Handler handler_; - Arg1 arg1_; - Arg2 arg2_; - Arg3 arg3_; - Arg4 arg4_; - Arg5 arg5_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder5* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder5* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - binder5* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - binder5* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder5* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline binder5::type, Arg1, Arg2, Arg3, Arg4, Arg5> -bind_handler(ASIO_MOVE_ARG(Handler) handler, const Arg1& arg1, - const Arg2& arg2, const Arg3& arg3, const Arg4& arg4, const Arg5& arg5) -{ - return binder5::type, Arg1, Arg2, Arg3, Arg4, Arg5>(0, - ASIO_MOVE_CAST(Handler)(handler), arg1, arg2, arg3, arg4, arg5); -} - -#if defined(ASIO_HAS_MOVE) - -template -class move_binder1 -{ -public: - move_binder1(int, ASIO_MOVE_ARG(Handler) handler, - ASIO_MOVE_ARG(Arg1) arg1) - : handler_(ASIO_MOVE_CAST(Handler)(handler)), - arg1_(ASIO_MOVE_CAST(Arg1)(arg1)) - { - } - - move_binder1(move_binder1&& other) - : handler_(ASIO_MOVE_CAST(Handler)(other.handler_)), - arg1_(ASIO_MOVE_CAST(Arg1)(other.arg1_)) - { - } - - void operator()() - { - handler_(ASIO_MOVE_CAST(Arg1)(arg1_)); - } - -//private: - Handler handler_; - Arg1 arg1_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - move_binder1* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - move_binder1* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - move_binder1* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(ASIO_MOVE_ARG(Function) function, - move_binder1* this_handler) -{ - asio_handler_invoke_helpers::invoke( - ASIO_MOVE_CAST(Function)(function), this_handler->handler_); -} - -template -class move_binder2 -{ -public: - move_binder2(int, ASIO_MOVE_ARG(Handler) handler, - const Arg1& arg1, ASIO_MOVE_ARG(Arg2) arg2) - : handler_(ASIO_MOVE_CAST(Handler)(handler)), - arg1_(arg1), - arg2_(ASIO_MOVE_CAST(Arg2)(arg2)) - { - } - - move_binder2(move_binder2&& other) - : handler_(ASIO_MOVE_CAST(Handler)(other.handler_)), - arg1_(ASIO_MOVE_CAST(Arg1)(other.arg1_)), - arg2_(ASIO_MOVE_CAST(Arg2)(other.arg2_)) - { - } - - void operator()() - { - handler_(static_cast(arg1_), - ASIO_MOVE_CAST(Arg2)(arg2_)); - } - -//private: - Handler handler_; - Arg1 arg1_; - Arg2 arg2_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - move_binder2* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - move_binder2* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - move_binder2* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(ASIO_MOVE_ARG(Function) function, - move_binder2* this_handler) -{ - asio_handler_invoke_helpers::invoke( - ASIO_MOVE_CAST(Function)(function), this_handler->handler_); -} - -#endif // defined(ASIO_HAS_MOVE) - -} // namespace detail - -template -struct associated_allocator, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const detail::binder1& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_allocator, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const detail::binder2& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const detail::binder1& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -template -struct associated_executor, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const detail::binder2& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#if defined(ASIO_HAS_MOVE) - -template -struct associated_allocator, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const detail::move_binder1& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_allocator< - detail::move_binder2, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const detail::move_binder2& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const detail::move_binder1& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -template -struct associated_executor, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const detail::move_binder2& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // defined(ASIO_HAS_MOVE) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_BIND_HANDLER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/buffer_resize_guard.hpp b/Sources/Vendor/asio/include/asio/detail/buffer_resize_guard.hpp deleted file mode 100644 index 58ebc4c..0000000 --- a/Sources/Vendor/asio/include/asio/detail/buffer_resize_guard.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// -// detail/buffer_resize_guard.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_BUFFER_RESIZE_GUARD_HPP -#define ASIO_DETAIL_BUFFER_RESIZE_GUARD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/limits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Helper class to manage buffer resizing in an exception safe way. -template -class buffer_resize_guard -{ -public: - // Constructor. - buffer_resize_guard(Buffer& buffer) - : buffer_(buffer), - old_size_(buffer.size()) - { - } - - // Destructor rolls back the buffer resize unless commit was called. - ~buffer_resize_guard() - { - if (old_size_ != (std::numeric_limits::max)()) - { - buffer_.resize(old_size_); - } - } - - // Commit the resize transaction. - void commit() - { - old_size_ = (std::numeric_limits::max)(); - } - -private: - // The buffer being managed. - Buffer& buffer_; - - // The size of the buffer at the time the guard was constructed. - size_t old_size_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_BUFFER_RESIZE_GUARD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/buffer_sequence_adapter.hpp b/Sources/Vendor/asio/include/asio/detail/buffer_sequence_adapter.hpp deleted file mode 100644 index 92a8e3d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/buffer_sequence_adapter.hpp +++ /dev/null @@ -1,544 +0,0 @@ -// -// detail/buffer_sequence_adapter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_BUFFER_SEQUENCE_ADAPTER_HPP -#define ASIO_DETAIL_BUFFER_SEQUENCE_ADAPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/buffer.hpp" -#include "asio/detail/array_fwd.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class buffer_sequence_adapter_base -{ -#if defined(ASIO_WINDOWS_RUNTIME) -public: - // The maximum number of buffers to support in a single operation. - enum { max_buffers = 1 }; - -protected: - typedef Windows::Storage::Streams::IBuffer^ native_buffer_type; - - ASIO_DECL static void init_native_buffer( - native_buffer_type& buf, - const asio::mutable_buffer& buffer); - - ASIO_DECL static void init_native_buffer( - native_buffer_type& buf, - const asio::const_buffer& buffer); -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) -public: - // The maximum number of buffers to support in a single operation. - enum { max_buffers = 64 < max_iov_len ? 64 : max_iov_len }; - -protected: - typedef WSABUF native_buffer_type; - - static void init_native_buffer(WSABUF& buf, - const asio::mutable_buffer& buffer) - { - buf.buf = static_cast(buffer.data()); - buf.len = static_cast(buffer.size()); - } - - static void init_native_buffer(WSABUF& buf, - const asio::const_buffer& buffer) - { - buf.buf = const_cast(static_cast(buffer.data())); - buf.len = static_cast(buffer.size()); - } -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -public: - // The maximum number of buffers to support in a single operation. - enum { max_buffers = 64 < max_iov_len ? 64 : max_iov_len }; - -protected: - typedef iovec native_buffer_type; - - static void init_iov_base(void*& base, void* addr) - { - base = addr; - } - - template - static void init_iov_base(T& base, void* addr) - { - base = static_cast(addr); - } - - static void init_native_buffer(iovec& iov, - const asio::mutable_buffer& buffer) - { - init_iov_base(iov.iov_base, buffer.data()); - iov.iov_len = buffer.size(); - } - - static void init_native_buffer(iovec& iov, - const asio::const_buffer& buffer) - { - init_iov_base(iov.iov_base, const_cast(buffer.data())); - iov.iov_len = buffer.size(); - } -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -}; - -// Helper class to translate buffers into the native buffer representation. -template -class buffer_sequence_adapter - : buffer_sequence_adapter_base -{ -public: - explicit buffer_sequence_adapter(const Buffers& buffer_sequence) - : count_(0), total_buffer_size_(0) - { - buffer_sequence_adapter::init( - asio::buffer_sequence_begin(buffer_sequence), - asio::buffer_sequence_end(buffer_sequence)); - } - - native_buffer_type* buffers() - { - return buffers_; - } - - std::size_t count() const - { - return count_; - } - - std::size_t total_size() const - { - return total_buffer_size_; - } - - bool all_empty() const - { - return total_buffer_size_ == 0; - } - - static bool all_empty(const Buffers& buffer_sequence) - { - return buffer_sequence_adapter::all_empty( - asio::buffer_sequence_begin(buffer_sequence), - asio::buffer_sequence_end(buffer_sequence)); - } - - static void validate(const Buffers& buffer_sequence) - { - buffer_sequence_adapter::validate( - asio::buffer_sequence_begin(buffer_sequence), - asio::buffer_sequence_end(buffer_sequence)); - } - - static Buffer first(const Buffers& buffer_sequence) - { - return buffer_sequence_adapter::first( - asio::buffer_sequence_begin(buffer_sequence), - asio::buffer_sequence_end(buffer_sequence)); - } - -private: - template - void init(Iterator begin, Iterator end) - { - Iterator iter = begin; - for (; iter != end && count_ < max_buffers; ++iter, ++count_) - { - Buffer buffer(*iter); - init_native_buffer(buffers_[count_], buffer); - total_buffer_size_ += buffer.size(); - } - } - - template - static bool all_empty(Iterator begin, Iterator end) - { - Iterator iter = begin; - std::size_t i = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - if (Buffer(*iter).size() > 0) - return false; - return true; - } - - template - static void validate(Iterator begin, Iterator end) - { - Iterator iter = begin; - for (; iter != end; ++iter) - { - Buffer buffer(*iter); - buffer.data(); - } - } - - template - static Buffer first(Iterator begin, Iterator end) - { - Iterator iter = begin; - for (; iter != end; ++iter) - { - Buffer buffer(*iter); - if (buffer.size() != 0) - return buffer; - } - return Buffer(); - } - - native_buffer_type buffers_[max_buffers]; - std::size_t count_; - std::size_t total_buffer_size_; -}; - -template -class buffer_sequence_adapter - : buffer_sequence_adapter_base -{ -public: - explicit buffer_sequence_adapter( - const asio::mutable_buffer& buffer_sequence) - { - init_native_buffer(buffer_, Buffer(buffer_sequence)); - total_buffer_size_ = buffer_sequence.size(); - } - - native_buffer_type* buffers() - { - return &buffer_; - } - - std::size_t count() const - { - return 1; - } - - std::size_t total_size() const - { - return total_buffer_size_; - } - - bool all_empty() const - { - return total_buffer_size_ == 0; - } - - static bool all_empty(const asio::mutable_buffer& buffer_sequence) - { - return buffer_sequence.size() == 0; - } - - static void validate(const asio::mutable_buffer& buffer_sequence) - { - buffer_sequence.data(); - } - - static Buffer first(const asio::mutable_buffer& buffer_sequence) - { - return Buffer(buffer_sequence); - } - -private: - native_buffer_type buffer_; - std::size_t total_buffer_size_; -}; - -template -class buffer_sequence_adapter - : buffer_sequence_adapter_base -{ -public: - explicit buffer_sequence_adapter( - const asio::const_buffer& buffer_sequence) - { - init_native_buffer(buffer_, Buffer(buffer_sequence)); - total_buffer_size_ = buffer_sequence.size(); - } - - native_buffer_type* buffers() - { - return &buffer_; - } - - std::size_t count() const - { - return 1; - } - - std::size_t total_size() const - { - return total_buffer_size_; - } - - bool all_empty() const - { - return total_buffer_size_ == 0; - } - - static bool all_empty(const asio::const_buffer& buffer_sequence) - { - return buffer_sequence.size() == 0; - } - - static void validate(const asio::const_buffer& buffer_sequence) - { - buffer_sequence.data(); - } - - static Buffer first(const asio::const_buffer& buffer_sequence) - { - return Buffer(buffer_sequence); - } - -private: - native_buffer_type buffer_; - std::size_t total_buffer_size_; -}; - -#if !defined(ASIO_NO_DEPRECATED) - -template -class buffer_sequence_adapter - : buffer_sequence_adapter_base -{ -public: - explicit buffer_sequence_adapter( - const asio::mutable_buffers_1& buffer_sequence) - { - init_native_buffer(buffer_, Buffer(buffer_sequence)); - total_buffer_size_ = buffer_sequence.size(); - } - - native_buffer_type* buffers() - { - return &buffer_; - } - - std::size_t count() const - { - return 1; - } - - std::size_t total_size() const - { - return total_buffer_size_; - } - - bool all_empty() const - { - return total_buffer_size_ == 0; - } - - static bool all_empty(const asio::mutable_buffers_1& buffer_sequence) - { - return buffer_sequence.size() == 0; - } - - static void validate(const asio::mutable_buffers_1& buffer_sequence) - { - buffer_sequence.data(); - } - - static Buffer first(const asio::mutable_buffers_1& buffer_sequence) - { - return Buffer(buffer_sequence); - } - -private: - native_buffer_type buffer_; - std::size_t total_buffer_size_; -}; - -template -class buffer_sequence_adapter - : buffer_sequence_adapter_base -{ -public: - explicit buffer_sequence_adapter( - const asio::const_buffers_1& buffer_sequence) - { - init_native_buffer(buffer_, Buffer(buffer_sequence)); - total_buffer_size_ = buffer_sequence.size(); - } - - native_buffer_type* buffers() - { - return &buffer_; - } - - std::size_t count() const - { - return 1; - } - - std::size_t total_size() const - { - return total_buffer_size_; - } - - bool all_empty() const - { - return total_buffer_size_ == 0; - } - - static bool all_empty(const asio::const_buffers_1& buffer_sequence) - { - return buffer_sequence.size() == 0; - } - - static void validate(const asio::const_buffers_1& buffer_sequence) - { - buffer_sequence.data(); - } - - static Buffer first(const asio::const_buffers_1& buffer_sequence) - { - return Buffer(buffer_sequence); - } - -private: - native_buffer_type buffer_; - std::size_t total_buffer_size_; -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -class buffer_sequence_adapter > - : buffer_sequence_adapter_base -{ -public: - explicit buffer_sequence_adapter( - const boost::array& buffer_sequence) - { - init_native_buffer(buffers_[0], Buffer(buffer_sequence[0])); - init_native_buffer(buffers_[1], Buffer(buffer_sequence[1])); - total_buffer_size_ = buffer_sequence[0].size() + buffer_sequence[1].size(); - } - - native_buffer_type* buffers() - { - return buffers_; - } - - std::size_t count() const - { - return 2; - } - - std::size_t total_size() const - { - return total_buffer_size_; - } - - bool all_empty() const - { - return total_buffer_size_ == 0; - } - - static bool all_empty(const boost::array& buffer_sequence) - { - return buffer_sequence[0].size() == 0 && buffer_sequence[1].size() == 0; - } - - static void validate(const boost::array& buffer_sequence) - { - buffer_sequence[0].data(); - buffer_sequence[1].data(); - } - - static Buffer first(const boost::array& buffer_sequence) - { - return Buffer(buffer_sequence[0].size() != 0 - ? buffer_sequence[0] : buffer_sequence[1]); - } - -private: - native_buffer_type buffers_[2]; - std::size_t total_buffer_size_; -}; - -#if defined(ASIO_HAS_STD_ARRAY) - -template -class buffer_sequence_adapter > - : buffer_sequence_adapter_base -{ -public: - explicit buffer_sequence_adapter( - const std::array& buffer_sequence) - { - init_native_buffer(buffers_[0], Buffer(buffer_sequence[0])); - init_native_buffer(buffers_[1], Buffer(buffer_sequence[1])); - total_buffer_size_ = buffer_sequence[0].size() + buffer_sequence[1].size(); - } - - native_buffer_type* buffers() - { - return buffers_; - } - - std::size_t count() const - { - return 2; - } - - std::size_t total_size() const - { - return total_buffer_size_; - } - - bool all_empty() const - { - return total_buffer_size_ == 0; - } - - static bool all_empty(const std::array& buffer_sequence) - { - return buffer_sequence[0].size() == 0 && buffer_sequence[1].size() == 0; - } - - static void validate(const std::array& buffer_sequence) - { - buffer_sequence[0].data(); - buffer_sequence[1].data(); - } - - static Buffer first(const std::array& buffer_sequence) - { - return Buffer(buffer_sequence[0].size() != 0 - ? buffer_sequence[0] : buffer_sequence[1]); - } - -private: - native_buffer_type buffers_[2]; - std::size_t total_buffer_size_; -}; - -#endif // defined(ASIO_HAS_STD_ARRAY) - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/buffer_sequence_adapter.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_BUFFER_SEQUENCE_ADAPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/buffered_stream_storage.hpp b/Sources/Vendor/asio/include/asio/detail/buffered_stream_storage.hpp deleted file mode 100644 index c5eb081..0000000 --- a/Sources/Vendor/asio/include/asio/detail/buffered_stream_storage.hpp +++ /dev/null @@ -1,126 +0,0 @@ -// -// detail/buffered_stream_storage.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_BUFFERED_STREAM_STORAGE_HPP -#define ASIO_DETAIL_BUFFERED_STREAM_STORAGE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/buffer.hpp" -#include "asio/detail/assert.hpp" -#include -#include -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class buffered_stream_storage -{ -public: - // The type of the bytes stored in the buffer. - typedef unsigned char byte_type; - - // The type used for offsets into the buffer. - typedef std::size_t size_type; - - // Constructor. - explicit buffered_stream_storage(std::size_t buffer_capacity) - : begin_offset_(0), - end_offset_(0), - buffer_(buffer_capacity) - { - } - - /// Clear the buffer. - void clear() - { - begin_offset_ = 0; - end_offset_ = 0; - } - - // Return a pointer to the beginning of the unread data. - mutable_buffer data() - { - return asio::buffer(buffer_) + begin_offset_; - } - - // Return a pointer to the beginning of the unread data. - const_buffer data() const - { - return asio::buffer(buffer_) + begin_offset_; - } - - // Is there no unread data in the buffer. - bool empty() const - { - return begin_offset_ == end_offset_; - } - - // Return the amount of unread data the is in the buffer. - size_type size() const - { - return end_offset_ - begin_offset_; - } - - // Resize the buffer to the specified length. - void resize(size_type length) - { - ASIO_ASSERT(length <= capacity()); - if (begin_offset_ + length <= capacity()) - { - end_offset_ = begin_offset_ + length; - } - else - { - using namespace std; // For memmove. - memmove(&buffer_[0], &buffer_[0] + begin_offset_, size()); - end_offset_ = length; - begin_offset_ = 0; - } - } - - // Return the maximum size for data in the buffer. - size_type capacity() const - { - return buffer_.size(); - } - - // Consume multiple bytes from the beginning of the buffer. - void consume(size_type count) - { - ASIO_ASSERT(begin_offset_ + count <= end_offset_); - begin_offset_ += count; - if (empty()) - clear(); - } - -private: - // The offset to the beginning of the unread data. - size_type begin_offset_; - - // The offset to the end of the unread data. - size_type end_offset_; - - // The data in the buffer. - std::vector buffer_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_BUFFERED_STREAM_STORAGE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/call_stack.hpp b/Sources/Vendor/asio/include/asio/detail/call_stack.hpp deleted file mode 100644 index 5725a10..0000000 --- a/Sources/Vendor/asio/include/asio/detail/call_stack.hpp +++ /dev/null @@ -1,125 +0,0 @@ -// -// detail/call_stack.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_CALL_STACK_HPP -#define ASIO_DETAIL_CALL_STACK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/tss_ptr.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Helper class to determine whether or not the current thread is inside an -// invocation of io_context::run() for a specified io_context object. -template -class call_stack -{ -public: - // Context class automatically pushes the key/value pair on to the stack. - class context - : private noncopyable - { - public: - // Push the key on to the stack. - explicit context(Key* k) - : key_(k), - next_(call_stack::top_) - { - value_ = reinterpret_cast(this); - call_stack::top_ = this; - } - - // Push the key/value pair on to the stack. - context(Key* k, Value& v) - : key_(k), - value_(&v), - next_(call_stack::top_) - { - call_stack::top_ = this; - } - - // Pop the key/value pair from the stack. - ~context() - { - call_stack::top_ = next_; - } - - // Find the next context with the same key. - Value* next_by_key() const - { - context* elem = next_; - while (elem) - { - if (elem->key_ == key_) - return elem->value_; - elem = elem->next_; - } - return 0; - } - - private: - friend class call_stack; - - // The key associated with the context. - Key* key_; - - // The value associated with the context. - Value* value_; - - // The next element in the stack. - context* next_; - }; - - friend class context; - - // Determine whether the specified owner is on the stack. Returns address of - // key if present, 0 otherwise. - static Value* contains(Key* k) - { - context* elem = top_; - while (elem) - { - if (elem->key_ == k) - return elem->value_; - elem = elem->next_; - } - return 0; - } - - // Obtain the value at the top of the stack. - static Value* top() - { - context* elem = top_; - return elem ? elem->value_ : 0; - } - -private: - // The top of the stack of calls for the current thread. - static tss_ptr top_; -}; - -template -tss_ptr::context> -call_stack::top_; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_CALL_STACK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/chrono.hpp b/Sources/Vendor/asio/include/asio/detail/chrono.hpp deleted file mode 100644 index 8f56bee..0000000 --- a/Sources/Vendor/asio/include/asio/detail/chrono.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// -// detail/chrono.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_CHRONO_HPP -#define ASIO_DETAIL_CHRONO_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_STD_CHRONO) -# include -#elif defined(ASIO_HAS_BOOST_CHRONO) -# include -#endif // defined(ASIO_HAS_BOOST_CHRONO) - -namespace asio { -namespace chrono { - -#if defined(ASIO_HAS_STD_CHRONO) -using std::chrono::duration; -using std::chrono::time_point; -using std::chrono::duration_cast; -using std::chrono::nanoseconds; -using std::chrono::microseconds; -using std::chrono::milliseconds; -using std::chrono::seconds; -using std::chrono::minutes; -using std::chrono::hours; -using std::chrono::time_point_cast; -#if defined(ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK) -typedef std::chrono::monotonic_clock steady_clock; -#else // defined(ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK) -using std::chrono::steady_clock; -#endif // defined(ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK) -using std::chrono::system_clock; -using std::chrono::high_resolution_clock; -#elif defined(ASIO_HAS_BOOST_CHRONO) -using boost::chrono::duration; -using boost::chrono::time_point; -using boost::chrono::duration_cast; -using boost::chrono::nanoseconds; -using boost::chrono::microseconds; -using boost::chrono::milliseconds; -using boost::chrono::seconds; -using boost::chrono::minutes; -using boost::chrono::hours; -using boost::chrono::time_point_cast; -using boost::chrono::system_clock; -using boost::chrono::steady_clock; -using boost::chrono::high_resolution_clock; -#endif // defined(ASIO_HAS_BOOST_CHRONO) - -} // namespace chrono -} // namespace asio - -#endif // ASIO_DETAIL_CHRONO_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/chrono_time_traits.hpp b/Sources/Vendor/asio/include/asio/detail/chrono_time_traits.hpp deleted file mode 100644 index d1528f7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/chrono_time_traits.hpp +++ /dev/null @@ -1,190 +0,0 @@ -// -// detail/chrono_time_traits.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_CHRONO_TIME_TRAITS_HPP -#define ASIO_DETAIL_CHRONO_TIME_TRAITS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/cstdint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Helper template to compute the greatest common divisor. -template -struct gcd { enum { value = gcd::value }; }; - -template -struct gcd { enum { value = v1 }; }; - -// Adapts std::chrono clocks for use with a deadline timer. -template -struct chrono_time_traits -{ - // The clock type. - typedef Clock clock_type; - - // The duration type of the clock. - typedef typename clock_type::duration duration_type; - - // The time point type of the clock. - typedef typename clock_type::time_point time_type; - - // The period of the clock. - typedef typename duration_type::period period_type; - - // Get the current time. - static time_type now() - { - return clock_type::now(); - } - - // Add a duration to a time. - static time_type add(const time_type& t, const duration_type& d) - { - const time_type epoch; - if (t >= epoch) - { - if ((time_type::max)() - t < d) - return (time_type::max)(); - } - else // t < epoch - { - if (-(t - (time_type::min)()) > d) - return (time_type::min)(); - } - - return t + d; - } - - // Subtract one time from another. - static duration_type subtract(const time_type& t1, const time_type& t2) - { - const time_type epoch; - if (t1 >= epoch) - { - if (t2 >= epoch) - { - return t1 - t2; - } - else if (t2 == (time_type::min)()) - { - return (duration_type::max)(); - } - else if ((time_type::max)() - t1 < epoch - t2) - { - return (duration_type::max)(); - } - else - { - return t1 - t2; - } - } - else // t1 < epoch - { - if (t2 < epoch) - { - return t1 - t2; - } - else if (t1 == (time_type::min)()) - { - return (duration_type::min)(); - } - else if ((time_type::max)() - t2 < epoch - t1) - { - return (duration_type::min)(); - } - else - { - return -(t2 - t1); - } - } - } - - // Test whether one time is less than another. - static bool less_than(const time_type& t1, const time_type& t2) - { - return t1 < t2; - } - - // Implement just enough of the posix_time::time_duration interface to supply - // what the timer_queue requires. - class posix_time_duration - { - public: - explicit posix_time_duration(const duration_type& d) - : d_(d) - { - } - - int64_t ticks() const - { - return d_.count(); - } - - int64_t total_seconds() const - { - return duration_cast<1, 1>(); - } - - int64_t total_milliseconds() const - { - return duration_cast<1, 1000>(); - } - - int64_t total_microseconds() const - { - return duration_cast<1, 1000000>(); - } - - private: - template - int64_t duration_cast() const - { - const int64_t num1 = period_type::num / gcd::value; - const int64_t num2 = Num / gcd::value; - - const int64_t den1 = period_type::den / gcd::value; - const int64_t den2 = Den / gcd::value; - - const int64_t num = num1 * den2; - const int64_t den = num2 * den1; - - if (num == 1 && den == 1) - return ticks(); - else if (num != 1 && den == 1) - return ticks() * num; - else if (num == 1 && period_type::den != 1) - return ticks() / den; - else - return ticks() * num / den; - } - - duration_type d_; - }; - - // Convert to POSIX duration type. - static posix_time_duration to_posix_duration(const duration_type& d) - { - return posix_time_duration(WaitTraits::to_wait_duration(d)); - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_CHRONO_TIME_TRAITS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/completion_handler.hpp b/Sources/Vendor/asio/include/asio/detail/completion_handler.hpp deleted file mode 100644 index 58a2e6d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/completion_handler.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// -// detail/completion_handler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_COMPLETION_HANDLER_HPP -#define ASIO_DETAIL_COMPLETION_HANDLER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_work.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class completion_handler : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(completion_handler); - - completion_handler(Handler& h) - : operation(&completion_handler::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(h)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - completion_handler* h(static_cast(base)); - ptr p = { asio::detail::addressof(h->handler_), h, h }; - handler_work w(h->handler_); - - ASIO_HANDLER_COMPLETION((*h)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - Handler handler(ASIO_MOVE_CAST(Handler)(h->handler_)); - p.h = asio::detail::addressof(handler); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN(()); - w.complete(handler, handler); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_COMPLETION_HANDLER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/concurrency_hint.hpp b/Sources/Vendor/asio/include/asio/detail/concurrency_hint.hpp deleted file mode 100644 index 229124d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/concurrency_hint.hpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// detail/concurrency_hint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_CONCURRENCY_HINT_HPP -#define ASIO_DETAIL_CONCURRENCY_HINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/noncopyable.hpp" - -// The concurrency hint ID and mask are used to identify when a "well-known" -// concurrency hint value has been passed to the io_context. -#define ASIO_CONCURRENCY_HINT_ID 0xA5100000u -#define ASIO_CONCURRENCY_HINT_ID_MASK 0xFFFF0000u - -// If set, this bit indicates that the scheduler should perform locking. -#define ASIO_CONCURRENCY_HINT_LOCKING_SCHEDULER 0x1u - -// If set, this bit indicates that the reactor should perform locking when -// managing descriptor registrations. -#define ASIO_CONCURRENCY_HINT_LOCKING_REACTOR_REGISTRATION 0x2u - -// If set, this bit indicates that the reactor should perform locking for I/O. -#define ASIO_CONCURRENCY_HINT_LOCKING_REACTOR_IO 0x4u - -// Helper macro to determine if we have a special concurrency hint. -#define ASIO_CONCURRENCY_HINT_IS_SPECIAL(hint) \ - ((static_cast(hint) \ - & ASIO_CONCURRENCY_HINT_ID_MASK) \ - == ASIO_CONCURRENCY_HINT_ID) - -// Helper macro to determine if locking is enabled for a given facility. -#define ASIO_CONCURRENCY_HINT_IS_LOCKING(facility, hint) \ - (((static_cast(hint) \ - & (ASIO_CONCURRENCY_HINT_ID_MASK \ - | ASIO_CONCURRENCY_HINT_LOCKING_ ## facility)) \ - ^ ASIO_CONCURRENCY_HINT_ID) != 0) - -// This special concurrency hint disables locking in both the scheduler and -// reactor I/O. This hint has the following restrictions: -// -// - Care must be taken to ensure that all operations on the io_context and any -// of its associated I/O objects (such as sockets and timers) occur in only -// one thread at a time. -// -// - Asynchronous resolve operations fail with operation_not_supported. -// -// - If a signal_set is used with the io_context, signal_set objects cannot be -// used with any other io_context in the program. -#define ASIO_CONCURRENCY_HINT_UNSAFE \ - static_cast(ASIO_CONCURRENCY_HINT_ID) - -// This special concurrency hint disables locking in the reactor I/O. This hint -// has the following restrictions: -// -// - Care must be taken to ensure that run functions on the io_context, and all -// operations on the io_context's associated I/O objects (such as sockets and -// timers), occur in only one thread at a time. -#define ASIO_CONCURRENCY_HINT_UNSAFE_IO \ - static_cast(ASIO_CONCURRENCY_HINT_ID \ - | ASIO_CONCURRENCY_HINT_LOCKING_SCHEDULER \ - | ASIO_CONCURRENCY_HINT_LOCKING_REACTOR_REGISTRATION) - -// The special concurrency hint provides full thread safety. -#define ASIO_CONCURRENCY_HINT_SAFE \ - static_cast(ASIO_CONCURRENCY_HINT_ID \ - | ASIO_CONCURRENCY_HINT_LOCKING_SCHEDULER \ - | ASIO_CONCURRENCY_HINT_LOCKING_REACTOR_REGISTRATION \ - | ASIO_CONCURRENCY_HINT_LOCKING_REACTOR_IO) - -// This #define may be overridden at compile time to specify a program-wide -// default concurrency hint, used by the zero-argument io_context constructor. -#if !defined(ASIO_CONCURRENCY_HINT_DEFAULT) -# define ASIO_CONCURRENCY_HINT_DEFAULT -1 -#endif // !defined(ASIO_CONCURRENCY_HINT_DEFAULT) - -// This #define may be overridden at compile time to specify a program-wide -// concurrency hint, used by the one-argument io_context constructor when -// passed a value of 1. -#if !defined(ASIO_CONCURRENCY_HINT_1) -# define ASIO_CONCURRENCY_HINT_1 1 -#endif // !defined(ASIO_CONCURRENCY_HINT_DEFAULT) - -#endif // ASIO_DETAIL_CONCURRENCY_HINT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/conditionally_enabled_event.hpp b/Sources/Vendor/asio/include/asio/detail/conditionally_enabled_event.hpp deleted file mode 100644 index 0fda401..0000000 --- a/Sources/Vendor/asio/include/asio/detail/conditionally_enabled_event.hpp +++ /dev/null @@ -1,112 +0,0 @@ -// -// detail/conditionally_enabled_event.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_CONDITIONALLY_ENABLED_EVENT_HPP -#define ASIO_DETAIL_CONDITIONALLY_ENABLED_EVENT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/conditionally_enabled_mutex.hpp" -#include "asio/detail/event.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/null_event.hpp" -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Mutex adapter used to conditionally enable or disable locking. -class conditionally_enabled_event - : private noncopyable -{ -public: - // Constructor. - conditionally_enabled_event() - { - } - - // Destructor. - ~conditionally_enabled_event() - { - } - - // Signal the event. (Retained for backward compatibility.) - void signal(conditionally_enabled_mutex::scoped_lock& lock) - { - if (lock.mutex_.enabled_) - event_.signal(lock); - } - - // Signal all waiters. - void signal_all(conditionally_enabled_mutex::scoped_lock& lock) - { - if (lock.mutex_.enabled_) - event_.signal_all(lock); - } - - // Unlock the mutex and signal one waiter. - void unlock_and_signal_one( - conditionally_enabled_mutex::scoped_lock& lock) - { - if (lock.mutex_.enabled_) - event_.unlock_and_signal_one(lock); - } - - // If there's a waiter, unlock the mutex and signal it. - bool maybe_unlock_and_signal_one( - conditionally_enabled_mutex::scoped_lock& lock) - { - if (lock.mutex_.enabled_) - return event_.maybe_unlock_and_signal_one(lock); - else - return false; - } - - // Reset the event. - void clear(conditionally_enabled_mutex::scoped_lock& lock) - { - if (lock.mutex_.enabled_) - event_.clear(lock); - } - - // Wait for the event to become signalled. - void wait(conditionally_enabled_mutex::scoped_lock& lock) - { - if (lock.mutex_.enabled_) - event_.wait(lock); - else - null_event().wait(lock); - } - - // Timed wait for the event to become signalled. - bool wait_for_usec( - conditionally_enabled_mutex::scoped_lock& lock, long usec) - { - if (lock.mutex_.enabled_) - return event_.wait_for_usec(lock, usec); - else - return null_event().wait_for_usec(lock, usec); - } - -private: - asio::detail::event event_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_CONDITIONALLY_ENABLED_EVENT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/conditionally_enabled_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/conditionally_enabled_mutex.hpp deleted file mode 100644 index 2872db9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/conditionally_enabled_mutex.hpp +++ /dev/null @@ -1,149 +0,0 @@ -// -// detail/conditionally_enabled_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_CONDITIONALLY_ENABLED_MUTEX_HPP -#define ASIO_DETAIL_CONDITIONALLY_ENABLED_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Mutex adapter used to conditionally enable or disable locking. -class conditionally_enabled_mutex - : private noncopyable -{ -public: - // Helper class to lock and unlock a mutex automatically. - class scoped_lock - : private noncopyable - { - public: - // Tag type used to distinguish constructors. - enum adopt_lock_t { adopt_lock }; - - // Constructor adopts a lock that is already held. - scoped_lock(conditionally_enabled_mutex& m, adopt_lock_t) - : mutex_(m), - locked_(m.enabled_) - { - } - - // Constructor acquires the lock. - explicit scoped_lock(conditionally_enabled_mutex& m) - : mutex_(m) - { - if (m.enabled_) - { - mutex_.mutex_.lock(); - locked_ = true; - } - else - locked_ = false; - } - - // Destructor releases the lock. - ~scoped_lock() - { - if (locked_) - mutex_.mutex_.unlock(); - } - - // Explicitly acquire the lock. - void lock() - { - if (mutex_.enabled_ && !locked_) - { - mutex_.mutex_.lock(); - locked_ = true; - } - } - - // Explicitly release the lock. - void unlock() - { - if (locked_) - { - mutex_.unlock(); - locked_ = false; - } - } - - // Test whether the lock is held. - bool locked() const - { - return locked_; - } - - // Get the underlying mutex. - asio::detail::mutex& mutex() - { - return mutex_.mutex_; - } - - private: - friend class conditionally_enabled_event; - conditionally_enabled_mutex& mutex_; - bool locked_; - }; - - // Constructor. - explicit conditionally_enabled_mutex(bool enabled) - : enabled_(enabled) - { - } - - // Destructor. - ~conditionally_enabled_mutex() - { - } - - // Determine whether locking is enabled. - bool enabled() const - { - return enabled_; - } - - // Lock the mutex. - void lock() - { - if (enabled_) - mutex_.lock(); - } - - // Unlock the mutex. - void unlock() - { - if (enabled_) - mutex_.unlock(); - } - -private: - friend class scoped_lock; - friend class conditionally_enabled_event; - asio::detail::mutex mutex_; - const bool enabled_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_CONDITIONALLY_ENABLED_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/config.hpp b/Sources/Vendor/asio/include/asio/detail/config.hpp deleted file mode 100644 index e54eea7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/config.hpp +++ /dev/null @@ -1,1456 +0,0 @@ -// -// detail/config.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_CONFIG_HPP -#define ASIO_DETAIL_CONFIG_HPP - -#if defined(ASIO_STANDALONE) -# define ASIO_DISABLE_BOOST_ARRAY 1 -# define ASIO_DISABLE_BOOST_ASSERT 1 -# define ASIO_DISABLE_BOOST_BIND 1 -# define ASIO_DISABLE_BOOST_CHRONO 1 -# define ASIO_DISABLE_BOOST_DATE_TIME 1 -# define ASIO_DISABLE_BOOST_LIMITS 1 -# define ASIO_DISABLE_BOOST_REGEX 1 -# define ASIO_DISABLE_BOOST_STATIC_CONSTANT 1 -# define ASIO_DISABLE_BOOST_THROW_EXCEPTION 1 -# define ASIO_DISABLE_BOOST_WORKAROUND 1 -#else // defined(ASIO_STANDALONE) -# include -# include -# define ASIO_HAS_BOOST_CONFIG 1 -#endif // defined(ASIO_STANDALONE) - -// Default to a header-only implementation. The user must specifically request -// separate compilation by defining either ASIO_SEPARATE_COMPILATION or -// ASIO_DYN_LINK (as a DLL/shared library implies separate compilation). -#if !defined(ASIO_HEADER_ONLY) -# if !defined(ASIO_SEPARATE_COMPILATION) -# if !defined(ASIO_DYN_LINK) -# define ASIO_HEADER_ONLY 1 -# endif // !defined(ASIO_DYN_LINK) -# endif // !defined(ASIO_SEPARATE_COMPILATION) -#endif // !defined(ASIO_HEADER_ONLY) - -#if defined(ASIO_HEADER_ONLY) -# define ASIO_DECL inline -#else // defined(ASIO_HEADER_ONLY) -# if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__CODEGEARC__) -// We need to import/export our code only if the user has specifically asked -// for it by defining ASIO_DYN_LINK. -# if defined(ASIO_DYN_LINK) -// Export if this is our own source, otherwise import. -# if defined(ASIO_SOURCE) -# define ASIO_DECL __declspec(dllexport) -# else // defined(ASIO_SOURCE) -# define ASIO_DECL __declspec(dllimport) -# endif // defined(ASIO_SOURCE) -# endif // defined(ASIO_DYN_LINK) -# endif // defined(_MSC_VER) || defined(__BORLANDC__) || defined(__CODEGEARC__) -#endif // defined(ASIO_HEADER_ONLY) - -// If ASIO_DECL isn't defined yet define it now. -#if !defined(ASIO_DECL) -# define ASIO_DECL -#endif // !defined(ASIO_DECL) - -// Microsoft Visual C++ detection. -#if !defined(ASIO_MSVC) -# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_MSVC) -# define ASIO_MSVC BOOST_MSVC -# elif defined(_MSC_VER) && (defined(__INTELLISENSE__) \ - || (!defined(__MWERKS__) && !defined(__EDG_VERSION__))) -# define ASIO_MSVC _MSC_VER -# endif // defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_MSVC) -#endif // !defined(ASIO_MSVC) - -// Clang / libc++ detection. -#if defined(__clang__) -# if (__cplusplus >= 201103) -# if __has_include(<__config>) -# include <__config> -# if defined(_LIBCPP_VERSION) -# define ASIO_HAS_CLANG_LIBCXX 1 -# endif // defined(_LIBCPP_VERSION) -# endif // __has_include(<__config>) -# endif // (__cplusplus >= 201103) -#endif // defined(__clang__) - -// Android platform detection. -#if defined(__ANDROID__) -# include -#endif // defined(__ANDROID__) - -// Support move construction and assignment on compilers known to allow it. -#if !defined(ASIO_HAS_MOVE) -# if !defined(ASIO_DISABLE_MOVE) -# if defined(__clang__) -# if __has_feature(__cxx_rvalue_references__) -# define ASIO_HAS_MOVE 1 -# endif // __has_feature(__cxx_rvalue_references__) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_MOVE 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_MOVE 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# if defined(__INTEL_CXX11_MODE__) -# if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) -# define BOOST_ASIO_HAS_MOVE 1 -# endif // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) -# if defined(__ICL) && (__ICL >= 1500) -# define BOOST_ASIO_HAS_MOVE 1 -# endif // defined(__ICL) && (__ICL >= 1500) -# endif // defined(__INTEL_CXX11_MODE__) -# endif // !defined(ASIO_DISABLE_MOVE) -#endif // !defined(ASIO_HAS_MOVE) - -// If ASIO_MOVE_CAST isn't defined, and move support is available, define -// ASIO_MOVE_ARG and ASIO_MOVE_CAST to take advantage of rvalue -// references and perfect forwarding. -#if defined(ASIO_HAS_MOVE) && !defined(ASIO_MOVE_CAST) -# define ASIO_MOVE_ARG(type) type&& -# define ASIO_MOVE_ARG2(type1, type2) type1, type2&& -# define ASIO_MOVE_CAST(type) static_cast -# define ASIO_MOVE_CAST2(type1, type2) static_cast -#endif // defined(ASIO_HAS_MOVE) && !defined(ASIO_MOVE_CAST) - -// If ASIO_MOVE_CAST still isn't defined, default to a C++03-compatible -// implementation. Note that older g++ and MSVC versions don't like it when you -// pass a non-member function through a const reference, so for most compilers -// we'll play it safe and stick with the old approach of passing the handler by -// value. -#if !defined(ASIO_MOVE_CAST) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1)) || (__GNUC__ > 4) -# define ASIO_MOVE_ARG(type) const type& -# else // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1)) || (__GNUC__ > 4) -# define ASIO_MOVE_ARG(type) type -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1)) || (__GNUC__ > 4) -# elif defined(ASIO_MSVC) -# if (_MSC_VER >= 1400) -# define ASIO_MOVE_ARG(type) const type& -# else // (_MSC_VER >= 1400) -# define ASIO_MOVE_ARG(type) type -# endif // (_MSC_VER >= 1400) -# else -# define ASIO_MOVE_ARG(type) type -# endif -# define ASIO_MOVE_CAST(type) static_cast -# define ASIO_MOVE_CAST2(type1, type2) static_cast -#endif // !defined(ASIO_MOVE_CAST) - -// Support variadic templates on compilers known to allow it. -#if !defined(ASIO_HAS_VARIADIC_TEMPLATES) -# if !defined(ASIO_DISABLE_VARIADIC_TEMPLATES) -# if defined(__clang__) -# if __has_feature(__cxx_variadic_templates__) -# define ASIO_HAS_VARIADIC_TEMPLATES 1 -# endif // __has_feature(__cxx_variadic_templates__) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_VARIADIC_TEMPLATES 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1900) -# define ASIO_HAS_VARIADIC_TEMPLATES 1 -# endif // (_MSC_VER >= 1900) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_VARIADIC_TEMPLATES) -#endif // !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -// Support deleted functions on compilers known to allow it. -#if !defined(ASIO_DELETED) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_DELETED = delete -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(__clang__) -# if __has_feature(__cxx_deleted_functions__) -# define ASIO_DELETED = delete -# endif // __has_feature(__cxx_deleted_functions__) -# endif // defined(__clang__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1900) -# define ASIO_DELETED = delete -# endif // (_MSC_VER >= 1900) -# endif // defined(ASIO_MSVC) -# if !defined(ASIO_DELETED) -# define ASIO_DELETED -# endif // !defined(ASIO_DELETED) -#endif // !defined(ASIO_DELETED) - -// Support constexpr on compilers known to allow it. -#if !defined(ASIO_HAS_CONSTEXPR) -# if !defined(ASIO_DISABLE_CONSTEXPR) -# if defined(__clang__) -# if __has_feature(__cxx_constexpr__) -# define ASIO_HAS_CONSTEXPR 1 -# endif // __has_feature(__cxx_constexr__) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_CONSTEXPR 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1900) -# define ASIO_HAS_CONSTEXPR 1 -# endif // (_MSC_VER >= 1900) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_CONSTEXPR) -#endif // !defined(ASIO_HAS_CONSTEXPR) -#if !defined(ASIO_CONSTEXPR) -# if defined(ASIO_HAS_CONSTEXPR) -# define ASIO_CONSTEXPR constexpr -# else // defined(ASIO_HAS_CONSTEXPR) -# define ASIO_CONSTEXPR -# endif // defined(ASIO_HAS_CONSTEXPR) -#endif // !defined(ASIO_CONSTEXPR) - -// Support noexcept on compilers known to allow it. -#if !defined(ASIO_NOEXCEPT) -# if !defined(ASIO_DISABLE_NOEXCEPT) -# if defined(ASIO_HAS_BOOST_CONFIG) && (BOOST_VERSION >= 105300) -# define ASIO_NOEXCEPT BOOST_NOEXCEPT -# define ASIO_NOEXCEPT_OR_NOTHROW BOOST_NOEXCEPT_OR_NOTHROW -# elif defined(__clang__) -# if __has_feature(__cxx_noexcept__) -# define ASIO_NOEXCEPT noexcept(true) -# define ASIO_NOEXCEPT_OR_NOTHROW noexcept(true) -# endif // __has_feature(__cxx_noexcept__) -# elif defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_NOEXCEPT noexcept(true) -# define ASIO_NOEXCEPT_OR_NOTHROW noexcept(true) -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# elif defined(ASIO_MSVC) -# if (_MSC_VER >= 1900) -# define ASIO_NOEXCEPT noexcept(true) -# define ASIO_NOEXCEPT_OR_NOTHROW noexcept(true) -# endif // (_MSC_VER >= 1900) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_NOEXCEPT) -# if !defined(ASIO_NOEXCEPT) -# define ASIO_NOEXCEPT -# endif // !defined(ASIO_NOEXCEPT) -# if !defined(ASIO_NOEXCEPT_OR_NOTHROW) -# define ASIO_NOEXCEPT_OR_NOTHROW throw() -# endif // !defined(ASIO_NOEXCEPT_OR_NOTHROW) -#endif // !defined(ASIO_NOEXCEPT) - -// Support automatic type deduction on compilers known to support it. -#if !defined(ASIO_HAS_DECLTYPE) -# if !defined(ASIO_DISABLE_DECLTYPE) -# if defined(__clang__) -# if __has_feature(__cxx_decltype__) -# define ASIO_HAS_DECLTYPE 1 -# endif // __has_feature(__cxx_decltype__) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_DECLTYPE 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_DECLTYPE 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_DECLTYPE) -#endif // !defined(ASIO_HAS_DECLTYPE) - -// Support alias templates on compilers known to allow it. -#if !defined(ASIO_HAS_ALIAS_TEMPLATES) -# if !defined(ASIO_DISABLE_ALIAS_TEMPLATES) -# if defined(__clang__) -# if __has_feature(__cxx_alias_templates__) -# define ASIO_HAS_ALIAS_TEMPLATES 1 -# endif // __has_feature(__cxx_alias_templates__) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_ALIAS_TEMPLATES 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1900) -# define ASIO_HAS_ALIAS_TEMPLATES 1 -# endif // (_MSC_VER >= 1900) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_ALIAS_TEMPLATES) -#endif // !defined(ASIO_HAS_ALIAS_TEMPLATES) - -// Standard library support for system errors. -#if !defined(ASIO_HAS_STD_SYSTEM_ERROR) -# if !defined(ASIO_DISABLE_STD_SYSTEM_ERROR) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_SYSTEM_ERROR 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_SYSTEM_ERROR 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_SYSTEM_ERROR 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_SYSTEM_ERROR 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_SYSTEM_ERROR) -#endif // !defined(ASIO_HAS_STD_SYSTEM_ERROR) - -// Compliant C++11 compilers put noexcept specifiers on error_category members. -#if !defined(ASIO_ERROR_CATEGORY_NOEXCEPT) -# if (BOOST_VERSION >= 105300) -# define ASIO_ERROR_CATEGORY_NOEXCEPT BOOST_NOEXCEPT -# elif defined(__clang__) -# if __has_feature(__cxx_noexcept__) -# define ASIO_ERROR_CATEGORY_NOEXCEPT noexcept(true) -# endif // __has_feature(__cxx_noexcept__) -# elif defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_ERROR_CATEGORY_NOEXCEPT noexcept(true) -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# elif defined(ASIO_MSVC) -# if (_MSC_VER >= 1900) -# define ASIO_ERROR_CATEGORY_NOEXCEPT noexcept(true) -# endif // (_MSC_VER >= 1900) -# endif // defined(ASIO_MSVC) -# if !defined(ASIO_ERROR_CATEGORY_NOEXCEPT) -# define ASIO_ERROR_CATEGORY_NOEXCEPT -# endif // !defined(ASIO_ERROR_CATEGORY_NOEXCEPT) -#endif // !defined(ASIO_ERROR_CATEGORY_NOEXCEPT) - -// Standard library support for arrays. -#if !defined(ASIO_HAS_STD_ARRAY) -# if !defined(ASIO_DISABLE_STD_ARRAY) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_ARRAY 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_ARRAY 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_ARRAY 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1600) -# define ASIO_HAS_STD_ARRAY 1 -# endif // (_MSC_VER >= 1600) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_ARRAY) -#endif // !defined(ASIO_HAS_STD_ARRAY) - -// Standard library support for shared_ptr and weak_ptr. -#if !defined(ASIO_HAS_STD_SHARED_PTR) -# if !defined(ASIO_DISABLE_STD_SHARED_PTR) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_SHARED_PTR 1 -# elif (__cplusplus >= 201103) -# define ASIO_HAS_STD_SHARED_PTR 1 -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_SHARED_PTR 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1600) -# define ASIO_HAS_STD_SHARED_PTR 1 -# endif // (_MSC_VER >= 1600) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_SHARED_PTR) -#endif // !defined(ASIO_HAS_STD_SHARED_PTR) - -// Standard library support for allocator_arg_t. -#if !defined(ASIO_HAS_STD_ALLOCATOR_ARG) -# if !defined(ASIO_DISABLE_STD_ALLOCATOR_ARG) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_ALLOCATOR_ARG 1 -# elif (__cplusplus >= 201103) -# define ASIO_HAS_STD_ALLOCATOR_ARG 1 -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_ALLOCATOR_ARG 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1600) -# define ASIO_HAS_STD_ALLOCATOR_ARG 1 -# endif // (_MSC_VER >= 1600) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_ALLOCATOR_ARG) -#endif // !defined(ASIO_HAS_STD_ALLOCATOR_ARG) - -// Standard library support for atomic operations. -#if !defined(ASIO_HAS_STD_ATOMIC) -# if !defined(ASIO_DISABLE_STD_ATOMIC) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_ATOMIC 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_ATOMIC 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_ATOMIC 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_ATOMIC 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_ATOMIC) -#endif // !defined(ASIO_HAS_STD_ATOMIC) - -// Standard library support for chrono. Some standard libraries (such as the -// libstdc++ shipped with gcc 4.6) provide monotonic_clock as per early C++0x -// drafts, rather than the eventually standardised name of steady_clock. -#if !defined(ASIO_HAS_STD_CHRONO) -# if !defined(ASIO_DISABLE_STD_CHRONO) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_CHRONO 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_CHRONO 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_CHRONO 1 -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ == 6)) -# define ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK 1 -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ == 6)) -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_CHRONO 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_CHRONO) -#endif // !defined(ASIO_HAS_STD_CHRONO) - -// Boost support for chrono. -#if !defined(ASIO_HAS_BOOST_CHRONO) -# if !defined(ASIO_DISABLE_BOOST_CHRONO) -# if (BOOST_VERSION >= 104700) -# define ASIO_HAS_BOOST_CHRONO 1 -# endif // (BOOST_VERSION >= 104700) -# endif // !defined(ASIO_DISABLE_BOOST_CHRONO) -#endif // !defined(ASIO_HAS_BOOST_CHRONO) - -// Some form of chrono library is available. -#if !defined(ASIO_HAS_CHRONO) -# if defined(ASIO_HAS_STD_CHRONO) \ - || defined(ASIO_HAS_BOOST_CHRONO) -# define ASIO_HAS_CHRONO 1 -# endif // defined(ASIO_HAS_STD_CHRONO) - // || defined(ASIO_HAS_BOOST_CHRONO) -#endif // !defined(ASIO_HAS_CHRONO) - -// Boost support for the DateTime library. -#if !defined(ASIO_HAS_BOOST_DATE_TIME) -# if !defined(ASIO_DISABLE_BOOST_DATE_TIME) -# define ASIO_HAS_BOOST_DATE_TIME 1 -# endif // !defined(ASIO_DISABLE_BOOST_DATE_TIME) -#endif // !defined(ASIO_HAS_BOOST_DATE_TIME) - -// Standard library support for addressof. -#if !defined(ASIO_HAS_STD_ADDRESSOF) -# if !defined(ASIO_DISABLE_STD_ADDRESSOF) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_ADDRESSOF 1 -# elif (__cplusplus >= 201103) -# define ASIO_HAS_STD_ADDRESSOF 1 -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_ADDRESSOF 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_ADDRESSOF 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_ADDRESSOF) -#endif // !defined(ASIO_HAS_STD_ADDRESSOF) - -// Standard library support for the function class. -#if !defined(ASIO_HAS_STD_FUNCTION) -# if !defined(ASIO_DISABLE_STD_FUNCTION) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_FUNCTION 1 -# elif (__cplusplus >= 201103) -# define ASIO_HAS_STD_FUNCTION 1 -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_FUNCTION 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_FUNCTION 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_FUNCTION) -#endif // !defined(ASIO_HAS_STD_FUNCTION) - -// Standard library support for type traits. -#if !defined(ASIO_HAS_STD_TYPE_TRAITS) -# if !defined(ASIO_DISABLE_STD_TYPE_TRAITS) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_TYPE_TRAITS 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_TYPE_TRAITS 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_TYPE_TRAITS 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_TYPE_TRAITS 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_TYPE_TRAITS) -#endif // !defined(ASIO_HAS_STD_TYPE_TRAITS) - -// Standard library support for the nullptr_t type. -#if !defined(ASIO_HAS_NULLPTR) -# if !defined(ASIO_DISABLE_NULLPTR) -# if defined(__clang__) -# if __has_feature(__cxx_nullptr__) -# define ASIO_HAS_NULLPTR 1 -# endif // __has_feature(__cxx_rvalue_references__) -# elif defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_NULLPTR 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_NULLPTR 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_NULLPTR) -#endif // !defined(ASIO_HAS_NULLPTR) - -// Standard library support for the C++11 allocator additions. -#if !defined(ASIO_HAS_CXX11_ALLOCATORS) -# if !defined(ASIO_DISABLE_CXX11_ALLOCATORS) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_CXX11_ALLOCATORS 1 -# elif (__cplusplus >= 201103) -# define ASIO_HAS_CXX11_ALLOCATORS 1 -# endif // (__cplusplus >= 201103) -# elif defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_CXX11_ALLOCATORS 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1800) -# define ASIO_HAS_CXX11_ALLOCATORS 1 -# endif // (_MSC_VER >= 1800) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_CXX11_ALLOCATORS) -#endif // !defined(ASIO_HAS_CXX11_ALLOCATORS) - -// Standard library support for the cstdint header. -#if !defined(ASIO_HAS_CSTDINT) -# if !defined(ASIO_DISABLE_CSTDINT) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_CSTDINT 1 -# elif (__cplusplus >= 201103) -# define ASIO_HAS_CSTDINT 1 -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_CSTDINT 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_CSTDINT 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_CSTDINT) -#endif // !defined(ASIO_HAS_CSTDINT) - -// Standard library support for the thread class. -#if !defined(ASIO_HAS_STD_THREAD) -# if !defined(ASIO_DISABLE_STD_THREAD) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_THREAD 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_THREAD 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_THREAD 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_THREAD 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_THREAD) -#endif // !defined(ASIO_HAS_STD_THREAD) - -// Standard library support for the mutex and condition variable classes. -#if !defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) -# if !defined(ASIO_DISABLE_STD_MUTEX_AND_CONDVAR) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_MUTEX_AND_CONDVAR 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_MUTEX_AND_CONDVAR 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_MUTEX_AND_CONDVAR 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_MUTEX_AND_CONDVAR 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_MUTEX_AND_CONDVAR) -#endif // !defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) - -// Standard library support for the call_once function. -#if !defined(ASIO_HAS_STD_CALL_ONCE) -# if !defined(ASIO_DISABLE_STD_CALL_ONCE) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_CALL_ONCE 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_CALL_ONCE 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_CALL_ONCE 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_CALL_ONCE 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_CALL_ONCE) -#endif // !defined(ASIO_HAS_STD_CALL_ONCE) - -// Standard library support for futures. -#if !defined(ASIO_HAS_STD_FUTURE) -# if !defined(ASIO_DISABLE_STD_FUTURE) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_FUTURE 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_FUTURE 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_FUTURE 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_FUTURE 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_FUTURE) -#endif // !defined(ASIO_HAS_STD_FUTURE) - -// Standard library support for std::string_view. -#if !defined(ASIO_HAS_STD_STRING_VIEW) -# if !defined(ASIO_DISABLE_STD_STRING_VIEW) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# if (__cplusplus >= 201402) -# if __has_include() -# define ASIO_HAS_STD_STRING_VIEW 1 -# endif // __has_include() -# endif // (__cplusplus >= 201402) -# else // defined(ASIO_HAS_CLANG_LIBCXX) -# if (__cplusplus >= 201703) -# if __has_include() -# define ASIO_HAS_STD_STRING_VIEW 1 -# endif // __has_include() -# endif // (__cplusplus >= 201703) -# endif // defined(ASIO_HAS_CLANG_LIBCXX) -# elif defined(__GNUC__) -# if (__GNUC__ >= 7) -# if (__cplusplus >= 201703) -# define ASIO_HAS_STD_STRING_VIEW 1 -# endif // (__cplusplus >= 201703) -# endif // (__GNUC__ >= 7) -# elif defined(ASIO_MSVC) -# if (_MSC_VER >= 1910 && _MSVC_LANG >= 201703) -# define ASIO_HAS_STD_STRING_VIEW 1 -# endif // (_MSC_VER >= 1910 && _MSVC_LANG >= 201703) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_STRING_VIEW) -#endif // !defined(ASIO_HAS_STD_STRING_VIEW) - -// Standard library support for std::experimental::string_view. -#if !defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) -# if !defined(ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# if (_LIBCPP_VERSION < 7000) -# if (__cplusplus >= 201402) -# if __has_include() -# define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1 -# endif // __has_include() -# endif // (__cplusplus >= 201402) -# endif // (_LIBCPP_VERSION < 7000) -# else // defined(ASIO_HAS_CLANG_LIBCXX) -# if (__cplusplus >= 201402) -# if __has_include() -# define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1 -# endif // __has_include() -# endif // (__cplusplus >= 201402) -# endif // // defined(ASIO_HAS_CLANG_LIBCXX) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4) -# if (__cplusplus >= 201402) -# define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1 -# endif // (__cplusplus >= 201402) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# endif // !defined(ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW) -#endif // !defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) - -// Standard library has a string_view that we can use. -#if !defined(ASIO_HAS_STRING_VIEW) -# if !defined(ASIO_DISABLE_STRING_VIEW) -# if defined(ASIO_HAS_STD_STRING_VIEW) -# define ASIO_HAS_STRING_VIEW 1 -# elif defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) -# define ASIO_HAS_STRING_VIEW 1 -# endif // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) -# endif // !defined(ASIO_DISABLE_STRING_VIEW) -#endif // !defined(ASIO_HAS_STRING_VIEW) - -// Standard library support for iostream move construction and assignment. -#if !defined(ASIO_HAS_STD_IOSTREAM_MOVE) -# if !defined(ASIO_DISABLE_STD_IOSTREAM_MOVE) -# if defined(__GNUC__) -# if (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_IOSTREAM_MOVE 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_IOSTREAM_MOVE 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_IOSTREAM_MOVE) -#endif // !defined(ASIO_HAS_STD_IOSTREAM_MOVE) - -// Standard library has invoke_result (which supersedes result_of). -#if !defined(ASIO_HAS_STD_INVOKE_RESULT) -# if !defined(ASIO_DISABLE_STD_INVOKE_RESULT) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1911 && _MSVC_LANG >= 201703) -# define ASIO_HAS_STD_INVOKE_RESULT 1 -# endif // (_MSC_VER >= 1911 && _MSVC_LANG >= 201703) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_INVOKE_RESULT) -#endif // !defined(ASIO_HAS_STD_INVOKE_RESULT) - -// Windows App target. Windows but with a limited API. -#if !defined(ASIO_WINDOWS_APP) -# if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0603) -# include -# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) \ - && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -# define ASIO_WINDOWS_APP 1 -# endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - // && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -# endif // defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0603) -#endif // !defined(ASIO_WINDOWS_APP) - -// Legacy WinRT target. Windows App is preferred. -#if !defined(ASIO_WINDOWS_RUNTIME) -# if !defined(ASIO_WINDOWS_APP) -# if defined(__cplusplus_winrt) -# include -# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) \ - && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -# define ASIO_WINDOWS_RUNTIME 1 -# endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - // && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -# endif // defined(__cplusplus_winrt) -# endif // !defined(ASIO_WINDOWS_APP) -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -// Windows target. Excludes WinRT but includes Windows App targets. -#if !defined(ASIO_WINDOWS) -# if !defined(ASIO_WINDOWS_RUNTIME) -# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_WINDOWS) -# define ASIO_WINDOWS 1 -# elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) -# define ASIO_WINDOWS 1 -# elif defined(ASIO_WINDOWS_APP) -# define ASIO_WINDOWS 1 -# endif // defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_WINDOWS) -# endif // !defined(ASIO_WINDOWS_RUNTIME) -#endif // !defined(ASIO_WINDOWS) - -// Windows: target OS version. -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS) -# if defined(_MSC_VER) || defined(__BORLANDC__) -# pragma message( \ - "Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. For example:\n"\ - "- add -D_WIN32_WINNT=0x0501 to the compiler command line; or\n"\ - "- add _WIN32_WINNT=0x0501 to your project's Preprocessor Definitions.\n"\ - "Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target).") -# else // defined(_MSC_VER) || defined(__BORLANDC__) -# warning Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. -# warning For example, add -D_WIN32_WINNT=0x0501 to the compiler command line. -# warning Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target). -# endif // defined(_MSC_VER) || defined(__BORLANDC__) -# define _WIN32_WINNT 0x0501 -# endif // !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS) -# if defined(_MSC_VER) -# if defined(_WIN32) && !defined(WIN32) -# if !defined(_WINSOCK2API_) -# define WIN32 // Needed for correct types in winsock2.h -# else // !defined(_WINSOCK2API_) -# error Please define the macro WIN32 in your compiler options -# endif // !defined(_WINSOCK2API_) -# endif // defined(_WIN32) && !defined(WIN32) -# endif // defined(_MSC_VER) -# if defined(__BORLANDC__) -# if defined(__WIN32__) && !defined(WIN32) -# if !defined(_WINSOCK2API_) -# define WIN32 // Needed for correct types in winsock2.h -# else // !defined(_WINSOCK2API_) -# error Please define the macro WIN32 in your compiler options -# endif // !defined(_WINSOCK2API_) -# endif // defined(__WIN32__) && !defined(WIN32) -# endif // defined(__BORLANDC__) -# if defined(__CYGWIN__) -# if !defined(__USE_W32_SOCKETS) -# error You must add -D__USE_W32_SOCKETS to your compiler options. -# endif // !defined(__USE_W32_SOCKETS) -# endif // defined(__CYGWIN__) -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -// Windows: minimise header inclusion. -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if !defined(ASIO_NO_WIN32_LEAN_AND_MEAN) -# if !defined(WIN32_LEAN_AND_MEAN) -# define WIN32_LEAN_AND_MEAN -# endif // !defined(WIN32_LEAN_AND_MEAN) -# endif // !defined(ASIO_NO_WIN32_LEAN_AND_MEAN) -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -// Windows: suppress definition of "min" and "max" macros. -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if !defined(ASIO_NO_NOMINMAX) -# if !defined(NOMINMAX) -# define NOMINMAX 1 -# endif // !defined(NOMINMAX) -# endif // !defined(ASIO_NO_NOMINMAX) -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -// Windows: IO Completion Ports. -#if !defined(ASIO_HAS_IOCP) -# if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400) -# if !defined(UNDER_CE) && !defined(ASIO_WINDOWS_APP) -# if !defined(ASIO_DISABLE_IOCP) -# define ASIO_HAS_IOCP 1 -# endif // !defined(ASIO_DISABLE_IOCP) -# endif // !defined(UNDER_CE) && !defined(ASIO_WINDOWS_APP) -# endif // defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400) -# endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -#endif // !defined(ASIO_HAS_IOCP) - -// On POSIX (and POSIX-like) platforms we need to include unistd.h in order to -// get access to the various platform feature macros, e.g. to be able to test -// for threads support. -#if !defined(ASIO_HAS_UNISTD_H) -# if !defined(ASIO_HAS_BOOST_CONFIG) -# if defined(unix) \ - || defined(__unix) \ - || defined(_XOPEN_SOURCE) \ - || defined(_POSIX_SOURCE) \ - || (defined(__MACH__) && defined(__APPLE__)) \ - || defined(__FreeBSD__) \ - || defined(__NetBSD__) \ - || defined(__OpenBSD__) \ - || defined(__linux__) -# define ASIO_HAS_UNISTD_H 1 -# endif -# endif // !defined(ASIO_HAS_BOOST_CONFIG) -#endif // !defined(ASIO_HAS_UNISTD_H) -#if defined(ASIO_HAS_UNISTD_H) -# include -#endif // defined(ASIO_HAS_UNISTD_H) - -// Linux: epoll, eventfd and timerfd. -#if defined(__linux__) -# include -# if !defined(ASIO_HAS_EPOLL) -# if !defined(ASIO_DISABLE_EPOLL) -# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,45) -# define ASIO_HAS_EPOLL 1 -# endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,45) -# endif // !defined(ASIO_DISABLE_EPOLL) -# endif // !defined(ASIO_HAS_EPOLL) -# if !defined(ASIO_HAS_EVENTFD) -# if !defined(ASIO_DISABLE_EVENTFD) -# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) -# define ASIO_HAS_EVENTFD 1 -# endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) -# endif // !defined(ASIO_DISABLE_EVENTFD) -# endif // !defined(ASIO_HAS_EVENTFD) -# if !defined(ASIO_HAS_TIMERFD) -# if defined(ASIO_HAS_EPOLL) -# if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 8) -# define ASIO_HAS_TIMERFD 1 -# endif // (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 8) -# endif // defined(ASIO_HAS_EPOLL) -# endif // !defined(ASIO_HAS_TIMERFD) -#endif // defined(__linux__) - -// Mac OS X, FreeBSD, NetBSD, OpenBSD: kqueue. -#if (defined(__MACH__) && defined(__APPLE__)) \ - || defined(__FreeBSD__) \ - || defined(__NetBSD__) \ - || defined(__OpenBSD__) -# if !defined(ASIO_HAS_KQUEUE) -# if !defined(ASIO_DISABLE_KQUEUE) -# define ASIO_HAS_KQUEUE 1 -# endif // !defined(ASIO_DISABLE_KQUEUE) -# endif // !defined(ASIO_HAS_KQUEUE) -#endif // (defined(__MACH__) && defined(__APPLE__)) - // || defined(__FreeBSD__) - // || defined(__NetBSD__) - // || defined(__OpenBSD__) - -// Solaris: /dev/poll. -#if defined(__sun) -# if !defined(ASIO_HAS_DEV_POLL) -# if !defined(ASIO_DISABLE_DEV_POLL) -# define ASIO_HAS_DEV_POLL 1 -# endif // !defined(ASIO_DISABLE_DEV_POLL) -# endif // !defined(ASIO_HAS_DEV_POLL) -#endif // defined(__sun) - -// Serial ports. -#if !defined(ASIO_HAS_SERIAL_PORT) -# if defined(ASIO_HAS_IOCP) \ - || !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) -# if !defined(__SYMBIAN32__) -# if !defined(ASIO_DISABLE_SERIAL_PORT) -# define ASIO_HAS_SERIAL_PORT 1 -# endif // !defined(ASIO_DISABLE_SERIAL_PORT) -# endif // !defined(__SYMBIAN32__) -# endif // defined(ASIO_HAS_IOCP) - // || !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -#endif // !defined(ASIO_HAS_SERIAL_PORT) - -// Windows: stream handles. -#if !defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) -# if !defined(ASIO_DISABLE_WINDOWS_STREAM_HANDLE) -# if defined(ASIO_HAS_IOCP) -# define ASIO_HAS_WINDOWS_STREAM_HANDLE 1 -# endif // defined(ASIO_HAS_IOCP) -# endif // !defined(ASIO_DISABLE_WINDOWS_STREAM_HANDLE) -#endif // !defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) - -// Windows: random access handles. -#if !defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) -# if !defined(ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE) -# if defined(ASIO_HAS_IOCP) -# define ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE 1 -# endif // defined(ASIO_HAS_IOCP) -# endif // !defined(ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE) -#endif // !defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - -// Windows: object handles. -#if !defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) -# if !defined(ASIO_DISABLE_WINDOWS_OBJECT_HANDLE) -# if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if !defined(UNDER_CE) && !defined(ASIO_WINDOWS_APP) -# define ASIO_HAS_WINDOWS_OBJECT_HANDLE 1 -# endif // !defined(UNDER_CE) && !defined(ASIO_WINDOWS_APP) -# endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# endif // !defined(ASIO_DISABLE_WINDOWS_OBJECT_HANDLE) -#endif // !defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - -// Windows: OVERLAPPED wrapper. -#if !defined(ASIO_HAS_WINDOWS_OVERLAPPED_PTR) -# if !defined(ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR) -# if defined(ASIO_HAS_IOCP) -# define ASIO_HAS_WINDOWS_OVERLAPPED_PTR 1 -# endif // defined(ASIO_HAS_IOCP) -# endif // !defined(ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR) -#endif // !defined(ASIO_HAS_WINDOWS_OVERLAPPED_PTR) - -// POSIX: stream-oriented file descriptors. -#if !defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) -# if !defined(ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR) -# if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) -# define ASIO_HAS_POSIX_STREAM_DESCRIPTOR 1 -# endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -# endif // !defined(ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR) -#endif // !defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - -// UNIX domain sockets. -#if !defined(ASIO_HAS_LOCAL_SOCKETS) -# if !defined(ASIO_DISABLE_LOCAL_SOCKETS) -# if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) -# define ASIO_HAS_LOCAL_SOCKETS 1 -# endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -# endif // !defined(ASIO_DISABLE_LOCAL_SOCKETS) -#endif // !defined(ASIO_HAS_LOCAL_SOCKETS) - -// Can use sigaction() instead of signal(). -#if !defined(ASIO_HAS_SIGACTION) -# if !defined(ASIO_DISABLE_SIGACTION) -# if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) -# define ASIO_HAS_SIGACTION 1 -# endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -# endif // !defined(ASIO_DISABLE_SIGACTION) -#endif // !defined(ASIO_HAS_SIGACTION) - -// Can use signal(). -#if !defined(ASIO_HAS_SIGNAL) -# if !defined(ASIO_DISABLE_SIGNAL) -# if !defined(UNDER_CE) -# define ASIO_HAS_SIGNAL 1 -# endif // !defined(UNDER_CE) -# endif // !defined(ASIO_DISABLE_SIGNAL) -#endif // !defined(ASIO_HAS_SIGNAL) - -// Can use getaddrinfo() and getnameinfo(). -#if !defined(ASIO_HAS_GETADDRINFO) -# if !defined(ASIO_DISABLE_GETADDRINFO) -# if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501) -# define ASIO_HAS_GETADDRINFO 1 -# elif defined(UNDER_CE) -# define ASIO_HAS_GETADDRINFO 1 -# endif // defined(UNDER_CE) -# elif defined(__MACH__) && defined(__APPLE__) -# if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) -# if (__MAC_OS_X_VERSION_MIN_REQUIRED >= 1050) -# define ASIO_HAS_GETADDRINFO 1 -# endif // (__MAC_OS_X_VERSION_MIN_REQUIRED >= 1050) -# else // defined(__MAC_OS_X_VERSION_MIN_REQUIRED) -# define ASIO_HAS_GETADDRINFO 1 -# endif // defined(__MAC_OS_X_VERSION_MIN_REQUIRED) -# else // defined(__MACH__) && defined(__APPLE__) -# define ASIO_HAS_GETADDRINFO 1 -# endif // defined(__MACH__) && defined(__APPLE__) -# endif // !defined(ASIO_DISABLE_GETADDRINFO) -#endif // !defined(ASIO_HAS_GETADDRINFO) - -// Whether standard iostreams are disabled. -#if !defined(ASIO_NO_IOSTREAM) -# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_NO_IOSTREAM) -# define ASIO_NO_IOSTREAM 1 -# endif // !defined(BOOST_NO_IOSTREAM) -#endif // !defined(ASIO_NO_IOSTREAM) - -// Whether exception handling is disabled. -#if !defined(ASIO_NO_EXCEPTIONS) -# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_NO_EXCEPTIONS) -# define ASIO_NO_EXCEPTIONS 1 -# endif // !defined(BOOST_NO_EXCEPTIONS) -#endif // !defined(ASIO_NO_EXCEPTIONS) - -// Whether the typeid operator is supported. -#if !defined(ASIO_NO_TYPEID) -# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_NO_TYPEID) -# define ASIO_NO_TYPEID 1 -# endif // !defined(BOOST_NO_TYPEID) -#endif // !defined(ASIO_NO_TYPEID) - -// Threads. -#if !defined(ASIO_HAS_THREADS) -# if !defined(ASIO_DISABLE_THREADS) -# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_THREADS) -# define ASIO_HAS_THREADS 1 -# elif defined(__GNUC__) && !defined(__MINGW32__) \ - && !defined(linux) && !defined(__linux) && !defined(__linux__) -# define ASIO_HAS_THREADS 1 -# elif defined(_MT) || defined(__MT__) -# define ASIO_HAS_THREADS 1 -# elif defined(_REENTRANT) -# define ASIO_HAS_THREADS 1 -# elif defined(__APPLE__) -# define ASIO_HAS_THREADS 1 -# elif defined(_POSIX_THREADS) && (_POSIX_THREADS + 0 >= 0) -# define ASIO_HAS_THREADS 1 -# elif defined(_PTHREADS) -# define ASIO_HAS_THREADS 1 -# endif // defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_THREADS) -# endif // !defined(ASIO_DISABLE_THREADS) -#endif // !defined(ASIO_HAS_THREADS) - -// POSIX threads. -#if !defined(ASIO_HAS_PTHREADS) -# if defined(ASIO_HAS_THREADS) -# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_PTHREADS) -# define ASIO_HAS_PTHREADS 1 -# elif defined(_POSIX_THREADS) && (_POSIX_THREADS + 0 >= 0) -# define ASIO_HAS_PTHREADS 1 -# endif // defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_PTHREADS) -# endif // defined(ASIO_HAS_THREADS) -#endif // !defined(ASIO_HAS_PTHREADS) - -// Helper to prevent macro expansion. -#define ASIO_PREVENT_MACRO_SUBSTITUTION - -// Helper to define in-class constants. -#if !defined(ASIO_STATIC_CONSTANT) -# if !defined(ASIO_DISABLE_BOOST_STATIC_CONSTANT) -# define ASIO_STATIC_CONSTANT(type, assignment) \ - BOOST_STATIC_CONSTANT(type, assignment) -# else // !defined(ASIO_DISABLE_BOOST_STATIC_CONSTANT) -# define ASIO_STATIC_CONSTANT(type, assignment) \ - static const type assignment -# endif // !defined(ASIO_DISABLE_BOOST_STATIC_CONSTANT) -#endif // !defined(ASIO_STATIC_CONSTANT) - -// Boost array library. -#if !defined(ASIO_HAS_BOOST_ARRAY) -# if !defined(ASIO_DISABLE_BOOST_ARRAY) -# define ASIO_HAS_BOOST_ARRAY 1 -# endif // !defined(ASIO_DISABLE_BOOST_ARRAY) -#endif // !defined(ASIO_HAS_BOOST_ARRAY) - -// Boost assert macro. -#if !defined(ASIO_HAS_BOOST_ASSERT) -# if !defined(ASIO_DISABLE_BOOST_ASSERT) -# define ASIO_HAS_BOOST_ASSERT 1 -# endif // !defined(ASIO_DISABLE_BOOST_ASSERT) -#endif // !defined(ASIO_HAS_BOOST_ASSERT) - -// Boost limits header. -#if !defined(ASIO_HAS_BOOST_LIMITS) -# if !defined(ASIO_DISABLE_BOOST_LIMITS) -# define ASIO_HAS_BOOST_LIMITS 1 -# endif // !defined(ASIO_DISABLE_BOOST_LIMITS) -#endif // !defined(ASIO_HAS_BOOST_LIMITS) - -// Boost throw_exception function. -#if !defined(ASIO_HAS_BOOST_THROW_EXCEPTION) -# if !defined(ASIO_DISABLE_BOOST_THROW_EXCEPTION) -# define ASIO_HAS_BOOST_THROW_EXCEPTION 1 -# endif // !defined(ASIO_DISABLE_BOOST_THROW_EXCEPTION) -#endif // !defined(ASIO_HAS_BOOST_THROW_EXCEPTION) - -// Boost regex library. -#if !defined(ASIO_HAS_BOOST_REGEX) -# if !defined(ASIO_DISABLE_BOOST_REGEX) -# define ASIO_HAS_BOOST_REGEX 1 -# endif // !defined(ASIO_DISABLE_BOOST_REGEX) -#endif // !defined(ASIO_HAS_BOOST_REGEX) - -// Boost bind function. -#if !defined(ASIO_HAS_BOOST_BIND) -# if !defined(ASIO_DISABLE_BOOST_BIND) -# define ASIO_HAS_BOOST_BIND 1 -# endif // !defined(ASIO_DISABLE_BOOST_BIND) -#endif // !defined(ASIO_HAS_BOOST_BIND) - -// Boost's BOOST_WORKAROUND macro. -#if !defined(ASIO_HAS_BOOST_WORKAROUND) -# if !defined(ASIO_DISABLE_BOOST_WORKAROUND) -# define ASIO_HAS_BOOST_WORKAROUND 1 -# endif // !defined(ASIO_DISABLE_BOOST_WORKAROUND) -#endif // !defined(ASIO_HAS_BOOST_WORKAROUND) - -// Microsoft Visual C++'s secure C runtime library. -#if !defined(ASIO_HAS_SECURE_RTL) -# if !defined(ASIO_DISABLE_SECURE_RTL) -# if defined(ASIO_MSVC) \ - && (ASIO_MSVC >= 1400) \ - && !defined(UNDER_CE) -# define ASIO_HAS_SECURE_RTL 1 -# endif // defined(ASIO_MSVC) - // && (ASIO_MSVC >= 1400) - // && !defined(UNDER_CE) -# endif // !defined(ASIO_DISABLE_SECURE_RTL) -#endif // !defined(ASIO_HAS_SECURE_RTL) - -// Handler hooking. Disabled for ancient Borland C++ and gcc compilers. -#if !defined(ASIO_HAS_HANDLER_HOOKS) -# if !defined(ASIO_DISABLE_HANDLER_HOOKS) -# if defined(__GNUC__) -# if (__GNUC__ >= 3) -# define ASIO_HAS_HANDLER_HOOKS 1 -# endif // (__GNUC__ >= 3) -# elif !defined(__BORLANDC__) -# define ASIO_HAS_HANDLER_HOOKS 1 -# endif // !defined(__BORLANDC__) -# endif // !defined(ASIO_DISABLE_HANDLER_HOOKS) -#endif // !defined(ASIO_HAS_HANDLER_HOOKS) - -// Support for the __thread keyword extension. -#if !defined(ASIO_DISABLE_THREAD_KEYWORD_EXTENSION) -# if defined(__linux__) -# if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) -# if ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3) -# if !defined(__INTEL_COMPILER) && !defined(__ICL) \ - && !(defined(__clang__) && defined(__ANDROID__)) -# define ASIO_HAS_THREAD_KEYWORD_EXTENSION 1 -# define ASIO_THREAD_KEYWORD __thread -# elif defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1100) -# define ASIO_HAS_THREAD_KEYWORD_EXTENSION 1 -# endif // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1100) - // && !(defined(__clang__) && defined(__ANDROID__)) -# endif // ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3) -# endif // defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) -# endif // defined(__linux__) -# if defined(ASIO_MSVC) && defined(ASIO_WINDOWS_RUNTIME) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_THREAD_KEYWORD_EXTENSION 1 -# define ASIO_THREAD_KEYWORD __declspec(thread) -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) && defined(ASIO_WINDOWS_RUNTIME) -#endif // !defined(ASIO_DISABLE_THREAD_KEYWORD_EXTENSION) -#if !defined(ASIO_THREAD_KEYWORD) -# define ASIO_THREAD_KEYWORD __thread -#endif // !defined(ASIO_THREAD_KEYWORD) - -// Support for POSIX ssize_t typedef. -#if !defined(ASIO_DISABLE_SSIZE_T) -# if defined(__linux__) \ - || (defined(__MACH__) && defined(__APPLE__)) -# define ASIO_HAS_SSIZE_T 1 -# endif // defined(__linux__) - // || (defined(__MACH__) && defined(__APPLE__)) -#endif // !defined(ASIO_DISABLE_SSIZE_T) - -// Helper macros to manage the transition away from the old services-based API. -#if defined(ASIO_ENABLE_OLD_SERVICES) -# define ASIO_SVC_TPARAM , typename Service -# define ASIO_SVC_TPARAM_DEF1(d1) , typename Service d1 -# define ASIO_SVC_TPARAM_DEF2(d1, d2) , typename Service d1, d2 -# define ASIO_SVC_TARG , Service -# define ASIO_SVC_T Service -# define ASIO_SVC_TPARAM1 , typename Service1 -# define ASIO_SVC_TPARAM1_DEF1(d1) , typename Service1 d1 -# define ASIO_SVC_TPARAM1_DEF2(d1, d2) , typename Service1 d1, d2 -# define ASIO_SVC_TARG1 , Service1 -# define ASIO_SVC_T1 Service1 -# define ASIO_SVC_ACCESS public -#else // defined(ASIO_ENABLE_OLD_SERVICES) -# define ASIO_SVC_TPARAM -# define ASIO_SVC_TPARAM_DEF1(d1) -# define ASIO_SVC_TPARAM_DEF2(d1, d2) -# define ASIO_SVC_TARG -// ASIO_SVC_T is defined at each point of use. -# define ASIO_SVC_TPARAM1 -# define ASIO_SVC_TPARAM1_DEF1(d1) -# define ASIO_SVC_TPARAM1_DEF2(d1, d2) -# define ASIO_SVC_TARG1 -// ASIO_SVC_T1 is defined at each point of use. -# define ASIO_SVC_ACCESS protected -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -// Helper macros to manage transition away from error_code return values. -#if defined(ASIO_NO_DEPRECATED) -# define ASIO_SYNC_OP_VOID void -# define ASIO_SYNC_OP_VOID_RETURN(e) return -#else // defined(ASIO_NO_DEPRECATED) -# define ASIO_SYNC_OP_VOID asio::error_code -# define ASIO_SYNC_OP_VOID_RETURN(e) return e -#endif // defined(ASIO_NO_DEPRECATED) - -// Newer gcc, clang need special treatment to suppress unused typedef warnings. -#if defined(__clang__) -# if defined(__apple_build_version__) -# if (__clang_major__ >= 7) -# define ASIO_UNUSED_TYPEDEF __attribute__((__unused__)) -# endif // (__clang_major__ >= 7) -# elif ((__clang_major__ == 3) && (__clang_minor__ >= 6)) \ - || (__clang_major__ > 3) -# define ASIO_UNUSED_TYPEDEF __attribute__((__unused__)) -# endif // ((__clang_major__ == 3) && (__clang_minor__ >= 6)) - // || (__clang_major__ > 3) -#elif defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4) -# define ASIO_UNUSED_TYPEDEF __attribute__((__unused__)) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4) -#endif // defined(__GNUC__) -#if !defined(ASIO_UNUSED_TYPEDEF) -# define ASIO_UNUSED_TYPEDEF -#endif // !defined(ASIO_UNUSED_TYPEDEF) - -// Some versions of gcc generate spurious warnings about unused variables. -#if defined(__GNUC__) -# if (__GNUC__ >= 4) -# define ASIO_UNUSED_VARIABLE __attribute__((__unused__)) -# endif // (__GNUC__ >= 4) -#endif // defined(__GNUC__) -#if !defined(ASIO_UNUSED_VARIABLE) -# define ASIO_UNUSED_VARIABLE -#endif // !defined(ASIO_UNUSED_VARIABLE) - -// Support co_await on compilers known to allow it. -#if !defined(ASIO_HAS_CO_AWAIT) -# if !defined(ASIO_DISABLE_CO_AWAIT) -# if defined(ASIO_MSVC) -# if (_MSC_FULL_VER >= 190023506) -# if defined(_RESUMABLE_FUNCTIONS_SUPPORTED) -# define ASIO_HAS_CO_AWAIT 1 -# endif // defined(_RESUMABLE_FUNCTIONS_SUPPORTED) -# endif // (_MSC_FULL_VER >= 190023506) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_CO_AWAIT) -# if defined(__clang__) -# if (__cpp_coroutines >= 201703) -# if __has_include() -# define ASIO_HAS_CO_AWAIT 1 -# endif // __has_include() -# endif // (__cpp_coroutines >= 201703) -# endif // defined(__clang__) -#endif // !defined(ASIO_HAS_CO_AWAIT) - -#endif // ASIO_DETAIL_CONFIG_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/consuming_buffers.hpp b/Sources/Vendor/asio/include/asio/detail/consuming_buffers.hpp deleted file mode 100644 index 8127ae7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/consuming_buffers.hpp +++ /dev/null @@ -1,414 +0,0 @@ -// -// detail/consuming_buffers.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_CONSUMING_BUFFERS_HPP -#define ASIO_DETAIL_CONSUMING_BUFFERS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/buffer.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/limits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Helper template to determine the maximum number of prepared buffers. -template -struct prepared_buffers_max -{ - enum { value = buffer_sequence_adapter_base::max_buffers }; -}; - -template -struct prepared_buffers_max > -{ - enum { value = N }; -}; - -#if defined(ASIO_HAS_STD_ARRAY) - -template -struct prepared_buffers_max > -{ - enum { value = N }; -}; - -#endif // defined(ASIO_HAS_STD_ARRAY) - -// A buffer sequence used to represent a subsequence of the buffers. -template -struct prepared_buffers -{ - typedef Buffer value_type; - typedef const Buffer* const_iterator; - - enum { max_buffers = MaxBuffers < 16 ? MaxBuffers : 16 }; - - prepared_buffers() : count(0) {} - const_iterator begin() const { return elems; } - const_iterator end() const { return elems + count; } - - Buffer elems[max_buffers]; - std::size_t count; -}; - -// A proxy for a sub-range in a list of buffers. -template -class consuming_buffers -{ -public: - typedef prepared_buffers::value> - prepared_buffers_type; - - // Construct to represent the entire list of buffers. - explicit consuming_buffers(const Buffers& buffers) - : buffers_(buffers), - total_consumed_(0), - next_elem_(0), - next_elem_offset_(0) - { - using asio::buffer_size; - total_size_ = buffer_size(buffers); - } - - // Determine if we are at the end of the buffers. - bool empty() const - { - return total_consumed_ >= total_size_; - } - - // Get the buffer for a single transfer, with a size. - prepared_buffers_type prepare(std::size_t max_size) - { - prepared_buffers_type result; - - Buffer_Iterator next = asio::buffer_sequence_begin(buffers_); - Buffer_Iterator end = asio::buffer_sequence_end(buffers_); - - std::advance(next, next_elem_); - std::size_t elem_offset = next_elem_offset_; - while (next != end && max_size > 0 && (result.count) < result.max_buffers) - { - Buffer next_buf = Buffer(*next) + elem_offset; - result.elems[result.count] = asio::buffer(next_buf, max_size); - max_size -= result.elems[result.count].size(); - elem_offset = 0; - if (result.elems[result.count].size() > 0) - ++result.count; - ++next; - } - - return result; - } - - // Consume the specified number of bytes from the buffers. - void consume(std::size_t size) - { - total_consumed_ += size; - - Buffer_Iterator next = asio::buffer_sequence_begin(buffers_); - Buffer_Iterator end = asio::buffer_sequence_end(buffers_); - - std::advance(next, next_elem_); - while (next != end && size > 0) - { - Buffer next_buf = Buffer(*next) + next_elem_offset_; - if (size < next_buf.size()) - { - next_elem_offset_ += size; - size = 0; - } - else - { - size -= next_buf.size(); - next_elem_offset_ = 0; - ++next_elem_; - ++next; - } - } - } - - // Get the total number of bytes consumed from the buffers. - std::size_t total_consumed() const - { - return total_consumed_; - } - -private: - Buffers buffers_; - std::size_t total_size_; - std::size_t total_consumed_; - std::size_t next_elem_; - std::size_t next_elem_offset_; -}; - -// Base class of all consuming_buffers specialisations for single buffers. -template -class consuming_single_buffer -{ -public: - // Construct to represent the entire list of buffers. - template - explicit consuming_single_buffer(const Buffer1& buffer) - : buffer_(buffer), - total_consumed_(0) - { - } - - // Determine if we are at the end of the buffers. - bool empty() const - { - return total_consumed_ >= buffer_.size(); - } - - // Get the buffer for a single transfer, with a size. - Buffer prepare(std::size_t max_size) - { - return asio::buffer(buffer_ + total_consumed_, max_size); - } - - // Consume the specified number of bytes from the buffers. - void consume(std::size_t size) - { - total_consumed_ += size; - } - - // Get the total number of bytes consumed from the buffers. - std::size_t total_consumed() const - { - return total_consumed_; - } - -private: - Buffer buffer_; - std::size_t total_consumed_; -}; - -template <> -class consuming_buffers - : public consuming_single_buffer -{ -public: - explicit consuming_buffers(const mutable_buffer& buffer) - : consuming_single_buffer(buffer) - { - } -}; - -template <> -class consuming_buffers - : public consuming_single_buffer -{ -public: - explicit consuming_buffers(const mutable_buffer& buffer) - : consuming_single_buffer(buffer) - { - } -}; - -template <> -class consuming_buffers - : public consuming_single_buffer -{ -public: - explicit consuming_buffers(const const_buffer& buffer) - : consuming_single_buffer(buffer) - { - } -}; - -#if !defined(ASIO_NO_DEPRECATED) - -template <> -class consuming_buffers - : public consuming_single_buffer -{ -public: - explicit consuming_buffers(const mutable_buffers_1& buffer) - : consuming_single_buffer(buffer) - { - } -}; - -template <> -class consuming_buffers - : public consuming_single_buffer -{ -public: - explicit consuming_buffers(const mutable_buffers_1& buffer) - : consuming_single_buffer(buffer) - { - } -}; - -template <> -class consuming_buffers - : public consuming_single_buffer -{ -public: - explicit consuming_buffers(const const_buffers_1& buffer) - : consuming_single_buffer(buffer) - { - } -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -class consuming_buffers, - typename boost::array::const_iterator> -{ -public: - // Construct to represent the entire list of buffers. - explicit consuming_buffers(const boost::array& buffers) - : buffers_(buffers), - total_consumed_(0) - { - } - - // Determine if we are at the end of the buffers. - bool empty() const - { - return total_consumed_ >= - Buffer(buffers_[0]).size() + Buffer(buffers_[1]).size(); - } - - // Get the buffer for a single transfer, with a size. - boost::array prepare(std::size_t max_size) - { - boost::array result = {{ - Buffer(buffers_[0]), Buffer(buffers_[1]) }}; - std::size_t buffer0_size = result[0].size(); - result[0] = asio::buffer(result[0] + total_consumed_, max_size); - result[1] = asio::buffer( - result[1] + (total_consumed_ < buffer0_size - ? 0 : total_consumed_ - buffer0_size), - max_size - result[0].size()); - return result; - } - - // Consume the specified number of bytes from the buffers. - void consume(std::size_t size) - { - total_consumed_ += size; - } - - // Get the total number of bytes consumed from the buffers. - std::size_t total_consumed() const - { - return total_consumed_; - } - -private: - boost::array buffers_; - std::size_t total_consumed_; -}; - -#if defined(ASIO_HAS_STD_ARRAY) - -template -class consuming_buffers, - typename std::array::const_iterator> -{ -public: - // Construct to represent the entire list of buffers. - explicit consuming_buffers(const std::array& buffers) - : buffers_(buffers), - total_consumed_(0) - { - } - - // Determine if we are at the end of the buffers. - bool empty() const - { - return total_consumed_ >= - Buffer(buffers_[0]).size() + Buffer(buffers_[1]).size(); - } - - // Get the buffer for a single transfer, with a size. - std::array prepare(std::size_t max_size) - { - std::array result = {{ - Buffer(buffers_[0]), Buffer(buffers_[1]) }}; - std::size_t buffer0_size = result[0].size(); - result[0] = asio::buffer(result[0] + total_consumed_, max_size); - result[1] = asio::buffer( - result[1] + (total_consumed_ < buffer0_size - ? 0 : total_consumed_ - buffer0_size), - max_size - result[0].size()); - return result; - } - - // Consume the specified number of bytes from the buffers. - void consume(std::size_t size) - { - total_consumed_ += size; - } - - // Get the total number of bytes consumed from the buffers. - std::size_t total_consumed() const - { - return total_consumed_; - } - -private: - std::array buffers_; - std::size_t total_consumed_; -}; - -#endif // defined(ASIO_HAS_STD_ARRAY) - -// Specialisation for null_buffers to ensure that the null_buffers type is -// always passed through to the underlying read or write operation. -template -class consuming_buffers - : public asio::null_buffers -{ -public: - consuming_buffers(const null_buffers&) - { - // No-op. - } - - bool empty() - { - return false; - } - - null_buffers prepare(std::size_t) - { - return null_buffers(); - } - - void consume(std::size_t) - { - // No-op. - } - - std::size_t total_consumed() const - { - return 0; - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_CONSUMING_BUFFERS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/cstddef.hpp b/Sources/Vendor/asio/include/asio/detail/cstddef.hpp deleted file mode 100644 index 3912da4..0000000 --- a/Sources/Vendor/asio/include/asio/detail/cstddef.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// -// detail/cstddef.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_CSTDDEF_HPP -#define ASIO_DETAIL_CSTDDEF_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include - -namespace asio { - -#if defined(ASIO_HAS_NULLPTR) -using std::nullptr_t; -#else // defined(ASIO_HAS_NULLPTR) -struct nullptr_t {}; -#endif // defined(ASIO_HAS_NULLPTR) - -} // namespace asio - -#endif // ASIO_DETAIL_CSTDDEF_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/cstdint.hpp b/Sources/Vendor/asio/include/asio/detail/cstdint.hpp deleted file mode 100644 index 62342b2..0000000 --- a/Sources/Vendor/asio/include/asio/detail/cstdint.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// -// detail/cstdint.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_CSTDINT_HPP -#define ASIO_DETAIL_CSTDINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_CSTDINT) -# include -#else // defined(ASIO_HAS_CSTDINT) -# include -#endif // defined(ASIO_HAS_CSTDINT) - -namespace asio { - -#if defined(ASIO_HAS_CSTDINT) -using std::int16_t; -using std::int_least16_t; -using std::uint16_t; -using std::uint_least16_t; -using std::int32_t; -using std::int_least32_t; -using std::uint32_t; -using std::uint_least32_t; -using std::int64_t; -using std::int_least64_t; -using std::uint64_t; -using std::uint_least64_t; -using std::uintmax_t; -#else // defined(ASIO_HAS_CSTDINT) -using boost::int16_t; -using boost::int_least16_t; -using boost::uint16_t; -using boost::uint_least16_t; -using boost::int32_t; -using boost::int_least32_t; -using boost::uint32_t; -using boost::uint_least32_t; -using boost::int64_t; -using boost::int_least64_t; -using boost::uint64_t; -using boost::uint_least64_t; -using boost::uintmax_t; -#endif // defined(ASIO_HAS_CSTDINT) - -} // namespace asio - -#endif // ASIO_DETAIL_CSTDINT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/date_time_fwd.hpp b/Sources/Vendor/asio/include/asio/detail/date_time_fwd.hpp deleted file mode 100644 index a159562..0000000 --- a/Sources/Vendor/asio/include/asio/detail/date_time_fwd.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// detail/date_time_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_DATE_TIME_FWD_HPP -#define ASIO_DETAIL_DATE_TIME_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -namespace boost { -namespace date_time { - -template -class base_time; - -} // namespace date_time -namespace posix_time { - -class ptime; - -} // namespace posix_time -} // namespace boost - -#endif // ASIO_DETAIL_DATE_TIME_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/deadline_timer_service.hpp b/Sources/Vendor/asio/include/asio/detail/deadline_timer_service.hpp deleted file mode 100644 index f58a6e0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/deadline_timer_service.hpp +++ /dev/null @@ -1,278 +0,0 @@ -// -// detail/deadline_timer_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_DEADLINE_TIMER_SERVICE_HPP -#define ASIO_DETAIL_DEADLINE_TIMER_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/timer_queue.hpp" -#include "asio/detail/timer_queue_ptime.hpp" -#include "asio/detail/timer_scheduler.hpp" -#include "asio/detail/wait_handler.hpp" -#include "asio/detail/wait_op.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include -# include -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class deadline_timer_service - : public service_base > -{ -public: - // The time type. - typedef typename Time_Traits::time_type time_type; - - // The duration type. - typedef typename Time_Traits::duration_type duration_type; - - // The implementation type of the timer. This type is dependent on the - // underlying implementation of the timer service. - struct implementation_type - : private asio::detail::noncopyable - { - time_type expiry; - bool might_have_pending_waits; - typename timer_queue::per_timer_data timer_data; - }; - - // Constructor. - deadline_timer_service(asio::io_context& io_context) - : service_base >(io_context), - scheduler_(asio::use_service(io_context)) - { - scheduler_.init_task(); - scheduler_.add_timer_queue(timer_queue_); - } - - // Destructor. - ~deadline_timer_service() - { - scheduler_.remove_timer_queue(timer_queue_); - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - } - - // Construct a new timer implementation. - void construct(implementation_type& impl) - { - impl.expiry = time_type(); - impl.might_have_pending_waits = false; - } - - // Destroy a timer implementation. - void destroy(implementation_type& impl) - { - asio::error_code ec; - cancel(impl, ec); - } - - // Move-construct a new serial port implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - scheduler_.move_timer(timer_queue_, impl.timer_data, other_impl.timer_data); - - impl.expiry = other_impl.expiry; - other_impl.expiry = time_type(); - - impl.might_have_pending_waits = other_impl.might_have_pending_waits; - other_impl.might_have_pending_waits = false; - } - - // Move-assign from another serial port implementation. - void move_assign(implementation_type& impl, - deadline_timer_service& other_service, - implementation_type& other_impl) - { - if (this != &other_service) - if (impl.might_have_pending_waits) - scheduler_.cancel_timer(timer_queue_, impl.timer_data); - - other_service.scheduler_.move_timer(other_service.timer_queue_, - impl.timer_data, other_impl.timer_data); - - impl.expiry = other_impl.expiry; - other_impl.expiry = time_type(); - - impl.might_have_pending_waits = other_impl.might_have_pending_waits; - other_impl.might_have_pending_waits = false; - } - - // Cancel any asynchronous wait operations associated with the timer. - std::size_t cancel(implementation_type& impl, asio::error_code& ec) - { - if (!impl.might_have_pending_waits) - { - ec = asio::error_code(); - return 0; - } - - ASIO_HANDLER_OPERATION((scheduler_.context(), - "deadline_timer", &impl, 0, "cancel")); - - std::size_t count = scheduler_.cancel_timer(timer_queue_, impl.timer_data); - impl.might_have_pending_waits = false; - ec = asio::error_code(); - return count; - } - - // Cancels one asynchronous wait operation associated with the timer. - std::size_t cancel_one(implementation_type& impl, - asio::error_code& ec) - { - if (!impl.might_have_pending_waits) - { - ec = asio::error_code(); - return 0; - } - - ASIO_HANDLER_OPERATION((scheduler_.context(), - "deadline_timer", &impl, 0, "cancel_one")); - - std::size_t count = scheduler_.cancel_timer( - timer_queue_, impl.timer_data, 1); - if (count == 0) - impl.might_have_pending_waits = false; - ec = asio::error_code(); - return count; - } - - // Get the expiry time for the timer as an absolute time. - time_type expiry(const implementation_type& impl) const - { - return impl.expiry; - } - - // Get the expiry time for the timer as an absolute time. - time_type expires_at(const implementation_type& impl) const - { - return impl.expiry; - } - - // Get the expiry time for the timer relative to now. - duration_type expires_from_now(const implementation_type& impl) const - { - return Time_Traits::subtract(this->expiry(impl), Time_Traits::now()); - } - - // Set the expiry time for the timer as an absolute time. - std::size_t expires_at(implementation_type& impl, - const time_type& expiry_time, asio::error_code& ec) - { - std::size_t count = cancel(impl, ec); - impl.expiry = expiry_time; - ec = asio::error_code(); - return count; - } - - // Set the expiry time for the timer relative to now. - std::size_t expires_after(implementation_type& impl, - const duration_type& expiry_time, asio::error_code& ec) - { - return expires_at(impl, - Time_Traits::add(Time_Traits::now(), expiry_time), ec); - } - - // Set the expiry time for the timer relative to now. - std::size_t expires_from_now(implementation_type& impl, - const duration_type& expiry_time, asio::error_code& ec) - { - return expires_at(impl, - Time_Traits::add(Time_Traits::now(), expiry_time), ec); - } - - // Perform a blocking wait on the timer. - void wait(implementation_type& impl, asio::error_code& ec) - { - time_type now = Time_Traits::now(); - ec = asio::error_code(); - while (Time_Traits::less_than(now, impl.expiry) && !ec) - { - this->do_wait(Time_Traits::to_posix_duration( - Time_Traits::subtract(impl.expiry, now)), ec); - now = Time_Traits::now(); - } - } - - // Start an asynchronous wait on the timer. - template - void async_wait(implementation_type& impl, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef wait_handler op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - impl.might_have_pending_waits = true; - - ASIO_HANDLER_CREATION((scheduler_.context(), - *p.p, "deadline_timer", &impl, 0, "async_wait")); - - scheduler_.schedule_timer(timer_queue_, impl.expiry, impl.timer_data, p.p); - p.v = p.p = 0; - } - -private: - // Helper function to wait given a duration type. The duration type should - // either be of type boost::posix_time::time_duration, or implement the - // required subset of its interface. - template - void do_wait(const Duration& timeout, asio::error_code& ec) - { -#if defined(ASIO_WINDOWS_RUNTIME) - std::this_thread::sleep_for( - std::chrono::seconds(timeout.total_seconds()) - + std::chrono::microseconds(timeout.total_microseconds())); - ec = asio::error_code(); -#else // defined(ASIO_WINDOWS_RUNTIME) - ::timeval tv; - tv.tv_sec = timeout.total_seconds(); - tv.tv_usec = timeout.total_microseconds() % 1000000; - socket_ops::select(0, 0, 0, 0, &tv, ec); -#endif // defined(ASIO_WINDOWS_RUNTIME) - } - - // The queue of timers. - timer_queue timer_queue_; - - // The object that schedules and executes timers. Usually a reactor. - timer_scheduler& scheduler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_DEADLINE_TIMER_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/dependent_type.hpp b/Sources/Vendor/asio/include/asio/detail/dependent_type.hpp deleted file mode 100644 index 85b41c8..0000000 --- a/Sources/Vendor/asio/include/asio/detail/dependent_type.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// -// detail/dependent_type.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_DEPENDENT_TYPE_HPP -#define ASIO_DETAIL_DEPENDENT_TYPE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -struct dependent_type -{ - typedef T type; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_DEPENDENT_TYPE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/descriptor_ops.hpp b/Sources/Vendor/asio/include/asio/detail/descriptor_ops.hpp deleted file mode 100644 index 9c0560a..0000000 --- a/Sources/Vendor/asio/include/asio/detail/descriptor_ops.hpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// detail/descriptor_ops.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_DESCRIPTOR_OPS_HPP -#define ASIO_DETAIL_DESCRIPTOR_OPS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - -#include -#include "asio/error.hpp" -#include "asio/error_code.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { -namespace descriptor_ops { - -// Descriptor state bits. -enum -{ - // The user wants a non-blocking descriptor. - user_set_non_blocking = 1, - - // The descriptor has been set non-blocking. - internal_non_blocking = 2, - - // Helper "state" used to determine whether the descriptor is non-blocking. - non_blocking = user_set_non_blocking | internal_non_blocking, - - // The descriptor may have been dup()-ed. - possible_dup = 4 -}; - -typedef unsigned char state_type; - -template -inline ReturnType error_wrapper(ReturnType return_value, - asio::error_code& ec) -{ - ec = asio::error_code(errno, - asio::error::get_system_category()); - return return_value; -} - -ASIO_DECL int open(const char* path, int flags, - asio::error_code& ec); - -ASIO_DECL int close(int d, state_type& state, - asio::error_code& ec); - -ASIO_DECL bool set_user_non_blocking(int d, - state_type& state, bool value, asio::error_code& ec); - -ASIO_DECL bool set_internal_non_blocking(int d, - state_type& state, bool value, asio::error_code& ec); - -typedef iovec buf; - -ASIO_DECL std::size_t sync_read(int d, state_type state, buf* bufs, - std::size_t count, bool all_empty, asio::error_code& ec); - -ASIO_DECL bool non_blocking_read(int d, buf* bufs, std::size_t count, - asio::error_code& ec, std::size_t& bytes_transferred); - -ASIO_DECL std::size_t sync_write(int d, state_type state, - const buf* bufs, std::size_t count, bool all_empty, - asio::error_code& ec); - -ASIO_DECL bool non_blocking_write(int d, - const buf* bufs, std::size_t count, - asio::error_code& ec, std::size_t& bytes_transferred); - -ASIO_DECL int ioctl(int d, state_type& state, long cmd, - ioctl_arg_type* arg, asio::error_code& ec); - -ASIO_DECL int fcntl(int d, int cmd, asio::error_code& ec); - -ASIO_DECL int fcntl(int d, int cmd, - long arg, asio::error_code& ec); - -ASIO_DECL int poll_read(int d, - state_type state, asio::error_code& ec); - -ASIO_DECL int poll_write(int d, - state_type state, asio::error_code& ec); - -ASIO_DECL int poll_error(int d, - state_type state, asio::error_code& ec); - -} // namespace descriptor_ops -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/descriptor_ops.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - -#endif // ASIO_DETAIL_DESCRIPTOR_OPS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/descriptor_read_op.hpp b/Sources/Vendor/asio/include/asio/detail/descriptor_read_op.hpp deleted file mode 100644 index 6db4bfb..0000000 --- a/Sources/Vendor/asio/include/asio/detail/descriptor_read_op.hpp +++ /dev/null @@ -1,128 +0,0 @@ -// -// detail/descriptor_read_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_DESCRIPTOR_READ_OP_HPP -#define ASIO_DETAIL_DESCRIPTOR_READ_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/descriptor_ops.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_work.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class descriptor_read_op_base : public reactor_op -{ -public: - descriptor_read_op_base(int descriptor, - const MutableBufferSequence& buffers, func_type complete_func) - : reactor_op(&descriptor_read_op_base::do_perform, complete_func), - descriptor_(descriptor), - buffers_(buffers) - { - } - - static status do_perform(reactor_op* base) - { - descriptor_read_op_base* o(static_cast(base)); - - buffer_sequence_adapter bufs(o->buffers_); - - status result = descriptor_ops::non_blocking_read(o->descriptor_, - bufs.buffers(), bufs.count(), o->ec_, o->bytes_transferred_) - ? done : not_done; - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_read", - o->ec_, o->bytes_transferred_)); - - return result; - } - -private: - int descriptor_; - MutableBufferSequence buffers_; -}; - -template -class descriptor_read_op - : public descriptor_read_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(descriptor_read_op); - - descriptor_read_op(int descriptor, - const MutableBufferSequence& buffers, Handler& handler) - : descriptor_read_op_base( - descriptor, buffers, &descriptor_read_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - descriptor_read_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#endif // ASIO_DETAIL_DESCRIPTOR_READ_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/descriptor_write_op.hpp b/Sources/Vendor/asio/include/asio/detail/descriptor_write_op.hpp deleted file mode 100644 index a9ec2a9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/descriptor_write_op.hpp +++ /dev/null @@ -1,128 +0,0 @@ -// -// detail/descriptor_write_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_DESCRIPTOR_WRITE_OP_HPP -#define ASIO_DETAIL_DESCRIPTOR_WRITE_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/descriptor_ops.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_work.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class descriptor_write_op_base : public reactor_op -{ -public: - descriptor_write_op_base(int descriptor, - const ConstBufferSequence& buffers, func_type complete_func) - : reactor_op(&descriptor_write_op_base::do_perform, complete_func), - descriptor_(descriptor), - buffers_(buffers) - { - } - - static status do_perform(reactor_op* base) - { - descriptor_write_op_base* o(static_cast(base)); - - buffer_sequence_adapter bufs(o->buffers_); - - status result = descriptor_ops::non_blocking_write(o->descriptor_, - bufs.buffers(), bufs.count(), o->ec_, o->bytes_transferred_) - ? done : not_done; - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_write", - o->ec_, o->bytes_transferred_)); - - return result; - } - -private: - int descriptor_; - ConstBufferSequence buffers_; -}; - -template -class descriptor_write_op - : public descriptor_write_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(descriptor_write_op); - - descriptor_write_op(int descriptor, - const ConstBufferSequence& buffers, Handler& handler) - : descriptor_write_op_base( - descriptor, buffers, &descriptor_write_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - descriptor_write_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#endif // ASIO_DETAIL_DESCRIPTOR_WRITE_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/dev_poll_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/dev_poll_reactor.hpp deleted file mode 100644 index e9e4e29..0000000 --- a/Sources/Vendor/asio/include/asio/detail/dev_poll_reactor.hpp +++ /dev/null @@ -1,218 +0,0 @@ -// -// detail/dev_poll_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_DEV_POLL_REACTOR_HPP -#define ASIO_DETAIL_DEV_POLL_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_DEV_POLL) - -#include -#include -#include -#include "asio/detail/hash_map.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/reactor_op_queue.hpp" -#include "asio/detail/select_interrupter.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/timer_queue_base.hpp" -#include "asio/detail/timer_queue_set.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class dev_poll_reactor - : public execution_context_service_base -{ -public: - enum op_types { read_op = 0, write_op = 1, - connect_op = 1, except_op = 2, max_ops = 3 }; - - // Per-descriptor data. - struct per_descriptor_data - { - }; - - // Constructor. - ASIO_DECL dev_poll_reactor(asio::execution_context& ctx); - - // Destructor. - ASIO_DECL ~dev_poll_reactor(); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Recreate internal descriptors following a fork. - ASIO_DECL void notify_fork( - asio::execution_context::fork_event fork_ev); - - // Initialise the task. - ASIO_DECL void init_task(); - - // Register a socket with the reactor. Returns 0 on success, system error - // code on failure. - ASIO_DECL int register_descriptor(socket_type, per_descriptor_data&); - - // Register a descriptor with an associated single operation. Returns 0 on - // success, system error code on failure. - ASIO_DECL int register_internal_descriptor( - int op_type, socket_type descriptor, - per_descriptor_data& descriptor_data, reactor_op* op); - - // Move descriptor registration from one descriptor_data object to another. - ASIO_DECL void move_descriptor(socket_type descriptor, - per_descriptor_data& target_descriptor_data, - per_descriptor_data& source_descriptor_data); - - // Post a reactor operation for immediate completion. - void post_immediate_completion(reactor_op* op, bool is_continuation) - { - scheduler_.post_immediate_completion(op, is_continuation); - } - - // Start a new operation. The reactor operation will be performed when the - // given descriptor is flagged as ready, or an error has occurred. - ASIO_DECL void start_op(int op_type, socket_type descriptor, - per_descriptor_data&, reactor_op* op, - bool is_continuation, bool allow_speculative); - - // Cancel all operations associated with the given descriptor. The - // handlers associated with the descriptor will be invoked with the - // operation_aborted error. - ASIO_DECL void cancel_ops(socket_type descriptor, per_descriptor_data&); - - // Cancel any operations that are running against the descriptor and remove - // its registration from the reactor. The reactor resources associated with - // the descriptor must be released by calling cleanup_descriptor_data. - ASIO_DECL void deregister_descriptor(socket_type descriptor, - per_descriptor_data&, bool closing); - - // Remove the descriptor's registration from the reactor. The reactor - // resources associated with the descriptor must be released by calling - // cleanup_descriptor_data. - ASIO_DECL void deregister_internal_descriptor( - socket_type descriptor, per_descriptor_data&); - - // Perform any post-deregistration cleanup tasks associated with the - // descriptor data. - ASIO_DECL void cleanup_descriptor_data(per_descriptor_data&); - - // Add a new timer queue to the reactor. - template - void add_timer_queue(timer_queue& queue); - - // Remove a timer queue from the reactor. - template - void remove_timer_queue(timer_queue& queue); - - // Schedule a new operation in the given timer queue to expire at the - // specified absolute time. - template - void schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op); - - // Cancel the timer operations associated with the given token. Returns the - // number of operations that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled = (std::numeric_limits::max)()); - - // Move the timer operations associated with the given timer. - template - void move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source); - - // Run /dev/poll once until interrupted or events are ready to be dispatched. - ASIO_DECL void run(long usec, op_queue& ops); - - // Interrupt the select loop. - ASIO_DECL void interrupt(); - -private: - // Create the /dev/poll file descriptor. Throws an exception if the descriptor - // cannot be created. - ASIO_DECL static int do_dev_poll_create(); - - // Helper function to add a new timer queue. - ASIO_DECL void do_add_timer_queue(timer_queue_base& queue); - - // Helper function to remove a timer queue. - ASIO_DECL void do_remove_timer_queue(timer_queue_base& queue); - - // Get the timeout value for the /dev/poll DP_POLL operation. The timeout - // value is returned as a number of milliseconds. A return value of -1 - // indicates that the poll should block indefinitely. - ASIO_DECL int get_timeout(int msec); - - // Cancel all operations associated with the given descriptor. The do_cancel - // function of the handler objects will be invoked. This function does not - // acquire the dev_poll_reactor's mutex. - ASIO_DECL void cancel_ops_unlocked(socket_type descriptor, - const asio::error_code& ec); - - // Add a pending event entry for the given descriptor. - ASIO_DECL ::pollfd& add_pending_event_change(int descriptor); - - // The scheduler implementation used to post completions. - scheduler& scheduler_; - - // Mutex to protect access to internal data. - asio::detail::mutex mutex_; - - // The /dev/poll file descriptor. - int dev_poll_fd_; - - // Vector of /dev/poll events waiting to be written to the descriptor. - std::vector< ::pollfd> pending_event_changes_; - - // Hash map to associate a descriptor with a pending event change index. - hash_map pending_event_change_index_; - - // The interrupter is used to break a blocking DP_POLL operation. - select_interrupter interrupter_; - - // The queues of read, write and except operations. - reactor_op_queue op_queue_[max_ops]; - - // The timer queues. - timer_queue_set timer_queues_; - - // Whether the service has been shut down. - bool shutdown_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/dev_poll_reactor.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/dev_poll_reactor.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_DEV_POLL) - -#endif // ASIO_DETAIL_DEV_POLL_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/epoll_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/epoll_reactor.hpp deleted file mode 100644 index 5f58109..0000000 --- a/Sources/Vendor/asio/include/asio/detail/epoll_reactor.hpp +++ /dev/null @@ -1,266 +0,0 @@ -// -// detail/epoll_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_EPOLL_REACTOR_HPP -#define ASIO_DETAIL_EPOLL_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_EPOLL) - -#include "asio/detail/atomic_count.hpp" -#include "asio/detail/conditionally_enabled_mutex.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/object_pool.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/select_interrupter.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/timer_queue_base.hpp" -#include "asio/detail/timer_queue_set.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/execution_context.hpp" - -#if defined(ASIO_HAS_TIMERFD) -# include -#endif // defined(ASIO_HAS_TIMERFD) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class epoll_reactor - : public execution_context_service_base -{ -private: - // The mutex type used by this reactor. - typedef conditionally_enabled_mutex mutex; - -public: - enum op_types { read_op = 0, write_op = 1, - connect_op = 1, except_op = 2, max_ops = 3 }; - - // Per-descriptor queues. - class descriptor_state : operation - { - friend class epoll_reactor; - friend class object_pool_access; - - descriptor_state* next_; - descriptor_state* prev_; - - mutex mutex_; - epoll_reactor* reactor_; - int descriptor_; - uint32_t registered_events_; - op_queue op_queue_[max_ops]; - bool try_speculative_[max_ops]; - bool shutdown_; - - ASIO_DECL descriptor_state(bool locking); - void set_ready_events(uint32_t events) { task_result_ = events; } - void add_ready_events(uint32_t events) { task_result_ |= events; } - ASIO_DECL operation* perform_io(uint32_t events); - ASIO_DECL static void do_complete( - void* owner, operation* base, - const asio::error_code& ec, std::size_t bytes_transferred); - }; - - // Per-descriptor data. - typedef descriptor_state* per_descriptor_data; - - // Constructor. - ASIO_DECL epoll_reactor(asio::execution_context& ctx); - - // Destructor. - ASIO_DECL ~epoll_reactor(); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Recreate internal descriptors following a fork. - ASIO_DECL void notify_fork( - asio::execution_context::fork_event fork_ev); - - // Initialise the task. - ASIO_DECL void init_task(); - - // Register a socket with the reactor. Returns 0 on success, system error - // code on failure. - ASIO_DECL int register_descriptor(socket_type descriptor, - per_descriptor_data& descriptor_data); - - // Register a descriptor with an associated single operation. Returns 0 on - // success, system error code on failure. - ASIO_DECL int register_internal_descriptor( - int op_type, socket_type descriptor, - per_descriptor_data& descriptor_data, reactor_op* op); - - // Move descriptor registration from one descriptor_data object to another. - ASIO_DECL void move_descriptor(socket_type descriptor, - per_descriptor_data& target_descriptor_data, - per_descriptor_data& source_descriptor_data); - - // Post a reactor operation for immediate completion. - void post_immediate_completion(reactor_op* op, bool is_continuation) - { - scheduler_.post_immediate_completion(op, is_continuation); - } - - // Start a new operation. The reactor operation will be performed when the - // given descriptor is flagged as ready, or an error has occurred. - ASIO_DECL void start_op(int op_type, socket_type descriptor, - per_descriptor_data& descriptor_data, reactor_op* op, - bool is_continuation, bool allow_speculative); - - // Cancel all operations associated with the given descriptor. The - // handlers associated with the descriptor will be invoked with the - // operation_aborted error. - ASIO_DECL void cancel_ops(socket_type descriptor, - per_descriptor_data& descriptor_data); - - // Cancel any operations that are running against the descriptor and remove - // its registration from the reactor. The reactor resources associated with - // the descriptor must be released by calling cleanup_descriptor_data. - ASIO_DECL void deregister_descriptor(socket_type descriptor, - per_descriptor_data& descriptor_data, bool closing); - - // Remove the descriptor's registration from the reactor. The reactor - // resources associated with the descriptor must be released by calling - // cleanup_descriptor_data. - ASIO_DECL void deregister_internal_descriptor( - socket_type descriptor, per_descriptor_data& descriptor_data); - - // Perform any post-deregistration cleanup tasks associated with the - // descriptor data. - ASIO_DECL void cleanup_descriptor_data( - per_descriptor_data& descriptor_data); - - // Add a new timer queue to the reactor. - template - void add_timer_queue(timer_queue& timer_queue); - - // Remove a timer queue from the reactor. - template - void remove_timer_queue(timer_queue& timer_queue); - - // Schedule a new operation in the given timer queue to expire at the - // specified absolute time. - template - void schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op); - - // Cancel the timer operations associated with the given token. Returns the - // number of operations that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled = (std::numeric_limits::max)()); - - // Move the timer operations associated with the given timer. - template - void move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source); - - // Run epoll once until interrupted or events are ready to be dispatched. - ASIO_DECL void run(long usec, op_queue& ops); - - // Interrupt the select loop. - ASIO_DECL void interrupt(); - -private: - // The hint to pass to epoll_create to size its data structures. - enum { epoll_size = 20000 }; - - // Create the epoll file descriptor. Throws an exception if the descriptor - // cannot be created. - ASIO_DECL static int do_epoll_create(); - - // Create the timerfd file descriptor. Does not throw. - ASIO_DECL static int do_timerfd_create(); - - // Allocate a new descriptor state object. - ASIO_DECL descriptor_state* allocate_descriptor_state(); - - // Free an existing descriptor state object. - ASIO_DECL void free_descriptor_state(descriptor_state* s); - - // Helper function to add a new timer queue. - ASIO_DECL void do_add_timer_queue(timer_queue_base& queue); - - // Helper function to remove a timer queue. - ASIO_DECL void do_remove_timer_queue(timer_queue_base& queue); - - // Called to recalculate and update the timeout. - ASIO_DECL void update_timeout(); - - // Get the timeout value for the epoll_wait call. The timeout value is - // returned as a number of milliseconds. A return value of -1 indicates - // that epoll_wait should block indefinitely. - ASIO_DECL int get_timeout(int msec); - -#if defined(ASIO_HAS_TIMERFD) - // Get the timeout value for the timer descriptor. The return value is the - // flag argument to be used when calling timerfd_settime. - ASIO_DECL int get_timeout(itimerspec& ts); -#endif // defined(ASIO_HAS_TIMERFD) - - // The scheduler implementation used to post completions. - scheduler& scheduler_; - - // Mutex to protect access to internal data. - mutex mutex_; - - // The interrupter is used to break a blocking epoll_wait call. - select_interrupter interrupter_; - - // The epoll file descriptor. - int epoll_fd_; - - // The timer file descriptor. - int timer_fd_; - - // The timer queues. - timer_queue_set timer_queues_; - - // Whether the service has been shut down. - bool shutdown_; - - // Mutex to protect access to the registered descriptors. - mutex registered_descriptors_mutex_; - - // Keep track of all registered descriptors. - object_pool registered_descriptors_; - - // Helper class to do post-perform_io cleanup. - struct perform_io_cleanup_on_block_exit; - friend struct perform_io_cleanup_on_block_exit; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/epoll_reactor.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/epoll_reactor.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_EPOLL) - -#endif // ASIO_DETAIL_EPOLL_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/event.hpp b/Sources/Vendor/asio/include/asio/detail/event.hpp deleted file mode 100644 index da8fa77..0000000 --- a/Sources/Vendor/asio/include/asio/detail/event.hpp +++ /dev/null @@ -1,48 +0,0 @@ -// -// detail/event.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_EVENT_HPP -#define ASIO_DETAIL_EVENT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_THREADS) -# include "asio/detail/null_event.hpp" -#elif defined(ASIO_WINDOWS) -# include "asio/detail/win_event.hpp" -#elif defined(ASIO_HAS_PTHREADS) -# include "asio/detail/posix_event.hpp" -#elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) -# include "asio/detail/std_event.hpp" -#else -# error Only Windows, POSIX and std::condition_variable are supported! -#endif - -namespace asio { -namespace detail { - -#if !defined(ASIO_HAS_THREADS) -typedef null_event event; -#elif defined(ASIO_WINDOWS) -typedef win_event event; -#elif defined(ASIO_HAS_PTHREADS) -typedef posix_event event; -#elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) -typedef std_event event; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_EVENT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/eventfd_select_interrupter.hpp b/Sources/Vendor/asio/include/asio/detail/eventfd_select_interrupter.hpp deleted file mode 100644 index f6e594b..0000000 --- a/Sources/Vendor/asio/include/asio/detail/eventfd_select_interrupter.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// -// detail/eventfd_select_interrupter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Roelof Naude (roelof.naude at gmail dot com) -// -// Distributed under the 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 ASIO_DETAIL_EVENTFD_SELECT_INTERRUPTER_HPP -#define ASIO_DETAIL_EVENTFD_SELECT_INTERRUPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_EVENTFD) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class eventfd_select_interrupter -{ -public: - // Constructor. - ASIO_DECL eventfd_select_interrupter(); - - // Destructor. - ASIO_DECL ~eventfd_select_interrupter(); - - // Recreate the interrupter's descriptors. Used after a fork. - ASIO_DECL void recreate(); - - // Interrupt the select call. - ASIO_DECL void interrupt(); - - // Reset the select interrupt. Returns true if the call was interrupted. - ASIO_DECL bool reset(); - - // Get the read descriptor to be passed to select. - int read_descriptor() const - { - return read_descriptor_; - } - -private: - // Open the descriptors. Throws on error. - ASIO_DECL void open_descriptors(); - - // Close the descriptors. - ASIO_DECL void close_descriptors(); - - // The read end of a connection used to interrupt the select call. This file - // descriptor is passed to select such that when it is time to stop, a single - // 64bit value will be written on the other end of the connection and this - // descriptor will become readable. - int read_descriptor_; - - // The write end of a connection used to interrupt the select call. A single - // 64bit non-zero value may be written to this to wake up the select which is - // waiting for the other end to become readable. This descriptor will only - // differ from the read descriptor when a pipe is used. - int write_descriptor_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/eventfd_select_interrupter.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_EVENTFD) - -#endif // ASIO_DETAIL_EVENTFD_SELECT_INTERRUPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/executor_op.hpp b/Sources/Vendor/asio/include/asio/detail/executor_op.hpp deleted file mode 100644 index 2d5c7e8..0000000 --- a/Sources/Vendor/asio/include/asio/detail/executor_op.hpp +++ /dev/null @@ -1,84 +0,0 @@ -// -// detail/executor_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_EXECUTOR_OP_HPP -#define ASIO_DETAIL_EXECUTOR_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/scheduler_operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class executor_op : public Operation -{ -public: - ASIO_DEFINE_HANDLER_ALLOCATOR_PTR(executor_op); - - template - executor_op(ASIO_MOVE_ARG(H) h, const Alloc& allocator) - : Operation(&executor_op::do_complete), - handler_(ASIO_MOVE_CAST(H)(h)), - allocator_(allocator) - { - } - - static void do_complete(void* owner, Operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - executor_op* o(static_cast(base)); - Alloc allocator(o->allocator_); - ptr p = { detail::addressof(allocator), o, o }; - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - Handler handler(ASIO_MOVE_CAST(Handler)(o->handler_)); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN(()); - asio_handler_invoke_helpers::invoke(handler, handler); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; - Alloc allocator_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_EXECUTOR_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/fd_set_adapter.hpp b/Sources/Vendor/asio/include/asio/detail/fd_set_adapter.hpp deleted file mode 100644 index fd373da..0000000 --- a/Sources/Vendor/asio/include/asio/detail/fd_set_adapter.hpp +++ /dev/null @@ -1,39 +0,0 @@ -// -// detail/fd_set_adapter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_FD_SET_ADAPTER_HPP -#define ASIO_DETAIL_FD_SET_ADAPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/posix_fd_set_adapter.hpp" -#include "asio/detail/win_fd_set_adapter.hpp" - -namespace asio { -namespace detail { - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -typedef win_fd_set_adapter fd_set_adapter; -#else -typedef posix_fd_set_adapter fd_set_adapter; -#endif - -} // namespace detail -} // namespace asio - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_FD_SET_ADAPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/fenced_block.hpp deleted file mode 100644 index dc34bd9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/fenced_block.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// -// detail/fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_FENCED_BLOCK_HPP -#define ASIO_DETAIL_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_THREADS) \ - || defined(ASIO_DISABLE_FENCED_BLOCK) -# include "asio/detail/null_fenced_block.hpp" -#elif defined(ASIO_HAS_STD_ATOMIC) -# include "asio/detail/std_fenced_block.hpp" -#elif defined(__MACH__) && defined(__APPLE__) -# include "asio/detail/macos_fenced_block.hpp" -#elif defined(__sun) -# include "asio/detail/solaris_fenced_block.hpp" -#elif defined(__GNUC__) && defined(__arm__) \ - && !defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) -# include "asio/detail/gcc_arm_fenced_block.hpp" -#elif defined(__GNUC__) && (defined(__hppa) || defined(__hppa__)) -# include "asio/detail/gcc_hppa_fenced_block.hpp" -#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) -# include "asio/detail/gcc_x86_fenced_block.hpp" -#elif defined(__GNUC__) \ - && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)) \ - && !defined(__INTEL_COMPILER) && !defined(__ICL) \ - && !defined(__ICC) && !defined(__ECC) && !defined(__PATHSCALE__) -# include "asio/detail/gcc_sync_fenced_block.hpp" -#elif defined(ASIO_WINDOWS) && !defined(UNDER_CE) -# include "asio/detail/win_fenced_block.hpp" -#else -# include "asio/detail/null_fenced_block.hpp" -#endif - -namespace asio { -namespace detail { - -#if !defined(ASIO_HAS_THREADS) \ - || defined(ASIO_DISABLE_FENCED_BLOCK) -typedef null_fenced_block fenced_block; -#elif defined(ASIO_HAS_STD_ATOMIC) -typedef std_fenced_block fenced_block; -#elif defined(__MACH__) && defined(__APPLE__) -typedef macos_fenced_block fenced_block; -#elif defined(__sun) -typedef solaris_fenced_block fenced_block; -#elif defined(__GNUC__) && defined(__arm__) \ - && !defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) -typedef gcc_arm_fenced_block fenced_block; -#elif defined(__GNUC__) && (defined(__hppa) || defined(__hppa__)) -typedef gcc_hppa_fenced_block fenced_block; -#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) -typedef gcc_x86_fenced_block fenced_block; -#elif defined(__GNUC__) \ - && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)) \ - && !defined(__INTEL_COMPILER) && !defined(__ICL) \ - && !defined(__ICC) && !defined(__ECC) && !defined(__PATHSCALE__) -typedef gcc_sync_fenced_block fenced_block; -#elif defined(ASIO_WINDOWS) && !defined(UNDER_CE) -typedef win_fenced_block fenced_block; -#else -typedef null_fenced_block fenced_block; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/functional.hpp b/Sources/Vendor/asio/include/asio/detail/functional.hpp deleted file mode 100644 index a37e9e6..0000000 --- a/Sources/Vendor/asio/include/asio/detail/functional.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// -// detail/functional.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_FUNCTIONAL_HPP -#define ASIO_DETAIL_FUNCTIONAL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include - -#if !defined(ASIO_HAS_STD_FUNCTION) -# include -#endif // !defined(ASIO_HAS_STD_FUNCTION) - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_STD_FUNCTION) -using std::function; -#else // defined(ASIO_HAS_STD_FUNCTION) -using boost::function; -#endif // defined(ASIO_HAS_STD_FUNCTION) - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_FUNCTIONAL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/future.hpp b/Sources/Vendor/asio/include/asio/detail/future.hpp deleted file mode 100644 index 2746155..0000000 --- a/Sources/Vendor/asio/include/asio/detail/future.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// detail/future.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_FUTURE_HPP -#define ASIO_DETAIL_FUTURE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#if defined(ASIO_HAS_STD_FUTURE) -# include -// Even though the future header is available, libstdc++ may not implement the -// std::future class itself. However, we need to have already included the -// future header to reliably test for _GLIBCXX_HAS_GTHREADS. -# if defined(__GNUC__) && !defined(ASIO_HAS_CLANG_LIBCXX) -# if defined(_GLIBCXX_HAS_GTHREADS) -# define ASIO_HAS_STD_FUTURE_CLASS 1 -# endif // defined(_GLIBCXX_HAS_GTHREADS) -# else // defined(__GNUC__) && !defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_FUTURE_CLASS 1 -# endif // defined(__GNUC__) && !defined(ASIO_HAS_CLANG_LIBCXX) -#endif // defined(ASIO_HAS_STD_FUTURE) - -#endif // ASIO_DETAIL_FUTURE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/gcc_arm_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/gcc_arm_fenced_block.hpp deleted file mode 100644 index 7919a55..0000000 --- a/Sources/Vendor/asio/include/asio/detail/gcc_arm_fenced_block.hpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// detail/gcc_arm_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_GCC_ARM_FENCED_BLOCK_HPP -#define ASIO_DETAIL_GCC_ARM_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(__GNUC__) && defined(__arm__) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class gcc_arm_fenced_block - : private noncopyable -{ -public: - enum half_t { half }; - enum full_t { full }; - - // Constructor for a half fenced block. - explicit gcc_arm_fenced_block(half_t) - { - } - - // Constructor for a full fenced block. - explicit gcc_arm_fenced_block(full_t) - { - barrier(); - } - - // Destructor. - ~gcc_arm_fenced_block() - { - barrier(); - } - -private: - static void barrier() - { -#if defined(__ARM_ARCH_4__) \ - || defined(__ARM_ARCH_4T__) \ - || defined(__ARM_ARCH_5__) \ - || defined(__ARM_ARCH_5E__) \ - || defined(__ARM_ARCH_5T__) \ - || defined(__ARM_ARCH_5TE__) \ - || defined(__ARM_ARCH_5TEJ__) \ - || defined(__ARM_ARCH_6__) \ - || defined(__ARM_ARCH_6J__) \ - || defined(__ARM_ARCH_6K__) \ - || defined(__ARM_ARCH_6Z__) \ - || defined(__ARM_ARCH_6ZK__) \ - || defined(__ARM_ARCH_6T2__) -# if defined(__thumb__) - // This is just a placeholder and almost certainly not sufficient. - __asm__ __volatile__ ("" : : : "memory"); -# else // defined(__thumb__) - int a = 0, b = 0; - __asm__ __volatile__ ("swp %0, %1, [%2]" - : "=&r"(a) : "r"(1), "r"(&b) : "memory", "cc"); -# endif // defined(__thumb__) -#else - // ARMv7 and later. - __asm__ __volatile__ ("dmb" : : : "memory"); -#endif - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(__GNUC__) && defined(__arm__) - -#endif // ASIO_DETAIL_GCC_ARM_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/gcc_hppa_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/gcc_hppa_fenced_block.hpp deleted file mode 100644 index d3957ce..0000000 --- a/Sources/Vendor/asio/include/asio/detail/gcc_hppa_fenced_block.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// -// detail/gcc_hppa_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_GCC_HPPA_FENCED_BLOCK_HPP -#define ASIO_DETAIL_GCC_HPPA_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(__GNUC__) && (defined(__hppa) || defined(__hppa__)) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class gcc_hppa_fenced_block - : private noncopyable -{ -public: - enum half_t { half }; - enum full_t { full }; - - // Constructor for a half fenced block. - explicit gcc_hppa_fenced_block(half_t) - { - } - - // Constructor for a full fenced block. - explicit gcc_hppa_fenced_block(full_t) - { - barrier(); - } - - // Destructor. - ~gcc_hppa_fenced_block() - { - barrier(); - } - -private: - static void barrier() - { - // This is just a placeholder and almost certainly not sufficient. - __asm__ __volatile__ ("" : : : "memory"); - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(__GNUC__) && (defined(__hppa) || defined(__hppa__)) - -#endif // ASIO_DETAIL_GCC_HPPA_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/gcc_sync_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/gcc_sync_fenced_block.hpp deleted file mode 100644 index 90d176f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/gcc_sync_fenced_block.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// -// detail/gcc_sync_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_GCC_SYNC_FENCED_BLOCK_HPP -#define ASIO_DETAIL_GCC_SYNC_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(__GNUC__) \ - && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)) \ - && !defined(__INTEL_COMPILER) && !defined(__ICL) \ - && !defined(__ICC) && !defined(__ECC) && !defined(__PATHSCALE__) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class gcc_sync_fenced_block - : private noncopyable -{ -public: - enum half_or_full_t { half, full }; - - // Constructor. - explicit gcc_sync_fenced_block(half_or_full_t) - : value_(0) - { - __sync_lock_test_and_set(&value_, 1); - } - - // Destructor. - ~gcc_sync_fenced_block() - { - __sync_lock_release(&value_); - } - -private: - int value_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(__GNUC__) - // && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)) - // && !defined(__INTEL_COMPILER) && !defined(__ICL) - // && !defined(__ICC) && !defined(__ECC) && !defined(__PATHSCALE__) - -#endif // ASIO_DETAIL_GCC_SYNC_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/gcc_x86_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/gcc_x86_fenced_block.hpp deleted file mode 100644 index 1366def..0000000 --- a/Sources/Vendor/asio/include/asio/detail/gcc_x86_fenced_block.hpp +++ /dev/null @@ -1,99 +0,0 @@ -// -// detail/gcc_x86_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_GCC_X86_FENCED_BLOCK_HPP -#define ASIO_DETAIL_GCC_X86_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class gcc_x86_fenced_block - : private noncopyable -{ -public: - enum half_t { half }; - enum full_t { full }; - - // Constructor for a half fenced block. - explicit gcc_x86_fenced_block(half_t) - { - } - - // Constructor for a full fenced block. - explicit gcc_x86_fenced_block(full_t) - { - lbarrier(); - } - - // Destructor. - ~gcc_x86_fenced_block() - { - sbarrier(); - } - -private: - static int barrier() - { - int r = 0, m = 1; - __asm__ __volatile__ ( - "xchgl %0, %1" : - "=r"(r), "=m"(m) : - "0"(1), "m"(m) : - "memory", "cc"); - return r; - } - - static void lbarrier() - { -#if defined(__SSE2__) -# if (__GNUC__ >= 4) && !defined(__INTEL_COMPILER) && !defined(__ICL) - __builtin_ia32_lfence(); -# else // (__GNUC__ >= 4) && !defined(__INTEL_COMPILER) && !defined(__ICL) - __asm__ __volatile__ ("lfence" ::: "memory"); -# endif // (__GNUC__ >= 4) && !defined(__INTEL_COMPILER) && !defined(__ICL) -#else // defined(__SSE2__) - barrier(); -#endif // defined(__SSE2__) - } - - static void sbarrier() - { -#if defined(__SSE2__) -# if (__GNUC__ >= 4) && !defined(__INTEL_COMPILER) && !defined(__ICL) - __builtin_ia32_sfence(); -# else // (__GNUC__ >= 4) && !defined(__INTEL_COMPILER) && !defined(__ICL) - __asm__ __volatile__ ("sfence" ::: "memory"); -# endif // (__GNUC__ >= 4) && !defined(__INTEL_COMPILER) && !defined(__ICL) -#else // defined(__SSE2__) - barrier(); -#endif // defined(__SSE2__) - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) - -#endif // ASIO_DETAIL_GCC_X86_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/global.hpp b/Sources/Vendor/asio/include/asio/detail/global.hpp deleted file mode 100644 index 085ac64..0000000 --- a/Sources/Vendor/asio/include/asio/detail/global.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// detail/global.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_GLOBAL_HPP -#define ASIO_DETAIL_GLOBAL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_THREADS) -# include "asio/detail/null_global.hpp" -#elif defined(ASIO_WINDOWS) -# include "asio/detail/win_global.hpp" -#elif defined(ASIO_HAS_PTHREADS) -# include "asio/detail/posix_global.hpp" -#elif defined(ASIO_HAS_STD_CALL_ONCE) -# include "asio/detail/std_global.hpp" -#else -# error Only Windows, POSIX and std::call_once are supported! -#endif - -namespace asio { -namespace detail { - -template -inline T& global() -{ -#if !defined(ASIO_HAS_THREADS) - return null_global(); -#elif defined(ASIO_WINDOWS) - return win_global(); -#elif defined(ASIO_HAS_PTHREADS) - return posix_global(); -#elif defined(ASIO_HAS_STD_CALL_ONCE) - return std_global(); -#endif -} - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_GLOBAL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/handler_alloc_helpers.hpp b/Sources/Vendor/asio/include/asio/detail/handler_alloc_helpers.hpp deleted file mode 100644 index afefb4d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/handler_alloc_helpers.hpp +++ /dev/null @@ -1,235 +0,0 @@ -// -// detail/handler_alloc_helpers.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_HANDLER_ALLOC_HELPERS_HPP -#define ASIO_DETAIL_HANDLER_ALLOC_HELPERS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/recycling_allocator.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/handler_alloc_hook.hpp" - -#include "asio/detail/push_options.hpp" - -// Calls to asio_handler_allocate and asio_handler_deallocate must be made from -// a namespace that does not contain any overloads of these functions. The -// asio_handler_alloc_helpers namespace is defined here for that purpose. -namespace asio_handler_alloc_helpers { - -template -inline void* allocate(std::size_t s, Handler& h) -{ -#if !defined(ASIO_HAS_HANDLER_HOOKS) - return ::operator new(s); -#else - using asio::asio_handler_allocate; - return asio_handler_allocate(s, asio::detail::addressof(h)); -#endif -} - -template -inline void deallocate(void* p, std::size_t s, Handler& h) -{ -#if !defined(ASIO_HAS_HANDLER_HOOKS) - ::operator delete(p); -#else - using asio::asio_handler_deallocate; - asio_handler_deallocate(p, s, asio::detail::addressof(h)); -#endif -} - -} // namespace asio_handler_alloc_helpers - -namespace asio { -namespace detail { - -template -class hook_allocator -{ -public: - typedef T value_type; - - template - struct rebind - { - typedef hook_allocator other; - }; - - explicit hook_allocator(Handler& h) - : handler_(h) - { - } - - template - hook_allocator(const hook_allocator& a) - : handler_(a.handler_) - { - } - - T* allocate(std::size_t n) - { - return static_cast( - asio_handler_alloc_helpers::allocate(sizeof(T) * n, handler_)); - } - - void deallocate(T* p, std::size_t n) - { - asio_handler_alloc_helpers::deallocate(p, sizeof(T) * n, handler_); - } - -//private: - Handler& handler_; -}; - -template -class hook_allocator -{ -public: - typedef void value_type; - - template - struct rebind - { - typedef hook_allocator other; - }; - - explicit hook_allocator(Handler& h) - : handler_(h) - { - } - - template - hook_allocator(const hook_allocator& a) - : handler_(a.handler_) - { - } - -//private: - Handler& handler_; -}; - -template -struct get_hook_allocator -{ - typedef Allocator type; - - static type get(Handler&, const Allocator& a) - { - return a; - } -}; - -template -struct get_hook_allocator > -{ - typedef hook_allocator type; - - static type get(Handler& handler, const std::allocator&) - { - return type(handler); - } -}; - -} // namespace detail -} // namespace asio - -#define ASIO_DEFINE_HANDLER_PTR(op) \ - struct ptr \ - { \ - Handler* h; \ - op* v; \ - op* p; \ - ~ptr() \ - { \ - reset(); \ - } \ - static op* allocate(Handler& handler) \ - { \ - typedef typename ::asio::associated_allocator< \ - Handler>::type associated_allocator_type; \ - typedef typename ::asio::detail::get_hook_allocator< \ - Handler, associated_allocator_type>::type hook_allocator_type; \ - ASIO_REBIND_ALLOC(hook_allocator_type, op) a( \ - ::asio::detail::get_hook_allocator< \ - Handler, associated_allocator_type>::get( \ - handler, ::asio::get_associated_allocator(handler))); \ - return a.allocate(1); \ - } \ - void reset() \ - { \ - if (p) \ - { \ - p->~op(); \ - p = 0; \ - } \ - if (v) \ - { \ - typedef typename ::asio::associated_allocator< \ - Handler>::type associated_allocator_type; \ - typedef typename ::asio::detail::get_hook_allocator< \ - Handler, associated_allocator_type>::type hook_allocator_type; \ - ASIO_REBIND_ALLOC(hook_allocator_type, op) a( \ - ::asio::detail::get_hook_allocator< \ - Handler, associated_allocator_type>::get( \ - *h, ::asio::get_associated_allocator(*h))); \ - a.deallocate(static_cast(v), 1); \ - v = 0; \ - } \ - } \ - } \ - /**/ - -#define ASIO_DEFINE_HANDLER_ALLOCATOR_PTR(op) \ - struct ptr \ - { \ - const Alloc* a; \ - void* v; \ - op* p; \ - ~ptr() \ - { \ - reset(); \ - } \ - static op* allocate(const Alloc& a) \ - { \ - typedef typename ::asio::detail::get_recycling_allocator< \ - Alloc>::type recycling_allocator_type; \ - ASIO_REBIND_ALLOC(recycling_allocator_type, op) a1( \ - ::asio::detail::get_recycling_allocator::get(a)); \ - return a1.allocate(1); \ - } \ - void reset() \ - { \ - if (p) \ - { \ - p->~op(); \ - p = 0; \ - } \ - if (v) \ - { \ - typedef typename ::asio::detail::get_recycling_allocator< \ - Alloc>::type recycling_allocator_type; \ - ASIO_REBIND_ALLOC(recycling_allocator_type, op) a1( \ - ::asio::detail::get_recycling_allocator::get(*a)); \ - a1.deallocate(static_cast(v), 1); \ - v = 0; \ - } \ - } \ - } \ - /**/ - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_HANDLER_ALLOC_HELPERS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/handler_cont_helpers.hpp b/Sources/Vendor/asio/include/asio/detail/handler_cont_helpers.hpp deleted file mode 100644 index 110ba94..0000000 --- a/Sources/Vendor/asio/include/asio/detail/handler_cont_helpers.hpp +++ /dev/null @@ -1,45 +0,0 @@ -// -// detail/handler_cont_helpers.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_HANDLER_CONT_HELPERS_HPP -#define ASIO_DETAIL_HANDLER_CONT_HELPERS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/memory.hpp" -#include "asio/handler_continuation_hook.hpp" - -#include "asio/detail/push_options.hpp" - -// Calls to asio_handler_is_continuation must be made from a namespace that -// does not contain overloads of this function. This namespace is defined here -// for that purpose. -namespace asio_handler_cont_helpers { - -template -inline bool is_continuation(Context& context) -{ -#if !defined(ASIO_HAS_HANDLER_HOOKS) - return false; -#else - using asio::asio_handler_is_continuation; - return asio_handler_is_continuation( - asio::detail::addressof(context)); -#endif -} - -} // namespace asio_handler_cont_helpers - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_HANDLER_CONT_HELPERS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/handler_invoke_helpers.hpp b/Sources/Vendor/asio/include/asio/detail/handler_invoke_helpers.hpp deleted file mode 100644 index 4c65c4c..0000000 --- a/Sources/Vendor/asio/include/asio/detail/handler_invoke_helpers.hpp +++ /dev/null @@ -1,57 +0,0 @@ -// -// detail/handler_invoke_helpers.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_HANDLER_INVOKE_HELPERS_HPP -#define ASIO_DETAIL_HANDLER_INVOKE_HELPERS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/memory.hpp" -#include "asio/handler_invoke_hook.hpp" - -#include "asio/detail/push_options.hpp" - -// Calls to asio_handler_invoke must be made from a namespace that does not -// contain overloads of this function. The asio_handler_invoke_helpers -// namespace is defined here for that purpose. -namespace asio_handler_invoke_helpers { - -template -inline void invoke(Function& function, Context& context) -{ -#if !defined(ASIO_HAS_HANDLER_HOOKS) - Function tmp(function); - tmp(); -#else - using asio::asio_handler_invoke; - asio_handler_invoke(function, asio::detail::addressof(context)); -#endif -} - -template -inline void invoke(const Function& function, Context& context) -{ -#if !defined(ASIO_HAS_HANDLER_HOOKS) - Function tmp(function); - tmp(); -#else - using asio::asio_handler_invoke; - asio_handler_invoke(function, asio::detail::addressof(context)); -#endif -} - -} // namespace asio_handler_invoke_helpers - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_HANDLER_INVOKE_HELPERS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/handler_tracking.hpp b/Sources/Vendor/asio/include/asio/detail/handler_tracking.hpp deleted file mode 100644 index 83f820e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/handler_tracking.hpp +++ /dev/null @@ -1,238 +0,0 @@ -// -// detail/handler_tracking.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_HANDLER_TRACKING_HPP -#define ASIO_DETAIL_HANDLER_TRACKING_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -namespace asio { - -class execution_context; - -} // namespace asio - -#if defined(ASIO_CUSTOM_HANDLER_TRACKING) -# include ASIO_CUSTOM_HANDLER_TRACKING -#elif defined(ASIO_ENABLE_HANDLER_TRACKING) -# include "asio/error_code.hpp" -# include "asio/detail/cstdint.hpp" -# include "asio/detail/static_mutex.hpp" -# include "asio/detail/tss_ptr.hpp" -#endif // defined(ASIO_ENABLE_HANDLER_TRACKING) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -#if defined(ASIO_CUSTOM_HANDLER_TRACKING) - -// The user-specified header must define the following macros: -// - ASIO_INHERIT_TRACKED_HANDLER -// - ASIO_ALSO_INHERIT_TRACKED_HANDLER -// - ASIO_HANDLER_TRACKING_INIT -// - ASIO_HANDLER_CREATION(args) -// - ASIO_HANDLER_COMPLETION(args) -// - ASIO_HANDLER_INVOCATION_BEGIN(args) -// - ASIO_HANDLER_INVOCATION_END -// - ASIO_HANDLER_OPERATION(args) -// - ASIO_HANDLER_REACTOR_REGISTRATION(args) -// - ASIO_HANDLER_REACTOR_DEREGISTRATION(args) -// - ASIO_HANDLER_REACTOR_READ_EVENT -// - ASIO_HANDLER_REACTOR_WRITE_EVENT -// - ASIO_HANDLER_REACTOR_ERROR_EVENT -// - ASIO_HANDLER_REACTOR_EVENTS(args) -// - ASIO_HANDLER_REACTOR_OPERATION(args) - -# if !defined(ASIO_ENABLE_HANDLER_TRACKING) -# define ASIO_ENABLE_HANDLER_TRACKING 1 -# endif /// !defined(ASIO_ENABLE_HANDLER_TRACKING) - -#elif defined(ASIO_ENABLE_HANDLER_TRACKING) - -class handler_tracking -{ -public: - class completion; - - // Base class for objects containing tracked handlers. - class tracked_handler - { - private: - // Only the handler_tracking class will have access to the id. - friend class handler_tracking; - friend class completion; - uint64_t id_; - - protected: - // Constructor initialises with no id. - tracked_handler() : id_(0) {} - - // Prevent deletion through this type. - ~tracked_handler() {} - }; - - // Initialise the tracking system. - ASIO_DECL static void init(); - - // Record the creation of a tracked handler. - ASIO_DECL static void creation( - execution_context& context, tracked_handler& h, - const char* object_type, void* object, - uintmax_t native_handle, const char* op_name); - - class completion - { - public: - // Constructor records that handler is to be invoked with no arguments. - ASIO_DECL explicit completion(const tracked_handler& h); - - // Destructor records only when an exception is thrown from the handler, or - // if the memory is being freed without the handler having been invoked. - ASIO_DECL ~completion(); - - // Records that handler is to be invoked with no arguments. - ASIO_DECL void invocation_begin(); - - // Records that handler is to be invoked with one arguments. - ASIO_DECL void invocation_begin(const asio::error_code& ec); - - // Constructor records that handler is to be invoked with two arguments. - ASIO_DECL void invocation_begin( - const asio::error_code& ec, std::size_t bytes_transferred); - - // Constructor records that handler is to be invoked with two arguments. - ASIO_DECL void invocation_begin( - const asio::error_code& ec, int signal_number); - - // Constructor records that handler is to be invoked with two arguments. - ASIO_DECL void invocation_begin( - const asio::error_code& ec, const char* arg); - - // Record that handler invocation has ended. - ASIO_DECL void invocation_end(); - - private: - friend class handler_tracking; - uint64_t id_; - bool invoked_; - completion* next_; - }; - - // Record an operation that is not directly associated with a handler. - ASIO_DECL static void operation(execution_context& context, - const char* object_type, void* object, - uintmax_t native_handle, const char* op_name); - - // Record that a descriptor has been registered with the reactor. - ASIO_DECL static void reactor_registration(execution_context& context, - uintmax_t native_handle, uintmax_t registration); - - // Record that a descriptor has been deregistered from the reactor. - ASIO_DECL static void reactor_deregistration(execution_context& context, - uintmax_t native_handle, uintmax_t registration); - - // Record a reactor-based operation that is associated with a handler. - ASIO_DECL static void reactor_events(execution_context& context, - uintmax_t registration, unsigned events); - - // Record a reactor-based operation that is associated with a handler. - ASIO_DECL static void reactor_operation( - const tracked_handler& h, const char* op_name, - const asio::error_code& ec); - - // Record a reactor-based operation that is associated with a handler. - ASIO_DECL static void reactor_operation( - const tracked_handler& h, const char* op_name, - const asio::error_code& ec, std::size_t bytes_transferred); - - // Write a line of output. - ASIO_DECL static void write_line(const char* format, ...); - -private: - struct tracking_state; - ASIO_DECL static tracking_state* get_state(); -}; - -# define ASIO_INHERIT_TRACKED_HANDLER \ - : public asio::detail::handler_tracking::tracked_handler - -# define ASIO_ALSO_INHERIT_TRACKED_HANDLER \ - , public asio::detail::handler_tracking::tracked_handler - -# define ASIO_HANDLER_TRACKING_INIT \ - asio::detail::handler_tracking::init() - -# define ASIO_HANDLER_CREATION(args) \ - asio::detail::handler_tracking::creation args - -# define ASIO_HANDLER_COMPLETION(args) \ - asio::detail::handler_tracking::completion tracked_completion args - -# define ASIO_HANDLER_INVOCATION_BEGIN(args) \ - tracked_completion.invocation_begin args - -# define ASIO_HANDLER_INVOCATION_END \ - tracked_completion.invocation_end() - -# define ASIO_HANDLER_OPERATION(args) \ - asio::detail::handler_tracking::operation args - -# define ASIO_HANDLER_REACTOR_REGISTRATION(args) \ - asio::detail::handler_tracking::reactor_registration args - -# define ASIO_HANDLER_REACTOR_DEREGISTRATION(args) \ - asio::detail::handler_tracking::reactor_deregistration args - -# define ASIO_HANDLER_REACTOR_READ_EVENT 1 -# define ASIO_HANDLER_REACTOR_WRITE_EVENT 2 -# define ASIO_HANDLER_REACTOR_ERROR_EVENT 4 - -# define ASIO_HANDLER_REACTOR_EVENTS(args) \ - asio::detail::handler_tracking::reactor_events args - -# define ASIO_HANDLER_REACTOR_OPERATION(args) \ - asio::detail::handler_tracking::reactor_operation args - -#else // defined(ASIO_ENABLE_HANDLER_TRACKING) - -# define ASIO_INHERIT_TRACKED_HANDLER -# define ASIO_ALSO_INHERIT_TRACKED_HANDLER -# define ASIO_HANDLER_TRACKING_INIT (void)0 -# define ASIO_HANDLER_CREATION(args) (void)0 -# define ASIO_HANDLER_COMPLETION(args) (void)0 -# define ASIO_HANDLER_INVOCATION_BEGIN(args) (void)0 -# define ASIO_HANDLER_INVOCATION_END (void)0 -# define ASIO_HANDLER_OPERATION(args) (void)0 -# define ASIO_HANDLER_REACTOR_REGISTRATION(args) (void)0 -# define ASIO_HANDLER_REACTOR_DEREGISTRATION(args) (void)0 -# define ASIO_HANDLER_REACTOR_READ_EVENT 0 -# define ASIO_HANDLER_REACTOR_WRITE_EVENT 0 -# define ASIO_HANDLER_REACTOR_ERROR_EVENT 0 -# define ASIO_HANDLER_REACTOR_EVENTS(args) (void)0 -# define ASIO_HANDLER_REACTOR_OPERATION(args) (void)0 - -#endif // defined(ASIO_ENABLE_HANDLER_TRACKING) - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/handler_tracking.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_HANDLER_TRACKING_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/handler_type_requirements.hpp b/Sources/Vendor/asio/include/asio/detail/handler_type_requirements.hpp deleted file mode 100644 index 9181bc5..0000000 --- a/Sources/Vendor/asio/include/asio/detail/handler_type_requirements.hpp +++ /dev/null @@ -1,556 +0,0 @@ -// -// detail/handler_type_requirements.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_HANDLER_TYPE_REQUIREMENTS_HPP -#define ASIO_DETAIL_HANDLER_TYPE_REQUIREMENTS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -// Older versions of gcc have difficulty compiling the sizeof expressions where -// we test the handler type requirements. We'll disable checking of handler type -// requirements for those compilers, but otherwise enable it by default. -#if !defined(ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS) -# if !defined(__GNUC__) || (__GNUC__ >= 4) -# define ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS 1 -# endif // !defined(__GNUC__) || (__GNUC__ >= 4) -#endif // !defined(ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS) - -// With C++0x we can use a combination of enhanced SFINAE and static_assert to -// generate better template error messages. As this technique is not yet widely -// portable, we'll only enable it for tested compilers. -#if !defined(ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS_ASSERT) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS_ASSERT 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1600) -# define ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS_ASSERT 1 -# endif // (_MSC_VER >= 1600) -# endif // defined(ASIO_MSVC) -# if defined(__clang__) -# if __has_feature(__cxx_static_assert__) -# define ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS_ASSERT 1 -# endif // __has_feature(cxx_static_assert) -# endif // defined(__clang__) -#endif // !defined(ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS) - -#if defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS) -# include "asio/async_result.hpp" -#endif // defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS) - -namespace asio { -namespace detail { - -#if defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS) - -# if defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS_ASSERT) - -template -auto zero_arg_copyable_handler_test(Handler h, void*) - -> decltype( - sizeof(Handler(static_cast(h))), - ((h)()), - char(0)); - -template -char (&zero_arg_copyable_handler_test(Handler, ...))[2]; - -template -auto one_arg_handler_test(Handler h, Arg1* a1) - -> decltype( - sizeof(Handler(ASIO_MOVE_CAST(Handler)(h))), - ((h)(*a1)), - char(0)); - -template -char (&one_arg_handler_test(Handler h, ...))[2]; - -template -auto two_arg_handler_test(Handler h, Arg1* a1, Arg2* a2) - -> decltype( - sizeof(Handler(ASIO_MOVE_CAST(Handler)(h))), - ((h)(*a1, *a2)), - char(0)); - -template -char (&two_arg_handler_test(Handler, ...))[2]; - -template -auto two_arg_move_handler_test(Handler h, Arg1* a1, Arg2* a2) - -> decltype( - sizeof(Handler(ASIO_MOVE_CAST(Handler)(h))), - ((h)(*a1, ASIO_MOVE_CAST(Arg2)(*a2))), - char(0)); - -template -char (&two_arg_move_handler_test(Handler, ...))[2]; - -# define ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT(expr, msg) \ - static_assert(expr, msg); - -# else // defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS_ASSERT) - -# define ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT(expr, msg) - -# endif // defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS_ASSERT) - -template T& lvref(); -template T& lvref(T); -template const T& clvref(); -template const T& clvref(T); -#if defined(ASIO_HAS_MOVE) -template T rvref(); -template T rvref(T); -#else // defined(ASIO_HAS_MOVE) -template const T& rvref(); -template const T& rvref(T); -#endif // defined(ASIO_HAS_MOVE) -template char argbyv(T); - -template -struct handler_type_requirements -{ -}; - -#define ASIO_LEGACY_COMPLETION_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void()) asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::zero_arg_copyable_handler_test( \ - asio::detail::clvref< \ - asio_true_handler_type>(), 0)) == 1, \ - "CompletionHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::clvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()(), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_READ_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, std::size_t)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "ReadHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_WRITE_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, std::size_t)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "WriteHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_ACCEPT_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::one_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0))) == 1, \ - "AcceptHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_MOVE_ACCEPT_HANDLER_CHECK( \ - handler_type, handler, socket_type) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, socket_type)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_move_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "MoveAcceptHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::rvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_CONNECT_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::one_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0))) == 1, \ - "ConnectHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_RANGE_CONNECT_HANDLER_CHECK( \ - handler_type, handler, endpoint_type) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, endpoint_type)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "RangeConnectHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_ITERATOR_CONNECT_HANDLER_CHECK( \ - handler_type, handler, iter_type) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, iter_type)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "IteratorConnectHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_RESOLVE_HANDLER_CHECK( \ - handler_type, handler, range_type) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, range_type)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "ResolveHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_WAIT_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::one_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0))) == 1, \ - "WaitHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_SIGNAL_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, int)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "SignalHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_HANDSHAKE_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::one_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0))) == 1, \ - "HandshakeHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_BUFFERED_HANDSHAKE_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, std::size_t)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "BufferedHandshakeHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_SHUTDOWN_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::one_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0))) == 1, \ - "ShutdownHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#else // !defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS) - -#define ASIO_LEGACY_COMPLETION_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_READ_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_WRITE_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_ACCEPT_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_MOVE_ACCEPT_HANDLER_CHECK( \ - handler_type, handler, socket_type) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_CONNECT_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_RANGE_CONNECT_HANDLER_CHECK( \ - handler_type, handler, iter_type) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_ITERATOR_CONNECT_HANDLER_CHECK( \ - handler_type, handler, iter_type) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_RESOLVE_HANDLER_CHECK( \ - handler_type, handler, iter_type) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_WAIT_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_SIGNAL_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_HANDSHAKE_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_BUFFERED_HANDSHAKE_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_SHUTDOWN_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#endif // !defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS) - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_HANDLER_TYPE_REQUIREMENTS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/handler_work.hpp b/Sources/Vendor/asio/include/asio/detail/handler_work.hpp deleted file mode 100644 index cce5c4b..0000000 --- a/Sources/Vendor/asio/include/asio/detail/handler_work.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// -// detail/handler_work.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_HANDLER_WORK_HPP -#define ASIO_DETAIL_HANDLER_WORK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// A helper class template to allow completion handlers to be dispatched -// through either the new executors framework or the old invocaton hook. The -// primary template uses the new executors framework. -template ::type> -class handler_work -{ -public: - explicit handler_work(Handler& handler) ASIO_NOEXCEPT - : executor_(associated_executor::get(handler)) - { - } - - static void start(Handler& handler) ASIO_NOEXCEPT - { - Executor ex(associated_executor::get(handler)); - ex.on_work_started(); - } - - ~handler_work() - { - executor_.on_work_finished(); - } - - template - void complete(Function& function, Handler& handler) - { - executor_.dispatch(ASIO_MOVE_CAST(Function)(function), - associated_allocator::get(handler)); - } - -private: - // Disallow copying and assignment. - handler_work(const handler_work&); - handler_work& operator=(const handler_work&); - - typename associated_executor::type executor_; -}; - -// This specialisation dispatches a handler through the old invocation hook. -// The specialisation is not strictly required for correctness, as the -// system_executor will dispatch through the hook anyway. However, by doing -// this we avoid an extra copy of the handler. -template -class handler_work -{ -public: - explicit handler_work(Handler&) ASIO_NOEXCEPT {} - static void start(Handler&) ASIO_NOEXCEPT {} - ~handler_work() {} - - template - void complete(Function& function, Handler& handler) - { - asio_handler_invoke_helpers::invoke(function, handler); - } - -private: - // Disallow copying and assignment. - handler_work(const handler_work&); - handler_work& operator=(const handler_work&); -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_HANDLER_WORK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/hash_map.hpp b/Sources/Vendor/asio/include/asio/detail/hash_map.hpp deleted file mode 100644 index e70970d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/hash_map.hpp +++ /dev/null @@ -1,331 +0,0 @@ -// -// detail/hash_map.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_HASH_MAP_HPP -#define ASIO_DETAIL_HASH_MAP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include "asio/detail/assert.hpp" -#include "asio/detail/noncopyable.hpp" - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# include "asio/detail/socket_types.hpp" -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -inline std::size_t calculate_hash_value(int i) -{ - return static_cast(i); -} - -inline std::size_t calculate_hash_value(void* p) -{ - return reinterpret_cast(p) - + (reinterpret_cast(p) >> 3); -} - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -inline std::size_t calculate_hash_value(SOCKET s) -{ - return static_cast(s); -} -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -// Note: assumes K and V are POD types. -template -class hash_map - : private noncopyable -{ -public: - // The type of a value in the map. - typedef std::pair value_type; - - // The type of a non-const iterator over the hash map. - typedef typename std::list::iterator iterator; - - // The type of a const iterator over the hash map. - typedef typename std::list::const_iterator const_iterator; - - // Constructor. - hash_map() - : size_(0), - buckets_(0), - num_buckets_(0) - { - } - - // Destructor. - ~hash_map() - { - delete[] buckets_; - } - - // Get an iterator for the beginning of the map. - iterator begin() - { - return values_.begin(); - } - - // Get an iterator for the beginning of the map. - const_iterator begin() const - { - return values_.begin(); - } - - // Get an iterator for the end of the map. - iterator end() - { - return values_.end(); - } - - // Get an iterator for the end of the map. - const_iterator end() const - { - return values_.end(); - } - - // Check whether the map is empty. - bool empty() const - { - return values_.empty(); - } - - // Find an entry in the map. - iterator find(const K& k) - { - if (num_buckets_) - { - size_t bucket = calculate_hash_value(k) % num_buckets_; - iterator it = buckets_[bucket].first; - if (it == values_.end()) - return values_.end(); - iterator end_it = buckets_[bucket].last; - ++end_it; - while (it != end_it) - { - if (it->first == k) - return it; - ++it; - } - } - return values_.end(); - } - - // Find an entry in the map. - const_iterator find(const K& k) const - { - if (num_buckets_) - { - size_t bucket = calculate_hash_value(k) % num_buckets_; - const_iterator it = buckets_[bucket].first; - if (it == values_.end()) - return it; - const_iterator end_it = buckets_[bucket].last; - ++end_it; - while (it != end_it) - { - if (it->first == k) - return it; - ++it; - } - } - return values_.end(); - } - - // Insert a new entry into the map. - std::pair insert(const value_type& v) - { - if (size_ + 1 >= num_buckets_) - rehash(hash_size(size_ + 1)); - size_t bucket = calculate_hash_value(v.first) % num_buckets_; - iterator it = buckets_[bucket].first; - if (it == values_.end()) - { - buckets_[bucket].first = buckets_[bucket].last = - values_insert(values_.end(), v); - ++size_; - return std::pair(buckets_[bucket].last, true); - } - iterator end_it = buckets_[bucket].last; - ++end_it; - while (it != end_it) - { - if (it->first == v.first) - return std::pair(it, false); - ++it; - } - buckets_[bucket].last = values_insert(end_it, v); - ++size_; - return std::pair(buckets_[bucket].last, true); - } - - // Erase an entry from the map. - void erase(iterator it) - { - ASIO_ASSERT(it != values_.end()); - ASIO_ASSERT(num_buckets_ != 0); - - size_t bucket = calculate_hash_value(it->first) % num_buckets_; - bool is_first = (it == buckets_[bucket].first); - bool is_last = (it == buckets_[bucket].last); - if (is_first && is_last) - buckets_[bucket].first = buckets_[bucket].last = values_.end(); - else if (is_first) - ++buckets_[bucket].first; - else if (is_last) - --buckets_[bucket].last; - - values_erase(it); - --size_; - } - - // Erase a key from the map. - void erase(const K& k) - { - iterator it = find(k); - if (it != values_.end()) - erase(it); - } - - // Remove all entries from the map. - void clear() - { - // Clear the values. - values_.clear(); - size_ = 0; - - // Initialise all buckets to empty. - iterator end_it = values_.end(); - for (size_t i = 0; i < num_buckets_; ++i) - buckets_[i].first = buckets_[i].last = end_it; - } - -private: - // Calculate the hash size for the specified number of elements. - static std::size_t hash_size(std::size_t num_elems) - { - static std::size_t sizes[] = - { -#if defined(ASIO_HASH_MAP_BUCKETS) - ASIO_HASH_MAP_BUCKETS -#else // ASIO_HASH_MAP_BUCKETS - 3, 13, 23, 53, 97, 193, 389, 769, 1543, 3079, 6151, 12289, 24593, - 49157, 98317, 196613, 393241, 786433, 1572869, 3145739, 6291469, - 12582917, 25165843 -#endif // ASIO_HASH_MAP_BUCKETS - }; - const std::size_t nth_size = sizeof(sizes) / sizeof(std::size_t) - 1; - for (std::size_t i = 0; i < nth_size; ++i) - if (num_elems < sizes[i]) - return sizes[i]; - return sizes[nth_size]; - } - - // Re-initialise the hash from the values already contained in the list. - void rehash(std::size_t num_buckets) - { - if (num_buckets == num_buckets_) - return; - ASIO_ASSERT(num_buckets != 0); - - iterator end_iter = values_.end(); - - // Update number of buckets and initialise all buckets to empty. - bucket_type* tmp = new bucket_type[num_buckets]; - delete[] buckets_; - buckets_ = tmp; - num_buckets_ = num_buckets; - for (std::size_t i = 0; i < num_buckets_; ++i) - buckets_[i].first = buckets_[i].last = end_iter; - - // Put all values back into the hash. - iterator iter = values_.begin(); - while (iter != end_iter) - { - std::size_t bucket = calculate_hash_value(iter->first) % num_buckets_; - if (buckets_[bucket].last == end_iter) - { - buckets_[bucket].first = buckets_[bucket].last = iter++; - } - else if (++buckets_[bucket].last == iter) - { - ++iter; - } - else - { - values_.splice(buckets_[bucket].last, values_, iter++); - --buckets_[bucket].last; - } - } - } - - // Insert an element into the values list by splicing from the spares list, - // if a spare is available, and otherwise by inserting a new element. - iterator values_insert(iterator it, const value_type& v) - { - if (spares_.empty()) - { - return values_.insert(it, v); - } - else - { - spares_.front() = v; - values_.splice(it, spares_, spares_.begin()); - return --it; - } - } - - // Erase an element from the values list by splicing it to the spares list. - void values_erase(iterator it) - { - *it = value_type(); - spares_.splice(spares_.begin(), values_, it); - } - - // The number of elements in the hash. - std::size_t size_; - - // The list of all values in the hash map. - std::list values_; - - // The list of spare nodes waiting to be recycled. Assumes that POD types only - // are stored in the hash map. - std::list spares_; - - // The type for a bucket in the hash table. - struct bucket_type - { - iterator first; - iterator last; - }; - - // The buckets in the hash. - bucket_type* buckets_; - - // The number of buckets in the hash. - std::size_t num_buckets_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_HASH_MAP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp b/Sources/Vendor/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp deleted file mode 100644 index 323c8ad..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +++ /dev/null @@ -1,118 +0,0 @@ -// -// detail/impl/buffer_sequence_adapter.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_BUFFER_SEQUENCE_ADAPTER_IPP -#define ASIO_DETAIL_IMPL_BUFFER_SEQUENCE_ADAPTER_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include -#include -#include -#include "asio/detail/buffer_sequence_adapter.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class winrt_buffer_impl : - public Microsoft::WRL::RuntimeClass< - Microsoft::WRL::RuntimeClassFlags< - Microsoft::WRL::RuntimeClassType::WinRtClassicComMix>, - ABI::Windows::Storage::Streams::IBuffer, - Windows::Storage::Streams::IBufferByteAccess> -{ -public: - explicit winrt_buffer_impl(const asio::const_buffer& b) - { - bytes_ = const_cast(static_cast(b.data())); - length_ = b.size(); - capacity_ = b.size(); - } - - explicit winrt_buffer_impl(const asio::mutable_buffer& b) - { - bytes_ = static_cast(b.data()); - length_ = 0; - capacity_ = b.size(); - } - - ~winrt_buffer_impl() - { - } - - STDMETHODIMP Buffer(byte** value) - { - *value = bytes_; - return S_OK; - } - - STDMETHODIMP get_Capacity(UINT32* value) - { - *value = capacity_; - return S_OK; - } - - STDMETHODIMP get_Length(UINT32 *value) - { - *value = length_; - return S_OK; - } - - STDMETHODIMP put_Length(UINT32 value) - { - if (value > capacity_) - return E_INVALIDARG; - length_ = value; - return S_OK; - } - -private: - byte* bytes_; - UINT32 length_; - UINT32 capacity_; -}; - -void buffer_sequence_adapter_base::init_native_buffer( - buffer_sequence_adapter_base::native_buffer_type& buf, - const asio::mutable_buffer& buffer) -{ - std::memset(&buf, 0, sizeof(native_buffer_type)); - Microsoft::WRL::ComPtr insp - = Microsoft::WRL::Make(buffer); - buf = reinterpret_cast(insp.Get()); -} - -void buffer_sequence_adapter_base::init_native_buffer( - buffer_sequence_adapter_base::native_buffer_type& buf, - const asio::const_buffer& buffer) -{ - std::memset(&buf, 0, sizeof(native_buffer_type)); - Microsoft::WRL::ComPtr insp - = Microsoft::WRL::Make(buffer); - Platform::Object^ buf_obj = reinterpret_cast(insp.Get()); - buf = reinterpret_cast(insp.Get()); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_IMPL_BUFFER_SEQUENCE_ADAPTER_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/descriptor_ops.ipp b/Sources/Vendor/asio/include/asio/detail/impl/descriptor_ops.ipp deleted file mode 100644 index 1af643f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/descriptor_ops.ipp +++ /dev/null @@ -1,474 +0,0 @@ -// -// detail/impl/descriptor_ops.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_DESCRIPTOR_OPS_IPP -#define ASIO_DETAIL_IMPL_DESCRIPTOR_OPS_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/descriptor_ops.hpp" -#include "asio/error.hpp" - -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { -namespace descriptor_ops { - -int open(const char* path, int flags, asio::error_code& ec) -{ - errno = 0; - int result = error_wrapper(::open(path, flags), ec); - if (result >= 0) - ec = asio::error_code(); - return result; -} - -int close(int d, state_type& state, asio::error_code& ec) -{ - int result = 0; - if (d != -1) - { - errno = 0; - result = error_wrapper(::close(d), ec); - - if (result != 0 - && (ec == asio::error::would_block - || ec == asio::error::try_again)) - { - // According to UNIX Network Programming Vol. 1, it is possible for - // close() to fail with EWOULDBLOCK under certain circumstances. What - // isn't clear is the state of the descriptor after this error. The one - // current OS where this behaviour is seen, Windows, says that the socket - // remains open. Therefore we'll put the descriptor back into blocking - // mode and have another attempt at closing it. -#if defined(__SYMBIAN32__) - int flags = ::fcntl(d, F_GETFL, 0); - if (flags >= 0) - ::fcntl(d, F_SETFL, flags & ~O_NONBLOCK); -#else // defined(__SYMBIAN32__) - ioctl_arg_type arg = 0; - ::ioctl(d, FIONBIO, &arg); -#endif // defined(__SYMBIAN32__) - state &= ~non_blocking; - - errno = 0; - result = error_wrapper(::close(d), ec); - } - } - - if (result == 0) - ec = asio::error_code(); - return result; -} - -bool set_user_non_blocking(int d, state_type& state, - bool value, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return false; - } - - errno = 0; -#if defined(__SYMBIAN32__) - int result = error_wrapper(::fcntl(d, F_GETFL, 0), ec); - if (result >= 0) - { - errno = 0; - int flag = (value ? (result | O_NONBLOCK) : (result & ~O_NONBLOCK)); - result = error_wrapper(::fcntl(d, F_SETFL, flag), ec); - } -#else // defined(__SYMBIAN32__) - ioctl_arg_type arg = (value ? 1 : 0); - int result = error_wrapper(::ioctl(d, FIONBIO, &arg), ec); -#endif // defined(__SYMBIAN32__) - - if (result >= 0) - { - ec = asio::error_code(); - if (value) - state |= user_set_non_blocking; - else - { - // Clearing the user-set non-blocking mode always overrides any - // internally-set non-blocking flag. Any subsequent asynchronous - // operations will need to re-enable non-blocking I/O. - state &= ~(user_set_non_blocking | internal_non_blocking); - } - return true; - } - - return false; -} - -bool set_internal_non_blocking(int d, state_type& state, - bool value, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return false; - } - - if (!value && (state & user_set_non_blocking)) - { - // It does not make sense to clear the internal non-blocking flag if the - // user still wants non-blocking behaviour. Return an error and let the - // caller figure out whether to update the user-set non-blocking flag. - ec = asio::error::invalid_argument; - return false; - } - - errno = 0; -#if defined(__SYMBIAN32__) - int result = error_wrapper(::fcntl(d, F_GETFL, 0), ec); - if (result >= 0) - { - errno = 0; - int flag = (value ? (result | O_NONBLOCK) : (result & ~O_NONBLOCK)); - result = error_wrapper(::fcntl(d, F_SETFL, flag), ec); - } -#else // defined(__SYMBIAN32__) - ioctl_arg_type arg = (value ? 1 : 0); - int result = error_wrapper(::ioctl(d, FIONBIO, &arg), ec); -#endif // defined(__SYMBIAN32__) - - if (result >= 0) - { - ec = asio::error_code(); - if (value) - state |= internal_non_blocking; - else - state &= ~internal_non_blocking; - return true; - } - - return false; -} - -std::size_t sync_read(int d, state_type state, buf* bufs, - std::size_t count, bool all_empty, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // A request to read 0 bytes on a stream is a no-op. - if (all_empty) - { - ec = asio::error_code(); - return 0; - } - - // Read some data. - for (;;) - { - // Try to complete the operation without blocking. - errno = 0; - signed_size_type bytes = error_wrapper(::readv( - d, bufs, static_cast(count)), ec); - - // Check if operation succeeded. - if (bytes > 0) - return bytes; - - // Check for EOF. - if (bytes == 0) - { - ec = asio::error::eof; - return 0; - } - - // Operation failed. - if ((state & user_set_non_blocking) - || (ec != asio::error::would_block - && ec != asio::error::try_again)) - return 0; - - // Wait for descriptor to become ready. - if (descriptor_ops::poll_read(d, 0, ec) < 0) - return 0; - } -} - -bool non_blocking_read(int d, buf* bufs, std::size_t count, - asio::error_code& ec, std::size_t& bytes_transferred) -{ - for (;;) - { - // Read some data. - errno = 0; - signed_size_type bytes = error_wrapper(::readv( - d, bufs, static_cast(count)), ec); - - // Check for end of stream. - if (bytes == 0) - { - ec = asio::error::eof; - return true; - } - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Check if we need to run the operation again. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - return false; - - // Operation is complete. - if (bytes > 0) - { - ec = asio::error_code(); - bytes_transferred = bytes; - } - else - bytes_transferred = 0; - - return true; - } -} - -std::size_t sync_write(int d, state_type state, const buf* bufs, - std::size_t count, bool all_empty, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // A request to write 0 bytes on a stream is a no-op. - if (all_empty) - { - ec = asio::error_code(); - return 0; - } - - // Write some data. - for (;;) - { - // Try to complete the operation without blocking. - errno = 0; - signed_size_type bytes = error_wrapper(::writev( - d, bufs, static_cast(count)), ec); - - // Check if operation succeeded. - if (bytes > 0) - return bytes; - - // Operation failed. - if ((state & user_set_non_blocking) - || (ec != asio::error::would_block - && ec != asio::error::try_again)) - return 0; - - // Wait for descriptor to become ready. - if (descriptor_ops::poll_write(d, 0, ec) < 0) - return 0; - } -} - -bool non_blocking_write(int d, const buf* bufs, std::size_t count, - asio::error_code& ec, std::size_t& bytes_transferred) -{ - for (;;) - { - // Write some data. - errno = 0; - signed_size_type bytes = error_wrapper(::writev( - d, bufs, static_cast(count)), ec); - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Check if we need to run the operation again. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - return false; - - // Operation is complete. - if (bytes >= 0) - { - ec = asio::error_code(); - bytes_transferred = bytes; - } - else - bytes_transferred = 0; - - return true; - } -} - -int ioctl(int d, state_type& state, long cmd, - ioctl_arg_type* arg, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return -1; - } - - errno = 0; - int result = error_wrapper(::ioctl(d, cmd, arg), ec); - - if (result >= 0) - { - ec = asio::error_code(); - - // When updating the non-blocking mode we always perform the ioctl syscall, - // even if the flags would otherwise indicate that the descriptor is - // already in the correct state. This ensures that the underlying - // descriptor is put into the state that has been requested by the user. If - // the ioctl syscall was successful then we need to update the flags to - // match. - if (cmd == static_cast(FIONBIO)) - { - if (*arg) - { - state |= user_set_non_blocking; - } - else - { - // Clearing the non-blocking mode always overrides any internally-set - // non-blocking flag. Any subsequent asynchronous operations will need - // to re-enable non-blocking I/O. - state &= ~(user_set_non_blocking | internal_non_blocking); - } - } - } - - return result; -} - -int fcntl(int d, int cmd, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return -1; - } - - errno = 0; - int result = error_wrapper(::fcntl(d, cmd), ec); - if (result != -1) - ec = asio::error_code(); - return result; -} - -int fcntl(int d, int cmd, long arg, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return -1; - } - - errno = 0; - int result = error_wrapper(::fcntl(d, cmd, arg), ec); - if (result != -1) - ec = asio::error_code(); - return result; -} - -int poll_read(int d, state_type state, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return -1; - } - - pollfd fds; - fds.fd = d; - fds.events = POLLIN; - fds.revents = 0; - int timeout = (state & user_set_non_blocking) ? 0 : -1; - errno = 0; - int result = error_wrapper(::poll(&fds, 1, timeout), ec); - if (result == 0) - ec = (state & user_set_non_blocking) - ? asio::error::would_block : asio::error_code(); - else if (result > 0) - ec = asio::error_code(); - return result; -} - -int poll_write(int d, state_type state, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return -1; - } - - pollfd fds; - fds.fd = d; - fds.events = POLLOUT; - fds.revents = 0; - int timeout = (state & user_set_non_blocking) ? 0 : -1; - errno = 0; - int result = error_wrapper(::poll(&fds, 1, timeout), ec); - if (result == 0) - ec = (state & user_set_non_blocking) - ? asio::error::would_block : asio::error_code(); - else if (result > 0) - ec = asio::error_code(); - return result; -} - -int poll_error(int d, state_type state, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return -1; - } - - pollfd fds; - fds.fd = d; - fds.events = POLLPRI | POLLERR | POLLHUP; - fds.revents = 0; - int timeout = (state & user_set_non_blocking) ? 0 : -1; - errno = 0; - int result = error_wrapper(::poll(&fds, 1, timeout), ec); - if (result == 0) - ec = (state & user_set_non_blocking) - ? asio::error::would_block : asio::error_code(); - else if (result > 0) - ec = asio::error_code(); - return result; -} - -} // namespace descriptor_ops -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - -#endif // ASIO_DETAIL_IMPL_DESCRIPTOR_OPS_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/dev_poll_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/impl/dev_poll_reactor.hpp deleted file mode 100644 index 4cd8aaf..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/dev_poll_reactor.hpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// detail/impl/dev_poll_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_DEV_POLL_REACTOR_HPP -#define ASIO_DETAIL_IMPL_DEV_POLL_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_DEV_POLL) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -void dev_poll_reactor::add_timer_queue(timer_queue& queue) -{ - do_add_timer_queue(queue); -} - -template -void dev_poll_reactor::remove_timer_queue(timer_queue& queue) -{ - do_remove_timer_queue(queue); -} - -template -void dev_poll_reactor::schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - { - scheduler_.post_immediate_completion(op, false); - return; - } - - bool earliest = queue.enqueue_timer(time, timer, op); - scheduler_.work_started(); - if (earliest) - interrupter_.interrupt(); -} - -template -std::size_t dev_poll_reactor::cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - op_queue ops; - std::size_t n = queue.cancel_timer(timer, ops, max_cancelled); - lock.unlock(); - scheduler_.post_deferred_completions(ops); - return n; -} - -template -void dev_poll_reactor::move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - op_queue ops; - queue.cancel_timer(target, ops); - queue.move_timer(target, source); - lock.unlock(); - scheduler_.post_deferred_completions(ops); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_DEV_POLL) - -#endif // ASIO_DETAIL_IMPL_DEV_POLL_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/dev_poll_reactor.ipp b/Sources/Vendor/asio/include/asio/detail/impl/dev_poll_reactor.ipp deleted file mode 100644 index 1ca376c..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/dev_poll_reactor.ipp +++ /dev/null @@ -1,446 +0,0 @@ -// -// detail/impl/dev_poll_reactor.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_DEV_POLL_REACTOR_IPP -#define ASIO_DETAIL_IMPL_DEV_POLL_REACTOR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_DEV_POLL) - -#include "asio/detail/dev_poll_reactor.hpp" -#include "asio/detail/assert.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -dev_poll_reactor::dev_poll_reactor(asio::execution_context& ctx) - : asio::detail::execution_context_service_base(ctx), - scheduler_(use_service(ctx)), - mutex_(), - dev_poll_fd_(do_dev_poll_create()), - interrupter_(), - shutdown_(false) -{ - // Add the interrupter's descriptor to /dev/poll. - ::pollfd ev = { 0, 0, 0 }; - ev.fd = interrupter_.read_descriptor(); - ev.events = POLLIN | POLLERR; - ev.revents = 0; - ::write(dev_poll_fd_, &ev, sizeof(ev)); -} - -dev_poll_reactor::~dev_poll_reactor() -{ - shutdown(); - ::close(dev_poll_fd_); -} - -void dev_poll_reactor::shutdown() -{ - asio::detail::mutex::scoped_lock lock(mutex_); - shutdown_ = true; - lock.unlock(); - - op_queue ops; - - for (int i = 0; i < max_ops; ++i) - op_queue_[i].get_all_operations(ops); - - timer_queues_.get_all_timers(ops); - - scheduler_.abandon_operations(ops); -} - -void dev_poll_reactor::notify_fork( - asio::execution_context::fork_event fork_ev) -{ - if (fork_ev == asio::execution_context::fork_child) - { - detail::mutex::scoped_lock lock(mutex_); - - if (dev_poll_fd_ != -1) - ::close(dev_poll_fd_); - dev_poll_fd_ = -1; - dev_poll_fd_ = do_dev_poll_create(); - - interrupter_.recreate(); - - // Add the interrupter's descriptor to /dev/poll. - ::pollfd ev = { 0, 0, 0 }; - ev.fd = interrupter_.read_descriptor(); - ev.events = POLLIN | POLLERR; - ev.revents = 0; - ::write(dev_poll_fd_, &ev, sizeof(ev)); - - // Re-register all descriptors with /dev/poll. The changes will be written - // to the /dev/poll descriptor the next time the reactor is run. - for (int i = 0; i < max_ops; ++i) - { - reactor_op_queue::iterator iter = op_queue_[i].begin(); - reactor_op_queue::iterator end = op_queue_[i].end(); - for (; iter != end; ++iter) - { - ::pollfd& pending_ev = add_pending_event_change(iter->first); - pending_ev.events |= POLLERR | POLLHUP; - switch (i) - { - case read_op: pending_ev.events |= POLLIN; break; - case write_op: pending_ev.events |= POLLOUT; break; - case except_op: pending_ev.events |= POLLPRI; break; - default: break; - } - } - } - interrupter_.interrupt(); - } -} - -void dev_poll_reactor::init_task() -{ - scheduler_.init_task(); -} - -int dev_poll_reactor::register_descriptor(socket_type, per_descriptor_data&) -{ - return 0; -} - -int dev_poll_reactor::register_internal_descriptor(int op_type, - socket_type descriptor, per_descriptor_data&, reactor_op* op) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - op_queue_[op_type].enqueue_operation(descriptor, op); - ::pollfd& ev = add_pending_event_change(descriptor); - ev.events = POLLERR | POLLHUP; - switch (op_type) - { - case read_op: ev.events |= POLLIN; break; - case write_op: ev.events |= POLLOUT; break; - case except_op: ev.events |= POLLPRI; break; - default: break; - } - interrupter_.interrupt(); - - return 0; -} - -void dev_poll_reactor::move_descriptor(socket_type, - dev_poll_reactor::per_descriptor_data&, - dev_poll_reactor::per_descriptor_data&) -{ -} - -void dev_poll_reactor::start_op(int op_type, socket_type descriptor, - dev_poll_reactor::per_descriptor_data&, reactor_op* op, - bool is_continuation, bool allow_speculative) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - { - post_immediate_completion(op, is_continuation); - return; - } - - if (allow_speculative) - { - if (op_type != read_op || !op_queue_[except_op].has_operation(descriptor)) - { - if (!op_queue_[op_type].has_operation(descriptor)) - { - if (op->perform()) - { - lock.unlock(); - scheduler_.post_immediate_completion(op, is_continuation); - return; - } - } - } - } - - bool first = op_queue_[op_type].enqueue_operation(descriptor, op); - scheduler_.work_started(); - if (first) - { - ::pollfd& ev = add_pending_event_change(descriptor); - ev.events = POLLERR | POLLHUP; - if (op_type == read_op - || op_queue_[read_op].has_operation(descriptor)) - ev.events |= POLLIN; - if (op_type == write_op - || op_queue_[write_op].has_operation(descriptor)) - ev.events |= POLLOUT; - if (op_type == except_op - || op_queue_[except_op].has_operation(descriptor)) - ev.events |= POLLPRI; - interrupter_.interrupt(); - } -} - -void dev_poll_reactor::cancel_ops(socket_type descriptor, - dev_poll_reactor::per_descriptor_data&) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - cancel_ops_unlocked(descriptor, asio::error::operation_aborted); -} - -void dev_poll_reactor::deregister_descriptor(socket_type descriptor, - dev_poll_reactor::per_descriptor_data&, bool) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - // Remove the descriptor from /dev/poll. - ::pollfd& ev = add_pending_event_change(descriptor); - ev.events = POLLREMOVE; - interrupter_.interrupt(); - - // Cancel any outstanding operations associated with the descriptor. - cancel_ops_unlocked(descriptor, asio::error::operation_aborted); -} - -void dev_poll_reactor::deregister_internal_descriptor( - socket_type descriptor, dev_poll_reactor::per_descriptor_data&) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - // Remove the descriptor from /dev/poll. Since this function is only called - // during a fork, we can apply the change immediately. - ::pollfd ev = { 0, 0, 0 }; - ev.fd = descriptor; - ev.events = POLLREMOVE; - ev.revents = 0; - ::write(dev_poll_fd_, &ev, sizeof(ev)); - - // Destroy all operations associated with the descriptor. - op_queue ops; - asio::error_code ec; - for (int i = 0; i < max_ops; ++i) - op_queue_[i].cancel_operations(descriptor, ops, ec); -} - -void dev_poll_reactor::cleanup_descriptor_data( - dev_poll_reactor::per_descriptor_data&) -{ -} - -void dev_poll_reactor::run(long usec, op_queue& ops) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - // We can return immediately if there's no work to do and the reactor is - // not supposed to block. - if (usec == 0 && op_queue_[read_op].empty() && op_queue_[write_op].empty() - && op_queue_[except_op].empty() && timer_queues_.all_empty()) - return; - - // Write the pending event registration changes to the /dev/poll descriptor. - std::size_t events_size = sizeof(::pollfd) * pending_event_changes_.size(); - if (events_size > 0) - { - errno = 0; - int result = ::write(dev_poll_fd_, - &pending_event_changes_[0], events_size); - if (result != static_cast(events_size)) - { - asio::error_code ec = asio::error_code( - errno, asio::error::get_system_category()); - for (std::size_t i = 0; i < pending_event_changes_.size(); ++i) - { - int descriptor = pending_event_changes_[i].fd; - for (int j = 0; j < max_ops; ++j) - op_queue_[j].cancel_operations(descriptor, ops, ec); - } - } - pending_event_changes_.clear(); - pending_event_change_index_.clear(); - } - - // Calculate timeout. - int timeout; - if (usec == 0) - timeout = 0; - else - { - timeout = (usec < 0) ? -1 : ((usec - 1) / 1000 + 1); - timeout = get_timeout(timeout); - } - lock.unlock(); - - // Block on the /dev/poll descriptor. - ::pollfd events[128] = { { 0, 0, 0 } }; - ::dvpoll dp = { 0, 0, 0 }; - dp.dp_fds = events; - dp.dp_nfds = 128; - dp.dp_timeout = timeout; - int num_events = ::ioctl(dev_poll_fd_, DP_POLL, &dp); - - lock.lock(); - - // Dispatch the waiting events. - for (int i = 0; i < num_events; ++i) - { - int descriptor = events[i].fd; - if (descriptor == interrupter_.read_descriptor()) - { - interrupter_.reset(); - } - else - { - bool more_reads = false; - bool more_writes = false; - bool more_except = false; - - // Exception operations must be processed first to ensure that any - // out-of-band data is read before normal data. - if (events[i].events & (POLLPRI | POLLERR | POLLHUP)) - more_except = - op_queue_[except_op].perform_operations(descriptor, ops); - else - more_except = op_queue_[except_op].has_operation(descriptor); - - if (events[i].events & (POLLIN | POLLERR | POLLHUP)) - more_reads = op_queue_[read_op].perform_operations(descriptor, ops); - else - more_reads = op_queue_[read_op].has_operation(descriptor); - - if (events[i].events & (POLLOUT | POLLERR | POLLHUP)) - more_writes = op_queue_[write_op].perform_operations(descriptor, ops); - else - more_writes = op_queue_[write_op].has_operation(descriptor); - - if ((events[i].events & (POLLERR | POLLHUP)) != 0 - && !more_except && !more_reads && !more_writes) - { - // If we have an event and no operations associated with the - // descriptor then we need to delete the descriptor from /dev/poll. - // The poll operation can produce POLLHUP or POLLERR events when there - // is no operation pending, so if we do not remove the descriptor we - // can end up in a tight polling loop. - ::pollfd ev = { 0, 0, 0 }; - ev.fd = descriptor; - ev.events = POLLREMOVE; - ev.revents = 0; - ::write(dev_poll_fd_, &ev, sizeof(ev)); - } - else - { - ::pollfd ev = { 0, 0, 0 }; - ev.fd = descriptor; - ev.events = POLLERR | POLLHUP; - if (more_reads) - ev.events |= POLLIN; - if (more_writes) - ev.events |= POLLOUT; - if (more_except) - ev.events |= POLLPRI; - ev.revents = 0; - int result = ::write(dev_poll_fd_, &ev, sizeof(ev)); - if (result != sizeof(ev)) - { - asio::error_code ec(errno, - asio::error::get_system_category()); - for (int j = 0; j < max_ops; ++j) - op_queue_[j].cancel_operations(descriptor, ops, ec); - } - } - } - } - timer_queues_.get_ready_timers(ops); -} - -void dev_poll_reactor::interrupt() -{ - interrupter_.interrupt(); -} - -int dev_poll_reactor::do_dev_poll_create() -{ - int fd = ::open("/dev/poll", O_RDWR); - if (fd == -1) - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "/dev/poll"); - } - return fd; -} - -void dev_poll_reactor::do_add_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.insert(&queue); -} - -void dev_poll_reactor::do_remove_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.erase(&queue); -} - -int dev_poll_reactor::get_timeout(int msec) -{ - // By default we will wait no longer than 5 minutes. This will ensure that - // any changes to the system clock are detected after no longer than this. - const int max_msec = 5 * 60 * 1000; - return timer_queues_.wait_duration_msec( - (msec < 0 || max_msec < msec) ? max_msec : msec); -} - -void dev_poll_reactor::cancel_ops_unlocked(socket_type descriptor, - const asio::error_code& ec) -{ - bool need_interrupt = false; - op_queue ops; - for (int i = 0; i < max_ops; ++i) - need_interrupt = op_queue_[i].cancel_operations( - descriptor, ops, ec) || need_interrupt; - scheduler_.post_deferred_completions(ops); - if (need_interrupt) - interrupter_.interrupt(); -} - -::pollfd& dev_poll_reactor::add_pending_event_change(int descriptor) -{ - hash_map::iterator iter - = pending_event_change_index_.find(descriptor); - if (iter == pending_event_change_index_.end()) - { - std::size_t index = pending_event_changes_.size(); - pending_event_changes_.reserve(pending_event_changes_.size() + 1); - pending_event_change_index_.insert(std::make_pair(descriptor, index)); - pending_event_changes_.push_back(::pollfd()); - pending_event_changes_[index].fd = descriptor; - pending_event_changes_[index].revents = 0; - return pending_event_changes_[index]; - } - else - { - return pending_event_changes_[iter->second]; - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_DEV_POLL) - -#endif // ASIO_DETAIL_IMPL_DEV_POLL_REACTOR_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/epoll_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/impl/epoll_reactor.hpp deleted file mode 100644 index f990059..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/epoll_reactor.hpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// detail/impl/epoll_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_EPOLL_REACTOR_HPP -#define ASIO_DETAIL_IMPL_EPOLL_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if defined(ASIO_HAS_EPOLL) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -void epoll_reactor::add_timer_queue(timer_queue& queue) -{ - do_add_timer_queue(queue); -} - -template -void epoll_reactor::remove_timer_queue(timer_queue& queue) -{ - do_remove_timer_queue(queue); -} - -template -void epoll_reactor::schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op) -{ - mutex::scoped_lock lock(mutex_); - - if (shutdown_) - { - scheduler_.post_immediate_completion(op, false); - return; - } - - bool earliest = queue.enqueue_timer(time, timer, op); - scheduler_.work_started(); - if (earliest) - update_timeout(); -} - -template -std::size_t epoll_reactor::cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled) -{ - mutex::scoped_lock lock(mutex_); - op_queue ops; - std::size_t n = queue.cancel_timer(timer, ops, max_cancelled); - lock.unlock(); - scheduler_.post_deferred_completions(ops); - return n; -} - -template -void epoll_reactor::move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source) -{ - mutex::scoped_lock lock(mutex_); - op_queue ops; - queue.cancel_timer(target, ops); - queue.move_timer(target, source); - lock.unlock(); - scheduler_.post_deferred_completions(ops); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_EPOLL) - -#endif // ASIO_DETAIL_IMPL_EPOLL_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/epoll_reactor.ipp b/Sources/Vendor/asio/include/asio/detail/impl/epoll_reactor.ipp deleted file mode 100644 index 65584a4..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/epoll_reactor.ipp +++ /dev/null @@ -1,787 +0,0 @@ -// -// detail/impl/epoll_reactor.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_EPOLL_REACTOR_IPP -#define ASIO_DETAIL_IMPL_EPOLL_REACTOR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_EPOLL) - -#include -#include -#include "asio/detail/epoll_reactor.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#if defined(ASIO_HAS_TIMERFD) -# include -#endif // defined(ASIO_HAS_TIMERFD) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -epoll_reactor::epoll_reactor(asio::execution_context& ctx) - : execution_context_service_base(ctx), - scheduler_(use_service(ctx)), - mutex_(ASIO_CONCURRENCY_HINT_IS_LOCKING( - REACTOR_REGISTRATION, scheduler_.concurrency_hint())), - interrupter_(), - epoll_fd_(do_epoll_create()), - timer_fd_(do_timerfd_create()), - shutdown_(false), - registered_descriptors_mutex_(mutex_.enabled()) -{ - // Add the interrupter's descriptor to epoll. - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLIN | EPOLLERR | EPOLLET; - ev.data.ptr = &interrupter_; - epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, interrupter_.read_descriptor(), &ev); - interrupter_.interrupt(); - - // Add the timer descriptor to epoll. - if (timer_fd_ != -1) - { - ev.events = EPOLLIN | EPOLLERR; - ev.data.ptr = &timer_fd_; - epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, timer_fd_, &ev); - } -} - -epoll_reactor::~epoll_reactor() -{ - if (epoll_fd_ != -1) - close(epoll_fd_); - if (timer_fd_ != -1) - close(timer_fd_); -} - -void epoll_reactor::shutdown() -{ - mutex::scoped_lock lock(mutex_); - shutdown_ = true; - lock.unlock(); - - op_queue ops; - - while (descriptor_state* state = registered_descriptors_.first()) - { - for (int i = 0; i < max_ops; ++i) - ops.push(state->op_queue_[i]); - state->shutdown_ = true; - registered_descriptors_.free(state); - } - - timer_queues_.get_all_timers(ops); - - scheduler_.abandon_operations(ops); -} - -void epoll_reactor::notify_fork( - asio::execution_context::fork_event fork_ev) -{ - if (fork_ev == asio::execution_context::fork_child) - { - if (epoll_fd_ != -1) - ::close(epoll_fd_); - epoll_fd_ = -1; - epoll_fd_ = do_epoll_create(); - - if (timer_fd_ != -1) - ::close(timer_fd_); - timer_fd_ = -1; - timer_fd_ = do_timerfd_create(); - - interrupter_.recreate(); - - // Add the interrupter's descriptor to epoll. - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLIN | EPOLLERR | EPOLLET; - ev.data.ptr = &interrupter_; - epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, interrupter_.read_descriptor(), &ev); - interrupter_.interrupt(); - - // Add the timer descriptor to epoll. - if (timer_fd_ != -1) - { - ev.events = EPOLLIN | EPOLLERR; - ev.data.ptr = &timer_fd_; - epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, timer_fd_, &ev); - } - - update_timeout(); - - // Re-register all descriptors with epoll. - mutex::scoped_lock descriptors_lock(registered_descriptors_mutex_); - for (descriptor_state* state = registered_descriptors_.first(); - state != 0; state = state->next_) - { - ev.events = state->registered_events_; - ev.data.ptr = state; - int result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, state->descriptor_, &ev); - if (result != 0) - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "epoll re-registration"); - } - } - } -} - -void epoll_reactor::init_task() -{ - scheduler_.init_task(); -} - -int epoll_reactor::register_descriptor(socket_type descriptor, - epoll_reactor::per_descriptor_data& descriptor_data) -{ - descriptor_data = allocate_descriptor_state(); - - ASIO_HANDLER_REACTOR_REGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - { - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - descriptor_data->reactor_ = this; - descriptor_data->descriptor_ = descriptor; - descriptor_data->shutdown_ = false; - for (int i = 0; i < max_ops; ++i) - descriptor_data->try_speculative_[i] = true; - } - - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLIN | EPOLLERR | EPOLLHUP | EPOLLPRI | EPOLLET; - descriptor_data->registered_events_ = ev.events; - ev.data.ptr = descriptor_data; - int result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev); - if (result != 0) - { - if (errno == EPERM) - { - // This file descriptor type is not supported by epoll. However, if it is - // a regular file then operations on it will not block. We will allow - // this descriptor to be used and fail later if an operation on it would - // otherwise require a trip through the reactor. - descriptor_data->registered_events_ = 0; - return 0; - } - return errno; - } - - return 0; -} - -int epoll_reactor::register_internal_descriptor( - int op_type, socket_type descriptor, - epoll_reactor::per_descriptor_data& descriptor_data, reactor_op* op) -{ - descriptor_data = allocate_descriptor_state(); - - ASIO_HANDLER_REACTOR_REGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - { - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - descriptor_data->reactor_ = this; - descriptor_data->descriptor_ = descriptor; - descriptor_data->shutdown_ = false; - descriptor_data->op_queue_[op_type].push(op); - for (int i = 0; i < max_ops; ++i) - descriptor_data->try_speculative_[i] = true; - } - - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLIN | EPOLLERR | EPOLLHUP | EPOLLPRI | EPOLLET; - descriptor_data->registered_events_ = ev.events; - ev.data.ptr = descriptor_data; - int result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev); - if (result != 0) - return errno; - - return 0; -} - -void epoll_reactor::move_descriptor(socket_type, - epoll_reactor::per_descriptor_data& target_descriptor_data, - epoll_reactor::per_descriptor_data& source_descriptor_data) -{ - target_descriptor_data = source_descriptor_data; - source_descriptor_data = 0; -} - -void epoll_reactor::start_op(int op_type, socket_type descriptor, - epoll_reactor::per_descriptor_data& descriptor_data, reactor_op* op, - bool is_continuation, bool allow_speculative) -{ - if (!descriptor_data) - { - op->ec_ = asio::error::bad_descriptor; - post_immediate_completion(op, is_continuation); - return; - } - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - if (descriptor_data->shutdown_) - { - post_immediate_completion(op, is_continuation); - return; - } - - if (descriptor_data->op_queue_[op_type].empty()) - { - if (allow_speculative - && (op_type != read_op - || descriptor_data->op_queue_[except_op].empty())) - { - if (descriptor_data->try_speculative_[op_type]) - { - if (reactor_op::status status = op->perform()) - { - if (status == reactor_op::done_and_exhausted) - if (descriptor_data->registered_events_ != 0) - descriptor_data->try_speculative_[op_type] = false; - descriptor_lock.unlock(); - scheduler_.post_immediate_completion(op, is_continuation); - return; - } - } - - if (descriptor_data->registered_events_ == 0) - { - op->ec_ = asio::error::operation_not_supported; - scheduler_.post_immediate_completion(op, is_continuation); - return; - } - - if (op_type == write_op) - { - if ((descriptor_data->registered_events_ & EPOLLOUT) == 0) - { - epoll_event ev = { 0, { 0 } }; - ev.events = descriptor_data->registered_events_ | EPOLLOUT; - ev.data.ptr = descriptor_data; - if (epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev) == 0) - { - descriptor_data->registered_events_ |= ev.events; - } - else - { - op->ec_ = asio::error_code(errno, - asio::error::get_system_category()); - scheduler_.post_immediate_completion(op, is_continuation); - return; - } - } - } - } - else if (descriptor_data->registered_events_ == 0) - { - op->ec_ = asio::error::operation_not_supported; - scheduler_.post_immediate_completion(op, is_continuation); - return; - } - else - { - if (op_type == write_op) - { - descriptor_data->registered_events_ |= EPOLLOUT; - } - - epoll_event ev = { 0, { 0 } }; - ev.events = descriptor_data->registered_events_; - ev.data.ptr = descriptor_data; - epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev); - } - } - - descriptor_data->op_queue_[op_type].push(op); - scheduler_.work_started(); -} - -void epoll_reactor::cancel_ops(socket_type, - epoll_reactor::per_descriptor_data& descriptor_data) -{ - if (!descriptor_data) - return; - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - op_queue ops; - for (int i = 0; i < max_ops; ++i) - { - while (reactor_op* op = descriptor_data->op_queue_[i].front()) - { - op->ec_ = asio::error::operation_aborted; - descriptor_data->op_queue_[i].pop(); - ops.push(op); - } - } - - descriptor_lock.unlock(); - - scheduler_.post_deferred_completions(ops); -} - -void epoll_reactor::deregister_descriptor(socket_type descriptor, - epoll_reactor::per_descriptor_data& descriptor_data, bool closing) -{ - if (!descriptor_data) - return; - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - if (!descriptor_data->shutdown_) - { - if (closing) - { - // The descriptor will be automatically removed from the epoll set when - // it is closed. - } - else if (descriptor_data->registered_events_ != 0) - { - epoll_event ev = { 0, { 0 } }; - epoll_ctl(epoll_fd_, EPOLL_CTL_DEL, descriptor, &ev); - } - - op_queue ops; - for (int i = 0; i < max_ops; ++i) - { - while (reactor_op* op = descriptor_data->op_queue_[i].front()) - { - op->ec_ = asio::error::operation_aborted; - descriptor_data->op_queue_[i].pop(); - ops.push(op); - } - } - - descriptor_data->descriptor_ = -1; - descriptor_data->shutdown_ = true; - - descriptor_lock.unlock(); - - ASIO_HANDLER_REACTOR_DEREGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - scheduler_.post_deferred_completions(ops); - - // Leave descriptor_data set so that it will be freed by the subsequent - // call to cleanup_descriptor_data. - } - else - { - // We are shutting down, so prevent cleanup_descriptor_data from freeing - // the descriptor_data object and let the destructor free it instead. - descriptor_data = 0; - } -} - -void epoll_reactor::deregister_internal_descriptor(socket_type descriptor, - epoll_reactor::per_descriptor_data& descriptor_data) -{ - if (!descriptor_data) - return; - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - if (!descriptor_data->shutdown_) - { - epoll_event ev = { 0, { 0 } }; - epoll_ctl(epoll_fd_, EPOLL_CTL_DEL, descriptor, &ev); - - op_queue ops; - for (int i = 0; i < max_ops; ++i) - ops.push(descriptor_data->op_queue_[i]); - - descriptor_data->descriptor_ = -1; - descriptor_data->shutdown_ = true; - - descriptor_lock.unlock(); - - ASIO_HANDLER_REACTOR_DEREGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - // Leave descriptor_data set so that it will be freed by the subsequent - // call to cleanup_descriptor_data. - } - else - { - // We are shutting down, so prevent cleanup_descriptor_data from freeing - // the descriptor_data object and let the destructor free it instead. - descriptor_data = 0; - } -} - -void epoll_reactor::cleanup_descriptor_data( - per_descriptor_data& descriptor_data) -{ - if (descriptor_data) - { - free_descriptor_state(descriptor_data); - descriptor_data = 0; - } -} - -void epoll_reactor::run(long usec, op_queue& ops) -{ - // This code relies on the fact that the scheduler queues the reactor task - // behind all descriptor operations generated by this function. This means, - // that by the time we reach this point, any previously returned descriptor - // operations have already been dequeued. Therefore it is now safe for us to - // reuse and return them for the scheduler to queue again. - - // Calculate timeout. Check the timer queues only if timerfd is not in use. - int timeout; - if (usec == 0) - timeout = 0; - else - { - timeout = (usec < 0) ? -1 : ((usec - 1) / 1000 + 1); - if (timer_fd_ == -1) - { - mutex::scoped_lock lock(mutex_); - timeout = get_timeout(timeout); - } - } - - // Block on the epoll descriptor. - epoll_event events[128]; - int num_events = epoll_wait(epoll_fd_, events, 128, timeout); - -#if defined(ASIO_ENABLE_HANDLER_TRACKING) - // Trace the waiting events. - for (int i = 0; i < num_events; ++i) - { - void* ptr = events[i].data.ptr; - if (ptr == &interrupter_) - { - // Ignore. - } -# if defined(ASIO_HAS_TIMERFD) - else if (ptr == &timer_fd_) - { - // Ignore. - } -# endif // defined(ASIO_HAS_TIMERFD) - else - { - unsigned event_mask = 0; - if ((events[i].events & EPOLLIN) != 0) - event_mask |= ASIO_HANDLER_REACTOR_READ_EVENT; - if ((events[i].events & EPOLLOUT)) - event_mask |= ASIO_HANDLER_REACTOR_WRITE_EVENT; - if ((events[i].events & (EPOLLERR | EPOLLHUP)) != 0) - event_mask |= ASIO_HANDLER_REACTOR_ERROR_EVENT; - ASIO_HANDLER_REACTOR_EVENTS((context(), - reinterpret_cast(ptr), event_mask)); - } - } -#endif // defined(ASIO_ENABLE_HANDLER_TRACKING) - -#if defined(ASIO_HAS_TIMERFD) - bool check_timers = (timer_fd_ == -1); -#else // defined(ASIO_HAS_TIMERFD) - bool check_timers = true; -#endif // defined(ASIO_HAS_TIMERFD) - - // Dispatch the waiting events. - for (int i = 0; i < num_events; ++i) - { - void* ptr = events[i].data.ptr; - if (ptr == &interrupter_) - { - // No need to reset the interrupter since we're leaving the descriptor - // in a ready-to-read state and relying on edge-triggered notifications - // to make it so that we only get woken up when the descriptor's epoll - // registration is updated. - -#if defined(ASIO_HAS_TIMERFD) - if (timer_fd_ == -1) - check_timers = true; -#else // defined(ASIO_HAS_TIMERFD) - check_timers = true; -#endif // defined(ASIO_HAS_TIMERFD) - } -#if defined(ASIO_HAS_TIMERFD) - else if (ptr == &timer_fd_) - { - check_timers = true; - } -#endif // defined(ASIO_HAS_TIMERFD) - else - { - // The descriptor operation doesn't count as work in and of itself, so we - // don't call work_started() here. This still allows the scheduler to - // stop if the only remaining operations are descriptor operations. - descriptor_state* descriptor_data = static_cast(ptr); - if (!ops.is_enqueued(descriptor_data)) - { - descriptor_data->set_ready_events(events[i].events); - ops.push(descriptor_data); - } - else - { - descriptor_data->add_ready_events(events[i].events); - } - } - } - - if (check_timers) - { - mutex::scoped_lock common_lock(mutex_); - timer_queues_.get_ready_timers(ops); - -#if defined(ASIO_HAS_TIMERFD) - if (timer_fd_ != -1) - { - itimerspec new_timeout; - itimerspec old_timeout; - int flags = get_timeout(new_timeout); - timerfd_settime(timer_fd_, flags, &new_timeout, &old_timeout); - } -#endif // defined(ASIO_HAS_TIMERFD) - } -} - -void epoll_reactor::interrupt() -{ - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLIN | EPOLLERR | EPOLLET; - ev.data.ptr = &interrupter_; - epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, interrupter_.read_descriptor(), &ev); -} - -int epoll_reactor::do_epoll_create() -{ -#if defined(EPOLL_CLOEXEC) - int fd = epoll_create1(EPOLL_CLOEXEC); -#else // defined(EPOLL_CLOEXEC) - int fd = -1; - errno = EINVAL; -#endif // defined(EPOLL_CLOEXEC) - - if (fd == -1 && (errno == EINVAL || errno == ENOSYS)) - { - fd = epoll_create(epoll_size); - if (fd != -1) - ::fcntl(fd, F_SETFD, FD_CLOEXEC); - } - - if (fd == -1) - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "epoll"); - } - - return fd; -} - -int epoll_reactor::do_timerfd_create() -{ -#if defined(ASIO_HAS_TIMERFD) -# if defined(TFD_CLOEXEC) - int fd = timerfd_create(CLOCK_MONOTONIC, TFD_CLOEXEC); -# else // defined(TFD_CLOEXEC) - int fd = -1; - errno = EINVAL; -# endif // defined(TFD_CLOEXEC) - - if (fd == -1 && errno == EINVAL) - { - fd = timerfd_create(CLOCK_MONOTONIC, 0); - if (fd != -1) - ::fcntl(fd, F_SETFD, FD_CLOEXEC); - } - - return fd; -#else // defined(ASIO_HAS_TIMERFD) - return -1; -#endif // defined(ASIO_HAS_TIMERFD) -} - -epoll_reactor::descriptor_state* epoll_reactor::allocate_descriptor_state() -{ - mutex::scoped_lock descriptors_lock(registered_descriptors_mutex_); - return registered_descriptors_.alloc(ASIO_CONCURRENCY_HINT_IS_LOCKING( - REACTOR_IO, scheduler_.concurrency_hint())); -} - -void epoll_reactor::free_descriptor_state(epoll_reactor::descriptor_state* s) -{ - mutex::scoped_lock descriptors_lock(registered_descriptors_mutex_); - registered_descriptors_.free(s); -} - -void epoll_reactor::do_add_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.insert(&queue); -} - -void epoll_reactor::do_remove_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.erase(&queue); -} - -void epoll_reactor::update_timeout() -{ -#if defined(ASIO_HAS_TIMERFD) - if (timer_fd_ != -1) - { - itimerspec new_timeout; - itimerspec old_timeout; - int flags = get_timeout(new_timeout); - timerfd_settime(timer_fd_, flags, &new_timeout, &old_timeout); - return; - } -#endif // defined(ASIO_HAS_TIMERFD) - interrupt(); -} - -int epoll_reactor::get_timeout(int msec) -{ - // By default we will wait no longer than 5 minutes. This will ensure that - // any changes to the system clock are detected after no longer than this. - const int max_msec = 5 * 60 * 1000; - return timer_queues_.wait_duration_msec( - (msec < 0 || max_msec < msec) ? max_msec : msec); -} - -#if defined(ASIO_HAS_TIMERFD) -int epoll_reactor::get_timeout(itimerspec& ts) -{ - ts.it_interval.tv_sec = 0; - ts.it_interval.tv_nsec = 0; - - long usec = timer_queues_.wait_duration_usec(5 * 60 * 1000 * 1000); - ts.it_value.tv_sec = usec / 1000000; - ts.it_value.tv_nsec = usec ? (usec % 1000000) * 1000 : 1; - - return usec ? 0 : TFD_TIMER_ABSTIME; -} -#endif // defined(ASIO_HAS_TIMERFD) - -struct epoll_reactor::perform_io_cleanup_on_block_exit -{ - explicit perform_io_cleanup_on_block_exit(epoll_reactor* r) - : reactor_(r), first_op_(0) - { - } - - ~perform_io_cleanup_on_block_exit() - { - if (first_op_) - { - // Post the remaining completed operations for invocation. - if (!ops_.empty()) - reactor_->scheduler_.post_deferred_completions(ops_); - - // A user-initiated operation has completed, but there's no need to - // explicitly call work_finished() here. Instead, we'll take advantage of - // the fact that the scheduler will call work_finished() once we return. - } - else - { - // No user-initiated operations have completed, so we need to compensate - // for the work_finished() call that the scheduler will make once this - // operation returns. - reactor_->scheduler_.compensating_work_started(); - } - } - - epoll_reactor* reactor_; - op_queue ops_; - operation* first_op_; -}; - -epoll_reactor::descriptor_state::descriptor_state(bool locking) - : operation(&epoll_reactor::descriptor_state::do_complete), - mutex_(locking) -{ -} - -operation* epoll_reactor::descriptor_state::perform_io(uint32_t events) -{ - mutex_.lock(); - perform_io_cleanup_on_block_exit io_cleanup(reactor_); - mutex::scoped_lock descriptor_lock(mutex_, mutex::scoped_lock::adopt_lock); - - // Exception operations must be processed first to ensure that any - // out-of-band data is read before normal data. - static const int flag[max_ops] = { EPOLLIN, EPOLLOUT, EPOLLPRI }; - for (int j = max_ops - 1; j >= 0; --j) - { - if (events & (flag[j] | EPOLLERR | EPOLLHUP)) - { - try_speculative_[j] = true; - while (reactor_op* op = op_queue_[j].front()) - { - if (reactor_op::status status = op->perform()) - { - op_queue_[j].pop(); - io_cleanup.ops_.push(op); - if (status == reactor_op::done_and_exhausted) - { - try_speculative_[j] = false; - break; - } - } - else - break; - } - } - } - - // The first operation will be returned for completion now. The others will - // be posted for later by the io_cleanup object's destructor. - io_cleanup.first_op_ = io_cleanup.ops_.front(); - io_cleanup.ops_.pop(); - return io_cleanup.first_op_; -} - -void epoll_reactor::descriptor_state::do_complete( - void* owner, operation* base, - const asio::error_code& ec, std::size_t bytes_transferred) -{ - if (owner) - { - descriptor_state* descriptor_data = static_cast(base); - uint32_t events = static_cast(bytes_transferred); - if (operation* op = descriptor_data->perform_io(events)) - { - op->complete(owner, ec, 0); - } - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_EPOLL) - -#endif // ASIO_DETAIL_IMPL_EPOLL_REACTOR_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp b/Sources/Vendor/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp deleted file mode 100644 index c56e89a..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +++ /dev/null @@ -1,165 +0,0 @@ -// -// detail/impl/eventfd_select_interrupter.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Roelof Naude (roelof.naude at gmail dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_EVENTFD_SELECT_INTERRUPTER_IPP -#define ASIO_DETAIL_IMPL_EVENTFD_SELECT_INTERRUPTER_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_EVENTFD) - -#include -#include -#include -#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 -# include -#else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 -# include -#endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 -#include "asio/detail/cstdint.hpp" -#include "asio/detail/eventfd_select_interrupter.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -eventfd_select_interrupter::eventfd_select_interrupter() -{ - open_descriptors(); -} - -void eventfd_select_interrupter::open_descriptors() -{ -#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 - write_descriptor_ = read_descriptor_ = syscall(__NR_eventfd, 0); - if (read_descriptor_ != -1) - { - ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK); - ::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC); - } -#else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 -# if defined(EFD_CLOEXEC) && defined(EFD_NONBLOCK) - write_descriptor_ = read_descriptor_ = - ::eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK); -# else // defined(EFD_CLOEXEC) && defined(EFD_NONBLOCK) - errno = EINVAL; - write_descriptor_ = read_descriptor_ = -1; -# endif // defined(EFD_CLOEXEC) && defined(EFD_NONBLOCK) - if (read_descriptor_ == -1 && errno == EINVAL) - { - write_descriptor_ = read_descriptor_ = ::eventfd(0, 0); - if (read_descriptor_ != -1) - { - ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK); - ::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC); - } - } -#endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 - - if (read_descriptor_ == -1) - { - int pipe_fds[2]; - if (pipe(pipe_fds) == 0) - { - read_descriptor_ = pipe_fds[0]; - ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK); - ::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC); - write_descriptor_ = pipe_fds[1]; - ::fcntl(write_descriptor_, F_SETFL, O_NONBLOCK); - ::fcntl(write_descriptor_, F_SETFD, FD_CLOEXEC); - } - else - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "eventfd_select_interrupter"); - } - } -} - -eventfd_select_interrupter::~eventfd_select_interrupter() -{ - close_descriptors(); -} - -void eventfd_select_interrupter::close_descriptors() -{ - if (write_descriptor_ != -1 && write_descriptor_ != read_descriptor_) - ::close(write_descriptor_); - if (read_descriptor_ != -1) - ::close(read_descriptor_); -} - -void eventfd_select_interrupter::recreate() -{ - close_descriptors(); - - write_descriptor_ = -1; - read_descriptor_ = -1; - - open_descriptors(); -} - -void eventfd_select_interrupter::interrupt() -{ - uint64_t counter(1UL); - int result = ::write(write_descriptor_, &counter, sizeof(uint64_t)); - (void)result; -} - -bool eventfd_select_interrupter::reset() -{ - if (write_descriptor_ == read_descriptor_) - { - for (;;) - { - // Only perform one read. The kernel maintains an atomic counter. - uint64_t counter(0); - errno = 0; - int bytes_read = ::read(read_descriptor_, &counter, sizeof(uint64_t)); - if (bytes_read < 0 && errno == EINTR) - continue; - bool was_interrupted = (bytes_read > 0); - return was_interrupted; - } - } - else - { - for (;;) - { - // Clear all data from the pipe. - char data[1024]; - int bytes_read = ::read(read_descriptor_, data, sizeof(data)); - if (bytes_read < 0 && errno == EINTR) - continue; - bool was_interrupted = (bytes_read > 0); - while (bytes_read == sizeof(data)) - bytes_read = ::read(read_descriptor_, data, sizeof(data)); - return was_interrupted; - } - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_EVENTFD) - -#endif // ASIO_DETAIL_IMPL_EVENTFD_SELECT_INTERRUPTER_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/handler_tracking.ipp b/Sources/Vendor/asio/include/asio/detail/impl/handler_tracking.ipp deleted file mode 100644 index 5a4ff6f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/handler_tracking.ipp +++ /dev/null @@ -1,358 +0,0 @@ -// -// detail/impl/handler_tracking.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_HANDLER_TRACKING_IPP -#define ASIO_DETAIL_IMPL_HANDLER_TRACKING_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_CUSTOM_HANDLER_TRACKING) - -// The handler tracking implementation is provided by the user-specified header. - -#elif defined(ASIO_ENABLE_HANDLER_TRACKING) - -#include -#include -#include "asio/detail/handler_tracking.hpp" - -#if defined(ASIO_HAS_BOOST_DATE_TIME) -# include "asio/time_traits.hpp" -#elif defined(ASIO_HAS_CHRONO) -# include "asio/detail/chrono.hpp" -# include "asio/detail/chrono_time_traits.hpp" -# include "asio/wait_traits.hpp" -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/socket_types.hpp" -#elif !defined(ASIO_WINDOWS) -# include -#endif // !defined(ASIO_WINDOWS) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct handler_tracking_timestamp -{ - uint64_t seconds; - uint64_t microseconds; - - handler_tracking_timestamp() - { -#if defined(ASIO_HAS_BOOST_DATE_TIME) - boost::posix_time::ptime epoch(boost::gregorian::date(1970, 1, 1)); - boost::posix_time::time_duration now = - boost::posix_time::microsec_clock::universal_time() - epoch; -#elif defined(ASIO_HAS_CHRONO) - typedef chrono_time_traits > traits_helper; - traits_helper::posix_time_duration now( - chrono::system_clock::now().time_since_epoch()); -#endif - seconds = static_cast(now.total_seconds()); - microseconds = static_cast(now.total_microseconds() % 1000000); - } -}; - -struct handler_tracking::tracking_state -{ - static_mutex mutex_; - uint64_t next_id_; - tss_ptr* current_completion_; -}; - -handler_tracking::tracking_state* handler_tracking::get_state() -{ - static tracking_state state = { ASIO_STATIC_MUTEX_INIT, 1, 0 }; - return &state; -} - -void handler_tracking::init() -{ - static tracking_state* state = get_state(); - - state->mutex_.init(); - - static_mutex::scoped_lock lock(state->mutex_); - if (state->current_completion_ == 0) - state->current_completion_ = new tss_ptr; -} - -void handler_tracking::creation(execution_context&, - handler_tracking::tracked_handler& h, - const char* object_type, void* object, - uintmax_t /*native_handle*/, const char* op_name) -{ - static tracking_state* state = get_state(); - - static_mutex::scoped_lock lock(state->mutex_); - h.id_ = state->next_id_++; - lock.unlock(); - - handler_tracking_timestamp timestamp; - - uint64_t current_id = 0; - if (completion* current_completion = *state->current_completion_) - current_id = current_completion->id_; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|%I64u*%I64u|%.20s@%p.%.50s\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|%llu*%llu|%.20s@%p.%.50s\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - current_id, h.id_, object_type, object, op_name); -} - -handler_tracking::completion::completion( - const handler_tracking::tracked_handler& h) - : id_(h.id_), - invoked_(false), - next_(*get_state()->current_completion_) -{ - *get_state()->current_completion_ = this; -} - -handler_tracking::completion::~completion() -{ - if (id_) - { - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|%c%I64u|\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|%c%llu|\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - invoked_ ? '!' : '~', id_); - } - - *get_state()->current_completion_ = next_; -} - -void handler_tracking::completion::invocation_begin() -{ - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|>%I64u|\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|>%llu|\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, id_); - - invoked_ = true; -} - -void handler_tracking::completion::invocation_begin( - const asio::error_code& ec) -{ - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|>%I64u|ec=%.20s:%d\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|>%llu|ec=%.20s:%d\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - id_, ec.category().name(), ec.value()); - - invoked_ = true; -} - -void handler_tracking::completion::invocation_begin( - const asio::error_code& ec, std::size_t bytes_transferred) -{ - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|>%I64u|ec=%.20s:%d,bytes_transferred=%I64u\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|>%llu|ec=%.20s:%d,bytes_transferred=%llu\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - id_, ec.category().name(), ec.value(), - static_cast(bytes_transferred)); - - invoked_ = true; -} - -void handler_tracking::completion::invocation_begin( - const asio::error_code& ec, int signal_number) -{ - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|>%I64u|ec=%.20s:%d,signal_number=%d\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|>%llu|ec=%.20s:%d,signal_number=%d\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - id_, ec.category().name(), ec.value(), signal_number); - - invoked_ = true; -} - -void handler_tracking::completion::invocation_begin( - const asio::error_code& ec, const char* arg) -{ - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|>%I64u|ec=%.20s:%d,%.50s\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|>%llu|ec=%.20s:%d,%.50s\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - id_, ec.category().name(), ec.value(), arg); - - invoked_ = true; -} - -void handler_tracking::completion::invocation_end() -{ - if (id_) - { - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|<%I64u|\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|<%llu|\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, id_); - - id_ = 0; - } -} - -void handler_tracking::operation(execution_context&, - const char* object_type, void* object, - uintmax_t /*native_handle*/, const char* op_name) -{ - static tracking_state* state = get_state(); - - handler_tracking_timestamp timestamp; - - unsigned long long current_id = 0; - if (completion* current_completion = *state->current_completion_) - current_id = current_completion->id_; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|%I64u|%.20s@%p.%.50s\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|%llu|%.20s@%p.%.50s\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - current_id, object_type, object, op_name); -} - -void handler_tracking::reactor_registration(execution_context& /*context*/, - uintmax_t /*native_handle*/, uintmax_t /*registration*/) -{ -} - -void handler_tracking::reactor_deregistration(execution_context& /*context*/, - uintmax_t /*native_handle*/, uintmax_t /*registration*/) -{ -} - -void handler_tracking::reactor_events(execution_context& /*context*/, - uintmax_t /*native_handle*/, unsigned /*events*/) -{ -} - -void handler_tracking::reactor_operation( - const tracked_handler& h, const char* op_name, - const asio::error_code& ec) -{ - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|.%I64u|%s,ec=%.20s:%d\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|.%llu|%s,ec=%.20s:%d\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - h.id_, op_name, ec.category().name(), ec.value()); -} - -void handler_tracking::reactor_operation( - const tracked_handler& h, const char* op_name, - const asio::error_code& ec, std::size_t bytes_transferred) -{ - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|.%I64u|%s,ec=%.20s:%d,bytes_transferred=%I64u\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|.%llu|%s,ec=%.20s:%d,bytes_transferred=%llu\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - h.id_, op_name, ec.category().name(), ec.value(), - static_cast(bytes_transferred)); -} - -void handler_tracking::write_line(const char* format, ...) -{ - using namespace std; // For sprintf (or equivalent). - - va_list args; - va_start(args, format); - - char line[256] = ""; -#if defined(ASIO_HAS_SECURE_RTL) - int length = vsprintf_s(line, sizeof(line), format, args); -#else // defined(ASIO_HAS_SECURE_RTL) - int length = vsprintf(line, format, args); -#endif // defined(ASIO_HAS_SECURE_RTL) - - va_end(args); - -#if defined(ASIO_WINDOWS_RUNTIME) - wchar_t wline[256] = L""; - mbstowcs_s(0, wline, sizeof(wline) / sizeof(wchar_t), line, length); - ::OutputDebugStringW(wline); -#elif defined(ASIO_WINDOWS) - HANDLE stderr_handle = ::GetStdHandle(STD_ERROR_HANDLE); - DWORD bytes_written = 0; - ::WriteFile(stderr_handle, line, length, &bytes_written, 0); -#else // defined(ASIO_WINDOWS) - ::write(STDERR_FILENO, line, length); -#endif // defined(ASIO_WINDOWS) -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_HANDLER_TRACKING) - -#endif // ASIO_DETAIL_IMPL_HANDLER_TRACKING_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/kqueue_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/impl/kqueue_reactor.hpp deleted file mode 100644 index 136d167..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/kqueue_reactor.hpp +++ /dev/null @@ -1,93 +0,0 @@ -// -// detail/impl/kqueue_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2005 Stefan Arentz (stefan at soze dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_KQUEUE_REACTOR_HPP -#define ASIO_DETAIL_IMPL_KQUEUE_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_KQUEUE) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -void kqueue_reactor::add_timer_queue(timer_queue& queue) -{ - do_add_timer_queue(queue); -} - -// Remove a timer queue from the reactor. -template -void kqueue_reactor::remove_timer_queue(timer_queue& queue) -{ - do_remove_timer_queue(queue); -} - -template -void kqueue_reactor::schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op) -{ - mutex::scoped_lock lock(mutex_); - - if (shutdown_) - { - scheduler_.post_immediate_completion(op, false); - return; - } - - bool earliest = queue.enqueue_timer(time, timer, op); - scheduler_.work_started(); - if (earliest) - interrupt(); -} - -template -std::size_t kqueue_reactor::cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled) -{ - mutex::scoped_lock lock(mutex_); - op_queue ops; - std::size_t n = queue.cancel_timer(timer, ops, max_cancelled); - lock.unlock(); - scheduler_.post_deferred_completions(ops); - return n; -} - -template -void kqueue_reactor::move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source) -{ - mutex::scoped_lock lock(mutex_); - op_queue ops; - queue.cancel_timer(target, ops); - queue.move_timer(target, source); - lock.unlock(); - scheduler_.post_deferred_completions(ops); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_KQUEUE) - -#endif // ASIO_DETAIL_IMPL_KQUEUE_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/kqueue_reactor.ipp b/Sources/Vendor/asio/include/asio/detail/impl/kqueue_reactor.ipp deleted file mode 100644 index 73986e0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/kqueue_reactor.ipp +++ /dev/null @@ -1,566 +0,0 @@ -// -// detail/impl/kqueue_reactor.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2005 Stefan Arentz (stefan at soze dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_KQUEUE_REACTOR_IPP -#define ASIO_DETAIL_IMPL_KQUEUE_REACTOR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_KQUEUE) - -#include "asio/detail/kqueue_reactor.hpp" -#include "asio/detail/scheduler.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -#if defined(__NetBSD__) -# define ASIO_KQUEUE_EV_SET(ev, ident, filt, flags, fflags, data, udata) \ - EV_SET(ev, ident, filt, flags, fflags, data, \ - reinterpret_cast(static_cast(udata))) -#else -# define ASIO_KQUEUE_EV_SET(ev, ident, filt, flags, fflags, data, udata) \ - EV_SET(ev, ident, filt, flags, fflags, data, udata) -#endif - -namespace asio { -namespace detail { - -kqueue_reactor::kqueue_reactor(asio::execution_context& ctx) - : execution_context_service_base(ctx), - scheduler_(use_service(ctx)), - mutex_(ASIO_CONCURRENCY_HINT_IS_LOCKING( - REACTOR_REGISTRATION, scheduler_.concurrency_hint())), - kqueue_fd_(do_kqueue_create()), - interrupter_(), - shutdown_(false), - registered_descriptors_mutex_(mutex_.enabled()) -{ - struct kevent events[1]; - ASIO_KQUEUE_EV_SET(&events[0], interrupter_.read_descriptor(), - EVFILT_READ, EV_ADD, 0, 0, &interrupter_); - if (::kevent(kqueue_fd_, events, 1, 0, 0, 0) == -1) - { - asio::error_code error(errno, - asio::error::get_system_category()); - asio::detail::throw_error(error); - } -} - -kqueue_reactor::~kqueue_reactor() -{ - close(kqueue_fd_); -} - -void kqueue_reactor::shutdown() -{ - mutex::scoped_lock lock(mutex_); - shutdown_ = true; - lock.unlock(); - - op_queue ops; - - while (descriptor_state* state = registered_descriptors_.first()) - { - for (int i = 0; i < max_ops; ++i) - ops.push(state->op_queue_[i]); - state->shutdown_ = true; - registered_descriptors_.free(state); - } - - timer_queues_.get_all_timers(ops); - - scheduler_.abandon_operations(ops); -} - -void kqueue_reactor::notify_fork( - asio::execution_context::fork_event fork_ev) -{ - if (fork_ev == asio::execution_context::fork_child) - { - // The kqueue descriptor is automatically closed in the child. - kqueue_fd_ = -1; - kqueue_fd_ = do_kqueue_create(); - - interrupter_.recreate(); - - struct kevent events[2]; - ASIO_KQUEUE_EV_SET(&events[0], interrupter_.read_descriptor(), - EVFILT_READ, EV_ADD, 0, 0, &interrupter_); - if (::kevent(kqueue_fd_, events, 1, 0, 0, 0) == -1) - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "kqueue interrupter registration"); - } - - // Re-register all descriptors with kqueue. - mutex::scoped_lock descriptors_lock(registered_descriptors_mutex_); - for (descriptor_state* state = registered_descriptors_.first(); - state != 0; state = state->next_) - { - if (state->num_kevents_ > 0) - { - ASIO_KQUEUE_EV_SET(&events[0], state->descriptor_, - EVFILT_READ, EV_ADD | EV_CLEAR, 0, 0, state); - ASIO_KQUEUE_EV_SET(&events[1], state->descriptor_, - EVFILT_WRITE, EV_ADD | EV_CLEAR, 0, 0, state); - if (::kevent(kqueue_fd_, events, state->num_kevents_, 0, 0, 0) == -1) - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "kqueue re-registration"); - } - } - } - } -} - -void kqueue_reactor::init_task() -{ - scheduler_.init_task(); -} - -int kqueue_reactor::register_descriptor(socket_type descriptor, - kqueue_reactor::per_descriptor_data& descriptor_data) -{ - descriptor_data = allocate_descriptor_state(); - - ASIO_HANDLER_REACTOR_REGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - mutex::scoped_lock lock(descriptor_data->mutex_); - - descriptor_data->descriptor_ = descriptor; - descriptor_data->num_kevents_ = 0; - descriptor_data->shutdown_ = false; - - return 0; -} - -int kqueue_reactor::register_internal_descriptor( - int op_type, socket_type descriptor, - kqueue_reactor::per_descriptor_data& descriptor_data, reactor_op* op) -{ - descriptor_data = allocate_descriptor_state(); - - ASIO_HANDLER_REACTOR_REGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - mutex::scoped_lock lock(descriptor_data->mutex_); - - descriptor_data->descriptor_ = descriptor; - descriptor_data->num_kevents_ = 1; - descriptor_data->shutdown_ = false; - descriptor_data->op_queue_[op_type].push(op); - - struct kevent events[1]; - ASIO_KQUEUE_EV_SET(&events[0], descriptor, EVFILT_READ, - EV_ADD | EV_CLEAR, 0, 0, descriptor_data); - if (::kevent(kqueue_fd_, events, 1, 0, 0, 0) == -1) - return errno; - - return 0; -} - -void kqueue_reactor::move_descriptor(socket_type, - kqueue_reactor::per_descriptor_data& target_descriptor_data, - kqueue_reactor::per_descriptor_data& source_descriptor_data) -{ - target_descriptor_data = source_descriptor_data; - source_descriptor_data = 0; -} - -void kqueue_reactor::start_op(int op_type, socket_type descriptor, - kqueue_reactor::per_descriptor_data& descriptor_data, reactor_op* op, - bool is_continuation, bool allow_speculative) -{ - if (!descriptor_data) - { - op->ec_ = asio::error::bad_descriptor; - post_immediate_completion(op, is_continuation); - return; - } - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - if (descriptor_data->shutdown_) - { - post_immediate_completion(op, is_continuation); - return; - } - - if (descriptor_data->op_queue_[op_type].empty()) - { - static const int num_kevents[max_ops] = { 1, 2, 1 }; - - if (allow_speculative - && (op_type != read_op - || descriptor_data->op_queue_[except_op].empty())) - { - if (op->perform()) - { - descriptor_lock.unlock(); - scheduler_.post_immediate_completion(op, is_continuation); - return; - } - - if (descriptor_data->num_kevents_ < num_kevents[op_type]) - { - struct kevent events[2]; - ASIO_KQUEUE_EV_SET(&events[0], descriptor, EVFILT_READ, - EV_ADD | EV_CLEAR, 0, 0, descriptor_data); - ASIO_KQUEUE_EV_SET(&events[1], descriptor, EVFILT_WRITE, - EV_ADD | EV_CLEAR, 0, 0, descriptor_data); - if (::kevent(kqueue_fd_, events, num_kevents[op_type], 0, 0, 0) != -1) - { - descriptor_data->num_kevents_ = num_kevents[op_type]; - } - else - { - op->ec_ = asio::error_code(errno, - asio::error::get_system_category()); - scheduler_.post_immediate_completion(op, is_continuation); - return; - } - } - } - else - { - if (descriptor_data->num_kevents_ < num_kevents[op_type]) - descriptor_data->num_kevents_ = num_kevents[op_type]; - - struct kevent events[2]; - ASIO_KQUEUE_EV_SET(&events[0], descriptor, EVFILT_READ, - EV_ADD | EV_CLEAR, 0, 0, descriptor_data); - ASIO_KQUEUE_EV_SET(&events[1], descriptor, EVFILT_WRITE, - EV_ADD | EV_CLEAR, 0, 0, descriptor_data); - ::kevent(kqueue_fd_, events, descriptor_data->num_kevents_, 0, 0, 0); - } - } - - descriptor_data->op_queue_[op_type].push(op); - scheduler_.work_started(); -} - -void kqueue_reactor::cancel_ops(socket_type, - kqueue_reactor::per_descriptor_data& descriptor_data) -{ - if (!descriptor_data) - return; - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - op_queue ops; - for (int i = 0; i < max_ops; ++i) - { - while (reactor_op* op = descriptor_data->op_queue_[i].front()) - { - op->ec_ = asio::error::operation_aborted; - descriptor_data->op_queue_[i].pop(); - ops.push(op); - } - } - - descriptor_lock.unlock(); - - scheduler_.post_deferred_completions(ops); -} - -void kqueue_reactor::deregister_descriptor(socket_type descriptor, - kqueue_reactor::per_descriptor_data& descriptor_data, bool closing) -{ - if (!descriptor_data) - return; - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - if (!descriptor_data->shutdown_) - { - if (closing) - { - // The descriptor will be automatically removed from the kqueue when it - // is closed. - } - else - { - struct kevent events[2]; - ASIO_KQUEUE_EV_SET(&events[0], descriptor, - EVFILT_READ, EV_DELETE, 0, 0, 0); - ASIO_KQUEUE_EV_SET(&events[1], descriptor, - EVFILT_WRITE, EV_DELETE, 0, 0, 0); - ::kevent(kqueue_fd_, events, descriptor_data->num_kevents_, 0, 0, 0); - } - - op_queue ops; - for (int i = 0; i < max_ops; ++i) - { - while (reactor_op* op = descriptor_data->op_queue_[i].front()) - { - op->ec_ = asio::error::operation_aborted; - descriptor_data->op_queue_[i].pop(); - ops.push(op); - } - } - - descriptor_data->descriptor_ = -1; - descriptor_data->shutdown_ = true; - - descriptor_lock.unlock(); - - ASIO_HANDLER_REACTOR_DEREGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - scheduler_.post_deferred_completions(ops); - - // Leave descriptor_data set so that it will be freed by the subsequent - // call to cleanup_descriptor_data. - } - else - { - // We are shutting down, so prevent cleanup_descriptor_data from freeing - // the descriptor_data object and let the destructor free it instead. - descriptor_data = 0; - } -} - -void kqueue_reactor::deregister_internal_descriptor(socket_type descriptor, - kqueue_reactor::per_descriptor_data& descriptor_data) -{ - if (!descriptor_data) - return; - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - if (!descriptor_data->shutdown_) - { - struct kevent events[2]; - ASIO_KQUEUE_EV_SET(&events[0], descriptor, - EVFILT_READ, EV_DELETE, 0, 0, 0); - ASIO_KQUEUE_EV_SET(&events[1], descriptor, - EVFILT_WRITE, EV_DELETE, 0, 0, 0); - ::kevent(kqueue_fd_, events, descriptor_data->num_kevents_, 0, 0, 0); - - op_queue ops; - for (int i = 0; i < max_ops; ++i) - ops.push(descriptor_data->op_queue_[i]); - - descriptor_data->descriptor_ = -1; - descriptor_data->shutdown_ = true; - - descriptor_lock.unlock(); - - ASIO_HANDLER_REACTOR_DEREGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - // Leave descriptor_data set so that it will be freed by the subsequent - // call to cleanup_descriptor_data. - } - else - { - // We are shutting down, so prevent cleanup_descriptor_data from freeing - // the descriptor_data object and let the destructor free it instead. - descriptor_data = 0; - } -} - -void kqueue_reactor::cleanup_descriptor_data( - per_descriptor_data& descriptor_data) -{ - if (descriptor_data) - { - free_descriptor_state(descriptor_data); - descriptor_data = 0; - } -} - -void kqueue_reactor::run(long usec, op_queue& ops) -{ - mutex::scoped_lock lock(mutex_); - - // Determine how long to block while waiting for events. - timespec timeout_buf = { 0, 0 }; - timespec* timeout = usec ? get_timeout(usec, timeout_buf) : &timeout_buf; - - lock.unlock(); - - // Block on the kqueue descriptor. - struct kevent events[128]; - int num_events = kevent(kqueue_fd_, 0, 0, events, 128, timeout); - -#if defined(ASIO_ENABLE_HANDLER_TRACKING) - // Trace the waiting events. - for (int i = 0; i < num_events; ++i) - { - void* ptr = reinterpret_cast(events[i].udata); - if (ptr != &interrupter_) - { - unsigned event_mask = 0; - switch (events[i].filter) - { - case EVFILT_READ: - event_mask |= ASIO_HANDLER_REACTOR_READ_EVENT; - break; - case EVFILT_WRITE: - event_mask |= ASIO_HANDLER_REACTOR_WRITE_EVENT; - break; - } - if ((events[i].flags & (EV_ERROR | EV_OOBAND)) != 0) - event_mask |= ASIO_HANDLER_REACTOR_ERROR_EVENT; - ASIO_HANDLER_REACTOR_EVENTS((context(), - reinterpret_cast(ptr), event_mask)); - } - } -#endif // defined(ASIO_ENABLE_HANDLER_TRACKING) - - // Dispatch the waiting events. - for (int i = 0; i < num_events; ++i) - { - void* ptr = reinterpret_cast(events[i].udata); - if (ptr == &interrupter_) - { - interrupter_.reset(); - } - else - { - descriptor_state* descriptor_data = static_cast(ptr); - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - if (events[i].filter == EVFILT_WRITE - && descriptor_data->num_kevents_ == 2 - && descriptor_data->op_queue_[write_op].empty()) - { - // Some descriptor types, like serial ports, don't seem to support - // EV_CLEAR with EVFILT_WRITE. Since we have no pending write - // operations we'll remove the EVFILT_WRITE registration here so that - // we don't end up in a tight spin. - struct kevent delete_events[1]; - ASIO_KQUEUE_EV_SET(&delete_events[0], - descriptor_data->descriptor_, EVFILT_WRITE, EV_DELETE, 0, 0, 0); - ::kevent(kqueue_fd_, delete_events, 1, 0, 0, 0); - descriptor_data->num_kevents_ = 1; - } - - // Exception operations must be processed first to ensure that any - // out-of-band data is read before normal data. -#if defined(__NetBSD__) - static const unsigned int filter[max_ops] = -#else - static const int filter[max_ops] = -#endif - { EVFILT_READ, EVFILT_WRITE, EVFILT_READ }; - for (int j = max_ops - 1; j >= 0; --j) - { - if (events[i].filter == filter[j]) - { - if (j != except_op || events[i].flags & EV_OOBAND) - { - while (reactor_op* op = descriptor_data->op_queue_[j].front()) - { - if (events[i].flags & EV_ERROR) - { - op->ec_ = asio::error_code( - static_cast(events[i].data), - asio::error::get_system_category()); - descriptor_data->op_queue_[j].pop(); - ops.push(op); - } - if (op->perform()) - { - descriptor_data->op_queue_[j].pop(); - ops.push(op); - } - else - break; - } - } - } - } - } - } - - lock.lock(); - timer_queues_.get_ready_timers(ops); -} - -void kqueue_reactor::interrupt() -{ - interrupter_.interrupt(); -} - -int kqueue_reactor::do_kqueue_create() -{ - int fd = ::kqueue(); - if (fd == -1) - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "kqueue"); - } - return fd; -} - -kqueue_reactor::descriptor_state* kqueue_reactor::allocate_descriptor_state() -{ - mutex::scoped_lock descriptors_lock(registered_descriptors_mutex_); - return registered_descriptors_.alloc(ASIO_CONCURRENCY_HINT_IS_LOCKING( - REACTOR_IO, scheduler_.concurrency_hint())); -} - -void kqueue_reactor::free_descriptor_state(kqueue_reactor::descriptor_state* s) -{ - mutex::scoped_lock descriptors_lock(registered_descriptors_mutex_); - registered_descriptors_.free(s); -} - -void kqueue_reactor::do_add_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.insert(&queue); -} - -void kqueue_reactor::do_remove_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.erase(&queue); -} - -timespec* kqueue_reactor::get_timeout(long usec, timespec& ts) -{ - // By default we will wait no longer than 5 minutes. This will ensure that - // any changes to the system clock are detected after no longer than this. - const long max_usec = 5 * 60 * 1000 * 1000; - usec = timer_queues_.wait_duration_usec( - (usec < 0 || max_usec < usec) ? max_usec : usec); - ts.tv_sec = usec / 1000000; - ts.tv_nsec = (usec % 1000000) * 1000; - return &ts; -} - -} // namespace detail -} // namespace asio - -#undef ASIO_KQUEUE_EV_SET - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_KQUEUE) - -#endif // ASIO_DETAIL_IMPL_KQUEUE_REACTOR_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/null_event.ipp b/Sources/Vendor/asio/include/asio/detail/impl/null_event.ipp deleted file mode 100644 index 22ade40..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/null_event.ipp +++ /dev/null @@ -1,74 +0,0 @@ -// -// detail/impl/null_event.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_NULL_EVENT_IPP -#define ASIO_DETAIL_IMPL_NULL_EVENT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# include "asio/detail/socket_types.hpp" -#else -# include -# if defined(__hpux) -# include -# endif -# if !defined(__hpux) || defined(__SELECT) -# include -# endif -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -void null_event::do_wait() -{ -#if defined(ASIO_WINDOWS_RUNTIME) - std::this_thread::sleep_until((std::chrono::steady_clock::time_point::max)()); -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ::Sleep(INFINITE); -#else - ::pause(); -#endif -} - -void null_event::do_wait_for_usec(long usec) -{ -#if defined(ASIO_WINDOWS_RUNTIME) - std::this_thread::sleep_for(std::chrono::microseconds(usec)); -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ::Sleep(usec / 1000); -#elif defined(__hpux) && defined(__SELECT) - timespec ts; - ts.tv_sec = usec / 1000000; - ts.tv_nsec = (usec % 1000000) * 1000; - ::pselect(0, 0, 0, 0, &ts, 0); -#else - timeval tv; - tv.tv_sec = usec / 1000000; - tv.tv_usec = usec % 1000000; - ::select(0, 0, 0, 0, &tv); -#endif -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_NULL_EVENT_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/pipe_select_interrupter.ipp b/Sources/Vendor/asio/include/asio/detail/impl/pipe_select_interrupter.ipp deleted file mode 100644 index 13931ab..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +++ /dev/null @@ -1,124 +0,0 @@ -// -// detail/impl/pipe_select_interrupter.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_PIPE_SELECT_INTERRUPTER_IPP -#define ASIO_DETAIL_IMPL_PIPE_SELECT_INTERRUPTER_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS_RUNTIME) -#if !defined(ASIO_WINDOWS) -#if !defined(__CYGWIN__) -#if !defined(__SYMBIAN32__) -#if !defined(ASIO_HAS_EVENTFD) - -#include -#include -#include -#include -#include "asio/detail/pipe_select_interrupter.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -pipe_select_interrupter::pipe_select_interrupter() -{ - open_descriptors(); -} - -void pipe_select_interrupter::open_descriptors() -{ - int pipe_fds[2]; - if (pipe(pipe_fds) == 0) - { - read_descriptor_ = pipe_fds[0]; - ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK); - write_descriptor_ = pipe_fds[1]; - ::fcntl(write_descriptor_, F_SETFL, O_NONBLOCK); - -#if defined(FD_CLOEXEC) - ::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC); - ::fcntl(write_descriptor_, F_SETFD, FD_CLOEXEC); -#endif // defined(FD_CLOEXEC) - } - else - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "pipe_select_interrupter"); - } -} - -pipe_select_interrupter::~pipe_select_interrupter() -{ - close_descriptors(); -} - -void pipe_select_interrupter::close_descriptors() -{ - if (read_descriptor_ != -1) - ::close(read_descriptor_); - if (write_descriptor_ != -1) - ::close(write_descriptor_); -} - -void pipe_select_interrupter::recreate() -{ - close_descriptors(); - - write_descriptor_ = -1; - read_descriptor_ = -1; - - open_descriptors(); -} - -void pipe_select_interrupter::interrupt() -{ - char byte = 0; - signed_size_type result = ::write(write_descriptor_, &byte, 1); - (void)result; -} - -bool pipe_select_interrupter::reset() -{ - for (;;) - { - char data[1024]; - signed_size_type bytes_read = ::read(read_descriptor_, data, sizeof(data)); - if (bytes_read < 0 && errno == EINTR) - continue; - bool was_interrupted = (bytes_read > 0); - while (bytes_read == sizeof(data)) - bytes_read = ::read(read_descriptor_, data, sizeof(data)); - return was_interrupted; - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_EVENTFD) -#endif // !defined(__SYMBIAN32__) -#endif // !defined(__CYGWIN__) -#endif // !defined(ASIO_WINDOWS) -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_IMPL_PIPE_SELECT_INTERRUPTER_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/posix_event.ipp b/Sources/Vendor/asio/include/asio/detail/impl/posix_event.ipp deleted file mode 100644 index 4b46ab0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/posix_event.ipp +++ /dev/null @@ -1,59 +0,0 @@ -// -// detail/impl/posix_event.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_POSIX_EVENT_IPP -#define ASIO_DETAIL_IMPL_POSIX_EVENT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_PTHREADS) - -#include "asio/detail/posix_event.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -posix_event::posix_event() - : state_(0) -{ -#if (defined(__MACH__) && defined(__APPLE__)) \ - || (defined(__ANDROID__) && (__ANDROID_API__ < 21)) - int error = ::pthread_cond_init(&cond_, 0); -#else // (defined(__MACH__) && defined(__APPLE__)) - // || (defined(__ANDROID__) && (__ANDROID_API__ < 21)) - ::pthread_condattr_t attr; - ::pthread_condattr_init(&attr); - int error = ::pthread_condattr_setclock(&attr, CLOCK_MONOTONIC); - if (error == 0) - error = ::pthread_cond_init(&cond_, &attr); -#endif // (defined(__MACH__) && defined(__APPLE__)) - // || (defined(__ANDROID__) && (__ANDROID_API__ < 21)) - - asio::error_code ec(error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "event"); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_IMPL_POSIX_EVENT_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/posix_mutex.ipp b/Sources/Vendor/asio/include/asio/detail/impl/posix_mutex.ipp deleted file mode 100644 index 27272b5..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/posix_mutex.ipp +++ /dev/null @@ -1,46 +0,0 @@ -// -// detail/impl/posix_mutex.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_POSIX_MUTEX_IPP -#define ASIO_DETAIL_IMPL_POSIX_MUTEX_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_PTHREADS) - -#include "asio/detail/posix_mutex.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -posix_mutex::posix_mutex() -{ - int error = ::pthread_mutex_init(&mutex_, 0); - asio::error_code ec(error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "mutex"); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_IMPL_POSIX_MUTEX_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/posix_thread.ipp b/Sources/Vendor/asio/include/asio/detail/impl/posix_thread.ipp deleted file mode 100644 index 69bd16f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/posix_thread.ipp +++ /dev/null @@ -1,84 +0,0 @@ -// -// detail/impl/posix_thread.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_POSIX_THREAD_IPP -#define ASIO_DETAIL_IMPL_POSIX_THREAD_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_PTHREADS) - -#include "asio/detail/posix_thread.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -posix_thread::~posix_thread() -{ - if (!joined_) - ::pthread_detach(thread_); -} - -void posix_thread::join() -{ - if (!joined_) - { - ::pthread_join(thread_, 0); - joined_ = true; - } -} - -std::size_t posix_thread::hardware_concurrency() -{ -#if defined(_SC_NPROCESSORS_ONLN) - long result = sysconf(_SC_NPROCESSORS_ONLN); - if (result > 0) - return result; -#endif // defined(_SC_NPROCESSORS_ONLN) - return 0; -} - -void posix_thread::start_thread(func_base* arg) -{ - int error = ::pthread_create(&thread_, 0, - asio_detail_posix_thread_function, arg); - if (error != 0) - { - delete arg; - asio::error_code ec(error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "thread"); - } -} - -void* asio_detail_posix_thread_function(void* arg) -{ - posix_thread::auto_func_base_ptr func = { - static_cast(arg) }; - func.ptr->run(); - return 0; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_IMPL_POSIX_THREAD_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/posix_tss_ptr.ipp b/Sources/Vendor/asio/include/asio/detail/impl/posix_tss_ptr.ipp deleted file mode 100644 index 54b58bd..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/posix_tss_ptr.ipp +++ /dev/null @@ -1,46 +0,0 @@ -// -// detail/impl/posix_tss_ptr.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_POSIX_TSS_PTR_IPP -#define ASIO_DETAIL_IMPL_POSIX_TSS_PTR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_PTHREADS) - -#include "asio/detail/posix_tss_ptr.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -void posix_tss_ptr_create(pthread_key_t& key) -{ - int error = ::pthread_key_create(&key, 0); - asio::error_code ec(error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "tss"); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_IMPL_POSIX_TSS_PTR_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/reactive_descriptor_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/reactive_descriptor_service.ipp deleted file mode 100644 index f9505ca..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +++ /dev/null @@ -1,222 +0,0 @@ -// -// detail/impl/reactive_descriptor_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_REACTIVE_DESCRIPTOR_SERVICE_IPP -#define ASIO_DETAIL_IMPL_REACTIVE_DESCRIPTOR_SERVICE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - -#include "asio/error.hpp" -#include "asio/detail/reactive_descriptor_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -reactive_descriptor_service::reactive_descriptor_service( - asio::io_context& io_context) - : service_base(io_context), - reactor_(asio::use_service(io_context)) -{ - reactor_.init_task(); -} - -void reactive_descriptor_service::shutdown() -{ -} - -void reactive_descriptor_service::construct( - reactive_descriptor_service::implementation_type& impl) -{ - impl.descriptor_ = -1; - impl.state_ = 0; -} - -void reactive_descriptor_service::move_construct( - reactive_descriptor_service::implementation_type& impl, - reactive_descriptor_service::implementation_type& other_impl) -{ - impl.descriptor_ = other_impl.descriptor_; - other_impl.descriptor_ = -1; - - impl.state_ = other_impl.state_; - other_impl.state_ = 0; - - reactor_.move_descriptor(impl.descriptor_, - impl.reactor_data_, other_impl.reactor_data_); -} - -void reactive_descriptor_service::move_assign( - reactive_descriptor_service::implementation_type& impl, - reactive_descriptor_service& other_service, - reactive_descriptor_service::implementation_type& other_impl) -{ - destroy(impl); - - impl.descriptor_ = other_impl.descriptor_; - other_impl.descriptor_ = -1; - - impl.state_ = other_impl.state_; - other_impl.state_ = 0; - - other_service.reactor_.move_descriptor(impl.descriptor_, - impl.reactor_data_, other_impl.reactor_data_); -} - -void reactive_descriptor_service::destroy( - reactive_descriptor_service::implementation_type& impl) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((reactor_.context(), - "descriptor", &impl, impl.descriptor_, "close")); - - reactor_.deregister_descriptor(impl.descriptor_, impl.reactor_data_, - (impl.state_ & descriptor_ops::possible_dup) == 0); - - asio::error_code ignored_ec; - descriptor_ops::close(impl.descriptor_, impl.state_, ignored_ec); - - reactor_.cleanup_descriptor_data(impl.reactor_data_); - } -} - -asio::error_code reactive_descriptor_service::assign( - reactive_descriptor_service::implementation_type& impl, - const native_handle_type& native_descriptor, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - if (int err = reactor_.register_descriptor( - native_descriptor, impl.reactor_data_)) - { - ec = asio::error_code(err, - asio::error::get_system_category()); - return ec; - } - - impl.descriptor_ = native_descriptor; - impl.state_ = descriptor_ops::possible_dup; - ec = asio::error_code(); - return ec; -} - -asio::error_code reactive_descriptor_service::close( - reactive_descriptor_service::implementation_type& impl, - asio::error_code& ec) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((reactor_.context(), - "descriptor", &impl, impl.descriptor_, "close")); - - reactor_.deregister_descriptor(impl.descriptor_, impl.reactor_data_, - (impl.state_ & descriptor_ops::possible_dup) == 0); - - descriptor_ops::close(impl.descriptor_, impl.state_, ec); - - reactor_.cleanup_descriptor_data(impl.reactor_data_); - } - else - { - ec = asio::error_code(); - } - - // The descriptor is closed by the OS even if close() returns an error. - // - // (Actually, POSIX says the state of the descriptor is unspecified. On - // Linux the descriptor is apparently closed anyway; e.g. see - // http://lkml.org/lkml/2005/9/10/129 - // We'll just have to assume that other OSes follow the same behaviour.) - construct(impl); - - return ec; -} - -reactive_descriptor_service::native_handle_type -reactive_descriptor_service::release( - reactive_descriptor_service::implementation_type& impl) -{ - native_handle_type descriptor = impl.descriptor_; - - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((reactor_.context(), - "descriptor", &impl, impl.descriptor_, "release")); - - reactor_.deregister_descriptor(impl.descriptor_, impl.reactor_data_, false); - reactor_.cleanup_descriptor_data(impl.reactor_data_); - construct(impl); - } - - return descriptor; -} - -asio::error_code reactive_descriptor_service::cancel( - reactive_descriptor_service::implementation_type& impl, - asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return ec; - } - - ASIO_HANDLER_OPERATION((reactor_.context(), - "descriptor", &impl, impl.descriptor_, "cancel")); - - reactor_.cancel_ops(impl.descriptor_, impl.reactor_data_); - ec = asio::error_code(); - return ec; -} - -void reactive_descriptor_service::start_op( - reactive_descriptor_service::implementation_type& impl, - int op_type, reactor_op* op, bool is_continuation, - bool is_non_blocking, bool noop) -{ - if (!noop) - { - if ((impl.state_ & descriptor_ops::non_blocking) || - descriptor_ops::set_internal_non_blocking( - impl.descriptor_, impl.state_, true, op->ec_)) - { - reactor_.start_op(op_type, impl.descriptor_, - impl.reactor_data_, op, is_continuation, is_non_blocking); - return; - } - } - - reactor_.post_immediate_completion(op, is_continuation); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - -#endif // ASIO_DETAIL_IMPL_REACTIVE_DESCRIPTOR_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/reactive_serial_port_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/reactive_serial_port_service.ipp deleted file mode 100644 index c907835..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +++ /dev/null @@ -1,152 +0,0 @@ -// -// detail/impl/reactive_serial_port_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_DETAIL_IMPL_REACTIVE_SERIAL_PORT_SERVICE_IPP -#define ASIO_DETAIL_IMPL_REACTIVE_SERIAL_PORT_SERVICE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_SERIAL_PORT) -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#include -#include "asio/detail/reactive_serial_port_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -reactive_serial_port_service::reactive_serial_port_service( - asio::io_context& io_context) - : service_base(io_context), - descriptor_service_(io_context) -{ -} - -void reactive_serial_port_service::shutdown() -{ - descriptor_service_.shutdown(); -} - -asio::error_code reactive_serial_port_service::open( - reactive_serial_port_service::implementation_type& impl, - const std::string& device, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - descriptor_ops::state_type state = 0; - int fd = descriptor_ops::open(device.c_str(), - O_RDWR | O_NONBLOCK | O_NOCTTY, ec); - if (fd < 0) - return ec; - - int s = descriptor_ops::fcntl(fd, F_GETFL, ec); - if (s >= 0) - s = descriptor_ops::fcntl(fd, F_SETFL, s | O_NONBLOCK, ec); - if (s < 0) - { - asio::error_code ignored_ec; - descriptor_ops::close(fd, state, ignored_ec); - return ec; - } - - // Set up default serial port options. - termios ios; - errno = 0; - s = descriptor_ops::error_wrapper(::tcgetattr(fd, &ios), ec); - if (s >= 0) - { -#if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) - ::cfmakeraw(&ios); -#else - ios.c_iflag &= ~(IGNBRK | BRKINT | PARMRK - | ISTRIP | INLCR | IGNCR | ICRNL | IXON); - ios.c_oflag &= ~OPOST; - ios.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN); - ios.c_cflag &= ~(CSIZE | PARENB); - ios.c_cflag |= CS8; -#endif - ios.c_iflag |= IGNPAR; - ios.c_cflag |= CREAD | CLOCAL; - errno = 0; - s = descriptor_ops::error_wrapper(::tcsetattr(fd, TCSANOW, &ios), ec); - } - if (s < 0) - { - asio::error_code ignored_ec; - descriptor_ops::close(fd, state, ignored_ec); - return ec; - } - - // We're done. Take ownership of the serial port descriptor. - if (descriptor_service_.assign(impl, fd, ec)) - { - asio::error_code ignored_ec; - descriptor_ops::close(fd, state, ignored_ec); - } - - return ec; -} - -asio::error_code reactive_serial_port_service::do_set_option( - reactive_serial_port_service::implementation_type& impl, - reactive_serial_port_service::store_function_type store, - const void* option, asio::error_code& ec) -{ - termios ios; - errno = 0; - descriptor_ops::error_wrapper(::tcgetattr( - descriptor_service_.native_handle(impl), &ios), ec); - if (ec) - return ec; - - if (store(option, ios, ec)) - return ec; - - errno = 0; - descriptor_ops::error_wrapper(::tcsetattr( - descriptor_service_.native_handle(impl), TCSANOW, &ios), ec); - return ec; -} - -asio::error_code reactive_serial_port_service::do_get_option( - const reactive_serial_port_service::implementation_type& impl, - reactive_serial_port_service::load_function_type load, - void* option, asio::error_code& ec) const -{ - termios ios; - errno = 0; - descriptor_ops::error_wrapper(::tcgetattr( - descriptor_service_.native_handle(impl), &ios), ec); - if (ec) - return ec; - - return load(option, ios, ec); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) -#endif // defined(ASIO_HAS_SERIAL_PORT) - -#endif // ASIO_DETAIL_IMPL_REACTIVE_SERIAL_PORT_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/reactive_socket_service_base.ipp b/Sources/Vendor/asio/include/asio/detail/impl/reactive_socket_service_base.ipp deleted file mode 100644 index 129b851..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +++ /dev/null @@ -1,300 +0,0 @@ -// -// detail/reactive_socket_service_base.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_REACTIVE_SOCKET_SERVICE_BASE_IPP -#define ASIO_DETAIL_IMPL_REACTIVE_SOCKET_SERVICE_BASE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_IOCP) \ - && !defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/reactive_socket_service_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -reactive_socket_service_base::reactive_socket_service_base( - asio::io_context& io_context) - : io_context_(io_context), - reactor_(use_service(io_context)) -{ - reactor_.init_task(); -} - -void reactive_socket_service_base::base_shutdown() -{ -} - -void reactive_socket_service_base::construct( - reactive_socket_service_base::base_implementation_type& impl) -{ - impl.socket_ = invalid_socket; - impl.state_ = 0; -} - -void reactive_socket_service_base::base_move_construct( - reactive_socket_service_base::base_implementation_type& impl, - reactive_socket_service_base::base_implementation_type& other_impl) -{ - impl.socket_ = other_impl.socket_; - other_impl.socket_ = invalid_socket; - - impl.state_ = other_impl.state_; - other_impl.state_ = 0; - - reactor_.move_descriptor(impl.socket_, - impl.reactor_data_, other_impl.reactor_data_); -} - -void reactive_socket_service_base::base_move_assign( - reactive_socket_service_base::base_implementation_type& impl, - reactive_socket_service_base& other_service, - reactive_socket_service_base::base_implementation_type& other_impl) -{ - destroy(impl); - - impl.socket_ = other_impl.socket_; - other_impl.socket_ = invalid_socket; - - impl.state_ = other_impl.state_; - other_impl.state_ = 0; - - other_service.reactor_.move_descriptor(impl.socket_, - impl.reactor_data_, other_impl.reactor_data_); -} - -void reactive_socket_service_base::destroy( - reactive_socket_service_base::base_implementation_type& impl) -{ - if (impl.socket_ != invalid_socket) - { - ASIO_HANDLER_OPERATION((reactor_.context(), - "socket", &impl, impl.socket_, "close")); - - reactor_.deregister_descriptor(impl.socket_, impl.reactor_data_, - (impl.state_ & socket_ops::possible_dup) == 0); - - asio::error_code ignored_ec; - socket_ops::close(impl.socket_, impl.state_, true, ignored_ec); - - reactor_.cleanup_descriptor_data(impl.reactor_data_); - } -} - -asio::error_code reactive_socket_service_base::close( - reactive_socket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((reactor_.context(), - "socket", &impl, impl.socket_, "close")); - - reactor_.deregister_descriptor(impl.socket_, impl.reactor_data_, - (impl.state_ & socket_ops::possible_dup) == 0); - - socket_ops::close(impl.socket_, impl.state_, false, ec); - - reactor_.cleanup_descriptor_data(impl.reactor_data_); - } - else - { - ec = asio::error_code(); - } - - // The descriptor is closed by the OS even if close() returns an error. - // - // (Actually, POSIX says the state of the descriptor is unspecified. On - // Linux the descriptor is apparently closed anyway; e.g. see - // http://lkml.org/lkml/2005/9/10/129 - // We'll just have to assume that other OSes follow the same behaviour. The - // known exception is when Windows's closesocket() function fails with - // WSAEWOULDBLOCK, but this case is handled inside socket_ops::close(). - construct(impl); - - return ec; -} - -socket_type reactive_socket_service_base::release( - reactive_socket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return invalid_socket; - } - - ASIO_HANDLER_OPERATION((reactor_.context(), - "socket", &impl, impl.socket_, "release")); - - reactor_.deregister_descriptor(impl.socket_, impl.reactor_data_, false); - reactor_.cleanup_descriptor_data(impl.reactor_data_); - socket_type sock = impl.socket_; - construct(impl); - ec = asio::error_code(); - return sock; -} - -asio::error_code reactive_socket_service_base::cancel( - reactive_socket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return ec; - } - - ASIO_HANDLER_OPERATION((reactor_.context(), - "socket", &impl, impl.socket_, "cancel")); - - reactor_.cancel_ops(impl.socket_, impl.reactor_data_); - ec = asio::error_code(); - return ec; -} - -asio::error_code reactive_socket_service_base::do_open( - reactive_socket_service_base::base_implementation_type& impl, - int af, int type, int protocol, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - socket_holder sock(socket_ops::socket(af, type, protocol, ec)); - if (sock.get() == invalid_socket) - return ec; - - if (int err = reactor_.register_descriptor(sock.get(), impl.reactor_data_)) - { - ec = asio::error_code(err, - asio::error::get_system_category()); - return ec; - } - - impl.socket_ = sock.release(); - switch (type) - { - case SOCK_STREAM: impl.state_ = socket_ops::stream_oriented; break; - case SOCK_DGRAM: impl.state_ = socket_ops::datagram_oriented; break; - default: impl.state_ = 0; break; - } - ec = asio::error_code(); - return ec; -} - -asio::error_code reactive_socket_service_base::do_assign( - reactive_socket_service_base::base_implementation_type& impl, int type, - const reactive_socket_service_base::native_handle_type& native_socket, - asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - if (int err = reactor_.register_descriptor( - native_socket, impl.reactor_data_)) - { - ec = asio::error_code(err, - asio::error::get_system_category()); - return ec; - } - - impl.socket_ = native_socket; - switch (type) - { - case SOCK_STREAM: impl.state_ = socket_ops::stream_oriented; break; - case SOCK_DGRAM: impl.state_ = socket_ops::datagram_oriented; break; - default: impl.state_ = 0; break; - } - impl.state_ |= socket_ops::possible_dup; - ec = asio::error_code(); - return ec; -} - -void reactive_socket_service_base::start_op( - reactive_socket_service_base::base_implementation_type& impl, - int op_type, reactor_op* op, bool is_continuation, - bool is_non_blocking, bool noop) -{ - if (!noop) - { - if ((impl.state_ & socket_ops::non_blocking) - || socket_ops::set_internal_non_blocking( - impl.socket_, impl.state_, true, op->ec_)) - { - reactor_.start_op(op_type, impl.socket_, - impl.reactor_data_, op, is_continuation, is_non_blocking); - return; - } - } - - reactor_.post_immediate_completion(op, is_continuation); -} - -void reactive_socket_service_base::start_accept_op( - reactive_socket_service_base::base_implementation_type& impl, - reactor_op* op, bool is_continuation, bool peer_is_open) -{ - if (!peer_is_open) - start_op(impl, reactor::read_op, op, is_continuation, true, false); - else - { - op->ec_ = asio::error::already_open; - reactor_.post_immediate_completion(op, is_continuation); - } -} - -void reactive_socket_service_base::start_connect_op( - reactive_socket_service_base::base_implementation_type& impl, - reactor_op* op, bool is_continuation, - const socket_addr_type* addr, size_t addrlen) -{ - if ((impl.state_ & socket_ops::non_blocking) - || socket_ops::set_internal_non_blocking( - impl.socket_, impl.state_, true, op->ec_)) - { - if (socket_ops::connect(impl.socket_, addr, addrlen, op->ec_) != 0) - { - if (op->ec_ == asio::error::in_progress - || op->ec_ == asio::error::would_block) - { - op->ec_ = asio::error_code(); - reactor_.start_op(reactor::connect_op, impl.socket_, - impl.reactor_data_, op, is_continuation, false); - return; - } - } - } - - reactor_.post_immediate_completion(op, is_continuation); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_IOCP) - // && !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_IMPL_REACTIVE_SOCKET_SERVICE_BASE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/resolver_service_base.ipp b/Sources/Vendor/asio/include/asio/detail/impl/resolver_service_base.ipp deleted file mode 100644 index 540bb66..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/resolver_service_base.ipp +++ /dev/null @@ -1,154 +0,0 @@ -// -// detail/impl/resolver_service_base.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_RESOLVER_SERVICE_BASE_IPP -#define ASIO_DETAIL_IMPL_RESOLVER_SERVICE_BASE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/resolver_service_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class resolver_service_base::work_io_context_runner -{ -public: - work_io_context_runner(asio::io_context& io_context) - : io_context_(io_context) {} - void operator()() { io_context_.run(); } -private: - asio::io_context& io_context_; -}; - -resolver_service_base::resolver_service_base( - asio::io_context& io_context) - : io_context_impl_(asio::use_service(io_context)), - work_io_context_(new asio::io_context(-1)), - work_io_context_impl_(asio::use_service< - io_context_impl>(*work_io_context_)), - work_(asio::make_work_guard(*work_io_context_)), - work_thread_(0) -{ -} - -resolver_service_base::~resolver_service_base() -{ - base_shutdown(); -} - -void resolver_service_base::base_shutdown() -{ - work_.reset(); - if (work_io_context_.get()) - { - work_io_context_->stop(); - if (work_thread_.get()) - { - work_thread_->join(); - work_thread_.reset(); - } - work_io_context_.reset(); - } -} - -void resolver_service_base::base_notify_fork( - asio::io_context::fork_event fork_ev) -{ - if (work_thread_.get()) - { - if (fork_ev == asio::io_context::fork_prepare) - { - work_io_context_->stop(); - work_thread_->join(); - } - else - { - work_io_context_->restart(); - work_thread_.reset(new asio::detail::thread( - work_io_context_runner(*work_io_context_))); - } - } -} - -void resolver_service_base::construct( - resolver_service_base::implementation_type& impl) -{ - impl.reset(static_cast(0), socket_ops::noop_deleter()); -} - -void resolver_service_base::destroy( - resolver_service_base::implementation_type& impl) -{ - ASIO_HANDLER_OPERATION((io_context_impl_.context(), - "resolver", &impl, 0, "cancel")); - - impl.reset(); -} - -void resolver_service_base::move_construct(implementation_type& impl, - implementation_type& other_impl) -{ - impl = ASIO_MOVE_CAST(implementation_type)(other_impl); -} - -void resolver_service_base::move_assign(implementation_type& impl, - resolver_service_base&, implementation_type& other_impl) -{ - destroy(impl); - impl = ASIO_MOVE_CAST(implementation_type)(other_impl); -} - -void resolver_service_base::cancel( - resolver_service_base::implementation_type& impl) -{ - ASIO_HANDLER_OPERATION((io_context_impl_.context(), - "resolver", &impl, 0, "cancel")); - - impl.reset(static_cast(0), socket_ops::noop_deleter()); -} - -void resolver_service_base::start_resolve_op(resolve_op* op) -{ - if (ASIO_CONCURRENCY_HINT_IS_LOCKING(SCHEDULER, - io_context_impl_.concurrency_hint())) - { - start_work_thread(); - io_context_impl_.work_started(); - work_io_context_impl_.post_immediate_completion(op, false); - } - else - { - op->ec_ = asio::error::operation_not_supported; - io_context_impl_.post_immediate_completion(op, false); - } -} - -void resolver_service_base::start_work_thread() -{ - asio::detail::mutex::scoped_lock lock(mutex_); - if (!work_thread_.get()) - { - work_thread_.reset(new asio::detail::thread( - work_io_context_runner(*work_io_context_))); - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_RESOLVER_SERVICE_BASE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/scheduler.ipp b/Sources/Vendor/asio/include/asio/detail/impl/scheduler.ipp deleted file mode 100644 index 35bc678..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/scheduler.ipp +++ /dev/null @@ -1,571 +0,0 @@ -// -// detail/impl/scheduler.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_SCHEDULER_IPP -#define ASIO_DETAIL_IMPL_SCHEDULER_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/concurrency_hint.hpp" -#include "asio/detail/event.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/reactor.hpp" -#include "asio/detail/scheduler.hpp" -#include "asio/detail/scheduler_thread_info.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct scheduler::task_cleanup -{ - ~task_cleanup() - { - if (this_thread_->private_outstanding_work > 0) - { - asio::detail::increment( - scheduler_->outstanding_work_, - this_thread_->private_outstanding_work); - } - this_thread_->private_outstanding_work = 0; - - // Enqueue the completed operations and reinsert the task at the end of - // the operation queue. - lock_->lock(); - scheduler_->task_interrupted_ = true; - scheduler_->op_queue_.push(this_thread_->private_op_queue); - scheduler_->op_queue_.push(&scheduler_->task_operation_); - } - - scheduler* scheduler_; - mutex::scoped_lock* lock_; - thread_info* this_thread_; -}; - -struct scheduler::work_cleanup -{ - ~work_cleanup() - { - if (this_thread_->private_outstanding_work > 1) - { - asio::detail::increment( - scheduler_->outstanding_work_, - this_thread_->private_outstanding_work - 1); - } - else if (this_thread_->private_outstanding_work < 1) - { - scheduler_->work_finished(); - } - this_thread_->private_outstanding_work = 0; - -#if defined(ASIO_HAS_THREADS) - if (!this_thread_->private_op_queue.empty()) - { - lock_->lock(); - scheduler_->op_queue_.push(this_thread_->private_op_queue); - } -#endif // defined(ASIO_HAS_THREADS) - } - - scheduler* scheduler_; - mutex::scoped_lock* lock_; - thread_info* this_thread_; -}; - -scheduler::scheduler( - asio::execution_context& ctx, int concurrency_hint) - : asio::detail::execution_context_service_base(ctx), - one_thread_(concurrency_hint == 1 - || !ASIO_CONCURRENCY_HINT_IS_LOCKING( - SCHEDULER, concurrency_hint) - || !ASIO_CONCURRENCY_HINT_IS_LOCKING( - REACTOR_IO, concurrency_hint)), - mutex_(ASIO_CONCURRENCY_HINT_IS_LOCKING( - SCHEDULER, concurrency_hint)), - task_(0), - task_interrupted_(true), - outstanding_work_(0), - stopped_(false), - shutdown_(false), - concurrency_hint_(concurrency_hint) -{ - ASIO_HANDLER_TRACKING_INIT; -} - -void scheduler::shutdown() -{ - mutex::scoped_lock lock(mutex_); - shutdown_ = true; - lock.unlock(); - - // Destroy handler objects. - while (!op_queue_.empty()) - { - operation* o = op_queue_.front(); - op_queue_.pop(); - if (o != &task_operation_) - o->destroy(); - } - - // Reset to initial state. - task_ = 0; -} - -void scheduler::init_task() -{ - mutex::scoped_lock lock(mutex_); - if (!shutdown_ && !task_) - { - task_ = &use_service(this->context()); - op_queue_.push(&task_operation_); - wake_one_thread_and_unlock(lock); - } -} - -std::size_t scheduler::run(asio::error_code& ec) -{ - ec = asio::error_code(); - if (outstanding_work_ == 0) - { - stop(); - return 0; - } - - thread_info this_thread; - this_thread.private_outstanding_work = 0; - thread_call_stack::context ctx(this, this_thread); - - mutex::scoped_lock lock(mutex_); - - std::size_t n = 0; - for (; do_run_one(lock, this_thread, ec); lock.lock()) - if (n != (std::numeric_limits::max)()) - ++n; - return n; -} - -std::size_t scheduler::run_one(asio::error_code& ec) -{ - ec = asio::error_code(); - if (outstanding_work_ == 0) - { - stop(); - return 0; - } - - thread_info this_thread; - this_thread.private_outstanding_work = 0; - thread_call_stack::context ctx(this, this_thread); - - mutex::scoped_lock lock(mutex_); - - return do_run_one(lock, this_thread, ec); -} - -std::size_t scheduler::wait_one(long usec, asio::error_code& ec) -{ - ec = asio::error_code(); - if (outstanding_work_ == 0) - { - stop(); - return 0; - } - - thread_info this_thread; - this_thread.private_outstanding_work = 0; - thread_call_stack::context ctx(this, this_thread); - - mutex::scoped_lock lock(mutex_); - - return do_wait_one(lock, this_thread, usec, ec); -} - -std::size_t scheduler::poll(asio::error_code& ec) -{ - ec = asio::error_code(); - if (outstanding_work_ == 0) - { - stop(); - return 0; - } - - thread_info this_thread; - this_thread.private_outstanding_work = 0; - thread_call_stack::context ctx(this, this_thread); - - mutex::scoped_lock lock(mutex_); - -#if defined(ASIO_HAS_THREADS) - // We want to support nested calls to poll() and poll_one(), so any handlers - // that are already on a thread-private queue need to be put on to the main - // queue now. - if (one_thread_) - if (thread_info* outer_info = static_cast(ctx.next_by_key())) - op_queue_.push(outer_info->private_op_queue); -#endif // defined(ASIO_HAS_THREADS) - - std::size_t n = 0; - for (; do_poll_one(lock, this_thread, ec); lock.lock()) - if (n != (std::numeric_limits::max)()) - ++n; - return n; -} - -std::size_t scheduler::poll_one(asio::error_code& ec) -{ - ec = asio::error_code(); - if (outstanding_work_ == 0) - { - stop(); - return 0; - } - - thread_info this_thread; - this_thread.private_outstanding_work = 0; - thread_call_stack::context ctx(this, this_thread); - - mutex::scoped_lock lock(mutex_); - -#if defined(ASIO_HAS_THREADS) - // We want to support nested calls to poll() and poll_one(), so any handlers - // that are already on a thread-private queue need to be put on to the main - // queue now. - if (one_thread_) - if (thread_info* outer_info = static_cast(ctx.next_by_key())) - op_queue_.push(outer_info->private_op_queue); -#endif // defined(ASIO_HAS_THREADS) - - return do_poll_one(lock, this_thread, ec); -} - -void scheduler::stop() -{ - mutex::scoped_lock lock(mutex_); - stop_all_threads(lock); -} - -bool scheduler::stopped() const -{ - mutex::scoped_lock lock(mutex_); - return stopped_; -} - -void scheduler::restart() -{ - mutex::scoped_lock lock(mutex_); - stopped_ = false; -} - -void scheduler::compensating_work_started() -{ - thread_info_base* this_thread = thread_call_stack::contains(this); - ++static_cast(this_thread)->private_outstanding_work; -} - -void scheduler::post_immediate_completion( - scheduler::operation* op, bool is_continuation) -{ -#if defined(ASIO_HAS_THREADS) - if (one_thread_ || is_continuation) - { - if (thread_info_base* this_thread = thread_call_stack::contains(this)) - { - ++static_cast(this_thread)->private_outstanding_work; - static_cast(this_thread)->private_op_queue.push(op); - return; - } - } -#else // defined(ASIO_HAS_THREADS) - (void)is_continuation; -#endif // defined(ASIO_HAS_THREADS) - - work_started(); - mutex::scoped_lock lock(mutex_); - op_queue_.push(op); - wake_one_thread_and_unlock(lock); -} - -void scheduler::post_deferred_completion(scheduler::operation* op) -{ -#if defined(ASIO_HAS_THREADS) - if (one_thread_) - { - if (thread_info_base* this_thread = thread_call_stack::contains(this)) - { - static_cast(this_thread)->private_op_queue.push(op); - return; - } - } -#endif // defined(ASIO_HAS_THREADS) - - mutex::scoped_lock lock(mutex_); - op_queue_.push(op); - wake_one_thread_and_unlock(lock); -} - -void scheduler::post_deferred_completions( - op_queue& ops) -{ - if (!ops.empty()) - { -#if defined(ASIO_HAS_THREADS) - if (one_thread_) - { - if (thread_info_base* this_thread = thread_call_stack::contains(this)) - { - static_cast(this_thread)->private_op_queue.push(ops); - return; - } - } -#endif // defined(ASIO_HAS_THREADS) - - mutex::scoped_lock lock(mutex_); - op_queue_.push(ops); - wake_one_thread_and_unlock(lock); - } -} - -void scheduler::do_dispatch( - scheduler::operation* op) -{ - work_started(); - mutex::scoped_lock lock(mutex_); - op_queue_.push(op); - wake_one_thread_and_unlock(lock); -} - -void scheduler::abandon_operations( - op_queue& ops) -{ - op_queue ops2; - ops2.push(ops); -} - -std::size_t scheduler::do_run_one(mutex::scoped_lock& lock, - scheduler::thread_info& this_thread, - const asio::error_code& ec) -{ - while (!stopped_) - { - if (!op_queue_.empty()) - { - // Prepare to execute first handler from queue. - operation* o = op_queue_.front(); - op_queue_.pop(); - bool more_handlers = (!op_queue_.empty()); - - if (o == &task_operation_) - { - task_interrupted_ = more_handlers; - - if (more_handlers && !one_thread_) - wakeup_event_.unlock_and_signal_one(lock); - else - lock.unlock(); - - task_cleanup on_exit = { this, &lock, &this_thread }; - (void)on_exit; - - // Run the task. May throw an exception. Only block if the operation - // queue is empty and we're not polling, otherwise we want to return - // as soon as possible. - task_->run(more_handlers ? 0 : -1, this_thread.private_op_queue); - } - else - { - std::size_t task_result = o->task_result_; - - if (more_handlers && !one_thread_) - wake_one_thread_and_unlock(lock); - else - lock.unlock(); - - // Ensure the count of outstanding work is decremented on block exit. - work_cleanup on_exit = { this, &lock, &this_thread }; - (void)on_exit; - - // Complete the operation. May throw an exception. Deletes the object. - o->complete(this, ec, task_result); - - return 1; - } - } - else - { - wakeup_event_.clear(lock); - wakeup_event_.wait(lock); - } - } - - return 0; -} - -std::size_t scheduler::do_wait_one(mutex::scoped_lock& lock, - scheduler::thread_info& this_thread, long usec, - const asio::error_code& ec) -{ - if (stopped_) - return 0; - - operation* o = op_queue_.front(); - if (o == 0) - { - wakeup_event_.clear(lock); - wakeup_event_.wait_for_usec(lock, usec); - usec = 0; // Wait at most once. - o = op_queue_.front(); - } - - if (o == &task_operation_) - { - op_queue_.pop(); - bool more_handlers = (!op_queue_.empty()); - - task_interrupted_ = more_handlers; - - if (more_handlers && !one_thread_) - wakeup_event_.unlock_and_signal_one(lock); - else - lock.unlock(); - - { - task_cleanup on_exit = { this, &lock, &this_thread }; - (void)on_exit; - - // Run the task. May throw an exception. Only block if the operation - // queue is empty and we're not polling, otherwise we want to return - // as soon as possible. - task_->run(more_handlers ? 0 : usec, this_thread.private_op_queue); - } - - o = op_queue_.front(); - if (o == &task_operation_) - { - if (!one_thread_) - wakeup_event_.maybe_unlock_and_signal_one(lock); - return 0; - } - } - - if (o == 0) - return 0; - - op_queue_.pop(); - bool more_handlers = (!op_queue_.empty()); - - std::size_t task_result = o->task_result_; - - if (more_handlers && !one_thread_) - wake_one_thread_and_unlock(lock); - else - lock.unlock(); - - // Ensure the count of outstanding work is decremented on block exit. - work_cleanup on_exit = { this, &lock, &this_thread }; - (void)on_exit; - - // Complete the operation. May throw an exception. Deletes the object. - o->complete(this, ec, task_result); - - return 1; -} - -std::size_t scheduler::do_poll_one(mutex::scoped_lock& lock, - scheduler::thread_info& this_thread, - const asio::error_code& ec) -{ - if (stopped_) - return 0; - - operation* o = op_queue_.front(); - if (o == &task_operation_) - { - op_queue_.pop(); - lock.unlock(); - - { - task_cleanup c = { this, &lock, &this_thread }; - (void)c; - - // Run the task. May throw an exception. Only block if the operation - // queue is empty and we're not polling, otherwise we want to return - // as soon as possible. - task_->run(0, this_thread.private_op_queue); - } - - o = op_queue_.front(); - if (o == &task_operation_) - { - wakeup_event_.maybe_unlock_and_signal_one(lock); - return 0; - } - } - - if (o == 0) - return 0; - - op_queue_.pop(); - bool more_handlers = (!op_queue_.empty()); - - std::size_t task_result = o->task_result_; - - if (more_handlers && !one_thread_) - wake_one_thread_and_unlock(lock); - else - lock.unlock(); - - // Ensure the count of outstanding work is decremented on block exit. - work_cleanup on_exit = { this, &lock, &this_thread }; - (void)on_exit; - - // Complete the operation. May throw an exception. Deletes the object. - o->complete(this, ec, task_result); - - return 1; -} - -void scheduler::stop_all_threads( - mutex::scoped_lock& lock) -{ - stopped_ = true; - wakeup_event_.signal_all(lock); - - if (!task_interrupted_ && task_) - { - task_interrupted_ = true; - task_->interrupt(); - } -} - -void scheduler::wake_one_thread_and_unlock( - mutex::scoped_lock& lock) -{ - if (!wakeup_event_.maybe_unlock_and_signal_one(lock)) - { - if (!task_interrupted_ && task_) - { - task_interrupted_ = true; - task_->interrupt(); - } - lock.unlock(); - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_SCHEDULER_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/select_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/impl/select_reactor.hpp deleted file mode 100644 index 04a04d4..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/select_reactor.hpp +++ /dev/null @@ -1,100 +0,0 @@ -// -// detail/impl/select_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_SELECT_REACTOR_HPP -#define ASIO_DETAIL_IMPL_SELECT_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) \ - || (!defined(ASIO_HAS_DEV_POLL) \ - && !defined(ASIO_HAS_EPOLL) \ - && !defined(ASIO_HAS_KQUEUE) \ - && !defined(ASIO_WINDOWS_RUNTIME)) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -void select_reactor::add_timer_queue(timer_queue& queue) -{ - do_add_timer_queue(queue); -} - -// Remove a timer queue from the reactor. -template -void select_reactor::remove_timer_queue(timer_queue& queue) -{ - do_remove_timer_queue(queue); -} - -template -void select_reactor::schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - { - scheduler_.post_immediate_completion(op, false); - return; - } - - bool earliest = queue.enqueue_timer(time, timer, op); - scheduler_.work_started(); - if (earliest) - interrupter_.interrupt(); -} - -template -std::size_t select_reactor::cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - op_queue ops; - std::size_t n = queue.cancel_timer(timer, ops, max_cancelled); - lock.unlock(); - scheduler_.post_deferred_completions(ops); - return n; -} - -template -void select_reactor::move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - op_queue ops; - queue.cancel_timer(target, ops); - queue.move_timer(target, source); - lock.unlock(); - scheduler_.post_deferred_completions(ops); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - // || (!defined(ASIO_HAS_DEV_POLL) - // && !defined(ASIO_HAS_EPOLL) - // && !defined(ASIO_HAS_KQUEUE) - // && !defined(ASIO_WINDOWS_RUNTIME)) - -#endif // ASIO_DETAIL_IMPL_SELECT_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/select_reactor.ipp b/Sources/Vendor/asio/include/asio/detail/impl/select_reactor.ipp deleted file mode 100644 index 262bc69..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/select_reactor.ipp +++ /dev/null @@ -1,333 +0,0 @@ -// -// detail/impl/select_reactor.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_SELECT_REACTOR_IPP -#define ASIO_DETAIL_IMPL_SELECT_REACTOR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) \ - || (!defined(ASIO_HAS_DEV_POLL) \ - && !defined(ASIO_HAS_EPOLL) \ - && !defined(ASIO_HAS_KQUEUE) \ - && !defined(ASIO_WINDOWS_RUNTIME)) - -#include "asio/detail/fd_set_adapter.hpp" -#include "asio/detail/select_reactor.hpp" -#include "asio/detail/signal_blocker.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_IOCP) -class select_reactor::thread_function -{ -public: - explicit thread_function(select_reactor* r) - : this_(r) - { - } - - void operator()() - { - this_->run_thread(); - } - -private: - select_reactor* this_; -}; -#endif // defined(ASIO_HAS_IOCP) - -select_reactor::select_reactor(asio::execution_context& ctx) - : execution_context_service_base(ctx), - scheduler_(use_service(ctx)), - mutex_(), - interrupter_(), -#if defined(ASIO_HAS_IOCP) - stop_thread_(false), - thread_(0), -#endif // defined(ASIO_HAS_IOCP) - shutdown_(false) -{ -#if defined(ASIO_HAS_IOCP) - asio::detail::signal_blocker sb; - thread_ = new asio::detail::thread(thread_function(this)); -#endif // defined(ASIO_HAS_IOCP) -} - -select_reactor::~select_reactor() -{ - shutdown(); -} - -void select_reactor::shutdown() -{ - asio::detail::mutex::scoped_lock lock(mutex_); - shutdown_ = true; -#if defined(ASIO_HAS_IOCP) - stop_thread_ = true; -#endif // defined(ASIO_HAS_IOCP) - lock.unlock(); - -#if defined(ASIO_HAS_IOCP) - if (thread_) - { - interrupter_.interrupt(); - thread_->join(); - delete thread_; - thread_ = 0; - } -#endif // defined(ASIO_HAS_IOCP) - - op_queue ops; - - for (int i = 0; i < max_ops; ++i) - op_queue_[i].get_all_operations(ops); - - timer_queues_.get_all_timers(ops); - - scheduler_.abandon_operations(ops); -} - -void select_reactor::notify_fork( - asio::execution_context::fork_event fork_ev) -{ - if (fork_ev == asio::execution_context::fork_child) - interrupter_.recreate(); -} - -void select_reactor::init_task() -{ - scheduler_.init_task(); -} - -int select_reactor::register_descriptor(socket_type, - select_reactor::per_descriptor_data&) -{ - return 0; -} - -int select_reactor::register_internal_descriptor( - int op_type, socket_type descriptor, - select_reactor::per_descriptor_data&, reactor_op* op) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - op_queue_[op_type].enqueue_operation(descriptor, op); - interrupter_.interrupt(); - - return 0; -} - -void select_reactor::move_descriptor(socket_type, - select_reactor::per_descriptor_data&, - select_reactor::per_descriptor_data&) -{ -} - -void select_reactor::start_op(int op_type, socket_type descriptor, - select_reactor::per_descriptor_data&, reactor_op* op, - bool is_continuation, bool) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - { - post_immediate_completion(op, is_continuation); - return; - } - - bool first = op_queue_[op_type].enqueue_operation(descriptor, op); - scheduler_.work_started(); - if (first) - interrupter_.interrupt(); -} - -void select_reactor::cancel_ops(socket_type descriptor, - select_reactor::per_descriptor_data&) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - cancel_ops_unlocked(descriptor, asio::error::operation_aborted); -} - -void select_reactor::deregister_descriptor(socket_type descriptor, - select_reactor::per_descriptor_data&, bool) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - cancel_ops_unlocked(descriptor, asio::error::operation_aborted); -} - -void select_reactor::deregister_internal_descriptor( - socket_type descriptor, select_reactor::per_descriptor_data&) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - op_queue ops; - for (int i = 0; i < max_ops; ++i) - op_queue_[i].cancel_operations(descriptor, ops); -} - -void select_reactor::cleanup_descriptor_data( - select_reactor::per_descriptor_data&) -{ -} - -void select_reactor::run(long usec, op_queue& ops) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - -#if defined(ASIO_HAS_IOCP) - // Check if the thread is supposed to stop. - if (stop_thread_) - return; -#endif // defined(ASIO_HAS_IOCP) - - // Set up the descriptor sets. - for (int i = 0; i < max_select_ops; ++i) - fd_sets_[i].reset(); - fd_sets_[read_op].set(interrupter_.read_descriptor()); - socket_type max_fd = 0; - bool have_work_to_do = !timer_queues_.all_empty(); - for (int i = 0; i < max_select_ops; ++i) - { - have_work_to_do = have_work_to_do || !op_queue_[i].empty(); - fd_sets_[i].set(op_queue_[i], ops); - if (fd_sets_[i].max_descriptor() > max_fd) - max_fd = fd_sets_[i].max_descriptor(); - } - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - // Connection operations on Windows use both except and write fd_sets. - have_work_to_do = have_work_to_do || !op_queue_[connect_op].empty(); - fd_sets_[write_op].set(op_queue_[connect_op], ops); - if (fd_sets_[write_op].max_descriptor() > max_fd) - max_fd = fd_sets_[write_op].max_descriptor(); - fd_sets_[except_op].set(op_queue_[connect_op], ops); - if (fd_sets_[except_op].max_descriptor() > max_fd) - max_fd = fd_sets_[except_op].max_descriptor(); -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - - // We can return immediately if there's no work to do and the reactor is - // not supposed to block. - if (!usec && !have_work_to_do) - return; - - // Determine how long to block while waiting for events. - timeval tv_buf = { 0, 0 }; - timeval* tv = usec ? get_timeout(usec, tv_buf) : &tv_buf; - - lock.unlock(); - - // Block on the select call until descriptors become ready. - asio::error_code ec; - int retval = socket_ops::select(static_cast(max_fd + 1), - fd_sets_[read_op], fd_sets_[write_op], fd_sets_[except_op], tv, ec); - - // Reset the interrupter. - if (retval > 0 && fd_sets_[read_op].is_set(interrupter_.read_descriptor())) - { - interrupter_.reset(); - --retval; - } - - lock.lock(); - - // Dispatch all ready operations. - if (retval > 0) - { -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - // Connection operations on Windows use both except and write fd_sets. - fd_sets_[except_op].perform(op_queue_[connect_op], ops); - fd_sets_[write_op].perform(op_queue_[connect_op], ops); -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - - // Exception operations must be processed first to ensure that any - // out-of-band data is read before normal data. - for (int i = max_select_ops - 1; i >= 0; --i) - fd_sets_[i].perform(op_queue_[i], ops); - } - timer_queues_.get_ready_timers(ops); -} - -void select_reactor::interrupt() -{ - interrupter_.interrupt(); -} - -#if defined(ASIO_HAS_IOCP) -void select_reactor::run_thread() -{ - asio::detail::mutex::scoped_lock lock(mutex_); - while (!stop_thread_) - { - lock.unlock(); - op_queue ops; - run(true, ops); - scheduler_.post_deferred_completions(ops); - lock.lock(); - } -} -#endif // defined(ASIO_HAS_IOCP) - -void select_reactor::do_add_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.insert(&queue); -} - -void select_reactor::do_remove_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.erase(&queue); -} - -timeval* select_reactor::get_timeout(long usec, timeval& tv) -{ - // By default we will wait no longer than 5 minutes. This will ensure that - // any changes to the system clock are detected after no longer than this. - const long max_usec = 5 * 60 * 1000 * 1000; - usec = timer_queues_.wait_duration_usec( - (usec < 0 || max_usec < usec) ? max_usec : usec); - tv.tv_sec = usec / 1000000; - tv.tv_usec = usec % 1000000; - return &tv; -} - -void select_reactor::cancel_ops_unlocked(socket_type descriptor, - const asio::error_code& ec) -{ - bool need_interrupt = false; - op_queue ops; - for (int i = 0; i < max_ops; ++i) - need_interrupt = op_queue_[i].cancel_operations( - descriptor, ops, ec) || need_interrupt; - scheduler_.post_deferred_completions(ops); - if (need_interrupt) - interrupter_.interrupt(); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - // || (!defined(ASIO_HAS_DEV_POLL) - // && !defined(ASIO_HAS_EPOLL) - // && !defined(ASIO_HAS_KQUEUE)) - // && !defined(ASIO_WINDOWS_RUNTIME)) - -#endif // ASIO_DETAIL_IMPL_SELECT_REACTOR_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/service_registry.hpp b/Sources/Vendor/asio/include/asio/detail/impl/service_registry.hpp deleted file mode 100644 index d4db589..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/service_registry.hpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// detail/impl/service_registry.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_SERVICE_REGISTRY_HPP -#define ASIO_DETAIL_IMPL_SERVICE_REGISTRY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -Service& service_registry::use_service() -{ - execution_context::service::key key; - init_key(key, 0); - factory_type factory = &service_registry::create; - return *static_cast(do_use_service(key, factory, &owner_)); -} - -template -Service& service_registry::use_service(io_context& owner) -{ - execution_context::service::key key; - init_key(key, 0); - factory_type factory = &service_registry::create; - return *static_cast(do_use_service(key, factory, &owner)); -} - -template -void service_registry::add_service(Service* new_service) -{ - execution_context::service::key key; - init_key(key, 0); - return do_add_service(key, new_service); -} - -template -bool service_registry::has_service() const -{ - execution_context::service::key key; - init_key(key, 0); - return do_has_service(key); -} - -template -inline void service_registry::init_key( - execution_context::service::key& key, ...) -{ - init_key_from_id(key, Service::id); -} - -#if !defined(ASIO_NO_TYPEID) -template -void service_registry::init_key(execution_context::service::key& key, - typename enable_if< - is_base_of::value>::type*) -{ - key.type_info_ = &typeid(typeid_wrapper); - key.id_ = 0; -} - -template -void service_registry::init_key_from_id(execution_context::service::key& key, - const service_id& /*id*/) -{ - key.type_info_ = &typeid(typeid_wrapper); - key.id_ = 0; -} -#endif // !defined(ASIO_NO_TYPEID) - -template -execution_context::service* service_registry::create(void* owner) -{ - return new Service(*static_cast(owner)); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_SERVICE_REGISTRY_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/service_registry.ipp b/Sources/Vendor/asio/include/asio/detail/impl/service_registry.ipp deleted file mode 100644 index a465033..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/service_registry.ipp +++ /dev/null @@ -1,197 +0,0 @@ -// -// detail/impl/service_registry.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_SERVICE_REGISTRY_IPP -#define ASIO_DETAIL_IMPL_SERVICE_REGISTRY_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/service_registry.hpp" -#include "asio/detail/throw_exception.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -service_registry::service_registry(execution_context& owner) - : owner_(owner), - first_service_(0) -{ -} - -service_registry::~service_registry() -{ -} - -void service_registry::shutdown_services() -{ - execution_context::service* service = first_service_; - while (service) - { - service->shutdown(); - service = service->next_; - } -} - -void service_registry::destroy_services() -{ - while (first_service_) - { - execution_context::service* next_service = first_service_->next_; - destroy(first_service_); - first_service_ = next_service; - } -} - -void service_registry::notify_fork(execution_context::fork_event fork_ev) -{ - // Make a copy of all of the services while holding the lock. We don't want - // to hold the lock while calling into each service, as it may try to call - // back into this class. - std::vector services; - { - asio::detail::mutex::scoped_lock lock(mutex_); - execution_context::service* service = first_service_; - while (service) - { - services.push_back(service); - service = service->next_; - } - } - - // If processing the fork_prepare event, we want to go in reverse order of - // service registration, which happens to be the existing order of the - // services in the vector. For the other events we want to go in the other - // direction. - std::size_t num_services = services.size(); - if (fork_ev == execution_context::fork_prepare) - for (std::size_t i = 0; i < num_services; ++i) - services[i]->notify_fork(fork_ev); - else - for (std::size_t i = num_services; i > 0; --i) - services[i - 1]->notify_fork(fork_ev); -} - -void service_registry::init_key_from_id(execution_context::service::key& key, - const execution_context::id& id) -{ - key.type_info_ = 0; - key.id_ = &id; -} - -bool service_registry::keys_match( - const execution_context::service::key& key1, - const execution_context::service::key& key2) -{ - if (key1.id_ && key2.id_) - if (key1.id_ == key2.id_) - return true; - if (key1.type_info_ && key2.type_info_) - if (*key1.type_info_ == *key2.type_info_) - return true; - return false; -} - -void service_registry::destroy(execution_context::service* service) -{ - delete service; -} - -execution_context::service* service_registry::do_use_service( - const execution_context::service::key& key, - factory_type factory, void* owner) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - // First see if there is an existing service object with the given key. - execution_context::service* service = first_service_; - while (service) - { - if (keys_match(service->key_, key)) - return service; - service = service->next_; - } - - // Create a new service object. The service registry's mutex is not locked - // at this time to allow for nested calls into this function from the new - // service's constructor. - lock.unlock(); - auto_service_ptr new_service = { factory(owner) }; - new_service.ptr_->key_ = key; - lock.lock(); - - // Check that nobody else created another service object of the same type - // while the lock was released. - service = first_service_; - while (service) - { - if (keys_match(service->key_, key)) - return service; - service = service->next_; - } - - // Service was successfully initialised, pass ownership to registry. - new_service.ptr_->next_ = first_service_; - first_service_ = new_service.ptr_; - new_service.ptr_ = 0; - return first_service_; -} - -void service_registry::do_add_service( - const execution_context::service::key& key, - execution_context::service* new_service) -{ - if (&owner_ != &new_service->context()) - asio::detail::throw_exception(invalid_service_owner()); - - asio::detail::mutex::scoped_lock lock(mutex_); - - // Check if there is an existing service object with the given key. - execution_context::service* service = first_service_; - while (service) - { - if (keys_match(service->key_, key)) - asio::detail::throw_exception(service_already_exists()); - service = service->next_; - } - - // Take ownership of the service object. - new_service->key_ = key; - new_service->next_ = first_service_; - first_service_ = new_service; -} - -bool service_registry::do_has_service( - const execution_context::service::key& key) const -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - execution_context::service* service = first_service_; - while (service) - { - if (keys_match(service->key_, key)) - return true; - service = service->next_; - } - - return false; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_SERVICE_REGISTRY_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/signal_set_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/signal_set_service.ipp deleted file mode 100644 index dd68fc1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/signal_set_service.ipp +++ /dev/null @@ -1,669 +0,0 @@ -// -// detail/impl/signal_set_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_SIGNAL_SET_SERVICE_IPP -#define ASIO_DETAIL_IMPL_SIGNAL_SET_SERVICE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include -#include "asio/detail/reactor.hpp" -#include "asio/detail/signal_blocker.hpp" -#include "asio/detail/signal_set_service.hpp" -#include "asio/detail/static_mutex.hpp" -#include "asio/detail/throw_exception.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct signal_state -{ - // Mutex used for protecting global state. - static_mutex mutex_; - - // The read end of the pipe used for signal notifications. - int read_descriptor_; - - // The write end of the pipe used for signal notifications. - int write_descriptor_; - - // Whether the signal state has been prepared for a fork. - bool fork_prepared_; - - // The head of a linked list of all signal_set_service instances. - class signal_set_service* service_list_; - - // A count of the number of objects that are registered for each signal. - std::size_t registration_count_[max_signal_number]; -}; - -signal_state* get_signal_state() -{ - static signal_state state = { - ASIO_STATIC_MUTEX_INIT, -1, -1, false, 0, { 0 } }; - return &state; -} - -void asio_signal_handler(int signal_number) -{ -#if defined(ASIO_WINDOWS) \ - || defined(ASIO_WINDOWS_RUNTIME) \ - || defined(__CYGWIN__) - signal_set_service::deliver_signal(signal_number); -#else // defined(ASIO_WINDOWS) - // || defined(ASIO_WINDOWS_RUNTIME) - // || defined(__CYGWIN__) - int saved_errno = errno; - signal_state* state = get_signal_state(); - signed_size_type result = ::write(state->write_descriptor_, - &signal_number, sizeof(signal_number)); - (void)result; - errno = saved_errno; -#endif // defined(ASIO_WINDOWS) - // || defined(ASIO_WINDOWS_RUNTIME) - // || defined(__CYGWIN__) - -#if defined(ASIO_HAS_SIGNAL) && !defined(ASIO_HAS_SIGACTION) - ::signal(signal_number, asio_signal_handler); -#endif // defined(ASIO_HAS_SIGNAL) && !defined(ASIO_HAS_SIGACTION) -} - -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) -class signal_set_service::pipe_read_op : public reactor_op -{ -public: - pipe_read_op() - : reactor_op(&pipe_read_op::do_perform, pipe_read_op::do_complete) - { - } - - static status do_perform(reactor_op*) - { - signal_state* state = get_signal_state(); - - int fd = state->read_descriptor_; - int signal_number = 0; - while (::read(fd, &signal_number, sizeof(int)) == sizeof(int)) - if (signal_number >= 0 && signal_number < max_signal_number) - signal_set_service::deliver_signal(signal_number); - - return not_done; - } - - static void do_complete(void* /*owner*/, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - pipe_read_op* o(static_cast(base)); - delete o; - } -}; -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - -signal_set_service::signal_set_service( - asio::io_context& io_context) - : service_base(io_context), - io_context_(asio::use_service(io_context)), -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - reactor_(asio::use_service(io_context)), -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - next_(0), - prev_(0) -{ - get_signal_state()->mutex_.init(); - -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - reactor_.init_task(); -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - - for (int i = 0; i < max_signal_number; ++i) - registrations_[i] = 0; - - add_service(this); -} - -signal_set_service::~signal_set_service() -{ - remove_service(this); -} - -void signal_set_service::shutdown() -{ - remove_service(this); - - op_queue ops; - - for (int i = 0; i < max_signal_number; ++i) - { - registration* reg = registrations_[i]; - while (reg) - { - ops.push(*reg->queue_); - reg = reg->next_in_table_; - } - } - - io_context_.abandon_operations(ops); -} - -void signal_set_service::notify_fork( - asio::io_context::fork_event fork_ev) -{ -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - switch (fork_ev) - { - case asio::io_context::fork_prepare: - { - int read_descriptor = state->read_descriptor_; - state->fork_prepared_ = true; - lock.unlock(); - reactor_.deregister_internal_descriptor(read_descriptor, reactor_data_); - reactor_.cleanup_descriptor_data(reactor_data_); - } - break; - case asio::io_context::fork_parent: - if (state->fork_prepared_) - { - int read_descriptor = state->read_descriptor_; - state->fork_prepared_ = false; - lock.unlock(); - reactor_.register_internal_descriptor(reactor::read_op, - read_descriptor, reactor_data_, new pipe_read_op); - } - break; - case asio::io_context::fork_child: - if (state->fork_prepared_) - { - asio::detail::signal_blocker blocker; - close_descriptors(); - open_descriptors(); - int read_descriptor = state->read_descriptor_; - state->fork_prepared_ = false; - lock.unlock(); - reactor_.register_internal_descriptor(reactor::read_op, - read_descriptor, reactor_data_, new pipe_read_op); - } - break; - default: - break; - } -#else // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - (void)fork_ev; -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -} - -void signal_set_service::construct( - signal_set_service::implementation_type& impl) -{ - impl.signals_ = 0; -} - -void signal_set_service::destroy( - signal_set_service::implementation_type& impl) -{ - asio::error_code ignored_ec; - clear(impl, ignored_ec); - cancel(impl, ignored_ec); -} - -asio::error_code signal_set_service::add( - signal_set_service::implementation_type& impl, - int signal_number, asio::error_code& ec) -{ - // Check that the signal number is valid. - if (signal_number < 0 || signal_number >= max_signal_number) - { - ec = asio::error::invalid_argument; - return ec; - } - - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - // Find the appropriate place to insert the registration. - registration** insertion_point = &impl.signals_; - registration* next = impl.signals_; - while (next && next->signal_number_ < signal_number) - { - insertion_point = &next->next_in_set_; - next = next->next_in_set_; - } - - // Only do something if the signal is not already registered. - if (next == 0 || next->signal_number_ != signal_number) - { - registration* new_registration = new registration; - -#if defined(ASIO_HAS_SIGNAL) || defined(ASIO_HAS_SIGACTION) - // Register for the signal if we're the first. - if (state->registration_count_[signal_number] == 0) - { -# if defined(ASIO_HAS_SIGACTION) - using namespace std; // For memset. - struct sigaction sa; - memset(&sa, 0, sizeof(sa)); - sa.sa_handler = asio_signal_handler; - sigfillset(&sa.sa_mask); - if (::sigaction(signal_number, &sa, 0) == -1) -# else // defined(ASIO_HAS_SIGACTION) - if (::signal(signal_number, asio_signal_handler) == SIG_ERR) -# endif // defined(ASIO_HAS_SIGACTION) - { -# if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ec = asio::error::invalid_argument; -# else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ec = asio::error_code(errno, - asio::error::get_system_category()); -# endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - delete new_registration; - return ec; - } - } -#endif // defined(ASIO_HAS_SIGNAL) || defined(ASIO_HAS_SIGACTION) - - // Record the new registration in the set. - new_registration->signal_number_ = signal_number; - new_registration->queue_ = &impl.queue_; - new_registration->next_in_set_ = next; - *insertion_point = new_registration; - - // Insert registration into the registration table. - new_registration->next_in_table_ = registrations_[signal_number]; - if (registrations_[signal_number]) - registrations_[signal_number]->prev_in_table_ = new_registration; - registrations_[signal_number] = new_registration; - - ++state->registration_count_[signal_number]; - } - - ec = asio::error_code(); - return ec; -} - -asio::error_code signal_set_service::remove( - signal_set_service::implementation_type& impl, - int signal_number, asio::error_code& ec) -{ - // Check that the signal number is valid. - if (signal_number < 0 || signal_number >= max_signal_number) - { - ec = asio::error::invalid_argument; - return ec; - } - - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - // Find the signal number in the list of registrations. - registration** deletion_point = &impl.signals_; - registration* reg = impl.signals_; - while (reg && reg->signal_number_ < signal_number) - { - deletion_point = ®->next_in_set_; - reg = reg->next_in_set_; - } - - if (reg != 0 && reg->signal_number_ == signal_number) - { -#if defined(ASIO_HAS_SIGNAL) || defined(ASIO_HAS_SIGACTION) - // Set signal handler back to the default if we're the last. - if (state->registration_count_[signal_number] == 1) - { -# if defined(ASIO_HAS_SIGACTION) - using namespace std; // For memset. - struct sigaction sa; - memset(&sa, 0, sizeof(sa)); - sa.sa_handler = SIG_DFL; - if (::sigaction(signal_number, &sa, 0) == -1) -# else // defined(ASIO_HAS_SIGACTION) - if (::signal(signal_number, SIG_DFL) == SIG_ERR) -# endif // defined(ASIO_HAS_SIGACTION) - { -# if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ec = asio::error::invalid_argument; -# else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ec = asio::error_code(errno, - asio::error::get_system_category()); -# endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - return ec; - } - } -#endif // defined(ASIO_HAS_SIGNAL) || defined(ASIO_HAS_SIGACTION) - - // Remove the registration from the set. - *deletion_point = reg->next_in_set_; - - // Remove the registration from the registration table. - if (registrations_[signal_number] == reg) - registrations_[signal_number] = reg->next_in_table_; - if (reg->prev_in_table_) - reg->prev_in_table_->next_in_table_ = reg->next_in_table_; - if (reg->next_in_table_) - reg->next_in_table_->prev_in_table_ = reg->prev_in_table_; - - --state->registration_count_[signal_number]; - - delete reg; - } - - ec = asio::error_code(); - return ec; -} - -asio::error_code signal_set_service::clear( - signal_set_service::implementation_type& impl, - asio::error_code& ec) -{ - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - while (registration* reg = impl.signals_) - { -#if defined(ASIO_HAS_SIGNAL) || defined(ASIO_HAS_SIGACTION) - // Set signal handler back to the default if we're the last. - if (state->registration_count_[reg->signal_number_] == 1) - { -# if defined(ASIO_HAS_SIGACTION) - using namespace std; // For memset. - struct sigaction sa; - memset(&sa, 0, sizeof(sa)); - sa.sa_handler = SIG_DFL; - if (::sigaction(reg->signal_number_, &sa, 0) == -1) -# else // defined(ASIO_HAS_SIGACTION) - if (::signal(reg->signal_number_, SIG_DFL) == SIG_ERR) -# endif // defined(ASIO_HAS_SIGACTION) - { -# if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ec = asio::error::invalid_argument; -# else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ec = asio::error_code(errno, - asio::error::get_system_category()); -# endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - return ec; - } - } -#endif // defined(ASIO_HAS_SIGNAL) || defined(ASIO_HAS_SIGACTION) - - // Remove the registration from the registration table. - if (registrations_[reg->signal_number_] == reg) - registrations_[reg->signal_number_] = reg->next_in_table_; - if (reg->prev_in_table_) - reg->prev_in_table_->next_in_table_ = reg->next_in_table_; - if (reg->next_in_table_) - reg->next_in_table_->prev_in_table_ = reg->prev_in_table_; - - --state->registration_count_[reg->signal_number_]; - - impl.signals_ = reg->next_in_set_; - delete reg; - } - - ec = asio::error_code(); - return ec; -} - -asio::error_code signal_set_service::cancel( - signal_set_service::implementation_type& impl, - asio::error_code& ec) -{ - ASIO_HANDLER_OPERATION((io_context_.context(), - "signal_set", &impl, 0, "cancel")); - - op_queue ops; - { - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - while (signal_op* op = impl.queue_.front()) - { - op->ec_ = asio::error::operation_aborted; - impl.queue_.pop(); - ops.push(op); - } - } - - io_context_.post_deferred_completions(ops); - - ec = asio::error_code(); - return ec; -} - -void signal_set_service::deliver_signal(int signal_number) -{ - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - signal_set_service* service = state->service_list_; - while (service) - { - op_queue ops; - - registration* reg = service->registrations_[signal_number]; - while (reg) - { - if (reg->queue_->empty()) - { - ++reg->undelivered_; - } - else - { - while (signal_op* op = reg->queue_->front()) - { - op->signal_number_ = signal_number; - reg->queue_->pop(); - ops.push(op); - } - } - - reg = reg->next_in_table_; - } - - service->io_context_.post_deferred_completions(ops); - - service = service->next_; - } -} - -void signal_set_service::add_service(signal_set_service* service) -{ - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - // If this is the first service to be created, open a new pipe. - if (state->service_list_ == 0) - open_descriptors(); -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - - // If an io_context object is thread-unsafe then it must be the only - // io_context used to create signal_set objects. - if (state->service_list_ != 0) - { - if (!ASIO_CONCURRENCY_HINT_IS_LOCKING(SCHEDULER, - service->io_context_.concurrency_hint()) - || !ASIO_CONCURRENCY_HINT_IS_LOCKING(SCHEDULER, - state->service_list_->io_context_.concurrency_hint())) - { - std::logic_error ex( - "Thread-unsafe io_context objects require " - "exclusive access to signal handling."); - asio::detail::throw_exception(ex); - } - } - - // Insert service into linked list of all services. - service->next_ = state->service_list_; - service->prev_ = 0; - if (state->service_list_) - state->service_list_->prev_ = service; - state->service_list_ = service; - -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - // Register for pipe readiness notifications. - int read_descriptor = state->read_descriptor_; - lock.unlock(); - service->reactor_.register_internal_descriptor(reactor::read_op, - read_descriptor, service->reactor_data_, new pipe_read_op); -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -} - -void signal_set_service::remove_service(signal_set_service* service) -{ - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - if (service->next_ || service->prev_ || state->service_list_ == service) - { -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - // Disable the pipe readiness notifications. - int read_descriptor = state->read_descriptor_; - lock.unlock(); - service->reactor_.deregister_internal_descriptor( - read_descriptor, service->reactor_data_); - service->reactor_.cleanup_descriptor_data(service->reactor_data_); - lock.lock(); -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - - // Remove service from linked list of all services. - if (state->service_list_ == service) - state->service_list_ = service->next_; - if (service->prev_) - service->prev_->next_ = service->next_; - if (service->next_) - service->next_->prev_= service->prev_; - service->next_ = 0; - service->prev_ = 0; - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - // If this is the last service to be removed, close the pipe. - if (state->service_list_ == 0) - close_descriptors(); -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - } -} - -void signal_set_service::open_descriptors() -{ -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - signal_state* state = get_signal_state(); - - int pipe_fds[2]; - if (::pipe(pipe_fds) == 0) - { - state->read_descriptor_ = pipe_fds[0]; - ::fcntl(state->read_descriptor_, F_SETFL, O_NONBLOCK); - - state->write_descriptor_ = pipe_fds[1]; - ::fcntl(state->write_descriptor_, F_SETFL, O_NONBLOCK); - -#if defined(FD_CLOEXEC) - ::fcntl(state->read_descriptor_, F_SETFD, FD_CLOEXEC); - ::fcntl(state->write_descriptor_, F_SETFD, FD_CLOEXEC); -#endif // defined(FD_CLOEXEC) - } - else - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "signal_set_service pipe"); - } -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -} - -void signal_set_service::close_descriptors() -{ -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - signal_state* state = get_signal_state(); - - if (state->read_descriptor_ != -1) - ::close(state->read_descriptor_); - state->read_descriptor_ = -1; - - if (state->write_descriptor_ != -1) - ::close(state->write_descriptor_); - state->write_descriptor_ = -1; -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -} - -void signal_set_service::start_wait_op( - signal_set_service::implementation_type& impl, signal_op* op) -{ - io_context_.work_started(); - - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - registration* reg = impl.signals_; - while (reg) - { - if (reg->undelivered_ > 0) - { - --reg->undelivered_; - op->signal_number_ = reg->signal_number_; - io_context_.post_deferred_completion(op); - return; - } - - reg = reg->next_in_set_; - } - - impl.queue_.push(op); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_SIGNAL_SET_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/socket_ops.ipp b/Sources/Vendor/asio/include/asio/detail/impl/socket_ops.ipp deleted file mode 100644 index 7df3400..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/socket_ops.ipp +++ /dev/null @@ -1,3571 +0,0 @@ -// -// detail/impl/socket_ops.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SOCKET_OPS_IPP -#define ASIO_DETAIL_SOCKET_OPS_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include -#include -#include -#include -#include -#include "asio/detail/assert.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include -# include -# include -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) \ - || defined(__MACH__) && defined(__APPLE__) -# if defined(ASIO_HAS_PTHREADS) -# include -# endif // defined(ASIO_HAS_PTHREADS) -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - // || defined(__MACH__) && defined(__APPLE__) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { -namespace socket_ops { - -#if !defined(ASIO_WINDOWS_RUNTIME) - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -struct msghdr { int msg_namelen; }; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#if defined(__hpux) -// HP-UX doesn't declare these functions extern "C", so they are declared again -// here to avoid linker errors about undefined symbols. -extern "C" char* if_indextoname(unsigned int, char*); -extern "C" unsigned int if_nametoindex(const char*); -#endif // defined(__hpux) - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -inline void clear_last_error() -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - WSASetLastError(0); -#else - errno = 0; -#endif -} - -#if !defined(ASIO_WINDOWS_RUNTIME) - -template -inline ReturnType error_wrapper(ReturnType return_value, - asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ec = asio::error_code(WSAGetLastError(), - asio::error::get_system_category()); -#else - ec = asio::error_code(errno, - asio::error::get_system_category()); -#endif - return return_value; -} - -template -inline socket_type call_accept(SockLenType msghdr::*, - socket_type s, socket_addr_type* addr, std::size_t* addrlen) -{ - SockLenType tmp_addrlen = addrlen ? (SockLenType)*addrlen : 0; - socket_type result = ::accept(s, addr, addrlen ? &tmp_addrlen : 0); - if (addrlen) - *addrlen = (std::size_t)tmp_addrlen; - return result; -} - -socket_type accept(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return invalid_socket; - } - - clear_last_error(); - - socket_type new_s = error_wrapper(call_accept( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (new_s == invalid_socket) - return new_s; - -#if defined(__MACH__) && defined(__APPLE__) || defined(__FreeBSD__) - int optval = 1; - int result = error_wrapper(::setsockopt(new_s, - SOL_SOCKET, SO_NOSIGPIPE, &optval, sizeof(optval)), ec); - if (result != 0) - { - ::close(new_s); - return invalid_socket; - } -#endif - - ec = asio::error_code(); - return new_s; -} - -socket_type sync_accept(socket_type s, state_type state, - socket_addr_type* addr, std::size_t* addrlen, asio::error_code& ec) -{ - // Accept a socket. - for (;;) - { - // Try to complete the operation without blocking. - socket_type new_socket = socket_ops::accept(s, addr, addrlen, ec); - - // Check if operation succeeded. - if (new_socket != invalid_socket) - return new_socket; - - // Operation failed. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - { - if (state & user_set_non_blocking) - return invalid_socket; - // Fall through to retry operation. - } - else if (ec == asio::error::connection_aborted) - { - if (state & enable_connection_aborted) - return invalid_socket; - // Fall through to retry operation. - } -#if defined(EPROTO) - else if (ec.value() == EPROTO) - { - if (state & enable_connection_aborted) - return invalid_socket; - // Fall through to retry operation. - } -#endif // defined(EPROTO) - else - return invalid_socket; - - // Wait for socket to become ready. - if (socket_ops::poll_read(s, 0, -1, ec) < 0) - return invalid_socket; - } -} - -#if defined(ASIO_HAS_IOCP) - -void complete_iocp_accept(socket_type s, - void* output_buffer, DWORD address_length, - socket_addr_type* addr, std::size_t* addrlen, - socket_type new_socket, asio::error_code& ec) -{ - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_NETNAME_DELETED) - ec = asio::error::connection_aborted; - - if (!ec) - { - // Get the address of the peer. - if (addr && addrlen) - { - LPSOCKADDR local_addr = 0; - int local_addr_length = 0; - LPSOCKADDR remote_addr = 0; - int remote_addr_length = 0; - GetAcceptExSockaddrs(output_buffer, 0, address_length, - address_length, &local_addr, &local_addr_length, - &remote_addr, &remote_addr_length); - if (static_cast(remote_addr_length) > *addrlen) - { - ec = asio::error::invalid_argument; - } - else - { - using namespace std; // For memcpy. - memcpy(addr, remote_addr, remote_addr_length); - *addrlen = static_cast(remote_addr_length); - } - } - - // Need to set the SO_UPDATE_ACCEPT_CONTEXT option so that getsockname - // and getpeername will work on the accepted socket. - SOCKET update_ctx_param = s; - socket_ops::state_type state = 0; - socket_ops::setsockopt(new_socket, state, - SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, - &update_ctx_param, sizeof(SOCKET), ec); - } -} - -#else // defined(ASIO_HAS_IOCP) - -bool non_blocking_accept(socket_type s, - state_type state, socket_addr_type* addr, std::size_t* addrlen, - asio::error_code& ec, socket_type& new_socket) -{ - for (;;) - { - // Accept the waiting connection. - new_socket = socket_ops::accept(s, addr, addrlen, ec); - - // Check if operation succeeded. - if (new_socket != invalid_socket) - return true; - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Operation failed. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - { - // Fall through to retry operation. - } - else if (ec == asio::error::connection_aborted) - { - if (state & enable_connection_aborted) - return true; - // Fall through to retry operation. - } -#if defined(EPROTO) - else if (ec.value() == EPROTO) - { - if (state & enable_connection_aborted) - return true; - // Fall through to retry operation. - } -#endif // defined(EPROTO) - else - return true; - - return false; - } -} - -#endif // defined(ASIO_HAS_IOCP) - -template -inline int call_bind(SockLenType msghdr::*, - socket_type s, const socket_addr_type* addr, std::size_t addrlen) -{ - return ::bind(s, addr, (SockLenType)addrlen); -} - -int bind(socket_type s, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - clear_last_error(); - int result = error_wrapper(call_bind( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (result == 0) - ec = asio::error_code(); - return result; -} - -int close(socket_type s, state_type& state, - bool destruction, asio::error_code& ec) -{ - int result = 0; - if (s != invalid_socket) - { - // We don't want the destructor to block, so set the socket to linger in - // the background. If the user doesn't like this behaviour then they need - // to explicitly close the socket. - if (destruction && (state & user_set_linger)) - { - ::linger opt; - opt.l_onoff = 0; - opt.l_linger = 0; - asio::error_code ignored_ec; - socket_ops::setsockopt(s, state, SOL_SOCKET, - SO_LINGER, &opt, sizeof(opt), ignored_ec); - } - - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - result = error_wrapper(::closesocket(s), ec); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - result = error_wrapper(::close(s), ec); -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - - if (result != 0 - && (ec == asio::error::would_block - || ec == asio::error::try_again)) - { - // According to UNIX Network Programming Vol. 1, it is possible for - // close() to fail with EWOULDBLOCK under certain circumstances. What - // isn't clear is the state of the descriptor after this error. The one - // current OS where this behaviour is seen, Windows, says that the socket - // remains open. Therefore we'll put the descriptor back into blocking - // mode and have another attempt at closing it. -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ioctl_arg_type arg = 0; - ::ioctlsocket(s, FIONBIO, &arg); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if defined(__SYMBIAN32__) - int flags = ::fcntl(s, F_GETFL, 0); - if (flags >= 0) - ::fcntl(s, F_SETFL, flags & ~O_NONBLOCK); -# else // defined(__SYMBIAN32__) - ioctl_arg_type arg = 0; - ::ioctl(s, FIONBIO, &arg); -# endif // defined(__SYMBIAN32__) -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - state &= ~non_blocking; - - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - result = error_wrapper(::closesocket(s), ec); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - result = error_wrapper(::close(s), ec); -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - } - } - - if (result == 0) - ec = asio::error_code(); - return result; -} - -bool set_user_non_blocking(socket_type s, - state_type& state, bool value, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return false; - } - - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ioctl_arg_type arg = (value ? 1 : 0); - int result = error_wrapper(::ioctlsocket(s, FIONBIO, &arg), ec); -#elif defined(__SYMBIAN32__) - int result = error_wrapper(::fcntl(s, F_GETFL, 0), ec); - if (result >= 0) - { - clear_last_error(); - int flag = (value ? (result | O_NONBLOCK) : (result & ~O_NONBLOCK)); - result = error_wrapper(::fcntl(s, F_SETFL, flag), ec); - } -#else - ioctl_arg_type arg = (value ? 1 : 0); - int result = error_wrapper(::ioctl(s, FIONBIO, &arg), ec); -#endif - - if (result >= 0) - { - ec = asio::error_code(); - if (value) - state |= user_set_non_blocking; - else - { - // Clearing the user-set non-blocking mode always overrides any - // internally-set non-blocking flag. Any subsequent asynchronous - // operations will need to re-enable non-blocking I/O. - state &= ~(user_set_non_blocking | internal_non_blocking); - } - return true; - } - - return false; -} - -bool set_internal_non_blocking(socket_type s, - state_type& state, bool value, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return false; - } - - if (!value && (state & user_set_non_blocking)) - { - // It does not make sense to clear the internal non-blocking flag if the - // user still wants non-blocking behaviour. Return an error and let the - // caller figure out whether to update the user-set non-blocking flag. - ec = asio::error::invalid_argument; - return false; - } - - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ioctl_arg_type arg = (value ? 1 : 0); - int result = error_wrapper(::ioctlsocket(s, FIONBIO, &arg), ec); -#elif defined(__SYMBIAN32__) - int result = error_wrapper(::fcntl(s, F_GETFL, 0), ec); - if (result >= 0) - { - clear_last_error(); - int flag = (value ? (result | O_NONBLOCK) : (result & ~O_NONBLOCK)); - result = error_wrapper(::fcntl(s, F_SETFL, flag), ec); - } -#else - ioctl_arg_type arg = (value ? 1 : 0); - int result = error_wrapper(::ioctl(s, FIONBIO, &arg), ec); -#endif - - if (result >= 0) - { - ec = asio::error_code(); - if (value) - state |= internal_non_blocking; - else - state &= ~internal_non_blocking; - return true; - } - - return false; -} - -int shutdown(socket_type s, int what, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - clear_last_error(); - int result = error_wrapper(::shutdown(s, what), ec); - if (result == 0) - ec = asio::error_code(); - return result; -} - -template -inline int call_connect(SockLenType msghdr::*, - socket_type s, const socket_addr_type* addr, std::size_t addrlen) -{ - return ::connect(s, addr, (SockLenType)addrlen); -} - -int connect(socket_type s, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - clear_last_error(); - int result = error_wrapper(call_connect( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (result == 0) - ec = asio::error_code(); -#if defined(__linux__) - else if (ec == asio::error::try_again) - ec = asio::error::no_buffer_space; -#endif // defined(__linux__) - return result; -} - -void sync_connect(socket_type s, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec) -{ - // Perform the connect operation. - socket_ops::connect(s, addr, addrlen, ec); - if (ec != asio::error::in_progress - && ec != asio::error::would_block) - { - // The connect operation finished immediately. - return; - } - - // Wait for socket to become ready. - if (socket_ops::poll_connect(s, -1, ec) < 0) - return; - - // Get the error code from the connect operation. - int connect_error = 0; - size_t connect_error_len = sizeof(connect_error); - if (socket_ops::getsockopt(s, 0, SOL_SOCKET, SO_ERROR, - &connect_error, &connect_error_len, ec) == socket_error_retval) - return; - - // Return the result of the connect operation. - ec = asio::error_code(connect_error, - asio::error::get_system_category()); -} - -#if defined(ASIO_HAS_IOCP) - -void complete_iocp_connect(socket_type s, asio::error_code& ec) -{ - // Map non-portable errors to their portable counterparts. - switch (ec.value()) - { - case ERROR_CONNECTION_REFUSED: - ec = asio::error::connection_refused; - break; - case ERROR_NETWORK_UNREACHABLE: - ec = asio::error::network_unreachable; - break; - case ERROR_HOST_UNREACHABLE: - ec = asio::error::host_unreachable; - break; - case ERROR_SEM_TIMEOUT: - ec = asio::error::timed_out; - break; - default: - break; - } - - if (!ec) - { - // Need to set the SO_UPDATE_CONNECT_CONTEXT option so that getsockname - // and getpeername will work on the connected socket. - socket_ops::state_type state = 0; - const int so_update_connect_context = 0x7010; - socket_ops::setsockopt(s, state, SOL_SOCKET, - so_update_connect_context, 0, 0, ec); - } -} - -#endif // defined(ASIO_HAS_IOCP) - -bool non_blocking_connect(socket_type s, asio::error_code& ec) -{ - // Check if the connect operation has finished. This is required since we may - // get spurious readiness notifications from the reactor. -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - fd_set write_fds; - FD_ZERO(&write_fds); - FD_SET(s, &write_fds); - fd_set except_fds; - FD_ZERO(&except_fds); - FD_SET(s, &except_fds); - timeval zero_timeout; - zero_timeout.tv_sec = 0; - zero_timeout.tv_usec = 0; - int ready = ::select(s + 1, 0, &write_fds, &except_fds, &zero_timeout); -#else // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - pollfd fds; - fds.fd = s; - fds.events = POLLOUT; - fds.revents = 0; - int ready = ::poll(&fds, 1, 0); -#endif // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - if (ready == 0) - { - // The asynchronous connect operation is still in progress. - return false; - } - - // Get the error code from the connect operation. - int connect_error = 0; - size_t connect_error_len = sizeof(connect_error); - if (socket_ops::getsockopt(s, 0, SOL_SOCKET, SO_ERROR, - &connect_error, &connect_error_len, ec) == 0) - { - if (connect_error) - { - ec = asio::error_code(connect_error, - asio::error::get_system_category()); - } - else - ec = asio::error_code(); - } - - return true; -} - -int socketpair(int af, int type, int protocol, - socket_type sv[2], asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - (void)(af); - (void)(type); - (void)(protocol); - (void)(sv); - ec = asio::error::operation_not_supported; - return socket_error_retval; -#else - clear_last_error(); - int result = error_wrapper(::socketpair(af, type, protocol, sv), ec); - if (result == 0) - ec = asio::error_code(); - return result; -#endif -} - -bool sockatmark(socket_type s, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return false; - } - -#if defined(SIOCATMARK) - ioctl_arg_type value = 0; -# if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::ioctlsocket(s, SIOCATMARK, &value), ec); -# else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::ioctl(s, SIOCATMARK, &value), ec); -# endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - if (result == 0) - ec = asio::error_code(); -# if defined(ENOTTY) - if (ec.value() == ENOTTY) - ec = asio::error::not_socket; -# endif // defined(ENOTTY) -#else // defined(SIOCATMARK) - int value = error_wrapper(::sockatmark(s), ec); - if (value != -1) - ec = asio::error_code(); -#endif // defined(SIOCATMARK) - - return ec ? false : value != 0; -} - -size_t available(socket_type s, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return 0; - } - - ioctl_arg_type value = 0; -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::ioctlsocket(s, FIONREAD, &value), ec); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::ioctl(s, FIONREAD, &value), ec); -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - if (result == 0) - ec = asio::error_code(); -#if defined(ENOTTY) - if (ec.value() == ENOTTY) - ec = asio::error::not_socket; -#endif // defined(ENOTTY) - - return ec ? static_cast(0) : static_cast(value); -} - -int listen(socket_type s, int backlog, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - clear_last_error(); - int result = error_wrapper(::listen(s, backlog), ec); - if (result == 0) - ec = asio::error_code(); - return result; -} - -inline void init_buf_iov_base(void*& base, void* addr) -{ - base = addr; -} - -template -inline void init_buf_iov_base(T& base, void* addr) -{ - base = static_cast(addr); -} - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -typedef WSABUF buf; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -typedef iovec buf; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -void init_buf(buf& b, void* data, size_t size) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - b.buf = static_cast(data); - b.len = static_cast(size); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - init_buf_iov_base(b.iov_base, data); - b.iov_len = size; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -void init_buf(buf& b, const void* data, size_t size) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - b.buf = static_cast(const_cast(data)); - b.len = static_cast(size); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - init_buf_iov_base(b.iov_base, const_cast(data)); - b.iov_len = size; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -inline void init_msghdr_msg_name(void*& name, socket_addr_type* addr) -{ - name = addr; -} - -inline void init_msghdr_msg_name(void*& name, const socket_addr_type* addr) -{ - name = const_cast(addr); -} - -template -inline void init_msghdr_msg_name(T& name, socket_addr_type* addr) -{ - name = reinterpret_cast(addr); -} - -template -inline void init_msghdr_msg_name(T& name, const socket_addr_type* addr) -{ - name = reinterpret_cast(const_cast(addr)); -} - -signed_size_type recv(socket_type s, buf* bufs, size_t count, - int flags, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - // Receive some data. - DWORD recv_buf_count = static_cast(count); - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int result = error_wrapper(::WSARecv(s, bufs, - recv_buf_count, &bytes_transferred, &recv_flags, 0, 0), ec); - if (ec.value() == ERROR_NETNAME_DELETED) - ec = asio::error::connection_reset; - else if (ec.value() == ERROR_PORT_UNREACHABLE) - ec = asio::error::connection_refused; - else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA) - ec.assign(0, ec.category()); - if (result != 0) - return socket_error_retval; - ec = asio::error_code(); - return bytes_transferred; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - msghdr msg = msghdr(); - msg.msg_iov = bufs; - msg.msg_iovlen = static_cast(count); - signed_size_type result = error_wrapper(::recvmsg(s, &msg, flags), ec); - if (result >= 0) - ec = asio::error_code(); - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -size_t sync_recv(socket_type s, state_type state, buf* bufs, - size_t count, int flags, bool all_empty, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // A request to read 0 bytes on a stream is a no-op. - if (all_empty && (state & stream_oriented)) - { - ec = asio::error_code(); - return 0; - } - - // Read some data. - for (;;) - { - // Try to complete the operation without blocking. - signed_size_type bytes = socket_ops::recv(s, bufs, count, flags, ec); - - // Check if operation succeeded. - if (bytes > 0) - return bytes; - - // Check for EOF. - if ((state & stream_oriented) && bytes == 0) - { - ec = asio::error::eof; - return 0; - } - - // Operation failed. - if ((state & user_set_non_blocking) - || (ec != asio::error::would_block - && ec != asio::error::try_again)) - return 0; - - // Wait for socket to become ready. - if (socket_ops::poll_read(s, 0, -1, ec) < 0) - return 0; - } -} - -#if defined(ASIO_HAS_IOCP) - -void complete_iocp_recv(state_type state, - const weak_cancel_token_type& cancel_token, bool all_empty, - asio::error_code& ec, size_t bytes_transferred) -{ - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_NETNAME_DELETED) - { - if (cancel_token.expired()) - ec = asio::error::operation_aborted; - else - ec = asio::error::connection_reset; - } - else if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = asio::error::connection_refused; - } - else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA) - { - ec.assign(0, ec.category()); - } - - // Check for connection closed. - else if (!ec && bytes_transferred == 0 - && (state & stream_oriented) != 0 - && !all_empty) - { - ec = asio::error::eof; - } -} - -#else // defined(ASIO_HAS_IOCP) - -bool non_blocking_recv(socket_type s, - buf* bufs, size_t count, int flags, bool is_stream, - asio::error_code& ec, size_t& bytes_transferred) -{ - for (;;) - { - // Read some data. - signed_size_type bytes = socket_ops::recv(s, bufs, count, flags, ec); - - // Check for end of stream. - if (is_stream && bytes == 0) - { - ec = asio::error::eof; - return true; - } - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Check if we need to run the operation again. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - return false; - - // Operation is complete. - if (bytes >= 0) - { - ec = asio::error_code(); - bytes_transferred = bytes; - } - else - bytes_transferred = 0; - - return true; - } -} - -#endif // defined(ASIO_HAS_IOCP) - -signed_size_type recvfrom(socket_type s, buf* bufs, size_t count, - int flags, socket_addr_type* addr, std::size_t* addrlen, - asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - // Receive some data. - DWORD recv_buf_count = static_cast(count); - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int tmp_addrlen = (int)*addrlen; - int result = error_wrapper(::WSARecvFrom(s, bufs, recv_buf_count, - &bytes_transferred, &recv_flags, addr, &tmp_addrlen, 0, 0), ec); - *addrlen = (std::size_t)tmp_addrlen; - if (ec.value() == ERROR_NETNAME_DELETED) - ec = asio::error::connection_reset; - else if (ec.value() == ERROR_PORT_UNREACHABLE) - ec = asio::error::connection_refused; - else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA) - ec.assign(0, ec.category()); - if (result != 0) - return socket_error_retval; - ec = asio::error_code(); - return bytes_transferred; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - msghdr msg = msghdr(); - init_msghdr_msg_name(msg.msg_name, addr); - msg.msg_namelen = static_cast(*addrlen); - msg.msg_iov = bufs; - msg.msg_iovlen = static_cast(count); - signed_size_type result = error_wrapper(::recvmsg(s, &msg, flags), ec); - *addrlen = msg.msg_namelen; - if (result >= 0) - ec = asio::error_code(); - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -size_t sync_recvfrom(socket_type s, state_type state, buf* bufs, - size_t count, int flags, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // Read some data. - for (;;) - { - // Try to complete the operation without blocking. - signed_size_type bytes = socket_ops::recvfrom( - s, bufs, count, flags, addr, addrlen, ec); - - // Check if operation succeeded. - if (bytes >= 0) - return bytes; - - // Operation failed. - if ((state & user_set_non_blocking) - || (ec != asio::error::would_block - && ec != asio::error::try_again)) - return 0; - - // Wait for socket to become ready. - if (socket_ops::poll_read(s, 0, -1, ec) < 0) - return 0; - } -} - -#if defined(ASIO_HAS_IOCP) - -void complete_iocp_recvfrom( - const weak_cancel_token_type& cancel_token, - asio::error_code& ec) -{ - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_NETNAME_DELETED) - { - if (cancel_token.expired()) - ec = asio::error::operation_aborted; - else - ec = asio::error::connection_reset; - } - else if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = asio::error::connection_refused; - } - else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA) - { - ec.assign(0, ec.category()); - } -} - -#else // defined(ASIO_HAS_IOCP) - -bool non_blocking_recvfrom(socket_type s, - buf* bufs, size_t count, int flags, - socket_addr_type* addr, std::size_t* addrlen, - asio::error_code& ec, size_t& bytes_transferred) -{ - for (;;) - { - // Read some data. - signed_size_type bytes = socket_ops::recvfrom( - s, bufs, count, flags, addr, addrlen, ec); - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Check if we need to run the operation again. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - return false; - - // Operation is complete. - if (bytes >= 0) - { - ec = asio::error_code(); - bytes_transferred = bytes; - } - else - bytes_transferred = 0; - - return true; - } -} - -#endif // defined(ASIO_HAS_IOCP) - -signed_size_type recvmsg(socket_type s, buf* bufs, size_t count, - int in_flags, int& out_flags, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - out_flags = 0; - return socket_ops::recv(s, bufs, count, in_flags, ec); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - msghdr msg = msghdr(); - msg.msg_iov = bufs; - msg.msg_iovlen = static_cast(count); - signed_size_type result = error_wrapper(::recvmsg(s, &msg, in_flags), ec); - if (result >= 0) - { - ec = asio::error_code(); - out_flags = msg.msg_flags; - } - else - out_flags = 0; - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -size_t sync_recvmsg(socket_type s, state_type state, - buf* bufs, size_t count, int in_flags, int& out_flags, - asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // Read some data. - for (;;) - { - // Try to complete the operation without blocking. - signed_size_type bytes = socket_ops::recvmsg( - s, bufs, count, in_flags, out_flags, ec); - - // Check if operation succeeded. - if (bytes >= 0) - return bytes; - - // Operation failed. - if ((state & user_set_non_blocking) - || (ec != asio::error::would_block - && ec != asio::error::try_again)) - return 0; - - // Wait for socket to become ready. - if (socket_ops::poll_read(s, 0, -1, ec) < 0) - return 0; - } -} - -#if defined(ASIO_HAS_IOCP) - -void complete_iocp_recvmsg( - const weak_cancel_token_type& cancel_token, - asio::error_code& ec) -{ - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_NETNAME_DELETED) - { - if (cancel_token.expired()) - ec = asio::error::operation_aborted; - else - ec = asio::error::connection_reset; - } - else if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = asio::error::connection_refused; - } - else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA) - { - ec.assign(0, ec.category()); - } -} - -#else // defined(ASIO_HAS_IOCP) - -bool non_blocking_recvmsg(socket_type s, - buf* bufs, size_t count, int in_flags, int& out_flags, - asio::error_code& ec, size_t& bytes_transferred) -{ - for (;;) - { - // Read some data. - signed_size_type bytes = socket_ops::recvmsg( - s, bufs, count, in_flags, out_flags, ec); - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Check if we need to run the operation again. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - return false; - - // Operation is complete. - if (bytes >= 0) - { - ec = asio::error_code(); - bytes_transferred = bytes; - } - else - bytes_transferred = 0; - - return true; - } -} - -#endif // defined(ASIO_HAS_IOCP) - -signed_size_type send(socket_type s, const buf* bufs, size_t count, - int flags, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - // Send the data. - DWORD send_buf_count = static_cast(count); - DWORD bytes_transferred = 0; - DWORD send_flags = flags; - int result = error_wrapper(::WSASend(s, const_cast(bufs), - send_buf_count, &bytes_transferred, send_flags, 0, 0), ec); - if (ec.value() == ERROR_NETNAME_DELETED) - ec = asio::error::connection_reset; - else if (ec.value() == ERROR_PORT_UNREACHABLE) - ec = asio::error::connection_refused; - if (result != 0) - return socket_error_retval; - ec = asio::error_code(); - return bytes_transferred; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - msghdr msg = msghdr(); - msg.msg_iov = const_cast(bufs); - msg.msg_iovlen = static_cast(count); -#if defined(__linux__) - flags |= MSG_NOSIGNAL; -#endif // defined(__linux__) - signed_size_type result = error_wrapper(::sendmsg(s, &msg, flags), ec); - if (result >= 0) - ec = asio::error_code(); - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -size_t sync_send(socket_type s, state_type state, const buf* bufs, - size_t count, int flags, bool all_empty, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // A request to write 0 bytes to a stream is a no-op. - if (all_empty && (state & stream_oriented)) - { - ec = asio::error_code(); - return 0; - } - - // Read some data. - for (;;) - { - // Try to complete the operation without blocking. - signed_size_type bytes = socket_ops::send(s, bufs, count, flags, ec); - - // Check if operation succeeded. - if (bytes >= 0) - return bytes; - - // Operation failed. - if ((state & user_set_non_blocking) - || (ec != asio::error::would_block - && ec != asio::error::try_again)) - return 0; - - // Wait for socket to become ready. - if (socket_ops::poll_write(s, 0, -1, ec) < 0) - return 0; - } -} - -#if defined(ASIO_HAS_IOCP) - -void complete_iocp_send( - const weak_cancel_token_type& cancel_token, - asio::error_code& ec) -{ - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_NETNAME_DELETED) - { - if (cancel_token.expired()) - ec = asio::error::operation_aborted; - else - ec = asio::error::connection_reset; - } - else if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = asio::error::connection_refused; - } -} - -#else // defined(ASIO_HAS_IOCP) - -bool non_blocking_send(socket_type s, - const buf* bufs, size_t count, int flags, - asio::error_code& ec, size_t& bytes_transferred) -{ - for (;;) - { - // Write some data. - signed_size_type bytes = socket_ops::send(s, bufs, count, flags, ec); - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Check if we need to run the operation again. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - return false; - - // Operation is complete. - if (bytes >= 0) - { - ec = asio::error_code(); - bytes_transferred = bytes; - } - else - bytes_transferred = 0; - - return true; - } -} - -#endif // defined(ASIO_HAS_IOCP) - -signed_size_type sendto(socket_type s, const buf* bufs, size_t count, - int flags, const socket_addr_type* addr, std::size_t addrlen, - asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - // Send the data. - DWORD send_buf_count = static_cast(count); - DWORD bytes_transferred = 0; - int result = error_wrapper(::WSASendTo(s, const_cast(bufs), - send_buf_count, &bytes_transferred, flags, addr, - static_cast(addrlen), 0, 0), ec); - if (ec.value() == ERROR_NETNAME_DELETED) - ec = asio::error::connection_reset; - else if (ec.value() == ERROR_PORT_UNREACHABLE) - ec = asio::error::connection_refused; - if (result != 0) - return socket_error_retval; - ec = asio::error_code(); - return bytes_transferred; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - msghdr msg = msghdr(); - init_msghdr_msg_name(msg.msg_name, addr); - msg.msg_namelen = static_cast(addrlen); - msg.msg_iov = const_cast(bufs); - msg.msg_iovlen = static_cast(count); -#if defined(__linux__) - flags |= MSG_NOSIGNAL; -#endif // defined(__linux__) - signed_size_type result = error_wrapper(::sendmsg(s, &msg, flags), ec); - if (result >= 0) - ec = asio::error_code(); - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -size_t sync_sendto(socket_type s, state_type state, const buf* bufs, - size_t count, int flags, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // Write some data. - for (;;) - { - // Try to complete the operation without blocking. - signed_size_type bytes = socket_ops::sendto( - s, bufs, count, flags, addr, addrlen, ec); - - // Check if operation succeeded. - if (bytes >= 0) - return bytes; - - // Operation failed. - if ((state & user_set_non_blocking) - || (ec != asio::error::would_block - && ec != asio::error::try_again)) - return 0; - - // Wait for socket to become ready. - if (socket_ops::poll_write(s, 0, -1, ec) < 0) - return 0; - } -} - -#if !defined(ASIO_HAS_IOCP) - -bool non_blocking_sendto(socket_type s, - const buf* bufs, size_t count, int flags, - const socket_addr_type* addr, std::size_t addrlen, - asio::error_code& ec, size_t& bytes_transferred) -{ - for (;;) - { - // Write some data. - signed_size_type bytes = socket_ops::sendto( - s, bufs, count, flags, addr, addrlen, ec); - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Check if we need to run the operation again. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - return false; - - // Operation is complete. - if (bytes >= 0) - { - ec = asio::error_code(); - bytes_transferred = bytes; - } - else - bytes_transferred = 0; - - return true; - } -} - -#endif // !defined(ASIO_HAS_IOCP) - -socket_type socket(int af, int type, int protocol, - asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - socket_type s = error_wrapper(::WSASocketW(af, type, protocol, 0, 0, - WSA_FLAG_OVERLAPPED), ec); - if (s == invalid_socket) - return s; - - if (af == ASIO_OS_DEF(AF_INET6)) - { - // Try to enable the POSIX default behaviour of having IPV6_V6ONLY set to - // false. This will only succeed on Windows Vista and later versions of - // Windows, where a dual-stack IPv4/v6 implementation is available. - DWORD optval = 0; - ::setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, - reinterpret_cast(&optval), sizeof(optval)); - } - - ec = asio::error_code(); - - return s; -#elif defined(__MACH__) && defined(__APPLE__) || defined(__FreeBSD__) - socket_type s = error_wrapper(::socket(af, type, protocol), ec); - if (s == invalid_socket) - return s; - - int optval = 1; - int result = error_wrapper(::setsockopt(s, - SOL_SOCKET, SO_NOSIGPIPE, &optval, sizeof(optval)), ec); - if (result != 0) - { - ::close(s); - return invalid_socket; - } - - return s; -#else - int s = error_wrapper(::socket(af, type, protocol), ec); - if (s >= 0) - ec = asio::error_code(); - return s; -#endif -} - -template -inline int call_setsockopt(SockLenType msghdr::*, - socket_type s, int level, int optname, - const void* optval, std::size_t optlen) -{ - return ::setsockopt(s, level, optname, - (const char*)optval, (SockLenType)optlen); -} - -int setsockopt(socket_type s, state_type& state, int level, int optname, - const void* optval, std::size_t optlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - if (level == custom_socket_option_level && optname == always_fail_option) - { - ec = asio::error::invalid_argument; - return socket_error_retval; - } - - if (level == custom_socket_option_level - && optname == enable_connection_aborted_option) - { - if (optlen != sizeof(int)) - { - ec = asio::error::invalid_argument; - return socket_error_retval; - } - - if (*static_cast(optval)) - state |= enable_connection_aborted; - else - state &= ~enable_connection_aborted; - ec = asio::error_code(); - return 0; - } - - if (level == SOL_SOCKET && optname == SO_LINGER) - state |= user_set_linger; - -#if defined(__BORLANDC__) - // Mysteriously, using the getsockopt and setsockopt functions directly with - // Borland C++ results in incorrect values being set and read. The bug can be - // worked around by using function addresses resolved with GetProcAddress. - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - typedef int (WSAAPI *sso_t)(SOCKET, int, int, const char*, int); - if (sso_t sso = (sso_t)::GetProcAddress(winsock_module, "setsockopt")) - { - clear_last_error(); - return error_wrapper(sso(s, level, optname, - reinterpret_cast(optval), - static_cast(optlen)), ec); - } - } - ec = asio::error::fault; - return socket_error_retval; -#else // defined(__BORLANDC__) - clear_last_error(); - int result = error_wrapper(call_setsockopt(&msghdr::msg_namelen, - s, level, optname, optval, optlen), ec); - if (result == 0) - { - ec = asio::error_code(); - -#if defined(__MACH__) && defined(__APPLE__) \ - || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) - // To implement portable behaviour for SO_REUSEADDR with UDP sockets we - // need to also set SO_REUSEPORT on BSD-based platforms. - if ((state & datagram_oriented) - && level == SOL_SOCKET && optname == SO_REUSEADDR) - { - call_setsockopt(&msghdr::msg_namelen, s, - SOL_SOCKET, SO_REUSEPORT, optval, optlen); - } -#endif - } - - return result; -#endif // defined(__BORLANDC__) -} - -template -inline int call_getsockopt(SockLenType msghdr::*, - socket_type s, int level, int optname, - void* optval, std::size_t* optlen) -{ - SockLenType tmp_optlen = (SockLenType)*optlen; - int result = ::getsockopt(s, level, optname, (char*)optval, &tmp_optlen); - *optlen = (std::size_t)tmp_optlen; - return result; -} - -int getsockopt(socket_type s, state_type state, int level, int optname, - void* optval, size_t* optlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - if (level == custom_socket_option_level && optname == always_fail_option) - { - ec = asio::error::invalid_argument; - return socket_error_retval; - } - - if (level == custom_socket_option_level - && optname == enable_connection_aborted_option) - { - if (*optlen != sizeof(int)) - { - ec = asio::error::invalid_argument; - return socket_error_retval; - } - - *static_cast(optval) = (state & enable_connection_aborted) ? 1 : 0; - ec = asio::error_code(); - return 0; - } - -#if defined(__BORLANDC__) - // Mysteriously, using the getsockopt and setsockopt functions directly with - // Borland C++ results in incorrect values being set and read. The bug can be - // worked around by using function addresses resolved with GetProcAddress. - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - typedef int (WSAAPI *gso_t)(SOCKET, int, int, char*, int*); - if (gso_t gso = (gso_t)::GetProcAddress(winsock_module, "getsockopt")) - { - clear_last_error(); - int tmp_optlen = static_cast(*optlen); - int result = error_wrapper(gso(s, level, optname, - reinterpret_cast(optval), &tmp_optlen), ec); - *optlen = static_cast(tmp_optlen); - if (result != 0 && level == IPPROTO_IPV6 && optname == IPV6_V6ONLY - && ec.value() == WSAENOPROTOOPT && *optlen == sizeof(DWORD)) - { - // Dual-stack IPv4/v6 sockets, and the IPV6_V6ONLY socket option, are - // only supported on Windows Vista and later. To simplify program logic - // we will fake success of getting this option and specify that the - // value is non-zero (i.e. true). This corresponds to the behavior of - // IPv6 sockets on Windows platforms pre-Vista. - *static_cast(optval) = 1; - ec = asio::error_code(); - } - return result; - } - } - ec = asio::error::fault; - return socket_error_retval; -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) - clear_last_error(); - int result = error_wrapper(call_getsockopt(&msghdr::msg_namelen, - s, level, optname, optval, optlen), ec); - if (result != 0 && level == IPPROTO_IPV6 && optname == IPV6_V6ONLY - && ec.value() == WSAENOPROTOOPT && *optlen == sizeof(DWORD)) - { - // Dual-stack IPv4/v6 sockets, and the IPV6_V6ONLY socket option, are only - // supported on Windows Vista and later. To simplify program logic we will - // fake success of getting this option and specify that the value is - // non-zero (i.e. true). This corresponds to the behavior of IPv6 sockets - // on Windows platforms pre-Vista. - *static_cast(optval) = 1; - ec = asio::error_code(); - } - if (result == 0) - ec = asio::error_code(); - return result; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - clear_last_error(); - int result = error_wrapper(call_getsockopt(&msghdr::msg_namelen, - s, level, optname, optval, optlen), ec); -#if defined(__linux__) - if (result == 0 && level == SOL_SOCKET && *optlen == sizeof(int) - && (optname == SO_SNDBUF || optname == SO_RCVBUF)) - { - // On Linux, setting SO_SNDBUF or SO_RCVBUF to N actually causes the kernel - // to set the buffer size to N*2. Linux puts additional stuff into the - // buffers so that only about half is actually available to the application. - // The retrieved value is divided by 2 here to make it appear as though the - // correct value has been set. - *static_cast(optval) /= 2; - } -#endif // defined(__linux__) - if (result == 0) - ec = asio::error_code(); - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -template -inline int call_getpeername(SockLenType msghdr::*, - socket_type s, socket_addr_type* addr, std::size_t* addrlen) -{ - SockLenType tmp_addrlen = (SockLenType)*addrlen; - int result = ::getpeername(s, addr, &tmp_addrlen); - *addrlen = (std::size_t)tmp_addrlen; - return result; -} - -int getpeername(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, bool cached, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - -#if defined(ASIO_WINDOWS) && !defined(ASIO_WINDOWS_APP) \ - || defined(__CYGWIN__) - if (cached) - { - // Check if socket is still connected. - DWORD connect_time = 0; - size_t connect_time_len = sizeof(connect_time); - if (socket_ops::getsockopt(s, 0, SOL_SOCKET, SO_CONNECT_TIME, - &connect_time, &connect_time_len, ec) == socket_error_retval) - { - return socket_error_retval; - } - if (connect_time == 0xFFFFFFFF) - { - ec = asio::error::not_connected; - return socket_error_retval; - } - - // The cached value is still valid. - ec = asio::error_code(); - return 0; - } -#else // defined(ASIO_WINDOWS) && !defined(ASIO_WINDOWS_APP) - // || defined(__CYGWIN__) - (void)cached; -#endif // defined(ASIO_WINDOWS) && !defined(ASIO_WINDOWS_APP) - // || defined(__CYGWIN__) - - clear_last_error(); - int result = error_wrapper(call_getpeername( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (result == 0) - ec = asio::error_code(); - return result; -} - -template -inline int call_getsockname(SockLenType msghdr::*, - socket_type s, socket_addr_type* addr, std::size_t* addrlen) -{ - SockLenType tmp_addrlen = (SockLenType)*addrlen; - int result = ::getsockname(s, addr, &tmp_addrlen); - *addrlen = (std::size_t)tmp_addrlen; - return result; -} - -int getsockname(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - clear_last_error(); - int result = error_wrapper(call_getsockname( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (result == 0) - ec = asio::error_code(); - return result; -} - -int ioctl(socket_type s, state_type& state, int cmd, - ioctl_arg_type* arg, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::ioctlsocket(s, cmd, arg), ec); -#elif defined(__MACH__) && defined(__APPLE__) \ - || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) - int result = error_wrapper(::ioctl(s, - static_cast(cmd), arg), ec); -#else - int result = error_wrapper(::ioctl(s, cmd, arg), ec); -#endif - if (result >= 0) - { - ec = asio::error_code(); - - // When updating the non-blocking mode we always perform the ioctl syscall, - // even if the flags would otherwise indicate that the socket is already in - // the correct state. This ensures that the underlying socket is put into - // the state that has been requested by the user. If the ioctl syscall was - // successful then we need to update the flags to match. - if (cmd == static_cast(FIONBIO)) - { - if (*arg) - { - state |= user_set_non_blocking; - } - else - { - // Clearing the non-blocking mode always overrides any internally-set - // non-blocking flag. Any subsequent asynchronous operations will need - // to re-enable non-blocking I/O. - state &= ~(user_set_non_blocking | internal_non_blocking); - } - } - } - - return result; -} - -int select(int nfds, fd_set* readfds, fd_set* writefds, - fd_set* exceptfds, timeval* timeout, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - if (!readfds && !writefds && !exceptfds && timeout) - { - DWORD milliseconds = timeout->tv_sec * 1000 + timeout->tv_usec / 1000; - if (milliseconds == 0) - milliseconds = 1; // Force context switch. - ::Sleep(milliseconds); - ec = asio::error_code(); - return 0; - } - - // The select() call allows timeout values measured in microseconds, but the - // system clock (as wrapped by boost::posix_time::microsec_clock) typically - // has a resolution of 10 milliseconds. This can lead to a spinning select - // reactor, meaning increased CPU usage, when waiting for the earliest - // scheduled timeout if it's less than 10 milliseconds away. To avoid a tight - // spin we'll use a minimum timeout of 1 millisecond. - if (timeout && timeout->tv_sec == 0 - && timeout->tv_usec > 0 && timeout->tv_usec < 1000) - timeout->tv_usec = 1000; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#if defined(__hpux) && defined(__SELECT) - timespec ts; - ts.tv_sec = timeout ? timeout->tv_sec : 0; - ts.tv_nsec = timeout ? timeout->tv_usec * 1000 : 0; - return error_wrapper(::pselect(nfds, readfds, - writefds, exceptfds, timeout ? &ts : 0, 0), ec); -#else - int result = error_wrapper(::select(nfds, readfds, - writefds, exceptfds, timeout), ec); - if (result >= 0) - ec = asio::error_code(); - return result; -#endif -} - -int poll_read(socket_type s, state_type state, - int msec, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - fd_set fds; - FD_ZERO(&fds); - FD_SET(s, &fds); - timeval timeout_obj; - timeval* timeout; - if (state & user_set_non_blocking) - { - timeout_obj.tv_sec = 0; - timeout_obj.tv_usec = 0; - timeout = &timeout_obj; - } - else if (msec >= 0) - { - timeout_obj.tv_sec = msec / 1000; - timeout_obj.tv_usec = (msec % 1000) * 1000; - timeout = &timeout_obj; - } - else - timeout = 0; - clear_last_error(); - int result = error_wrapper(::select(s + 1, &fds, 0, 0, timeout), ec); -#else // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - pollfd fds; - fds.fd = s; - fds.events = POLLIN; - fds.revents = 0; - int timeout = (state & user_set_non_blocking) ? 0 : msec; - clear_last_error(); - int result = error_wrapper(::poll(&fds, 1, timeout), ec); -#endif // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - if (result == 0) - ec = (state & user_set_non_blocking) - ? asio::error::would_block : asio::error_code(); - else if (result > 0) - ec = asio::error_code(); - return result; -} - -int poll_write(socket_type s, state_type state, - int msec, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - fd_set fds; - FD_ZERO(&fds); - FD_SET(s, &fds); - timeval timeout_obj; - timeval* timeout; - if (state & user_set_non_blocking) - { - timeout_obj.tv_sec = 0; - timeout_obj.tv_usec = 0; - timeout = &timeout_obj; - } - else if (msec >= 0) - { - timeout_obj.tv_sec = msec / 1000; - timeout_obj.tv_usec = (msec % 1000) * 1000; - timeout = &timeout_obj; - } - else - timeout = 0; - clear_last_error(); - int result = error_wrapper(::select(s + 1, 0, &fds, 0, timeout), ec); -#else // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - pollfd fds; - fds.fd = s; - fds.events = POLLOUT; - fds.revents = 0; - int timeout = (state & user_set_non_blocking) ? 0 : msec; - clear_last_error(); - int result = error_wrapper(::poll(&fds, 1, timeout), ec); -#endif // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - if (result == 0) - ec = (state & user_set_non_blocking) - ? asio::error::would_block : asio::error_code(); - else if (result > 0) - ec = asio::error_code(); - return result; -} - -int poll_error(socket_type s, state_type state, - int msec, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - fd_set fds; - FD_ZERO(&fds); - FD_SET(s, &fds); - timeval timeout_obj; - timeval* timeout; - if (state & user_set_non_blocking) - { - timeout_obj.tv_sec = 0; - timeout_obj.tv_usec = 0; - timeout = &timeout_obj; - } - else if (msec >= 0) - { - timeout_obj.tv_sec = msec / 1000; - timeout_obj.tv_usec = (msec % 1000) * 1000; - timeout = &timeout_obj; - } - else - timeout = 0; - clear_last_error(); - int result = error_wrapper(::select(s + 1, 0, 0, &fds, timeout), ec); -#else // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - pollfd fds; - fds.fd = s; - fds.events = POLLPRI | POLLERR | POLLHUP; - fds.revents = 0; - int timeout = (state & user_set_non_blocking) ? 0 : msec; - clear_last_error(); - int result = error_wrapper(::poll(&fds, 1, timeout), ec); -#endif // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - if (result == 0) - ec = (state & user_set_non_blocking) - ? asio::error::would_block : asio::error_code(); - else if (result > 0) - ec = asio::error_code(); - return result; -} - -int poll_connect(socket_type s, int msec, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - fd_set write_fds; - FD_ZERO(&write_fds); - FD_SET(s, &write_fds); - fd_set except_fds; - FD_ZERO(&except_fds); - FD_SET(s, &except_fds); - timeval timeout_obj; - timeval* timeout; - if (msec >= 0) - { - timeout_obj.tv_sec = msec / 1000; - timeout_obj.tv_usec = (msec % 1000) * 1000; - timeout = &timeout_obj; - } - else - timeout = 0; - clear_last_error(); - int result = error_wrapper(::select( - s + 1, 0, &write_fds, &except_fds, timeout), ec); - if (result >= 0) - ec = asio::error_code(); - return result; -#else // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - pollfd fds; - fds.fd = s; - fds.events = POLLOUT; - fds.revents = 0; - clear_last_error(); - int result = error_wrapper(::poll(&fds, 1, msec), ec); - if (result >= 0) - ec = asio::error_code(); - return result; -#endif // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) -} - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -const char* inet_ntop(int af, const void* src, char* dest, size_t length, - unsigned long scope_id, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS_RUNTIME) - using namespace std; // For sprintf. - const unsigned char* bytes = static_cast(src); - if (af == ASIO_OS_DEF(AF_INET)) - { - sprintf_s(dest, length, "%u.%u.%u.%u", - bytes[0], bytes[1], bytes[2], bytes[3]); - return dest; - } - else if (af == ASIO_OS_DEF(AF_INET6)) - { - size_t n = 0, b = 0, z = 0; - while (n < length && b < 16) - { - if (bytes[b] == 0 && bytes[b + 1] == 0 && z == 0) - { - do b += 2; while (b < 16 && bytes[b] == 0 && bytes[b + 1] == 0); - n += sprintf_s(dest + n, length - n, ":%s", b < 16 ? "" : ":"), ++z; - } - else - { - n += sprintf_s(dest + n, length - n, "%s%x", b ? ":" : "", - (static_cast(bytes[b]) << 8) | bytes[b + 1]); - b += 2; - } - } - if (scope_id) - n += sprintf_s(dest + n, length - n, "%%%lu", scope_id); - return dest; - } - else - { - ec = asio::error::address_family_not_supported; - return 0; - } -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) - using namespace std; // For memcpy. - - if (af != ASIO_OS_DEF(AF_INET) && af != ASIO_OS_DEF(AF_INET6)) - { - ec = asio::error::address_family_not_supported; - return 0; - } - - union - { - socket_addr_type base; - sockaddr_storage_type storage; - sockaddr_in4_type v4; - sockaddr_in6_type v6; - } address; - DWORD address_length; - if (af == ASIO_OS_DEF(AF_INET)) - { - address_length = sizeof(sockaddr_in4_type); - address.v4.sin_family = ASIO_OS_DEF(AF_INET); - address.v4.sin_port = 0; - memcpy(&address.v4.sin_addr, src, sizeof(in4_addr_type)); - } - else // AF_INET6 - { - address_length = sizeof(sockaddr_in6_type); - address.v6.sin6_family = ASIO_OS_DEF(AF_INET6); - address.v6.sin6_port = 0; - address.v6.sin6_flowinfo = 0; - address.v6.sin6_scope_id = scope_id; - memcpy(&address.v6.sin6_addr, src, sizeof(in6_addr_type)); - } - - DWORD string_length = static_cast(length); -#if defined(BOOST_NO_ANSI_APIS) || (defined(_MSC_VER) && (_MSC_VER >= 1800)) - LPWSTR string_buffer = (LPWSTR)_alloca(length * sizeof(WCHAR)); - int result = error_wrapper(::WSAAddressToStringW(&address.base, - address_length, 0, string_buffer, &string_length), ec); - ::WideCharToMultiByte(CP_ACP, 0, string_buffer, -1, - dest, static_cast(length), 0, 0); -#else - int result = error_wrapper(::WSAAddressToStringA( - &address.base, address_length, 0, dest, &string_length), ec); -#endif - - // Windows may set error code on success. - if (result != socket_error_retval) - ec = asio::error_code(); - - // Windows may not set an error code on failure. - else if (result == socket_error_retval && !ec) - ec = asio::error::invalid_argument; - - return result == socket_error_retval ? 0 : dest; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - const char* result = error_wrapper(::inet_ntop( - af, src, dest, static_cast(length)), ec); - if (result == 0 && !ec) - ec = asio::error::invalid_argument; - if (result != 0 && af == ASIO_OS_DEF(AF_INET6) && scope_id != 0) - { - using namespace std; // For strcat and sprintf. - char if_name[(IF_NAMESIZE > 21 ? IF_NAMESIZE : 21) + 1] = "%"; - const in6_addr_type* ipv6_address = static_cast(src); - bool is_link_local = ((ipv6_address->s6_addr[0] == 0xfe) - && ((ipv6_address->s6_addr[1] & 0xc0) == 0x80)); - bool is_multicast_link_local = ((ipv6_address->s6_addr[0] == 0xff) - && ((ipv6_address->s6_addr[1] & 0x0f) == 0x02)); - if ((!is_link_local && !is_multicast_link_local) - || if_indextoname(static_cast(scope_id), if_name + 1) == 0) - sprintf(if_name + 1, "%lu", scope_id); - strcat(dest, if_name); - } - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -int inet_pton(int af, const char* src, void* dest, - unsigned long* scope_id, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS_RUNTIME) - using namespace std; // For sscanf. - unsigned char* bytes = static_cast(dest); - if (af == ASIO_OS_DEF(AF_INET)) - { - unsigned int b0, b1, b2, b3; - if (sscanf_s(src, "%u.%u.%u.%u", &b0, &b1, &b2, &b3) != 4) - { - ec = asio::error::invalid_argument; - return -1; - } - if (b0 > 255 || b1 > 255 || b2 > 255 || b3 > 255) - { - ec = asio::error::invalid_argument; - return -1; - } - bytes[0] = static_cast(b0); - bytes[1] = static_cast(b1); - bytes[2] = static_cast(b2); - bytes[3] = static_cast(b3); - ec = asio::error_code(); - return 1; - } - else if (af == ASIO_OS_DEF(AF_INET6)) - { - unsigned char* bytes = static_cast(dest); - std::memset(bytes, 0, 16); - unsigned char back_bytes[16] = { 0 }; - int num_front_bytes = 0, num_back_bytes = 0; - const char* p = src; - - enum { fword, fcolon, bword, scope, done } state = fword; - unsigned long current_word = 0; - while (state != done) - { - if (current_word > 0xFFFF) - { - ec = asio::error::invalid_argument; - return -1; - } - - switch (state) - { - case fword: - if (*p >= '0' && *p <= '9') - current_word = current_word * 16 + *p++ - '0'; - else if (*p >= 'a' && *p <= 'f') - current_word = current_word * 16 + *p++ - 'a' + 10; - else if (*p >= 'A' && *p <= 'F') - current_word = current_word * 16 + *p++ - 'A' + 10; - else - { - if (num_front_bytes == 16) - { - ec = asio::error::invalid_argument; - return -1; - } - - bytes[num_front_bytes++] = (current_word >> 8) & 0xFF; - bytes[num_front_bytes++] = current_word & 0xFF; - current_word = 0; - - if (*p == ':') - state = fcolon, ++p; - else if (*p == '%') - state = scope, ++p; - else if (*p == 0) - state = done; - else - { - ec = asio::error::invalid_argument; - return -1; - } - } - break; - - case fcolon: - if (*p == ':') - state = bword, ++p; - else - state = fword; - break; - - case bword: - if (*p >= '0' && *p <= '9') - current_word = current_word * 16 + *p++ - '0'; - else if (*p >= 'a' && *p <= 'f') - current_word = current_word * 16 + *p++ - 'a' + 10; - else if (*p >= 'A' && *p <= 'F') - current_word = current_word * 16 + *p++ - 'A' + 10; - else - { - if (num_front_bytes + num_back_bytes == 16) - { - ec = asio::error::invalid_argument; - return -1; - } - - back_bytes[num_back_bytes++] = (current_word >> 8) & 0xFF; - back_bytes[num_back_bytes++] = current_word & 0xFF; - current_word = 0; - - if (*p == ':') - state = bword, ++p; - else if (*p == '%') - state = scope, ++p; - else if (*p == 0) - state = done; - else - { - ec = asio::error::invalid_argument; - return -1; - } - } - break; - - case scope: - if (*p >= '0' && *p <= '9') - current_word = current_word * 10 + *p++ - '0'; - else if (*p == 0) - *scope_id = current_word, state = done; - else - { - ec = asio::error::invalid_argument; - return -1; - } - break; - - default: - break; - } - } - - for (int i = 0; i < num_back_bytes; ++i) - bytes[16 - num_back_bytes + i] = back_bytes[i]; - - ec = asio::error_code(); - return 1; - } - else - { - ec = asio::error::address_family_not_supported; - return -1; - } -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) - using namespace std; // For memcpy and strcmp. - - if (af != ASIO_OS_DEF(AF_INET) && af != ASIO_OS_DEF(AF_INET6)) - { - ec = asio::error::address_family_not_supported; - return -1; - } - - union - { - socket_addr_type base; - sockaddr_storage_type storage; - sockaddr_in4_type v4; - sockaddr_in6_type v6; - } address; - int address_length = sizeof(sockaddr_storage_type); -#if defined(BOOST_NO_ANSI_APIS) || (defined(_MSC_VER) && (_MSC_VER >= 1800)) - int num_wide_chars = static_cast(strlen(src)) + 1; - LPWSTR wide_buffer = (LPWSTR)_alloca(num_wide_chars * sizeof(WCHAR)); - ::MultiByteToWideChar(CP_ACP, 0, src, -1, wide_buffer, num_wide_chars); - int result = error_wrapper(::WSAStringToAddressW( - wide_buffer, af, 0, &address.base, &address_length), ec); -#else - int result = error_wrapper(::WSAStringToAddressA( - const_cast(src), af, 0, &address.base, &address_length), ec); -#endif - - if (af == ASIO_OS_DEF(AF_INET)) - { - if (result != socket_error_retval) - { - memcpy(dest, &address.v4.sin_addr, sizeof(in4_addr_type)); - ec = asio::error_code(); - } - else if (strcmp(src, "255.255.255.255") == 0) - { - static_cast(dest)->s_addr = INADDR_NONE; - ec = asio::error_code(); - } - } - else // AF_INET6 - { - if (result != socket_error_retval) - { - memcpy(dest, &address.v6.sin6_addr, sizeof(in6_addr_type)); - if (scope_id) - *scope_id = address.v6.sin6_scope_id; - ec = asio::error_code(); - } - } - - // Windows may not set an error code on failure. - if (result == socket_error_retval && !ec) - ec = asio::error::invalid_argument; - - if (result != socket_error_retval) - ec = asio::error_code(); - - return result == socket_error_retval ? -1 : 1; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - using namespace std; // For strchr, memcpy and atoi. - - // On some platforms, inet_pton fails if an address string contains a scope - // id. Detect and remove the scope id before passing the string to inet_pton. - const bool is_v6 = (af == ASIO_OS_DEF(AF_INET6)); - const char* if_name = is_v6 ? strchr(src, '%') : 0; - char src_buf[max_addr_v6_str_len + 1]; - const char* src_ptr = src; - if (if_name != 0) - { - if (if_name - src > max_addr_v6_str_len) - { - ec = asio::error::invalid_argument; - return 0; - } - memcpy(src_buf, src, if_name - src); - src_buf[if_name - src] = 0; - src_ptr = src_buf; - } - - int result = error_wrapper(::inet_pton(af, src_ptr, dest), ec); - if (result <= 0 && !ec) - ec = asio::error::invalid_argument; - if (result > 0 && is_v6 && scope_id) - { - using namespace std; // For strchr and atoi. - *scope_id = 0; - if (if_name != 0) - { - in6_addr_type* ipv6_address = static_cast(dest); - bool is_link_local = ((ipv6_address->s6_addr[0] == 0xfe) - && ((ipv6_address->s6_addr[1] & 0xc0) == 0x80)); - bool is_multicast_link_local = ((ipv6_address->s6_addr[0] == 0xff) - && ((ipv6_address->s6_addr[1] & 0x0f) == 0x02)); - if (is_link_local || is_multicast_link_local) - *scope_id = if_nametoindex(if_name + 1); - if (*scope_id == 0) - *scope_id = atoi(if_name + 1); - } - } - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -int gethostname(char* name, int namelen, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS_RUNTIME) - try - { - using namespace Windows::Foundation::Collections; - using namespace Windows::Networking; - using namespace Windows::Networking::Connectivity; - IVectorView^ hostnames = NetworkInformation::GetHostNames(); - for (unsigned i = 0; i < hostnames->Size; ++i) - { - HostName^ hostname = hostnames->GetAt(i); - if (hostname->Type == HostNameType::DomainName) - { - std::wstring_convert> converter; - std::string raw_name = converter.to_bytes(hostname->RawName->Data()); - if (namelen > 0 && raw_name.size() < static_cast(namelen)) - { - strcpy_s(name, namelen, raw_name.c_str()); - return 0; - } - } - } - return -1; - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - return -1; - } -#else // defined(ASIO_WINDOWS_RUNTIME) - int result = error_wrapper(::gethostname(name, namelen), ec); -# if defined(ASIO_WINDOWS) - if (result == 0) - ec = asio::error_code(); -# endif // defined(ASIO_WINDOWS) - return result; -#endif // defined(ASIO_WINDOWS_RUNTIME) -} - -#if !defined(ASIO_WINDOWS_RUNTIME) - -#if !defined(ASIO_HAS_GETADDRINFO) - -// The following functions are only needed for emulation of getaddrinfo and -// getnameinfo. - -inline asio::error_code translate_netdb_error(int error) -{ - switch (error) - { - case 0: - return asio::error_code(); - case HOST_NOT_FOUND: - return asio::error::host_not_found; - case TRY_AGAIN: - return asio::error::host_not_found_try_again; - case NO_RECOVERY: - return asio::error::no_recovery; - case NO_DATA: - return asio::error::no_data; - default: - ASIO_ASSERT(false); - return asio::error::invalid_argument; - } -} - -inline hostent* gethostbyaddr(const char* addr, int length, int af, - hostent* result, char* buffer, int buflength, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - (void)(buffer); - (void)(buflength); - hostent* retval = error_wrapper(::gethostbyaddr(addr, length, af), ec); - if (!retval) - return 0; - ec = asio::error_code(); - *result = *retval; - return retval; -#elif defined(__sun) || defined(__QNX__) - int error = 0; - hostent* retval = error_wrapper(::gethostbyaddr_r(addr, length, af, result, - buffer, buflength, &error), ec); - if (error) - ec = translate_netdb_error(error); - return retval; -#elif defined(__MACH__) && defined(__APPLE__) - (void)(buffer); - (void)(buflength); - int error = 0; - hostent* retval = error_wrapper(::getipnodebyaddr( - addr, length, af, &error), ec); - if (error) - ec = translate_netdb_error(error); - if (!retval) - return 0; - *result = *retval; - return retval; -#else - hostent* retval = 0; - int error = 0; - error_wrapper(::gethostbyaddr_r(addr, length, af, result, buffer, - buflength, &retval, &error), ec); - if (error) - ec = translate_netdb_error(error); - return retval; -#endif -} - -inline hostent* gethostbyname(const char* name, int af, struct hostent* result, - char* buffer, int buflength, int ai_flags, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - (void)(buffer); - (void)(buflength); - (void)(ai_flags); - if (af != ASIO_OS_DEF(AF_INET)) - { - ec = asio::error::address_family_not_supported; - return 0; - } - hostent* retval = error_wrapper(::gethostbyname(name), ec); - if (!retval) - return 0; - ec = asio::error_code(); - *result = *retval; - return result; -#elif defined(__sun) || defined(__QNX__) - (void)(ai_flags); - if (af != ASIO_OS_DEF(AF_INET)) - { - ec = asio::error::address_family_not_supported; - return 0; - } - int error = 0; - hostent* retval = error_wrapper(::gethostbyname_r(name, result, buffer, - buflength, &error), ec); - if (error) - ec = translate_netdb_error(error); - return retval; -#elif defined(__MACH__) && defined(__APPLE__) - (void)(buffer); - (void)(buflength); - int error = 0; - hostent* retval = error_wrapper(::getipnodebyname( - name, af, ai_flags, &error), ec); - if (error) - ec = translate_netdb_error(error); - if (!retval) - return 0; - *result = *retval; - return retval; -#else - (void)(ai_flags); - if (af != ASIO_OS_DEF(AF_INET)) - { - ec = asio::error::address_family_not_supported; - return 0; - } - hostent* retval = 0; - int error = 0; - error_wrapper(::gethostbyname_r(name, result, - buffer, buflength, &retval, &error), ec); - if (error) - ec = translate_netdb_error(error); - return retval; -#endif -} - -inline void freehostent(hostent* h) -{ -#if defined(__MACH__) && defined(__APPLE__) - if (h) - ::freehostent(h); -#else - (void)(h); -#endif -} - -// Emulation of getaddrinfo based on implementation in: -// Stevens, W. R., UNIX Network Programming Vol. 1, 2nd Ed., Prentice-Hall 1998. - -struct gai_search -{ - const char* host; - int family; -}; - -inline int gai_nsearch(const char* host, - const addrinfo_type* hints, gai_search (&search)[2]) -{ - int search_count = 0; - if (host == 0 || host[0] == '\0') - { - if (hints->ai_flags & AI_PASSIVE) - { - // No host and AI_PASSIVE implies wildcard bind. - switch (hints->ai_family) - { - case ASIO_OS_DEF(AF_INET): - search[search_count].host = "0.0.0.0"; - search[search_count].family = ASIO_OS_DEF(AF_INET); - ++search_count; - break; - case ASIO_OS_DEF(AF_INET6): - search[search_count].host = "0::0"; - search[search_count].family = ASIO_OS_DEF(AF_INET6); - ++search_count; - break; - case ASIO_OS_DEF(AF_UNSPEC): - search[search_count].host = "0::0"; - search[search_count].family = ASIO_OS_DEF(AF_INET6); - ++search_count; - search[search_count].host = "0.0.0.0"; - search[search_count].family = ASIO_OS_DEF(AF_INET); - ++search_count; - break; - default: - break; - } - } - else - { - // No host and not AI_PASSIVE means connect to local host. - switch (hints->ai_family) - { - case ASIO_OS_DEF(AF_INET): - search[search_count].host = "localhost"; - search[search_count].family = ASIO_OS_DEF(AF_INET); - ++search_count; - break; - case ASIO_OS_DEF(AF_INET6): - search[search_count].host = "localhost"; - search[search_count].family = ASIO_OS_DEF(AF_INET6); - ++search_count; - break; - case ASIO_OS_DEF(AF_UNSPEC): - search[search_count].host = "localhost"; - search[search_count].family = ASIO_OS_DEF(AF_INET6); - ++search_count; - search[search_count].host = "localhost"; - search[search_count].family = ASIO_OS_DEF(AF_INET); - ++search_count; - break; - default: - break; - } - } - } - else - { - // Host is specified. - switch (hints->ai_family) - { - case ASIO_OS_DEF(AF_INET): - search[search_count].host = host; - search[search_count].family = ASIO_OS_DEF(AF_INET); - ++search_count; - break; - case ASIO_OS_DEF(AF_INET6): - search[search_count].host = host; - search[search_count].family = ASIO_OS_DEF(AF_INET6); - ++search_count; - break; - case ASIO_OS_DEF(AF_UNSPEC): - search[search_count].host = host; - search[search_count].family = ASIO_OS_DEF(AF_INET6); - ++search_count; - search[search_count].host = host; - search[search_count].family = ASIO_OS_DEF(AF_INET); - ++search_count; - break; - default: - break; - } - } - return search_count; -} - -template -inline T* gai_alloc(std::size_t size = sizeof(T)) -{ - using namespace std; - T* p = static_cast(::operator new(size, std::nothrow)); - if (p) - memset(p, 0, size); - return p; -} - -inline void gai_free(void* p) -{ - ::operator delete(p); -} - -inline void gai_strcpy(char* target, const char* source, std::size_t max_size) -{ - using namespace std; -#if defined(ASIO_HAS_SECURE_RTL) - strcpy_s(target, max_size, source); -#else // defined(ASIO_HAS_SECURE_RTL) - *target = 0; - if (max_size > 0) - strncat(target, source, max_size - 1); -#endif // defined(ASIO_HAS_SECURE_RTL) -} - -enum { gai_clone_flag = 1 << 30 }; - -inline int gai_aistruct(addrinfo_type*** next, const addrinfo_type* hints, - const void* addr, int family) -{ - using namespace std; - - addrinfo_type* ai = gai_alloc(); - if (ai == 0) - return EAI_MEMORY; - - ai->ai_next = 0; - **next = ai; - *next = &ai->ai_next; - - ai->ai_canonname = 0; - ai->ai_socktype = hints->ai_socktype; - if (ai->ai_socktype == 0) - ai->ai_flags |= gai_clone_flag; - ai->ai_protocol = hints->ai_protocol; - ai->ai_family = family; - - switch (ai->ai_family) - { - case ASIO_OS_DEF(AF_INET): - { - sockaddr_in4_type* sinptr = gai_alloc(); - if (sinptr == 0) - return EAI_MEMORY; - sinptr->sin_family = ASIO_OS_DEF(AF_INET); - memcpy(&sinptr->sin_addr, addr, sizeof(in4_addr_type)); - ai->ai_addr = reinterpret_cast(sinptr); - ai->ai_addrlen = sizeof(sockaddr_in4_type); - break; - } - case ASIO_OS_DEF(AF_INET6): - { - sockaddr_in6_type* sin6ptr = gai_alloc(); - if (sin6ptr == 0) - return EAI_MEMORY; - sin6ptr->sin6_family = ASIO_OS_DEF(AF_INET6); - memcpy(&sin6ptr->sin6_addr, addr, sizeof(in6_addr_type)); - ai->ai_addr = reinterpret_cast(sin6ptr); - ai->ai_addrlen = sizeof(sockaddr_in6_type); - break; - } - default: - break; - } - - return 0; -} - -inline addrinfo_type* gai_clone(addrinfo_type* ai) -{ - using namespace std; - - addrinfo_type* new_ai = gai_alloc(); - if (new_ai == 0) - return new_ai; - - new_ai->ai_next = ai->ai_next; - ai->ai_next = new_ai; - - new_ai->ai_flags = 0; - new_ai->ai_family = ai->ai_family; - new_ai->ai_socktype = ai->ai_socktype; - new_ai->ai_protocol = ai->ai_protocol; - new_ai->ai_canonname = 0; - new_ai->ai_addrlen = ai->ai_addrlen; - new_ai->ai_addr = gai_alloc(ai->ai_addrlen); - memcpy(new_ai->ai_addr, ai->ai_addr, ai->ai_addrlen); - - return new_ai; -} - -inline int gai_port(addrinfo_type* aihead, int port, int socktype) -{ - int num_found = 0; - - for (addrinfo_type* ai = aihead; ai; ai = ai->ai_next) - { - if (ai->ai_flags & gai_clone_flag) - { - if (ai->ai_socktype != 0) - { - ai = gai_clone(ai); - if (ai == 0) - return -1; - // ai now points to newly cloned entry. - } - } - else if (ai->ai_socktype != socktype) - { - // Ignore if mismatch on socket type. - continue; - } - - ai->ai_socktype = socktype; - - switch (ai->ai_family) - { - case ASIO_OS_DEF(AF_INET): - { - sockaddr_in4_type* sinptr = - reinterpret_cast(ai->ai_addr); - sinptr->sin_port = port; - ++num_found; - break; - } - case ASIO_OS_DEF(AF_INET6): - { - sockaddr_in6_type* sin6ptr = - reinterpret_cast(ai->ai_addr); - sin6ptr->sin6_port = port; - ++num_found; - break; - } - default: - break; - } - } - - return num_found; -} - -inline int gai_serv(addrinfo_type* aihead, - const addrinfo_type* hints, const char* serv) -{ - using namespace std; - - int num_found = 0; - - if ( -#if defined(AI_NUMERICSERV) - (hints->ai_flags & AI_NUMERICSERV) || -#endif - isdigit(static_cast(serv[0]))) - { - int port = htons(atoi(serv)); - if (hints->ai_socktype) - { - // Caller specifies socket type. - int rc = gai_port(aihead, port, hints->ai_socktype); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - } - else - { - // Caller does not specify socket type. - int rc = gai_port(aihead, port, SOCK_STREAM); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - rc = gai_port(aihead, port, SOCK_DGRAM); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - } - } - else - { - // Try service name with TCP first, then UDP. - if (hints->ai_socktype == 0 || hints->ai_socktype == SOCK_STREAM) - { - servent* sptr = getservbyname(serv, "tcp"); - if (sptr != 0) - { - int rc = gai_port(aihead, sptr->s_port, SOCK_STREAM); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - } - } - if (hints->ai_socktype == 0 || hints->ai_socktype == SOCK_DGRAM) - { - servent* sptr = getservbyname(serv, "udp"); - if (sptr != 0) - { - int rc = gai_port(aihead, sptr->s_port, SOCK_DGRAM); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - } - } - } - - if (num_found == 0) - { - if (hints->ai_socktype == 0) - { - // All calls to getservbyname() failed. - return EAI_NONAME; - } - else - { - // Service not supported for socket type. - return EAI_SERVICE; - } - } - - return 0; -} - -inline int gai_echeck(const char* host, const char* service, - int flags, int family, int socktype, int protocol) -{ - (void)(flags); - (void)(protocol); - - // Host or service must be specified. - if (host == 0 || host[0] == '\0') - if (service == 0 || service[0] == '\0') - return EAI_NONAME; - - // Check combination of family and socket type. - switch (family) - { - case ASIO_OS_DEF(AF_UNSPEC): - break; - case ASIO_OS_DEF(AF_INET): - case ASIO_OS_DEF(AF_INET6): - if (service != 0 && service[0] != '\0') - if (socktype != 0 && socktype != SOCK_STREAM && socktype != SOCK_DGRAM) - return EAI_SOCKTYPE; - break; - default: - return EAI_FAMILY; - } - - return 0; -} - -inline void freeaddrinfo_emulation(addrinfo_type* aihead) -{ - addrinfo_type* ai = aihead; - while (ai) - { - gai_free(ai->ai_addr); - gai_free(ai->ai_canonname); - addrinfo_type* ainext = ai->ai_next; - gai_free(ai); - ai = ainext; - } -} - -inline int getaddrinfo_emulation(const char* host, const char* service, - const addrinfo_type* hintsp, addrinfo_type** result) -{ - // Set up linked list of addrinfo structures. - addrinfo_type* aihead = 0; - addrinfo_type** ainext = &aihead; - char* canon = 0; - - // Supply default hints if not specified by caller. - addrinfo_type hints = addrinfo_type(); - hints.ai_family = ASIO_OS_DEF(AF_UNSPEC); - if (hintsp) - hints = *hintsp; - - // If the resolution is not specifically for AF_INET6, remove the AI_V4MAPPED - // and AI_ALL flags. -#if defined(AI_V4MAPPED) - if (hints.ai_family != ASIO_OS_DEF(AF_INET6)) - hints.ai_flags &= ~AI_V4MAPPED; -#endif -#if defined(AI_ALL) - if (hints.ai_family != ASIO_OS_DEF(AF_INET6)) - hints.ai_flags &= ~AI_ALL; -#endif - - // Basic error checking. - int rc = gai_echeck(host, service, hints.ai_flags, hints.ai_family, - hints.ai_socktype, hints.ai_protocol); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - return rc; - } - - gai_search search[2]; - int search_count = gai_nsearch(host, &hints, search); - for (gai_search* sptr = search; sptr < search + search_count; ++sptr) - { - // Check for IPv4 dotted decimal string. - in4_addr_type inaddr; - asio::error_code ec; - if (socket_ops::inet_pton(ASIO_OS_DEF(AF_INET), - sptr->host, &inaddr, 0, ec) == 1) - { - if (hints.ai_family != ASIO_OS_DEF(AF_UNSPEC) - && hints.ai_family != ASIO_OS_DEF(AF_INET)) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - return EAI_FAMILY; - } - if (sptr->family == ASIO_OS_DEF(AF_INET)) - { - rc = gai_aistruct(&ainext, &hints, &inaddr, ASIO_OS_DEF(AF_INET)); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - return rc; - } - } - continue; - } - - // Check for IPv6 hex string. - in6_addr_type in6addr; - if (socket_ops::inet_pton(ASIO_OS_DEF(AF_INET6), - sptr->host, &in6addr, 0, ec) == 1) - { - if (hints.ai_family != ASIO_OS_DEF(AF_UNSPEC) - && hints.ai_family != ASIO_OS_DEF(AF_INET6)) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - return EAI_FAMILY; - } - if (sptr->family == ASIO_OS_DEF(AF_INET6)) - { - rc = gai_aistruct(&ainext, &hints, &in6addr, - ASIO_OS_DEF(AF_INET6)); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - return rc; - } - } - continue; - } - - // Look up hostname. - hostent hent; - char hbuf[8192] = ""; - hostent* hptr = socket_ops::gethostbyname(sptr->host, - sptr->family, &hent, hbuf, sizeof(hbuf), hints.ai_flags, ec); - if (hptr == 0) - { - if (search_count == 2) - { - // Failure is OK if there are multiple searches. - continue; - } - freeaddrinfo_emulation(aihead); - gai_free(canon); - if (ec == asio::error::host_not_found) - return EAI_NONAME; - if (ec == asio::error::host_not_found_try_again) - return EAI_AGAIN; - if (ec == asio::error::no_recovery) - return EAI_FAIL; - if (ec == asio::error::no_data) - return EAI_NONAME; - return EAI_NONAME; - } - - // Check for address family mismatch if one was specified. - if (hints.ai_family != ASIO_OS_DEF(AF_UNSPEC) - && hints.ai_family != hptr->h_addrtype) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - socket_ops::freehostent(hptr); - return EAI_FAMILY; - } - - // Save canonical name first time. - if (host != 0 && host[0] != '\0' && hptr->h_name && hptr->h_name[0] - && (hints.ai_flags & AI_CANONNAME) && canon == 0) - { - std::size_t canon_len = strlen(hptr->h_name) + 1; - canon = gai_alloc(canon_len); - if (canon == 0) - { - freeaddrinfo_emulation(aihead); - socket_ops::freehostent(hptr); - return EAI_MEMORY; - } - gai_strcpy(canon, hptr->h_name, canon_len); - } - - // Create an addrinfo structure for each returned address. - for (char** ap = hptr->h_addr_list; *ap; ++ap) - { - rc = gai_aistruct(&ainext, &hints, *ap, hptr->h_addrtype); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - socket_ops::freehostent(hptr); - return EAI_FAMILY; - } - } - - socket_ops::freehostent(hptr); - } - - // Check if we found anything. - if (aihead == 0) - { - gai_free(canon); - return EAI_NONAME; - } - - // Return canonical name in first entry. - if (host != 0 && host[0] != '\0' && (hints.ai_flags & AI_CANONNAME)) - { - if (canon) - { - aihead->ai_canonname = canon; - canon = 0; - } - else - { - std::size_t canonname_len = strlen(search[0].host) + 1; - aihead->ai_canonname = gai_alloc(canonname_len); - if (aihead->ai_canonname == 0) - { - freeaddrinfo_emulation(aihead); - return EAI_MEMORY; - } - gai_strcpy(aihead->ai_canonname, search[0].host, canonname_len); - } - } - gai_free(canon); - - // Process the service name. - if (service != 0 && service[0] != '\0') - { - rc = gai_serv(aihead, &hints, service); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - return rc; - } - } - - // Return result to caller. - *result = aihead; - return 0; -} - -inline asio::error_code getnameinfo_emulation( - const socket_addr_type* sa, std::size_t salen, char* host, - std::size_t hostlen, char* serv, std::size_t servlen, int flags, - asio::error_code& ec) -{ - using namespace std; - - const char* addr; - size_t addr_len; - unsigned short port; - switch (sa->sa_family) - { - case ASIO_OS_DEF(AF_INET): - if (salen != sizeof(sockaddr_in4_type)) - { - return ec = asio::error::invalid_argument; - } - addr = reinterpret_cast( - &reinterpret_cast(sa)->sin_addr); - addr_len = sizeof(in4_addr_type); - port = reinterpret_cast(sa)->sin_port; - break; - case ASIO_OS_DEF(AF_INET6): - if (salen != sizeof(sockaddr_in6_type)) - { - return ec = asio::error::invalid_argument; - } - addr = reinterpret_cast( - &reinterpret_cast(sa)->sin6_addr); - addr_len = sizeof(in6_addr_type); - port = reinterpret_cast(sa)->sin6_port; - break; - default: - return ec = asio::error::address_family_not_supported; - } - - if (host && hostlen > 0) - { - if (flags & NI_NUMERICHOST) - { - if (socket_ops::inet_ntop(sa->sa_family, addr, host, hostlen, 0, ec) == 0) - { - return ec; - } - } - else - { - hostent hent; - char hbuf[8192] = ""; - hostent* hptr = socket_ops::gethostbyaddr(addr, - static_cast(addr_len), sa->sa_family, - &hent, hbuf, sizeof(hbuf), ec); - if (hptr && hptr->h_name && hptr->h_name[0] != '\0') - { - if (flags & NI_NOFQDN) - { - char* dot = strchr(hptr->h_name, '.'); - if (dot) - { - *dot = 0; - } - } - gai_strcpy(host, hptr->h_name, hostlen); - socket_ops::freehostent(hptr); - } - else - { - socket_ops::freehostent(hptr); - if (flags & NI_NAMEREQD) - { - return ec = asio::error::host_not_found; - } - if (socket_ops::inet_ntop(sa->sa_family, - addr, host, hostlen, 0, ec) == 0) - { - return ec; - } - } - } - } - - if (serv && servlen > 0) - { - if (flags & NI_NUMERICSERV) - { - if (servlen < 6) - { - return ec = asio::error::no_buffer_space; - } -#if defined(ASIO_HAS_SECURE_RTL) - sprintf_s(serv, servlen, "%u", ntohs(port)); -#else // defined(ASIO_HAS_SECURE_RTL) - sprintf(serv, "%u", ntohs(port)); -#endif // defined(ASIO_HAS_SECURE_RTL) - } - else - { -#if defined(ASIO_HAS_PTHREADS) - static ::pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - ::pthread_mutex_lock(&mutex); -#endif // defined(ASIO_HAS_PTHREADS) - servent* sptr = ::getservbyport(port, (flags & NI_DGRAM) ? "udp" : 0); - if (sptr && sptr->s_name && sptr->s_name[0] != '\0') - { - gai_strcpy(serv, sptr->s_name, servlen); - } - else - { - if (servlen < 6) - { - return ec = asio::error::no_buffer_space; - } -#if defined(ASIO_HAS_SECURE_RTL) - sprintf_s(serv, servlen, "%u", ntohs(port)); -#else // defined(ASIO_HAS_SECURE_RTL) - sprintf(serv, "%u", ntohs(port)); -#endif // defined(ASIO_HAS_SECURE_RTL) - } -#if defined(ASIO_HAS_PTHREADS) - ::pthread_mutex_unlock(&mutex); -#endif // defined(ASIO_HAS_PTHREADS) - } - } - - ec = asio::error_code(); - return ec; -} - -#endif // !defined(ASIO_HAS_GETADDRINFO) - -inline asio::error_code translate_addrinfo_error(int error) -{ - switch (error) - { - case 0: - return asio::error_code(); - case EAI_AGAIN: - return asio::error::host_not_found_try_again; - case EAI_BADFLAGS: - return asio::error::invalid_argument; - case EAI_FAIL: - return asio::error::no_recovery; - case EAI_FAMILY: - return asio::error::address_family_not_supported; - case EAI_MEMORY: - return asio::error::no_memory; - case EAI_NONAME: -#if defined(EAI_ADDRFAMILY) - case EAI_ADDRFAMILY: -#endif -#if defined(EAI_NODATA) && (EAI_NODATA != EAI_NONAME) - case EAI_NODATA: -#endif - return asio::error::host_not_found; - case EAI_SERVICE: - return asio::error::service_not_found; - case EAI_SOCKTYPE: - return asio::error::socket_type_not_supported; - default: // Possibly the non-portable EAI_SYSTEM. -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - return asio::error_code( - WSAGetLastError(), asio::error::get_system_category()); -#else - return asio::error_code( - errno, asio::error::get_system_category()); -#endif - } -} - -asio::error_code getaddrinfo(const char* host, - const char* service, const addrinfo_type& hints, - addrinfo_type** result, asio::error_code& ec) -{ - host = (host && *host) ? host : 0; - service = (service && *service) ? service : 0; - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if defined(ASIO_HAS_GETADDRINFO) - // Building for Windows XP, Windows Server 2003, or later. - int error = ::getaddrinfo(host, service, &hints, result); - return ec = translate_addrinfo_error(error); -# else - // Building for Windows 2000 or earlier. - typedef int (WSAAPI *gai_t)(const char*, - const char*, const addrinfo_type*, addrinfo_type**); - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - if (gai_t gai = (gai_t)::GetProcAddress(winsock_module, "getaddrinfo")) - { - int error = gai(host, service, &hints, result); - return ec = translate_addrinfo_error(error); - } - } - int error = getaddrinfo_emulation(host, service, &hints, result); - return ec = translate_addrinfo_error(error); -# endif -#elif !defined(ASIO_HAS_GETADDRINFO) - int error = getaddrinfo_emulation(host, service, &hints, result); - return ec = translate_addrinfo_error(error); -#else - int error = ::getaddrinfo(host, service, &hints, result); -#if defined(__MACH__) && defined(__APPLE__) - using namespace std; // For isdigit and atoi. - if (error == 0 && service && isdigit(static_cast(service[0]))) - { - u_short_type port = host_to_network_short(atoi(service)); - for (addrinfo_type* ai = *result; ai; ai = ai->ai_next) - { - switch (ai->ai_family) - { - case ASIO_OS_DEF(AF_INET): - { - sockaddr_in4_type* sinptr = - reinterpret_cast(ai->ai_addr); - if (sinptr->sin_port == 0) - sinptr->sin_port = port; - break; - } - case ASIO_OS_DEF(AF_INET6): - { - sockaddr_in6_type* sin6ptr = - reinterpret_cast(ai->ai_addr); - if (sin6ptr->sin6_port == 0) - sin6ptr->sin6_port = port; - break; - } - default: - break; - } - } - } -#endif - return ec = translate_addrinfo_error(error); -#endif -} - -asio::error_code background_getaddrinfo( - const weak_cancel_token_type& cancel_token, const char* host, - const char* service, const addrinfo_type& hints, - addrinfo_type** result, asio::error_code& ec) -{ - if (cancel_token.expired()) - ec = asio::error::operation_aborted; - else - socket_ops::getaddrinfo(host, service, hints, result, ec); - return ec; -} - -void freeaddrinfo(addrinfo_type* ai) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if defined(ASIO_HAS_GETADDRINFO) - // Building for Windows XP, Windows Server 2003, or later. - ::freeaddrinfo(ai); -# else - // Building for Windows 2000 or earlier. - typedef int (WSAAPI *fai_t)(addrinfo_type*); - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - if (fai_t fai = (fai_t)::GetProcAddress(winsock_module, "freeaddrinfo")) - { - fai(ai); - return; - } - } - freeaddrinfo_emulation(ai); -# endif -#elif !defined(ASIO_HAS_GETADDRINFO) - freeaddrinfo_emulation(ai); -#else - ::freeaddrinfo(ai); -#endif -} - -asio::error_code getnameinfo(const socket_addr_type* addr, - std::size_t addrlen, char* host, std::size_t hostlen, - char* serv, std::size_t servlen, int flags, asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if defined(ASIO_HAS_GETADDRINFO) - // Building for Windows XP, Windows Server 2003, or later. - clear_last_error(); - int error = ::getnameinfo(addr, static_cast(addrlen), - host, static_cast(hostlen), - serv, static_cast(servlen), flags); - return ec = translate_addrinfo_error(error); -# else - // Building for Windows 2000 or earlier. - typedef int (WSAAPI *gni_t)(const socket_addr_type*, - int, char*, DWORD, char*, DWORD, int); - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - if (gni_t gni = (gni_t)::GetProcAddress(winsock_module, "getnameinfo")) - { - clear_last_error(); - int error = gni(addr, static_cast(addrlen), - host, static_cast(hostlen), - serv, static_cast(servlen), flags); - return ec = translate_addrinfo_error(error); - } - } - clear_last_error(); - return getnameinfo_emulation(addr, addrlen, - host, hostlen, serv, servlen, flags, ec); -# endif -#elif !defined(ASIO_HAS_GETADDRINFO) - using namespace std; // For memcpy. - sockaddr_storage_type tmp_addr; - memcpy(&tmp_addr, addr, addrlen); - addr = reinterpret_cast(&tmp_addr); - clear_last_error(); - return getnameinfo_emulation(addr, addrlen, - host, hostlen, serv, servlen, flags, ec); -#else - clear_last_error(); - int error = ::getnameinfo(addr, addrlen, host, hostlen, serv, servlen, flags); - return ec = translate_addrinfo_error(error); -#endif -} - -asio::error_code sync_getnameinfo( - const socket_addr_type* addr, std::size_t addrlen, - char* host, std::size_t hostlen, char* serv, - std::size_t servlen, int sock_type, asio::error_code& ec) -{ - // First try resolving with the service name. If that fails try resolving - // but allow the service to be returned as a number. - int flags = (sock_type == SOCK_DGRAM) ? NI_DGRAM : 0; - socket_ops::getnameinfo(addr, addrlen, host, - hostlen, serv, servlen, flags, ec); - if (ec) - { - socket_ops::getnameinfo(addr, addrlen, host, hostlen, - serv, servlen, flags | NI_NUMERICSERV, ec); - } - - return ec; -} - -asio::error_code background_getnameinfo( - const weak_cancel_token_type& cancel_token, - const socket_addr_type* addr, std::size_t addrlen, - char* host, std::size_t hostlen, char* serv, - std::size_t servlen, int sock_type, asio::error_code& ec) -{ - if (cancel_token.expired()) - { - ec = asio::error::operation_aborted; - } - else - { - // First try resolving with the service name. If that fails try resolving - // but allow the service to be returned as a number. - int flags = (sock_type == SOCK_DGRAM) ? NI_DGRAM : 0; - socket_ops::getnameinfo(addr, addrlen, host, - hostlen, serv, servlen, flags, ec); - if (ec) - { - socket_ops::getnameinfo(addr, addrlen, host, hostlen, - serv, servlen, flags | NI_NUMERICSERV, ec); - } - } - - return ec; -} - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -u_long_type network_to_host_long(u_long_type value) -{ -#if defined(ASIO_WINDOWS_RUNTIME) - unsigned char* value_p = reinterpret_cast(&value); - u_long_type result = (static_cast(value_p[0]) << 24) - | (static_cast(value_p[1]) << 16) - | (static_cast(value_p[2]) << 8) - | static_cast(value_p[3]); - return result; -#else // defined(ASIO_WINDOWS_RUNTIME) - return ntohl(value); -#endif // defined(ASIO_WINDOWS_RUNTIME) -} - -u_long_type host_to_network_long(u_long_type value) -{ -#if defined(ASIO_WINDOWS_RUNTIME) - u_long_type result; - unsigned char* result_p = reinterpret_cast(&result); - result_p[0] = static_cast((value >> 24) & 0xFF); - result_p[1] = static_cast((value >> 16) & 0xFF); - result_p[2] = static_cast((value >> 8) & 0xFF); - result_p[3] = static_cast(value & 0xFF); - return result; -#else // defined(ASIO_WINDOWS_RUNTIME) - return htonl(value); -#endif // defined(ASIO_WINDOWS_RUNTIME) -} - -u_short_type network_to_host_short(u_short_type value) -{ -#if defined(ASIO_WINDOWS_RUNTIME) - unsigned char* value_p = reinterpret_cast(&value); - u_short_type result = (static_cast(value_p[0]) << 8) - | static_cast(value_p[1]); - return result; -#else // defined(ASIO_WINDOWS_RUNTIME) - return ntohs(value); -#endif // defined(ASIO_WINDOWS_RUNTIME) -} - -u_short_type host_to_network_short(u_short_type value) -{ -#if defined(ASIO_WINDOWS_RUNTIME) - u_short_type result; - unsigned char* result_p = reinterpret_cast(&result); - result_p[0] = static_cast((value >> 8) & 0xFF); - result_p[1] = static_cast(value & 0xFF); - return result; -#else // defined(ASIO_WINDOWS_RUNTIME) - return htons(value); -#endif // defined(ASIO_WINDOWS_RUNTIME) -} - -} // namespace socket_ops -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SOCKET_OPS_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/socket_select_interrupter.ipp b/Sources/Vendor/asio/include/asio/detail/impl/socket_select_interrupter.ipp deleted file mode 100644 index 052f2a7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/socket_select_interrupter.ipp +++ /dev/null @@ -1,176 +0,0 @@ -// -// detail/impl/socket_select_interrupter.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_SOCKET_SELECT_INTERRUPTER_IPP -#define ASIO_DETAIL_IMPL_SOCKET_SELECT_INTERRUPTER_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS_RUNTIME) - -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - -#include -#include "asio/detail/socket_holder.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_select_interrupter.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -socket_select_interrupter::socket_select_interrupter() -{ - open_descriptors(); -} - -void socket_select_interrupter::open_descriptors() -{ - asio::error_code ec; - socket_holder acceptor(socket_ops::socket( - AF_INET, SOCK_STREAM, IPPROTO_TCP, ec)); - if (acceptor.get() == invalid_socket) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - int opt = 1; - socket_ops::state_type acceptor_state = 0; - socket_ops::setsockopt(acceptor.get(), acceptor_state, - SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt), ec); - - using namespace std; // For memset. - sockaddr_in4_type addr; - std::size_t addr_len = sizeof(addr); - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - addr.sin_addr.s_addr = socket_ops::host_to_network_long(INADDR_LOOPBACK); - addr.sin_port = 0; - if (socket_ops::bind(acceptor.get(), (const socket_addr_type*)&addr, - addr_len, ec) == socket_error_retval) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - if (socket_ops::getsockname(acceptor.get(), (socket_addr_type*)&addr, - &addr_len, ec) == socket_error_retval) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - // Some broken firewalls on Windows will intermittently cause getsockname to - // return 0.0.0.0 when the socket is actually bound to 127.0.0.1. We - // explicitly specify the target address here to work around this problem. - if (addr.sin_addr.s_addr == socket_ops::host_to_network_long(INADDR_ANY)) - addr.sin_addr.s_addr = socket_ops::host_to_network_long(INADDR_LOOPBACK); - - if (socket_ops::listen(acceptor.get(), - SOMAXCONN, ec) == socket_error_retval) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - socket_holder client(socket_ops::socket( - AF_INET, SOCK_STREAM, IPPROTO_TCP, ec)); - if (client.get() == invalid_socket) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - if (socket_ops::connect(client.get(), (const socket_addr_type*)&addr, - addr_len, ec) == socket_error_retval) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - socket_holder server(socket_ops::accept(acceptor.get(), 0, 0, ec)); - if (server.get() == invalid_socket) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - ioctl_arg_type non_blocking = 1; - socket_ops::state_type client_state = 0; - if (socket_ops::ioctl(client.get(), client_state, - FIONBIO, &non_blocking, ec)) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - opt = 1; - socket_ops::setsockopt(client.get(), client_state, - IPPROTO_TCP, TCP_NODELAY, &opt, sizeof(opt), ec); - - non_blocking = 1; - socket_ops::state_type server_state = 0; - if (socket_ops::ioctl(server.get(), server_state, - FIONBIO, &non_blocking, ec)) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - opt = 1; - socket_ops::setsockopt(server.get(), server_state, - IPPROTO_TCP, TCP_NODELAY, &opt, sizeof(opt), ec); - - read_descriptor_ = server.release(); - write_descriptor_ = client.release(); -} - -socket_select_interrupter::~socket_select_interrupter() -{ - close_descriptors(); -} - -void socket_select_interrupter::close_descriptors() -{ - asio::error_code ec; - socket_ops::state_type state = socket_ops::internal_non_blocking; - if (read_descriptor_ != invalid_socket) - socket_ops::close(read_descriptor_, state, true, ec); - if (write_descriptor_ != invalid_socket) - socket_ops::close(write_descriptor_, state, true, ec); -} - -void socket_select_interrupter::recreate() -{ - close_descriptors(); - - write_descriptor_ = invalid_socket; - read_descriptor_ = invalid_socket; - - open_descriptors(); -} - -void socket_select_interrupter::interrupt() -{ - char byte = 0; - socket_ops::buf b; - socket_ops::init_buf(b, &byte, 1); - asio::error_code ec; - socket_ops::send(write_descriptor_, &b, 1, 0, ec); -} - -bool socket_select_interrupter::reset() -{ - char data[1024]; - socket_ops::buf b; - socket_ops::init_buf(b, data, sizeof(data)); - asio::error_code ec; - int bytes_read = socket_ops::recv(read_descriptor_, &b, 1, 0, ec); - bool was_interrupted = (bytes_read > 0); - while (bytes_read == sizeof(data)) - bytes_read = socket_ops::recv(read_descriptor_, &b, 1, 0, ec); - return was_interrupted; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_IMPL_SOCKET_SELECT_INTERRUPTER_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/strand_executor_service.hpp b/Sources/Vendor/asio/include/asio/detail/impl/strand_executor_service.hpp deleted file mode 100644 index 0e18ca0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/strand_executor_service.hpp +++ /dev/null @@ -1,179 +0,0 @@ -// -// detail/impl/strand_executor_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_STRAND_EXECUTOR_SERVICE_HPP -#define ASIO_DETAIL_IMPL_STRAND_EXECUTOR_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/call_stack.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/recycling_allocator.hpp" -#include "asio/executor_work_guard.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class strand_executor_service::invoker -{ -public: - invoker(const implementation_type& impl, Executor& ex) - : impl_(impl), - work_(ex) - { - } - - invoker(const invoker& other) - : impl_(other.impl_), - work_(other.work_) - { - } - -#if defined(ASIO_HAS_MOVE) - invoker(invoker&& other) - : impl_(ASIO_MOVE_CAST(implementation_type)(other.impl_)), - work_(ASIO_MOVE_CAST(executor_work_guard)(other.work_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - struct on_invoker_exit - { - invoker* this_; - - ~on_invoker_exit() - { - this_->impl_->mutex_->lock(); - this_->impl_->ready_queue_.push(this_->impl_->waiting_queue_); - bool more_handlers = this_->impl_->locked_ = - !this_->impl_->ready_queue_.empty(); - this_->impl_->mutex_->unlock(); - - if (more_handlers) - { - Executor ex(this_->work_.get_executor()); - recycling_allocator allocator; - ex.post(ASIO_MOVE_CAST(invoker)(*this_), allocator); - } - } - }; - - void operator()() - { - // Indicate that this strand is executing on the current thread. - call_stack::context ctx(impl_.get()); - - // Ensure the next handler, if any, is scheduled on block exit. - on_invoker_exit on_exit = { this }; - (void)on_exit; - - // Run all ready handlers. No lock is required since the ready queue is - // accessed only within the strand. - asio::error_code ec; - while (scheduler_operation* o = impl_->ready_queue_.front()) - { - impl_->ready_queue_.pop(); - o->complete(impl_.get(), ec, 0); - } - } - -private: - implementation_type impl_; - executor_work_guard work_; -}; - -template -void strand_executor_service::dispatch(const implementation_type& impl, - Executor& ex, ASIO_MOVE_ARG(Function) function, const Allocator& a) -{ - typedef typename decay::type function_type; - - // If we are already in the strand then the function can run immediately. - if (call_stack::contains(impl.get())) - { - // Make a local, non-const copy of the function. - function_type tmp(ASIO_MOVE_CAST(Function)(function)); - - fenced_block b(fenced_block::full); - asio_handler_invoke_helpers::invoke(tmp, tmp); - return; - } - - // Allocate and construct an operation to wrap the function. - typedef executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(function), a); - - ASIO_HANDLER_CREATION((impl->service_->context(), *p.p, - "strand_executor", impl.get(), 0, "dispatch")); - - // Add the function to the strand and schedule the strand if required. - bool first = enqueue(impl, p.p); - p.v = p.p = 0; - if (first) - ex.dispatch(invoker(impl, ex), a); -} - -// Request invocation of the given function and return immediately. -template -void strand_executor_service::post(const implementation_type& impl, - Executor& ex, ASIO_MOVE_ARG(Function) function, const Allocator& a) -{ - typedef typename decay::type function_type; - - // Allocate and construct an operation to wrap the function. - typedef executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(function), a); - - ASIO_HANDLER_CREATION((impl->service_->context(), *p.p, - "strand_executor", impl.get(), 0, "post")); - - // Add the function to the strand and schedule the strand if required. - bool first = enqueue(impl, p.p); - p.v = p.p = 0; - if (first) - ex.post(invoker(impl, ex), a); -} - -// Request invocation of the given function and return immediately. -template -void strand_executor_service::defer(const implementation_type& impl, - Executor& ex, ASIO_MOVE_ARG(Function) function, const Allocator& a) -{ - typedef typename decay::type function_type; - - // Allocate and construct an operation to wrap the function. - typedef executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(function), a); - - ASIO_HANDLER_CREATION((impl->service_->context(), *p.p, - "strand_executor", impl.get(), 0, "defer")); - - // Add the function to the strand and schedule the strand if required. - bool first = enqueue(impl, p.p); - p.v = p.p = 0; - if (first) - ex.defer(invoker(impl, ex), a); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_STRAND_EXECUTOR_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/strand_executor_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/strand_executor_service.ipp deleted file mode 100644 index 365652e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/strand_executor_service.ipp +++ /dev/null @@ -1,134 +0,0 @@ -// -// detail/impl/strand_executor_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_STRAND_EXECUTOR_SERVICE_IPP -#define ASIO_DETAIL_IMPL_STRAND_EXECUTOR_SERVICE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/strand_executor_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -strand_executor_service::strand_executor_service(execution_context& ctx) - : execution_context_service_base(ctx), - mutex_(), - salt_(0), - impl_list_(0) -{ -} - -void strand_executor_service::shutdown() -{ - op_queue ops; - - asio::detail::mutex::scoped_lock lock(mutex_); - - strand_impl* impl = impl_list_; - while (impl) - { - impl->mutex_->lock(); - impl->shutdown_ = true; - ops.push(impl->waiting_queue_); - ops.push(impl->ready_queue_); - impl->mutex_->unlock(); - impl = impl->next_; - } -} - -strand_executor_service::implementation_type -strand_executor_service::create_implementation() -{ - implementation_type new_impl(new strand_impl); - new_impl->locked_ = false; - new_impl->shutdown_ = false; - - asio::detail::mutex::scoped_lock lock(mutex_); - - // Select a mutex from the pool of shared mutexes. - std::size_t salt = salt_++; - std::size_t mutex_index = reinterpret_cast(new_impl.get()); - mutex_index += (reinterpret_cast(new_impl.get()) >> 3); - mutex_index ^= salt + 0x9e3779b9 + (mutex_index << 6) + (mutex_index >> 2); - mutex_index = mutex_index % num_mutexes; - if (!mutexes_[mutex_index].get()) - mutexes_[mutex_index].reset(new mutex); - new_impl->mutex_ = mutexes_[mutex_index].get(); - - // Insert implementation into linked list of all implementations. - new_impl->next_ = impl_list_; - new_impl->prev_ = 0; - if (impl_list_) - impl_list_->prev_ = new_impl.get(); - impl_list_ = new_impl.get(); - new_impl->service_ = this; - - return new_impl; -} - -strand_executor_service::strand_impl::~strand_impl() -{ - asio::detail::mutex::scoped_lock lock(service_->mutex_); - - // Remove implementation from linked list of all implementations. - if (service_->impl_list_ == this) - service_->impl_list_ = next_; - if (prev_) - prev_->next_ = next_; - if (next_) - next_->prev_= prev_; -} - -bool strand_executor_service::enqueue(const implementation_type& impl, - scheduler_operation* op) -{ - impl->mutex_->lock(); - if (impl->shutdown_) - { - impl->mutex_->unlock(); - op->destroy(); - return false; - } - else if (impl->locked_) - { - // Some other function already holds the strand lock. Enqueue for later. - impl->waiting_queue_.push(op); - impl->mutex_->unlock(); - return false; - } - else - { - // The function is acquiring the strand lock and so is responsible for - // scheduling the strand. - impl->locked_ = true; - impl->mutex_->unlock(); - impl->ready_queue_.push(op); - return true; - } -} - -bool strand_executor_service::running_in_this_thread( - const implementation_type& impl) -{ - return !!call_stack::contains(impl.get()); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_STRAND_EXECUTOR_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/strand_service.hpp b/Sources/Vendor/asio/include/asio/detail/impl/strand_service.hpp deleted file mode 100644 index da5b716..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/strand_service.hpp +++ /dev/null @@ -1,118 +0,0 @@ -// -// detail/impl/strand_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_STRAND_SERVICE_HPP -#define ASIO_DETAIL_IMPL_STRAND_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/call_stack.hpp" -#include "asio/detail/completion_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -inline strand_service::strand_impl::strand_impl() - : operation(&strand_service::do_complete), - locked_(false) -{ -} - -struct strand_service::on_dispatch_exit -{ - io_context_impl* io_context_; - strand_impl* impl_; - - ~on_dispatch_exit() - { - impl_->mutex_.lock(); - impl_->ready_queue_.push(impl_->waiting_queue_); - bool more_handlers = impl_->locked_ = !impl_->ready_queue_.empty(); - impl_->mutex_.unlock(); - - if (more_handlers) - io_context_->post_immediate_completion(impl_, false); - } -}; - -template -void strand_service::dispatch(strand_service::implementation_type& impl, - Handler& handler) -{ - // If we are already in the strand then the handler can run immediately. - if (call_stack::contains(impl)) - { - fenced_block b(fenced_block::full); - asio_handler_invoke_helpers::invoke(handler, handler); - return; - } - - // Allocate and construct an operation to wrap the handler. - typedef completion_handler op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((this->context(), - *p.p, "strand", impl, 0, "dispatch")); - - bool dispatch_immediately = do_dispatch(impl, p.p); - operation* o = p.p; - p.v = p.p = 0; - - if (dispatch_immediately) - { - // Indicate that this strand is executing on the current thread. - call_stack::context ctx(impl); - - // Ensure the next handler, if any, is scheduled on block exit. - on_dispatch_exit on_exit = { &io_context_, impl }; - (void)on_exit; - - completion_handler::do_complete( - &io_context_, o, asio::error_code(), 0); - } -} - -// Request the io_context to invoke the given handler and return immediately. -template -void strand_service::post(strand_service::implementation_type& impl, - Handler& handler) -{ - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef completion_handler op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((this->context(), - *p.p, "strand", impl, 0, "post")); - - do_post(impl, p.p, is_continuation); - p.v = p.p = 0; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_STRAND_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/strand_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/strand_service.ipp deleted file mode 100644 index cbaf25b..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/strand_service.ipp +++ /dev/null @@ -1,177 +0,0 @@ -// -// detail/impl/strand_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_STRAND_SERVICE_IPP -#define ASIO_DETAIL_IMPL_STRAND_SERVICE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/call_stack.hpp" -#include "asio/detail/strand_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct strand_service::on_do_complete_exit -{ - io_context_impl* owner_; - strand_impl* impl_; - - ~on_do_complete_exit() - { - impl_->mutex_.lock(); - impl_->ready_queue_.push(impl_->waiting_queue_); - bool more_handlers = impl_->locked_ = !impl_->ready_queue_.empty(); - impl_->mutex_.unlock(); - - if (more_handlers) - owner_->post_immediate_completion(impl_, true); - } -}; - -strand_service::strand_service(asio::io_context& io_context) - : asio::detail::service_base(io_context), - io_context_(asio::use_service(io_context)), - mutex_(), - salt_(0) -{ -} - -void strand_service::shutdown() -{ - op_queue ops; - - asio::detail::mutex::scoped_lock lock(mutex_); - - for (std::size_t i = 0; i < num_implementations; ++i) - { - if (strand_impl* impl = implementations_[i].get()) - { - ops.push(impl->waiting_queue_); - ops.push(impl->ready_queue_); - } - } -} - -void strand_service::construct(strand_service::implementation_type& impl) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - std::size_t salt = salt_++; -#if defined(ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION) - std::size_t index = salt; -#else // defined(ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION) - std::size_t index = reinterpret_cast(&impl); - index += (reinterpret_cast(&impl) >> 3); - index ^= salt + 0x9e3779b9 + (index << 6) + (index >> 2); -#endif // defined(ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION) - index = index % num_implementations; - - if (!implementations_[index].get()) - implementations_[index].reset(new strand_impl); - impl = implementations_[index].get(); -} - -bool strand_service::running_in_this_thread( - const implementation_type& impl) const -{ - return call_stack::contains(impl) != 0; -} - -bool strand_service::do_dispatch(implementation_type& impl, operation* op) -{ - // If we are running inside the io_context, and no other handler already - // holds the strand lock, then the handler can run immediately. - bool can_dispatch = io_context_.can_dispatch(); - impl->mutex_.lock(); - if (can_dispatch && !impl->locked_) - { - // Immediate invocation is allowed. - impl->locked_ = true; - impl->mutex_.unlock(); - return true; - } - - if (impl->locked_) - { - // Some other handler already holds the strand lock. Enqueue for later. - impl->waiting_queue_.push(op); - impl->mutex_.unlock(); - } - else - { - // The handler is acquiring the strand lock and so is responsible for - // scheduling the strand. - impl->locked_ = true; - impl->mutex_.unlock(); - impl->ready_queue_.push(op); - io_context_.post_immediate_completion(impl, false); - } - - return false; -} - -void strand_service::do_post(implementation_type& impl, - operation* op, bool is_continuation) -{ - impl->mutex_.lock(); - if (impl->locked_) - { - // Some other handler already holds the strand lock. Enqueue for later. - impl->waiting_queue_.push(op); - impl->mutex_.unlock(); - } - else - { - // The handler is acquiring the strand lock and so is responsible for - // scheduling the strand. - impl->locked_ = true; - impl->mutex_.unlock(); - impl->ready_queue_.push(op); - io_context_.post_immediate_completion(impl, is_continuation); - } -} - -void strand_service::do_complete(void* owner, operation* base, - const asio::error_code& ec, std::size_t /*bytes_transferred*/) -{ - if (owner) - { - strand_impl* impl = static_cast(base); - - // Indicate that this strand is executing on the current thread. - call_stack::context ctx(impl); - - // Ensure the next handler, if any, is scheduled on block exit. - on_do_complete_exit on_exit; - on_exit.owner_ = static_cast(owner); - on_exit.impl_ = impl; - - // Run all ready handlers. No lock is required since the ready queue is - // accessed only within the strand. - while (operation* o = impl->ready_queue_.front()) - { - impl->ready_queue_.pop(); - o->complete(owner, ec, 0); - } - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_STRAND_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/throw_error.ipp b/Sources/Vendor/asio/include/asio/detail/impl/throw_error.ipp deleted file mode 100644 index a540cd2..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/throw_error.ipp +++ /dev/null @@ -1,60 +0,0 @@ -// -// detail/impl/throw_error.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_THROW_ERROR_IPP -#define ASIO_DETAIL_IMPL_THROW_ERROR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/system_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -void do_throw_error(const asio::error_code& err) -{ - asio::system_error e(err); - asio::detail::throw_exception(e); -} - -void do_throw_error(const asio::error_code& err, const char* location) -{ - // boostify: non-boost code starts here -#if defined(ASIO_MSVC) && defined(ASIO_HAS_STD_SYSTEM_ERROR) - // Microsoft's implementation of std::system_error is non-conformant in that - // it ignores the error code's message when a "what" string is supplied. We'll - // work around this by explicitly formatting the "what" string. - std::string what_msg = location; - what_msg += ": "; - what_msg += err.message(); - asio::system_error e(err, what_msg); - asio::detail::throw_exception(e); -#else // defined(ASIO_MSVC) && defined(ASIO_HAS_STD_SYSTEM_ERROR) - // boostify: non-boost code ends here - asio::system_error e(err, location); - asio::detail::throw_exception(e); - // boostify: non-boost code starts here -#endif // defined(ASIO_MSVC) && defined(ASIO_HAS_STD_SYSTEM_ERROR) - // boostify: non-boost code ends here -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_THROW_ERROR_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/timer_queue_ptime.ipp b/Sources/Vendor/asio/include/asio/detail/impl/timer_queue_ptime.ipp deleted file mode 100644 index 742837f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/timer_queue_ptime.ipp +++ /dev/null @@ -1,91 +0,0 @@ -// -// detail/impl/timer_queue_ptime.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_TIMER_QUEUE_PTIME_IPP -#define ASIO_DETAIL_IMPL_TIMER_QUEUE_PTIME_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_BOOST_DATE_TIME) - -#include "asio/detail/timer_queue_ptime.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -timer_queue >::timer_queue() -{ -} - -timer_queue >::~timer_queue() -{ -} - -bool timer_queue >::enqueue_timer( - const time_type& time, per_timer_data& timer, wait_op* op) -{ - return impl_.enqueue_timer(time, timer, op); -} - -bool timer_queue >::empty() const -{ - return impl_.empty(); -} - -long timer_queue >::wait_duration_msec( - long max_duration) const -{ - return impl_.wait_duration_msec(max_duration); -} - -long timer_queue >::wait_duration_usec( - long max_duration) const -{ - return impl_.wait_duration_usec(max_duration); -} - -void timer_queue >::get_ready_timers( - op_queue& ops) -{ - impl_.get_ready_timers(ops); -} - -void timer_queue >::get_all_timers( - op_queue& ops) -{ - impl_.get_all_timers(ops); -} - -std::size_t timer_queue >::cancel_timer( - per_timer_data& timer, op_queue& ops, std::size_t max_cancelled) -{ - return impl_.cancel_timer(timer, ops, max_cancelled); -} - -void timer_queue >::move_timer( - per_timer_data& target, per_timer_data& source) -{ - impl_.move_timer(target, source); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - -#endif // ASIO_DETAIL_IMPL_TIMER_QUEUE_PTIME_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/timer_queue_set.ipp b/Sources/Vendor/asio/include/asio/detail/impl/timer_queue_set.ipp deleted file mode 100644 index b516548..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/timer_queue_set.ipp +++ /dev/null @@ -1,101 +0,0 @@ -// -// detail/impl/timer_queue_set.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_TIMER_QUEUE_SET_IPP -#define ASIO_DETAIL_IMPL_TIMER_QUEUE_SET_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/timer_queue_set.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -timer_queue_set::timer_queue_set() - : first_(0) -{ -} - -void timer_queue_set::insert(timer_queue_base* q) -{ - q->next_ = first_; - first_ = q; -} - -void timer_queue_set::erase(timer_queue_base* q) -{ - if (first_) - { - if (q == first_) - { - first_ = q->next_; - q->next_ = 0; - return; - } - - for (timer_queue_base* p = first_; p->next_; p = p->next_) - { - if (p->next_ == q) - { - p->next_ = q->next_; - q->next_ = 0; - return; - } - } - } -} - -bool timer_queue_set::all_empty() const -{ - for (timer_queue_base* p = first_; p; p = p->next_) - if (!p->empty()) - return false; - return true; -} - -long timer_queue_set::wait_duration_msec(long max_duration) const -{ - long min_duration = max_duration; - for (timer_queue_base* p = first_; p; p = p->next_) - min_duration = p->wait_duration_msec(min_duration); - return min_duration; -} - -long timer_queue_set::wait_duration_usec(long max_duration) const -{ - long min_duration = max_duration; - for (timer_queue_base* p = first_; p; p = p->next_) - min_duration = p->wait_duration_usec(min_duration); - return min_duration; -} - -void timer_queue_set::get_ready_timers(op_queue& ops) -{ - for (timer_queue_base* p = first_; p; p = p->next_) - p->get_ready_timers(ops); -} - -void timer_queue_set::get_all_timers(op_queue& ops) -{ - for (timer_queue_base* p = first_; p; p = p->next_) - p->get_all_timers(ops); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_TIMER_QUEUE_SET_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_event.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_event.ipp deleted file mode 100644 index 6f74649..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_event.ipp +++ /dev/null @@ -1,76 +0,0 @@ -// -// detail/win_event.ipp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_WIN_EVENT_IPP -#define ASIO_DETAIL_IMPL_WIN_EVENT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) - -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_event.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -win_event::win_event() - : state_(0) -{ -#if defined(ASIO_WINDOWS_APP) - events_[0] = ::CreateEventExW(0, 0, - CREATE_EVENT_MANUAL_RESET, EVENT_ALL_ACCESS); -#else // defined(ASIO_WINDOWS_APP) - events_[0] = ::CreateEventW(0, true, false, 0); -#endif // defined(ASIO_WINDOWS_APP) - if (!events_[0]) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "event"); - } - -#if defined(ASIO_WINDOWS_APP) - events_[1] = ::CreateEventExW(0, 0, 0, EVENT_ALL_ACCESS); -#else // defined(ASIO_WINDOWS_APP) - events_[1] = ::CreateEventW(0, false, false, 0); -#endif // defined(ASIO_WINDOWS_APP) - if (!events_[1]) - { - DWORD last_error = ::GetLastError(); - ::CloseHandle(events_[0]); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "event"); - } -} - -win_event::~win_event() -{ - ::CloseHandle(events_[0]); - ::CloseHandle(events_[1]); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_IMPL_WIN_EVENT_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_handle_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_handle_service.ipp deleted file mode 100644 index 9cba2b0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +++ /dev/null @@ -1,525 +0,0 @@ -// -// detail/impl/win_iocp_handle_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_DETAIL_IMPL_WIN_IOCP_HANDLE_SERVICE_IPP -#define ASIO_DETAIL_IMPL_WIN_IOCP_HANDLE_SERVICE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/detail/win_iocp_handle_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_iocp_handle_service::overlapped_wrapper - : public OVERLAPPED -{ -public: - explicit overlapped_wrapper(asio::error_code& ec) - { - Internal = 0; - InternalHigh = 0; - Offset = 0; - OffsetHigh = 0; - - // Create a non-signalled manual-reset event, for GetOverlappedResult. - hEvent = ::CreateEventW(0, TRUE, FALSE, 0); - if (hEvent) - { - // As documented in GetQueuedCompletionStatus, setting the low order - // bit of this event prevents our synchronous writes from being treated - // as completion port events. - DWORD_PTR tmp = reinterpret_cast(hEvent); - hEvent = reinterpret_cast(tmp | 1); - } - else - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - } - - ~overlapped_wrapper() - { - if (hEvent) - { - ::CloseHandle(hEvent); - } - } -}; - -win_iocp_handle_service::win_iocp_handle_service( - asio::io_context& io_context) - : service_base(io_context), - iocp_service_(asio::use_service(io_context)), - mutex_(), - impl_list_(0) -{ -} - -void win_iocp_handle_service::shutdown() -{ - // Close all implementations, causing all operations to complete. - asio::detail::mutex::scoped_lock lock(mutex_); - implementation_type* impl = impl_list_; - while (impl) - { - close_for_destruction(*impl); - impl = impl->next_; - } -} - -void win_iocp_handle_service::construct( - win_iocp_handle_service::implementation_type& impl) -{ - impl.handle_ = INVALID_HANDLE_VALUE; - impl.safe_cancellation_thread_id_ = 0; - - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; -} - -void win_iocp_handle_service::move_construct( - win_iocp_handle_service::implementation_type& impl, - win_iocp_handle_service::implementation_type& other_impl) -{ - impl.handle_ = other_impl.handle_; - other_impl.handle_ = INVALID_HANDLE_VALUE; - - impl.safe_cancellation_thread_id_ = other_impl.safe_cancellation_thread_id_; - other_impl.safe_cancellation_thread_id_ = 0; - - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; -} - -void win_iocp_handle_service::move_assign( - win_iocp_handle_service::implementation_type& impl, - win_iocp_handle_service& other_service, - win_iocp_handle_service::implementation_type& other_impl) -{ - close_for_destruction(impl); - - if (this != &other_service) - { - // Remove implementation from linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; - } - - impl.handle_ = other_impl.handle_; - other_impl.handle_ = INVALID_HANDLE_VALUE; - - impl.safe_cancellation_thread_id_ = other_impl.safe_cancellation_thread_id_; - other_impl.safe_cancellation_thread_id_ = 0; - - if (this != &other_service) - { - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(other_service.mutex_); - impl.next_ = other_service.impl_list_; - impl.prev_ = 0; - if (other_service.impl_list_) - other_service.impl_list_->prev_ = &impl; - other_service.impl_list_ = &impl; - } -} - -void win_iocp_handle_service::destroy( - win_iocp_handle_service::implementation_type& impl) -{ - close_for_destruction(impl); - - // Remove implementation from linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; -} - -asio::error_code win_iocp_handle_service::assign( - win_iocp_handle_service::implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - if (iocp_service_.register_handle(handle, ec)) - return ec; - - impl.handle_ = handle; - ec = asio::error_code(); - return ec; -} - -asio::error_code win_iocp_handle_service::close( - win_iocp_handle_service::implementation_type& impl, - asio::error_code& ec) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((iocp_service_.context(), "handle", - &impl, reinterpret_cast(impl.handle_), "close")); - - if (!::CloseHandle(impl.handle_)) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - else - { - ec = asio::error_code(); - } - - impl.handle_ = INVALID_HANDLE_VALUE; - impl.safe_cancellation_thread_id_ = 0; - } - else - { - ec = asio::error_code(); - } - - return ec; -} - -asio::error_code win_iocp_handle_service::cancel( - win_iocp_handle_service::implementation_type& impl, - asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return ec; - } - - ASIO_HANDLER_OPERATION((iocp_service_.context(), "handle", - &impl, reinterpret_cast(impl.handle_), "cancel")); - - if (FARPROC cancel_io_ex_ptr = ::GetProcAddress( - ::GetModuleHandleA("KERNEL32"), "CancelIoEx")) - { - // The version of Windows supports cancellation from any thread. - typedef BOOL (WINAPI* cancel_io_ex_t)(HANDLE, LPOVERLAPPED); - cancel_io_ex_t cancel_io_ex = (cancel_io_ex_t)cancel_io_ex_ptr; - if (!cancel_io_ex(impl.handle_, 0)) - { - DWORD last_error = ::GetLastError(); - if (last_error == ERROR_NOT_FOUND) - { - // ERROR_NOT_FOUND means that there were no operations to be - // cancelled. We swallow this error to match the behaviour on other - // platforms. - ec = asio::error_code(); - } - else - { - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - } - else - { - ec = asio::error_code(); - } - } - else if (impl.safe_cancellation_thread_id_ == 0) - { - // No operations have been started, so there's nothing to cancel. - ec = asio::error_code(); - } - else if (impl.safe_cancellation_thread_id_ == ::GetCurrentThreadId()) - { - // Asynchronous operations have been started from the current thread only, - // so it is safe to try to cancel them using CancelIo. - if (!::CancelIo(impl.handle_)) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - else - { - ec = asio::error_code(); - } - } - else - { - // Asynchronous operations have been started from more than one thread, - // so cancellation is not safe. - ec = asio::error::operation_not_supported; - } - - return ec; -} - -size_t win_iocp_handle_service::do_write( - win_iocp_handle_service::implementation_type& impl, uint64_t offset, - const asio::const_buffer& buffer, asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // A request to write 0 bytes on a handle is a no-op. - if (buffer.size() == 0) - { - ec = asio::error_code(); - return 0; - } - - overlapped_wrapper overlapped(ec); - if (ec) - { - return 0; - } - - // Write the data. - overlapped.Offset = offset & 0xFFFFFFFF; - overlapped.OffsetHigh = (offset >> 32) & 0xFFFFFFFF; - BOOL ok = ::WriteFile(impl.handle_, buffer.data(), - static_cast(buffer.size()), 0, &overlapped); - if (!ok) - { - DWORD last_error = ::GetLastError(); - if (last_error != ERROR_IO_PENDING) - { - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return 0; - } - } - - // Wait for the operation to complete. - DWORD bytes_transferred = 0; - ok = ::GetOverlappedResult(impl.handle_, - &overlapped, &bytes_transferred, TRUE); - if (!ok) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return 0; - } - - ec = asio::error_code(); - return bytes_transferred; -} - -void win_iocp_handle_service::start_write_op( - win_iocp_handle_service::implementation_type& impl, uint64_t offset, - const asio::const_buffer& buffer, operation* op) -{ - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - if (!is_open(impl)) - { - iocp_service_.on_completion(op, asio::error::bad_descriptor); - } - else if (buffer.size() == 0) - { - // A request to write 0 bytes on a handle is a no-op. - iocp_service_.on_completion(op); - } - else - { - DWORD bytes_transferred = 0; - op->Offset = offset & 0xFFFFFFFF; - op->OffsetHigh = (offset >> 32) & 0xFFFFFFFF; - BOOL ok = ::WriteFile(impl.handle_, buffer.data(), - static_cast(buffer.size()), - &bytes_transferred, op); - DWORD last_error = ::GetLastError(); - if (!ok && last_error != ERROR_IO_PENDING - && last_error != ERROR_MORE_DATA) - { - iocp_service_.on_completion(op, last_error, bytes_transferred); - } - else - { - iocp_service_.on_pending(op); - } - } -} - -size_t win_iocp_handle_service::do_read( - win_iocp_handle_service::implementation_type& impl, uint64_t offset, - const asio::mutable_buffer& buffer, asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // A request to read 0 bytes on a stream handle is a no-op. - if (buffer.size() == 0) - { - ec = asio::error_code(); - return 0; - } - - overlapped_wrapper overlapped(ec); - if (ec) - { - return 0; - } - - // Read some data. - overlapped.Offset = offset & 0xFFFFFFFF; - overlapped.OffsetHigh = (offset >> 32) & 0xFFFFFFFF; - BOOL ok = ::ReadFile(impl.handle_, buffer.data(), - static_cast(buffer.size()), 0, &overlapped); - if (!ok) - { - DWORD last_error = ::GetLastError(); - if (last_error != ERROR_IO_PENDING && last_error != ERROR_MORE_DATA) - { - if (last_error == ERROR_HANDLE_EOF) - { - ec = asio::error::eof; - } - else - { - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - return 0; - } - } - - // Wait for the operation to complete. - DWORD bytes_transferred = 0; - ok = ::GetOverlappedResult(impl.handle_, - &overlapped, &bytes_transferred, TRUE); - if (!ok) - { - DWORD last_error = ::GetLastError(); - if (last_error == ERROR_HANDLE_EOF) - { - ec = asio::error::eof; - } - else - { - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - return (last_error == ERROR_MORE_DATA) ? bytes_transferred : 0; - } - - ec = asio::error_code(); - return bytes_transferred; -} - -void win_iocp_handle_service::start_read_op( - win_iocp_handle_service::implementation_type& impl, uint64_t offset, - const asio::mutable_buffer& buffer, operation* op) -{ - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - if (!is_open(impl)) - { - iocp_service_.on_completion(op, asio::error::bad_descriptor); - } - else if (buffer.size() == 0) - { - // A request to read 0 bytes on a handle is a no-op. - iocp_service_.on_completion(op); - } - else - { - DWORD bytes_transferred = 0; - op->Offset = offset & 0xFFFFFFFF; - op->OffsetHigh = (offset >> 32) & 0xFFFFFFFF; - BOOL ok = ::ReadFile(impl.handle_, buffer.data(), - static_cast(buffer.size()), - &bytes_transferred, op); - DWORD last_error = ::GetLastError(); - if (!ok && last_error != ERROR_IO_PENDING - && last_error != ERROR_MORE_DATA) - { - iocp_service_.on_completion(op, last_error, bytes_transferred); - } - else - { - iocp_service_.on_pending(op); - } - } -} - -void win_iocp_handle_service::update_cancellation_thread_id( - win_iocp_handle_service::implementation_type& impl) -{ - if (impl.safe_cancellation_thread_id_ == 0) - impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId(); - else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId()) - impl.safe_cancellation_thread_id_ = ~DWORD(0); -} - -void win_iocp_handle_service::close_for_destruction(implementation_type& impl) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((iocp_service_.context(), "handle", - &impl, reinterpret_cast(impl.handle_), "close")); - - ::CloseHandle(impl.handle_); - impl.handle_ = INVALID_HANDLE_VALUE; - impl.safe_cancellation_thread_id_ = 0; - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_IMPL_WIN_IOCP_HANDLE_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_io_context.hpp b/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_io_context.hpp deleted file mode 100644 index 44887d7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_io_context.hpp +++ /dev/null @@ -1,103 +0,0 @@ -// -// detail/impl/win_iocp_io_context.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_WIN_IOCP_IO_CONTEXT_HPP -#define ASIO_DETAIL_IMPL_WIN_IOCP_IO_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/detail/completion_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -void win_iocp_io_context::add_timer_queue( - timer_queue& queue) -{ - do_add_timer_queue(queue); -} - -template -void win_iocp_io_context::remove_timer_queue( - timer_queue& queue) -{ - do_remove_timer_queue(queue); -} - -template -void win_iocp_io_context::schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op) -{ - // If the service has been shut down we silently discard the timer. - if (::InterlockedExchangeAdd(&shutdown_, 0) != 0) - { - post_immediate_completion(op, false); - return; - } - - mutex::scoped_lock lock(dispatch_mutex_); - - bool earliest = queue.enqueue_timer(time, timer, op); - work_started(); - if (earliest) - update_timeout(); -} - -template -std::size_t win_iocp_io_context::cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled) -{ - // If the service has been shut down we silently ignore the cancellation. - if (::InterlockedExchangeAdd(&shutdown_, 0) != 0) - return 0; - - mutex::scoped_lock lock(dispatch_mutex_); - op_queue ops; - std::size_t n = queue.cancel_timer(timer, ops, max_cancelled); - post_deferred_completions(ops); - return n; -} - -template -void win_iocp_io_context::move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& to, - typename timer_queue::per_timer_data& from) -{ - asio::detail::mutex::scoped_lock lock(dispatch_mutex_); - op_queue ops; - queue.cancel_timer(to, ops); - queue.move_timer(to, from); - lock.unlock(); - post_deferred_completions(ops); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_IMPL_WIN_IOCP_IO_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_io_context.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_io_context.ipp deleted file mode 100644 index c371b86..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_io_context.ipp +++ /dev/null @@ -1,554 +0,0 @@ -// -// detail/impl/win_iocp_io_context.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_WIN_IOCP_IO_CONTEXT_IPP -#define ASIO_DETAIL_IMPL_WIN_IOCP_IO_CONTEXT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/error.hpp" -#include "asio/detail/cstdint.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_iocp_io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct win_iocp_io_context::work_finished_on_block_exit -{ - ~work_finished_on_block_exit() - { - io_context_->work_finished(); - } - - win_iocp_io_context* io_context_; -}; - -struct win_iocp_io_context::timer_thread_function -{ - void operator()() - { - while (::InterlockedExchangeAdd(&io_context_->shutdown_, 0) == 0) - { - if (::WaitForSingleObject(io_context_->waitable_timer_.handle, - INFINITE) == WAIT_OBJECT_0) - { - ::InterlockedExchange(&io_context_->dispatch_required_, 1); - ::PostQueuedCompletionStatus(io_context_->iocp_.handle, - 0, wake_for_dispatch, 0); - } - } - } - - win_iocp_io_context* io_context_; -}; - -win_iocp_io_context::win_iocp_io_context( - asio::execution_context& ctx, int concurrency_hint) - : execution_context_service_base(ctx), - iocp_(), - outstanding_work_(0), - stopped_(0), - stop_event_posted_(0), - shutdown_(0), - gqcs_timeout_(get_gqcs_timeout()), - dispatch_required_(0), - concurrency_hint_(concurrency_hint) -{ - ASIO_HANDLER_TRACKING_INIT; - - iocp_.handle = ::CreateIoCompletionPort(INVALID_HANDLE_VALUE, 0, 0, - static_cast(concurrency_hint >= 0 ? concurrency_hint : DWORD(~0))); - if (!iocp_.handle) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "iocp"); - } -} - -void win_iocp_io_context::shutdown() -{ - ::InterlockedExchange(&shutdown_, 1); - - if (timer_thread_.get()) - { - LARGE_INTEGER timeout; - timeout.QuadPart = 1; - ::SetWaitableTimer(waitable_timer_.handle, &timeout, 1, 0, 0, FALSE); - } - - while (::InterlockedExchangeAdd(&outstanding_work_, 0) > 0) - { - op_queue ops; - timer_queues_.get_all_timers(ops); - ops.push(completed_ops_); - if (!ops.empty()) - { - while (win_iocp_operation* op = ops.front()) - { - ops.pop(); - ::InterlockedDecrement(&outstanding_work_); - op->destroy(); - } - } - else - { - DWORD bytes_transferred = 0; - dword_ptr_t completion_key = 0; - LPOVERLAPPED overlapped = 0; - ::GetQueuedCompletionStatus(iocp_.handle, &bytes_transferred, - &completion_key, &overlapped, gqcs_timeout_); - if (overlapped) - { - ::InterlockedDecrement(&outstanding_work_); - static_cast(overlapped)->destroy(); - } - } - } - - if (timer_thread_.get()) - timer_thread_->join(); -} - -asio::error_code win_iocp_io_context::register_handle( - HANDLE handle, asio::error_code& ec) -{ - if (::CreateIoCompletionPort(handle, iocp_.handle, 0, 0) == 0) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - else - { - ec = asio::error_code(); - } - return ec; -} - -size_t win_iocp_io_context::run(asio::error_code& ec) -{ - if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0) - { - stop(); - ec = asio::error_code(); - return 0; - } - - win_iocp_thread_info this_thread; - thread_call_stack::context ctx(this, this_thread); - - size_t n = 0; - while (do_one(INFINITE, ec)) - if (n != (std::numeric_limits::max)()) - ++n; - return n; -} - -size_t win_iocp_io_context::run_one(asio::error_code& ec) -{ - if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0) - { - stop(); - ec = asio::error_code(); - return 0; - } - - win_iocp_thread_info this_thread; - thread_call_stack::context ctx(this, this_thread); - - return do_one(INFINITE, ec); -} - -size_t win_iocp_io_context::wait_one(long usec, asio::error_code& ec) -{ - if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0) - { - stop(); - ec = asio::error_code(); - return 0; - } - - win_iocp_thread_info this_thread; - thread_call_stack::context ctx(this, this_thread); - - return do_one(usec < 0 ? INFINITE : ((usec - 1) / 1000 + 1), ec); -} - -size_t win_iocp_io_context::poll(asio::error_code& ec) -{ - if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0) - { - stop(); - ec = asio::error_code(); - return 0; - } - - win_iocp_thread_info this_thread; - thread_call_stack::context ctx(this, this_thread); - - size_t n = 0; - while (do_one(0, ec)) - if (n != (std::numeric_limits::max)()) - ++n; - return n; -} - -size_t win_iocp_io_context::poll_one(asio::error_code& ec) -{ - if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0) - { - stop(); - ec = asio::error_code(); - return 0; - } - - win_iocp_thread_info this_thread; - thread_call_stack::context ctx(this, this_thread); - - return do_one(0, ec); -} - -void win_iocp_io_context::stop() -{ - if (::InterlockedExchange(&stopped_, 1) == 0) - { - if (::InterlockedExchange(&stop_event_posted_, 1) == 0) - { - if (!::PostQueuedCompletionStatus(iocp_.handle, 0, 0, 0)) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "pqcs"); - } - } - } -} - -void win_iocp_io_context::post_deferred_completion(win_iocp_operation* op) -{ - // Flag the operation as ready. - op->ready_ = 1; - - // Enqueue the operation on the I/O completion port. - if (!::PostQueuedCompletionStatus(iocp_.handle, 0, 0, op)) - { - // Out of resources. Put on completed queue instead. - mutex::scoped_lock lock(dispatch_mutex_); - completed_ops_.push(op); - ::InterlockedExchange(&dispatch_required_, 1); - } -} - -void win_iocp_io_context::post_deferred_completions( - op_queue& ops) -{ - while (win_iocp_operation* op = ops.front()) - { - ops.pop(); - - // Flag the operation as ready. - op->ready_ = 1; - - // Enqueue the operation on the I/O completion port. - if (!::PostQueuedCompletionStatus(iocp_.handle, 0, 0, op)) - { - // Out of resources. Put on completed queue instead. - mutex::scoped_lock lock(dispatch_mutex_); - completed_ops_.push(op); - completed_ops_.push(ops); - ::InterlockedExchange(&dispatch_required_, 1); - } - } -} - -void win_iocp_io_context::abandon_operations( - op_queue& ops) -{ - while (win_iocp_operation* op = ops.front()) - { - ops.pop(); - ::InterlockedDecrement(&outstanding_work_); - op->destroy(); - } -} - -void win_iocp_io_context::on_pending(win_iocp_operation* op) -{ - if (::InterlockedCompareExchange(&op->ready_, 1, 0) == 1) - { - // Enqueue the operation on the I/O completion port. - if (!::PostQueuedCompletionStatus(iocp_.handle, - 0, overlapped_contains_result, op)) - { - // Out of resources. Put on completed queue instead. - mutex::scoped_lock lock(dispatch_mutex_); - completed_ops_.push(op); - ::InterlockedExchange(&dispatch_required_, 1); - } - } -} - -void win_iocp_io_context::on_completion(win_iocp_operation* op, - DWORD last_error, DWORD bytes_transferred) -{ - // Flag that the operation is ready for invocation. - op->ready_ = 1; - - // Store results in the OVERLAPPED structure. - op->Internal = reinterpret_cast( - &asio::error::get_system_category()); - op->Offset = last_error; - op->OffsetHigh = bytes_transferred; - - // Enqueue the operation on the I/O completion port. - if (!::PostQueuedCompletionStatus(iocp_.handle, - 0, overlapped_contains_result, op)) - { - // Out of resources. Put on completed queue instead. - mutex::scoped_lock lock(dispatch_mutex_); - completed_ops_.push(op); - ::InterlockedExchange(&dispatch_required_, 1); - } -} - -void win_iocp_io_context::on_completion(win_iocp_operation* op, - const asio::error_code& ec, DWORD bytes_transferred) -{ - // Flag that the operation is ready for invocation. - op->ready_ = 1; - - // Store results in the OVERLAPPED structure. - op->Internal = reinterpret_cast(&ec.category()); - op->Offset = ec.value(); - op->OffsetHigh = bytes_transferred; - - // Enqueue the operation on the I/O completion port. - if (!::PostQueuedCompletionStatus(iocp_.handle, - 0, overlapped_contains_result, op)) - { - // Out of resources. Put on completed queue instead. - mutex::scoped_lock lock(dispatch_mutex_); - completed_ops_.push(op); - ::InterlockedExchange(&dispatch_required_, 1); - } -} - -size_t win_iocp_io_context::do_one(DWORD msec, asio::error_code& ec) -{ - for (;;) - { - // Try to acquire responsibility for dispatching timers and completed ops. - if (::InterlockedCompareExchange(&dispatch_required_, 0, 1) == 1) - { - mutex::scoped_lock lock(dispatch_mutex_); - - // Dispatch pending timers and operations. - op_queue ops; - ops.push(completed_ops_); - timer_queues_.get_ready_timers(ops); - post_deferred_completions(ops); - update_timeout(); - } - - // Get the next operation from the queue. - DWORD bytes_transferred = 0; - dword_ptr_t completion_key = 0; - LPOVERLAPPED overlapped = 0; - ::SetLastError(0); - BOOL ok = ::GetQueuedCompletionStatus(iocp_.handle, - &bytes_transferred, &completion_key, &overlapped, - msec < gqcs_timeout_ ? msec : gqcs_timeout_); - DWORD last_error = ::GetLastError(); - - if (overlapped) - { - win_iocp_operation* op = static_cast(overlapped); - asio::error_code result_ec(last_error, - asio::error::get_system_category()); - - // We may have been passed the last_error and bytes_transferred in the - // OVERLAPPED structure itself. - if (completion_key == overlapped_contains_result) - { - result_ec = asio::error_code(static_cast(op->Offset), - *reinterpret_cast(op->Internal)); - bytes_transferred = op->OffsetHigh; - } - - // Otherwise ensure any result has been saved into the OVERLAPPED - // structure. - else - { - op->Internal = reinterpret_cast(&result_ec.category()); - op->Offset = result_ec.value(); - op->OffsetHigh = bytes_transferred; - } - - // Dispatch the operation only if ready. The operation may not be ready - // if the initiating function (e.g. a call to WSARecv) has not yet - // returned. This is because the initiating function still wants access - // to the operation's OVERLAPPED structure. - if (::InterlockedCompareExchange(&op->ready_, 1, 0) == 1) - { - // Ensure the count of outstanding work is decremented on block exit. - work_finished_on_block_exit on_exit = { this }; - (void)on_exit; - - op->complete(this, result_ec, bytes_transferred); - ec = asio::error_code(); - return 1; - } - } - else if (!ok) - { - if (last_error != WAIT_TIMEOUT) - { - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return 0; - } - - // If we're waiting indefinitely we need to keep going until we get a - // real handler. - if (msec == INFINITE) - continue; - - ec = asio::error_code(); - return 0; - } - else if (completion_key == wake_for_dispatch) - { - // We have been woken up to try to acquire responsibility for dispatching - // timers and completed operations. - } - else - { - // Indicate that there is no longer an in-flight stop event. - ::InterlockedExchange(&stop_event_posted_, 0); - - // The stopped_ flag is always checked to ensure that any leftover - // stop events from a previous run invocation are ignored. - if (::InterlockedExchangeAdd(&stopped_, 0) != 0) - { - // Wake up next thread that is blocked on GetQueuedCompletionStatus. - if (::InterlockedExchange(&stop_event_posted_, 1) == 0) - { - if (!::PostQueuedCompletionStatus(iocp_.handle, 0, 0, 0)) - { - last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return 0; - } - } - - ec = asio::error_code(); - return 0; - } - } - } -} - -DWORD win_iocp_io_context::get_gqcs_timeout() -{ - OSVERSIONINFOEX osvi; - ZeroMemory(&osvi, sizeof(osvi)); - osvi.dwOSVersionInfoSize = sizeof(osvi); - osvi.dwMajorVersion = 6ul; - - const uint64_t condition_mask = ::VerSetConditionMask( - 0, VER_MAJORVERSION, VER_GREATER_EQUAL); - - if (!!::VerifyVersionInfo(&osvi, VER_MAJORVERSION, condition_mask)) - return INFINITE; - - return default_gqcs_timeout; -} - -void win_iocp_io_context::do_add_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(dispatch_mutex_); - - timer_queues_.insert(&queue); - - if (!waitable_timer_.handle) - { - waitable_timer_.handle = ::CreateWaitableTimer(0, FALSE, 0); - if (waitable_timer_.handle == 0) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "timer"); - } - - LARGE_INTEGER timeout; - timeout.QuadPart = -max_timeout_usec; - timeout.QuadPart *= 10; - ::SetWaitableTimer(waitable_timer_.handle, - &timeout, max_timeout_msec, 0, 0, FALSE); - } - - if (!timer_thread_.get()) - { - timer_thread_function thread_function = { this }; - timer_thread_.reset(new thread(thread_function, 65536)); - } -} - -void win_iocp_io_context::do_remove_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(dispatch_mutex_); - - timer_queues_.erase(&queue); -} - -void win_iocp_io_context::update_timeout() -{ - if (timer_thread_.get()) - { - // There's no point updating the waitable timer if the new timeout period - // exceeds the maximum timeout. In that case, we might as well wait for the - // existing period of the timer to expire. - long timeout_usec = timer_queues_.wait_duration_usec(max_timeout_usec); - if (timeout_usec < max_timeout_usec) - { - LARGE_INTEGER timeout; - timeout.QuadPart = -timeout_usec; - timeout.QuadPart *= 10; - ::SetWaitableTimer(waitable_timer_.handle, - &timeout, max_timeout_msec, 0, 0, FALSE); - } - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_IMPL_WIN_IOCP_IO_CONTEXT_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp deleted file mode 100644 index 4a9b8cd..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +++ /dev/null @@ -1,181 +0,0 @@ -// -// detail/impl/win_iocp_serial_port_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_DETAIL_IMPL_WIN_IOCP_SERIAL_PORT_SERVICE_IPP -#define ASIO_DETAIL_IMPL_WIN_IOCP_SERIAL_PORT_SERVICE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) && defined(ASIO_HAS_SERIAL_PORT) - -#include -#include "asio/detail/win_iocp_serial_port_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -win_iocp_serial_port_service::win_iocp_serial_port_service( - asio::io_context& io_context) - : service_base(io_context), - handle_service_(io_context) -{ -} - -void win_iocp_serial_port_service::shutdown() -{ -} - -asio::error_code win_iocp_serial_port_service::open( - win_iocp_serial_port_service::implementation_type& impl, - const std::string& device, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - // For convenience, add a leading \\.\ sequence if not already present. - std::string name = (device[0] == '\\') ? device : "\\\\.\\" + device; - - // Open a handle to the serial port. - ::HANDLE handle = ::CreateFileA(name.c_str(), - GENERIC_READ | GENERIC_WRITE, 0, 0, - OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); - if (handle == INVALID_HANDLE_VALUE) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return ec; - } - - // Determine the initial serial port parameters. - using namespace std; // For memset. - ::DCB dcb; - memset(&dcb, 0, sizeof(DCB)); - dcb.DCBlength = sizeof(DCB); - if (!::GetCommState(handle, &dcb)) - { - DWORD last_error = ::GetLastError(); - ::CloseHandle(handle); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return ec; - } - - // Set some default serial port parameters. This implementation does not - // support changing these, so they might as well be in a known state. - dcb.fBinary = TRUE; // Win32 only supports binary mode. - dcb.fDsrSensitivity = FALSE; - dcb.fNull = FALSE; // Do not ignore NULL characters. - dcb.fAbortOnError = FALSE; // Ignore serial framing errors. - if (!::SetCommState(handle, &dcb)) - { - DWORD last_error = ::GetLastError(); - ::CloseHandle(handle); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return ec; - } - - // Set up timeouts so that the serial port will behave similarly to a - // network socket. Reads wait for at least one byte, then return with - // whatever they have. Writes return once everything is out the door. - ::COMMTIMEOUTS timeouts; - timeouts.ReadIntervalTimeout = 1; - timeouts.ReadTotalTimeoutMultiplier = 0; - timeouts.ReadTotalTimeoutConstant = 0; - timeouts.WriteTotalTimeoutMultiplier = 0; - timeouts.WriteTotalTimeoutConstant = 0; - if (!::SetCommTimeouts(handle, &timeouts)) - { - DWORD last_error = ::GetLastError(); - ::CloseHandle(handle); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return ec; - } - - // We're done. Take ownership of the serial port handle. - if (handle_service_.assign(impl, handle, ec)) - ::CloseHandle(handle); - return ec; -} - -asio::error_code win_iocp_serial_port_service::do_set_option( - win_iocp_serial_port_service::implementation_type& impl, - win_iocp_serial_port_service::store_function_type store, - const void* option, asio::error_code& ec) -{ - using namespace std; // For memcpy. - - ::DCB dcb; - memset(&dcb, 0, sizeof(DCB)); - dcb.DCBlength = sizeof(DCB); - if (!::GetCommState(handle_service_.native_handle(impl), &dcb)) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return ec; - } - - if (store(option, dcb, ec)) - return ec; - - if (!::SetCommState(handle_service_.native_handle(impl), &dcb)) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return ec; - } - - ec = asio::error_code(); - return ec; -} - -asio::error_code win_iocp_serial_port_service::do_get_option( - const win_iocp_serial_port_service::implementation_type& impl, - win_iocp_serial_port_service::load_function_type load, - void* option, asio::error_code& ec) const -{ - using namespace std; // For memset. - - ::DCB dcb; - memset(&dcb, 0, sizeof(DCB)); - dcb.DCBlength = sizeof(DCB); - if (!::GetCommState(handle_service_.native_handle(impl), &dcb)) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return ec; - } - - return load(option, dcb, ec); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) && defined(ASIO_HAS_SERIAL_PORT) - -#endif // ASIO_DETAIL_IMPL_WIN_IOCP_SERIAL_PORT_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp deleted file mode 100644 index 6c478cd..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +++ /dev/null @@ -1,799 +0,0 @@ -// -// detail/impl/win_iocp_socket_service_base.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_WIN_IOCP_SOCKET_SERVICE_BASE_IPP -#define ASIO_DETAIL_IMPL_WIN_IOCP_SOCKET_SERVICE_BASE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/detail/win_iocp_socket_service_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -win_iocp_socket_service_base::win_iocp_socket_service_base( - asio::io_context& io_context) - : io_context_(io_context), - iocp_service_(use_service(io_context)), - reactor_(0), - connect_ex_(0), - nt_set_info_(0), - mutex_(), - impl_list_(0) -{ -} - -void win_iocp_socket_service_base::base_shutdown() -{ - // Close all implementations, causing all operations to complete. - asio::detail::mutex::scoped_lock lock(mutex_); - base_implementation_type* impl = impl_list_; - while (impl) - { - close_for_destruction(*impl); - impl = impl->next_; - } -} - -void win_iocp_socket_service_base::construct( - win_iocp_socket_service_base::base_implementation_type& impl) -{ - impl.socket_ = invalid_socket; - impl.state_ = 0; - impl.cancel_token_.reset(); -#if defined(ASIO_ENABLE_CANCELIO) - impl.safe_cancellation_thread_id_ = 0; -#endif // defined(ASIO_ENABLE_CANCELIO) - - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; -} - -void win_iocp_socket_service_base::base_move_construct( - win_iocp_socket_service_base::base_implementation_type& impl, - win_iocp_socket_service_base::base_implementation_type& other_impl) -{ - impl.socket_ = other_impl.socket_; - other_impl.socket_ = invalid_socket; - - impl.state_ = other_impl.state_; - other_impl.state_ = 0; - - impl.cancel_token_ = other_impl.cancel_token_; - other_impl.cancel_token_.reset(); - -#if defined(ASIO_ENABLE_CANCELIO) - impl.safe_cancellation_thread_id_ = other_impl.safe_cancellation_thread_id_; - other_impl.safe_cancellation_thread_id_ = 0; -#endif // defined(ASIO_ENABLE_CANCELIO) - - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; -} - -void win_iocp_socket_service_base::base_move_assign( - win_iocp_socket_service_base::base_implementation_type& impl, - win_iocp_socket_service_base& other_service, - win_iocp_socket_service_base::base_implementation_type& other_impl) -{ - close_for_destruction(impl); - - if (this != &other_service) - { - // Remove implementation from linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; - } - - impl.socket_ = other_impl.socket_; - other_impl.socket_ = invalid_socket; - - impl.state_ = other_impl.state_; - other_impl.state_ = 0; - - impl.cancel_token_ = other_impl.cancel_token_; - other_impl.cancel_token_.reset(); - -#if defined(ASIO_ENABLE_CANCELIO) - impl.safe_cancellation_thread_id_ = other_impl.safe_cancellation_thread_id_; - other_impl.safe_cancellation_thread_id_ = 0; -#endif // defined(ASIO_ENABLE_CANCELIO) - - if (this != &other_service) - { - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(other_service.mutex_); - impl.next_ = other_service.impl_list_; - impl.prev_ = 0; - if (other_service.impl_list_) - other_service.impl_list_->prev_ = &impl; - other_service.impl_list_ = &impl; - } -} - -void win_iocp_socket_service_base::destroy( - win_iocp_socket_service_base::base_implementation_type& impl) -{ - close_for_destruction(impl); - - // Remove implementation from linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; -} - -asio::error_code win_iocp_socket_service_base::close( - win_iocp_socket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((iocp_service_.context(), - "socket", &impl, impl.socket_, "close")); - - // Check if the reactor was created, in which case we need to close the - // socket on the reactor as well to cancel any operations that might be - // running there. - select_reactor* r = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (r) - r->deregister_descriptor(impl.socket_, impl.reactor_data_, true); - - socket_ops::close(impl.socket_, impl.state_, false, ec); - - if (r) - r->cleanup_descriptor_data(impl.reactor_data_); - } - else - { - ec = asio::error_code(); - } - - impl.socket_ = invalid_socket; - impl.state_ = 0; - impl.cancel_token_.reset(); -#if defined(ASIO_ENABLE_CANCELIO) - impl.safe_cancellation_thread_id_ = 0; -#endif // defined(ASIO_ENABLE_CANCELIO) - - return ec; -} - -socket_type win_iocp_socket_service_base::release( - win_iocp_socket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (!is_open(impl)) - return invalid_socket; - - cancel(impl, ec); - if (ec) - return invalid_socket; - - nt_set_info_fn fn = get_nt_set_info(); - if (fn == 0) - { - ec = asio::error::operation_not_supported; - return invalid_socket; - } - - HANDLE sock_as_handle = reinterpret_cast(impl.socket_); - ULONG_PTR iosb[2] = { 0, 0 }; - void* info[2] = { 0, 0 }; - if (fn(sock_as_handle, iosb, &info, sizeof(info), - 61 /* FileReplaceCompletionInformation */)) - { - ec = asio::error::operation_not_supported; - return invalid_socket; - } - - socket_type tmp = impl.socket_; - impl.socket_ = invalid_socket; - return tmp; -} - -asio::error_code win_iocp_socket_service_base::cancel( - win_iocp_socket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return ec; - } - - ASIO_HANDLER_OPERATION((iocp_service_.context(), - "socket", &impl, impl.socket_, "cancel")); - - if (FARPROC cancel_io_ex_ptr = ::GetProcAddress( - ::GetModuleHandleA("KERNEL32"), "CancelIoEx")) - { - // The version of Windows supports cancellation from any thread. - typedef BOOL (WINAPI* cancel_io_ex_t)(HANDLE, LPOVERLAPPED); - cancel_io_ex_t cancel_io_ex = (cancel_io_ex_t)cancel_io_ex_ptr; - socket_type sock = impl.socket_; - HANDLE sock_as_handle = reinterpret_cast(sock); - if (!cancel_io_ex(sock_as_handle, 0)) - { - DWORD last_error = ::GetLastError(); - if (last_error == ERROR_NOT_FOUND) - { - // ERROR_NOT_FOUND means that there were no operations to be - // cancelled. We swallow this error to match the behaviour on other - // platforms. - ec = asio::error_code(); - } - else - { - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - } - else - { - ec = asio::error_code(); - } - } -#if defined(ASIO_ENABLE_CANCELIO) - else if (impl.safe_cancellation_thread_id_ == 0) - { - // No operations have been started, so there's nothing to cancel. - ec = asio::error_code(); - } - else if (impl.safe_cancellation_thread_id_ == ::GetCurrentThreadId()) - { - // Asynchronous operations have been started from the current thread only, - // so it is safe to try to cancel them using CancelIo. - socket_type sock = impl.socket_; - HANDLE sock_as_handle = reinterpret_cast(sock); - if (!::CancelIo(sock_as_handle)) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - else - { - ec = asio::error_code(); - } - } - else - { - // Asynchronous operations have been started from more than one thread, - // so cancellation is not safe. - ec = asio::error::operation_not_supported; - } -#else // defined(ASIO_ENABLE_CANCELIO) - else - { - // Cancellation is not supported as CancelIo may not be used. - ec = asio::error::operation_not_supported; - } -#endif // defined(ASIO_ENABLE_CANCELIO) - - // Cancel any operations started via the reactor. - if (!ec) - { - select_reactor* r = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (r) - r->cancel_ops(impl.socket_, impl.reactor_data_); - } - - return ec; -} - -asio::error_code win_iocp_socket_service_base::do_open( - win_iocp_socket_service_base::base_implementation_type& impl, - int family, int type, int protocol, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - socket_holder sock(socket_ops::socket(family, type, protocol, ec)); - if (sock.get() == invalid_socket) - return ec; - - HANDLE sock_as_handle = reinterpret_cast(sock.get()); - if (iocp_service_.register_handle(sock_as_handle, ec)) - return ec; - - impl.socket_ = sock.release(); - switch (type) - { - case SOCK_STREAM: impl.state_ = socket_ops::stream_oriented; break; - case SOCK_DGRAM: impl.state_ = socket_ops::datagram_oriented; break; - default: impl.state_ = 0; break; - } - impl.cancel_token_.reset(static_cast(0), socket_ops::noop_deleter()); - ec = asio::error_code(); - return ec; -} - -asio::error_code win_iocp_socket_service_base::do_assign( - win_iocp_socket_service_base::base_implementation_type& impl, - int type, socket_type native_socket, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - HANDLE sock_as_handle = reinterpret_cast(native_socket); - if (iocp_service_.register_handle(sock_as_handle, ec)) - return ec; - - impl.socket_ = native_socket; - switch (type) - { - case SOCK_STREAM: impl.state_ = socket_ops::stream_oriented; break; - case SOCK_DGRAM: impl.state_ = socket_ops::datagram_oriented; break; - default: impl.state_ = 0; break; - } - impl.cancel_token_.reset(static_cast(0), socket_ops::noop_deleter()); - ec = asio::error_code(); - return ec; -} - -void win_iocp_socket_service_base::start_send_op( - win_iocp_socket_service_base::base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, - socket_base::message_flags flags, bool noop, operation* op) -{ - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - if (noop) - iocp_service_.on_completion(op); - else if (!is_open(impl)) - iocp_service_.on_completion(op, asio::error::bad_descriptor); - else - { - DWORD bytes_transferred = 0; - int result = ::WSASend(impl.socket_, buffers, - static_cast(buffer_count), &bytes_transferred, flags, op, 0); - DWORD last_error = ::WSAGetLastError(); - if (last_error == ERROR_PORT_UNREACHABLE) - last_error = WSAECONNREFUSED; - if (result != 0 && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error, bytes_transferred); - else - iocp_service_.on_pending(op); - } -} - -void win_iocp_socket_service_base::start_send_to_op( - win_iocp_socket_service_base::base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, - const socket_addr_type* addr, int addrlen, - socket_base::message_flags flags, operation* op) -{ - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - if (!is_open(impl)) - iocp_service_.on_completion(op, asio::error::bad_descriptor); - else - { - DWORD bytes_transferred = 0; - int result = ::WSASendTo(impl.socket_, buffers, - static_cast(buffer_count), - &bytes_transferred, flags, addr, addrlen, op, 0); - DWORD last_error = ::WSAGetLastError(); - if (last_error == ERROR_PORT_UNREACHABLE) - last_error = WSAECONNREFUSED; - if (result != 0 && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error, bytes_transferred); - else - iocp_service_.on_pending(op); - } -} - -void win_iocp_socket_service_base::start_receive_op( - win_iocp_socket_service_base::base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, - socket_base::message_flags flags, bool noop, operation* op) -{ - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - if (noop) - iocp_service_.on_completion(op); - else if (!is_open(impl)) - iocp_service_.on_completion(op, asio::error::bad_descriptor); - else - { - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int result = ::WSARecv(impl.socket_, buffers, - static_cast(buffer_count), - &bytes_transferred, &recv_flags, op, 0); - DWORD last_error = ::WSAGetLastError(); - if (last_error == ERROR_NETNAME_DELETED) - last_error = WSAECONNRESET; - else if (last_error == ERROR_PORT_UNREACHABLE) - last_error = WSAECONNREFUSED; - if (result != 0 && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error, bytes_transferred); - else - iocp_service_.on_pending(op); - } -} - -void win_iocp_socket_service_base::start_null_buffers_receive_op( - win_iocp_socket_service_base::base_implementation_type& impl, - socket_base::message_flags flags, reactor_op* op) -{ - if ((impl.state_ & socket_ops::stream_oriented) != 0) - { - // For stream sockets on Windows, we may issue a 0-byte overlapped - // WSARecv to wait until there is data available on the socket. - ::WSABUF buf = { 0, 0 }; - start_receive_op(impl, &buf, 1, flags, false, op); - } - else - { - start_reactor_op(impl, - (flags & socket_base::message_out_of_band) - ? select_reactor::except_op : select_reactor::read_op, - op); - } -} - -void win_iocp_socket_service_base::start_receive_from_op( - win_iocp_socket_service_base::base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, socket_addr_type* addr, - socket_base::message_flags flags, int* addrlen, operation* op) -{ - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - if (!is_open(impl)) - iocp_service_.on_completion(op, asio::error::bad_descriptor); - else - { - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int result = ::WSARecvFrom(impl.socket_, buffers, - static_cast(buffer_count), - &bytes_transferred, &recv_flags, addr, addrlen, op, 0); - DWORD last_error = ::WSAGetLastError(); - if (last_error == ERROR_PORT_UNREACHABLE) - last_error = WSAECONNREFUSED; - if (result != 0 && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error, bytes_transferred); - else - iocp_service_.on_pending(op); - } -} - -void win_iocp_socket_service_base::start_accept_op( - win_iocp_socket_service_base::base_implementation_type& impl, - bool peer_is_open, socket_holder& new_socket, int family, int type, - int protocol, void* output_buffer, DWORD address_length, operation* op) -{ - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - if (!is_open(impl)) - iocp_service_.on_completion(op, asio::error::bad_descriptor); - else if (peer_is_open) - iocp_service_.on_completion(op, asio::error::already_open); - else - { - asio::error_code ec; - new_socket.reset(socket_ops::socket(family, type, protocol, ec)); - if (new_socket.get() == invalid_socket) - iocp_service_.on_completion(op, ec); - else - { - DWORD bytes_read = 0; - BOOL result = ::AcceptEx(impl.socket_, new_socket.get(), output_buffer, - 0, address_length, address_length, &bytes_read, op); - DWORD last_error = ::WSAGetLastError(); - if (!result && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error); - else - iocp_service_.on_pending(op); - } - } -} - -void win_iocp_socket_service_base::restart_accept_op( - socket_type s, socket_holder& new_socket, int family, int type, - int protocol, void* output_buffer, DWORD address_length, operation* op) -{ - new_socket.reset(); - iocp_service_.work_started(); - - asio::error_code ec; - new_socket.reset(socket_ops::socket(family, type, protocol, ec)); - if (new_socket.get() == invalid_socket) - iocp_service_.on_completion(op, ec); - else - { - DWORD bytes_read = 0; - BOOL result = ::AcceptEx(s, new_socket.get(), output_buffer, - 0, address_length, address_length, &bytes_read, op); - DWORD last_error = ::WSAGetLastError(); - if (!result && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error); - else - iocp_service_.on_pending(op); - } -} - -void win_iocp_socket_service_base::start_reactor_op( - win_iocp_socket_service_base::base_implementation_type& impl, - int op_type, reactor_op* op) -{ - select_reactor& r = get_reactor(); - update_cancellation_thread_id(impl); - - if (is_open(impl)) - { - r.start_op(op_type, impl.socket_, impl.reactor_data_, op, false, false); - return; - } - else - op->ec_ = asio::error::bad_descriptor; - - iocp_service_.post_immediate_completion(op, false); -} - -void win_iocp_socket_service_base::start_connect_op( - win_iocp_socket_service_base::base_implementation_type& impl, - int family, int type, const socket_addr_type* addr, - std::size_t addrlen, win_iocp_socket_connect_op_base* op) -{ - // If ConnectEx is available, use that. - if (family == ASIO_OS_DEF(AF_INET) - || family == ASIO_OS_DEF(AF_INET6)) - { - if (connect_ex_fn connect_ex = get_connect_ex(impl, type)) - { - union address_union - { - socket_addr_type base; - sockaddr_in4_type v4; - sockaddr_in6_type v6; - } a; - - using namespace std; // For memset. - memset(&a, 0, sizeof(a)); - a.base.sa_family = family; - - socket_ops::bind(impl.socket_, &a.base, - family == ASIO_OS_DEF(AF_INET) - ? sizeof(a.v4) : sizeof(a.v6), op->ec_); - if (op->ec_ && op->ec_ != asio::error::invalid_argument) - { - iocp_service_.post_immediate_completion(op, false); - return; - } - - op->connect_ex_ = true; - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - BOOL result = connect_ex(impl.socket_, - addr, static_cast(addrlen), 0, 0, 0, op); - DWORD last_error = ::WSAGetLastError(); - if (!result && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error); - else - iocp_service_.on_pending(op); - return; - } - } - - // Otherwise, fall back to a reactor-based implementation. - select_reactor& r = get_reactor(); - update_cancellation_thread_id(impl); - - if ((impl.state_ & socket_ops::non_blocking) != 0 - || socket_ops::set_internal_non_blocking( - impl.socket_, impl.state_, true, op->ec_)) - { - if (socket_ops::connect(impl.socket_, addr, addrlen, op->ec_) != 0) - { - if (op->ec_ == asio::error::in_progress - || op->ec_ == asio::error::would_block) - { - op->ec_ = asio::error_code(); - r.start_op(select_reactor::connect_op, impl.socket_, - impl.reactor_data_, op, false, false); - return; - } - } - } - - r.post_immediate_completion(op, false); -} - -void win_iocp_socket_service_base::close_for_destruction( - win_iocp_socket_service_base::base_implementation_type& impl) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((iocp_service_.context(), - "socket", &impl, impl.socket_, "close")); - - // Check if the reactor was created, in which case we need to close the - // socket on the reactor as well to cancel any operations that might be - // running there. - select_reactor* r = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (r) - r->deregister_descriptor(impl.socket_, impl.reactor_data_, true); - - asio::error_code ignored_ec; - socket_ops::close(impl.socket_, impl.state_, true, ignored_ec); - - if (r) - r->cleanup_descriptor_data(impl.reactor_data_); - } - - impl.socket_ = invalid_socket; - impl.state_ = 0; - impl.cancel_token_.reset(); -#if defined(ASIO_ENABLE_CANCELIO) - impl.safe_cancellation_thread_id_ = 0; -#endif // defined(ASIO_ENABLE_CANCELIO) -} - -void win_iocp_socket_service_base::update_cancellation_thread_id( - win_iocp_socket_service_base::base_implementation_type& impl) -{ -#if defined(ASIO_ENABLE_CANCELIO) - if (impl.safe_cancellation_thread_id_ == 0) - impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId(); - else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId()) - impl.safe_cancellation_thread_id_ = ~DWORD(0); -#else // defined(ASIO_ENABLE_CANCELIO) - (void)impl; -#endif // defined(ASIO_ENABLE_CANCELIO) -} - -select_reactor& win_iocp_socket_service_base::get_reactor() -{ - select_reactor* r = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (!r) - { - r = &(use_service(io_context_)); - interlocked_exchange_pointer(reinterpret_cast(&reactor_), r); - } - return *r; -} - -win_iocp_socket_service_base::connect_ex_fn -win_iocp_socket_service_base::get_connect_ex( - win_iocp_socket_service_base::base_implementation_type& impl, int type) -{ -#if defined(ASIO_DISABLE_CONNECTEX) - (void)impl; - (void)type; - return 0; -#else // defined(ASIO_DISABLE_CONNECTEX) - if (type != ASIO_OS_DEF(SOCK_STREAM) - && type != ASIO_OS_DEF(SOCK_SEQPACKET)) - return 0; - - void* ptr = interlocked_compare_exchange_pointer(&connect_ex_, 0, 0); - if (!ptr) - { - GUID guid = { 0x25a207b9, 0xddf3, 0x4660, - { 0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e } }; - - DWORD bytes = 0; - if (::WSAIoctl(impl.socket_, SIO_GET_EXTENSION_FUNCTION_POINTER, - &guid, sizeof(guid), &ptr, sizeof(ptr), &bytes, 0, 0) != 0) - { - // Set connect_ex_ to a special value to indicate that ConnectEx is - // unavailable. That way we won't bother trying to look it up again. - ptr = this; - } - - interlocked_exchange_pointer(&connect_ex_, ptr); - } - - return reinterpret_cast(ptr == this ? 0 : ptr); -#endif // defined(ASIO_DISABLE_CONNECTEX) -} - -win_iocp_socket_service_base::nt_set_info_fn -win_iocp_socket_service_base::get_nt_set_info() -{ - void* ptr = interlocked_compare_exchange_pointer(&nt_set_info_, 0, 0); - if (!ptr) - { - if (HMODULE h = ::GetModuleHandleA("NTDLL.DLL")) - ptr = reinterpret_cast(GetProcAddress(h, "NtSetInformationFile")); - - // On failure, set nt_set_info_ to a special value to indicate that the - // NtSetInformationFile function is unavailable. That way we won't bother - // trying to look it up again. - interlocked_exchange_pointer(&nt_set_info_, ptr ? ptr : this); - } - - return reinterpret_cast(ptr == this ? 0 : ptr); -} - -void* win_iocp_socket_service_base::interlocked_compare_exchange_pointer( - void** dest, void* exch, void* cmp) -{ -#if defined(_M_IX86) - return reinterpret_cast(InterlockedCompareExchange( - reinterpret_cast(dest), reinterpret_cast(exch), - reinterpret_cast(cmp))); -#else - return InterlockedCompareExchangePointer(dest, exch, cmp); -#endif -} - -void* win_iocp_socket_service_base::interlocked_exchange_pointer( - void** dest, void* val) -{ -#if defined(_M_IX86) - return reinterpret_cast(InterlockedExchange( - reinterpret_cast(dest), reinterpret_cast(val))); -#else - return InterlockedExchangePointer(dest, val); -#endif -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_IMPL_WIN_IOCP_SOCKET_SERVICE_BASE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_mutex.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_mutex.ipp deleted file mode 100644 index dc58a12..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_mutex.ipp +++ /dev/null @@ -1,84 +0,0 @@ -// -// detail/impl/win_mutex.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_WIN_MUTEX_IPP -#define ASIO_DETAIL_IMPL_WIN_MUTEX_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) - -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_mutex.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -win_mutex::win_mutex() -{ - int error = do_init(); - asio::error_code ec(error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "mutex"); -} - -int win_mutex::do_init() -{ -#if defined(__MINGW32__) - // Not sure if MinGW supports structured exception handling, so for now - // we'll just call the Windows API and hope. -# if defined(UNDER_CE) - ::InitializeCriticalSection(&crit_section_); -# elif defined(ASIO_WINDOWS_APP) - if (!::InitializeCriticalSectionEx(&crit_section_, 0, 0)) - return ::GetLastError(); -# else - if (!::InitializeCriticalSectionAndSpinCount(&crit_section_, 0x80000000)) - return ::GetLastError(); -# endif - return 0; -#else - __try - { -# if defined(UNDER_CE) - ::InitializeCriticalSection(&crit_section_); -# elif defined(ASIO_WINDOWS_APP) - if (!::InitializeCriticalSectionEx(&crit_section_, 0, 0)) - return ::GetLastError(); -# else - if (!::InitializeCriticalSectionAndSpinCount(&crit_section_, 0x80000000)) - return ::GetLastError(); -# endif - } - __except(GetExceptionCode() == STATUS_NO_MEMORY - ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) - { - return ERROR_OUTOFMEMORY; - } - - return 0; -#endif -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_IMPL_WIN_MUTEX_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_object_handle_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_object_handle_service.ipp deleted file mode 100644 index c5e59d1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_object_handle_service.ipp +++ /dev/null @@ -1,449 +0,0 @@ -// -// detail/impl/win_object_handle_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2011 Boris Schaeling (boris@highscore.de) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_WIN_OBJECT_HANDLE_SERVICE_IPP -#define ASIO_DETAIL_IMPL_WIN_OBJECT_HANDLE_SERVICE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - -#include "asio/detail/win_object_handle_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -win_object_handle_service::win_object_handle_service( - asio::io_context& io_context) - : service_base(io_context), - io_context_(asio::use_service(io_context)), - mutex_(), - impl_list_(0), - shutdown_(false) -{ -} - -void win_object_handle_service::shutdown() -{ - mutex::scoped_lock lock(mutex_); - - // Setting this flag to true prevents new objects from being registered, and - // new asynchronous wait operations from being started. We only need to worry - // about cleaning up the operations that are currently in progress. - shutdown_ = true; - - op_queue ops; - for (implementation_type* impl = impl_list_; impl; impl = impl->next_) - ops.push(impl->op_queue_); - - lock.unlock(); - - io_context_.abandon_operations(ops); -} - -void win_object_handle_service::construct( - win_object_handle_service::implementation_type& impl) -{ - impl.handle_ = INVALID_HANDLE_VALUE; - impl.wait_handle_ = INVALID_HANDLE_VALUE; - impl.owner_ = this; - - // Insert implementation into linked list of all implementations. - mutex::scoped_lock lock(mutex_); - if (!shutdown_) - { - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; - } -} - -void win_object_handle_service::move_construct( - win_object_handle_service::implementation_type& impl, - win_object_handle_service::implementation_type& other_impl) -{ - mutex::scoped_lock lock(mutex_); - - // Insert implementation into linked list of all implementations. - if (!shutdown_) - { - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; - } - - impl.handle_ = other_impl.handle_; - other_impl.handle_ = INVALID_HANDLE_VALUE; - impl.wait_handle_ = other_impl.wait_handle_; - other_impl.wait_handle_ = INVALID_HANDLE_VALUE; - impl.op_queue_.push(other_impl.op_queue_); - impl.owner_ = this; - - // We must not hold the lock while calling UnregisterWaitEx. This is because - // the registered callback function might be invoked while we are waiting for - // UnregisterWaitEx to complete. - lock.unlock(); - - if (impl.wait_handle_ != INVALID_HANDLE_VALUE) - ::UnregisterWaitEx(impl.wait_handle_, INVALID_HANDLE_VALUE); - - if (!impl.op_queue_.empty()) - register_wait_callback(impl, lock); -} - -void win_object_handle_service::move_assign( - win_object_handle_service::implementation_type& impl, - win_object_handle_service& other_service, - win_object_handle_service::implementation_type& other_impl) -{ - asio::error_code ignored_ec; - close(impl, ignored_ec); - - mutex::scoped_lock lock(mutex_); - - if (this != &other_service) - { - // Remove implementation from linked list of all implementations. - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; - } - - impl.handle_ = other_impl.handle_; - other_impl.handle_ = INVALID_HANDLE_VALUE; - impl.wait_handle_ = other_impl.wait_handle_; - other_impl.wait_handle_ = INVALID_HANDLE_VALUE; - impl.op_queue_.push(other_impl.op_queue_); - impl.owner_ = this; - - if (this != &other_service) - { - // Insert implementation into linked list of all implementations. - impl.next_ = other_service.impl_list_; - impl.prev_ = 0; - if (other_service.impl_list_) - other_service.impl_list_->prev_ = &impl; - other_service.impl_list_ = &impl; - } - - // We must not hold the lock while calling UnregisterWaitEx. This is because - // the registered callback function might be invoked while we are waiting for - // UnregisterWaitEx to complete. - lock.unlock(); - - if (impl.wait_handle_ != INVALID_HANDLE_VALUE) - ::UnregisterWaitEx(impl.wait_handle_, INVALID_HANDLE_VALUE); - - if (!impl.op_queue_.empty()) - register_wait_callback(impl, lock); -} - -void win_object_handle_service::destroy( - win_object_handle_service::implementation_type& impl) -{ - mutex::scoped_lock lock(mutex_); - - // Remove implementation from linked list of all implementations. - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; - - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((io_context_.context(), "object_handle", - &impl, reinterpret_cast(impl.wait_handle_), "close")); - - HANDLE wait_handle = impl.wait_handle_; - impl.wait_handle_ = INVALID_HANDLE_VALUE; - - op_queue ops; - while (wait_op* op = impl.op_queue_.front()) - { - op->ec_ = asio::error::operation_aborted; - impl.op_queue_.pop(); - ops.push(op); - } - - // We must not hold the lock while calling UnregisterWaitEx. This is - // because the registered callback function might be invoked while we are - // waiting for UnregisterWaitEx to complete. - lock.unlock(); - - if (wait_handle != INVALID_HANDLE_VALUE) - ::UnregisterWaitEx(wait_handle, INVALID_HANDLE_VALUE); - - ::CloseHandle(impl.handle_); - impl.handle_ = INVALID_HANDLE_VALUE; - - io_context_.post_deferred_completions(ops); - } -} - -asio::error_code win_object_handle_service::assign( - win_object_handle_service::implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - impl.handle_ = handle; - ec = asio::error_code(); - return ec; -} - -asio::error_code win_object_handle_service::close( - win_object_handle_service::implementation_type& impl, - asio::error_code& ec) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((io_context_.context(), "object_handle", - &impl, reinterpret_cast(impl.wait_handle_), "close")); - - mutex::scoped_lock lock(mutex_); - - HANDLE wait_handle = impl.wait_handle_; - impl.wait_handle_ = INVALID_HANDLE_VALUE; - - op_queue completed_ops; - while (wait_op* op = impl.op_queue_.front()) - { - impl.op_queue_.pop(); - op->ec_ = asio::error::operation_aborted; - completed_ops.push(op); - } - - // We must not hold the lock while calling UnregisterWaitEx. This is - // because the registered callback function might be invoked while we are - // waiting for UnregisterWaitEx to complete. - lock.unlock(); - - if (wait_handle != INVALID_HANDLE_VALUE) - ::UnregisterWaitEx(wait_handle, INVALID_HANDLE_VALUE); - - if (::CloseHandle(impl.handle_)) - { - impl.handle_ = INVALID_HANDLE_VALUE; - ec = asio::error_code(); - } - else - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - - io_context_.post_deferred_completions(completed_ops); - } - else - { - ec = asio::error_code(); - } - - return ec; -} - -asio::error_code win_object_handle_service::cancel( - win_object_handle_service::implementation_type& impl, - asio::error_code& ec) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((io_context_.context(), "object_handle", - &impl, reinterpret_cast(impl.wait_handle_), "cancel")); - - mutex::scoped_lock lock(mutex_); - - HANDLE wait_handle = impl.wait_handle_; - impl.wait_handle_ = INVALID_HANDLE_VALUE; - - op_queue completed_ops; - while (wait_op* op = impl.op_queue_.front()) - { - op->ec_ = asio::error::operation_aborted; - impl.op_queue_.pop(); - completed_ops.push(op); - } - - // We must not hold the lock while calling UnregisterWaitEx. This is - // because the registered callback function might be invoked while we are - // waiting for UnregisterWaitEx to complete. - lock.unlock(); - - if (wait_handle != INVALID_HANDLE_VALUE) - ::UnregisterWaitEx(wait_handle, INVALID_HANDLE_VALUE); - - ec = asio::error_code(); - - io_context_.post_deferred_completions(completed_ops); - } - else - { - ec = asio::error::bad_descriptor; - } - - return ec; -} - -void win_object_handle_service::wait( - win_object_handle_service::implementation_type& impl, - asio::error_code& ec) -{ - switch (::WaitForSingleObject(impl.handle_, INFINITE)) - { - case WAIT_FAILED: - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - break; - } - case WAIT_OBJECT_0: - case WAIT_ABANDONED: - default: - ec = asio::error_code(); - break; - } -} - -void win_object_handle_service::start_wait_op( - win_object_handle_service::implementation_type& impl, wait_op* op) -{ - io_context_.work_started(); - - if (is_open(impl)) - { - mutex::scoped_lock lock(mutex_); - - if (!shutdown_) - { - impl.op_queue_.push(op); - - // Only the first operation to be queued gets to register a wait callback. - // Subsequent operations have to wait for the first to finish. - if (impl.op_queue_.front() == op) - register_wait_callback(impl, lock); - } - else - { - lock.unlock(); - io_context_.post_deferred_completion(op); - } - } - else - { - op->ec_ = asio::error::bad_descriptor; - io_context_.post_deferred_completion(op); - } -} - -void win_object_handle_service::register_wait_callback( - win_object_handle_service::implementation_type& impl, - mutex::scoped_lock& lock) -{ - lock.lock(); - - if (!RegisterWaitForSingleObject(&impl.wait_handle_, - impl.handle_, &win_object_handle_service::wait_callback, - &impl, INFINITE, WT_EXECUTEONLYONCE)) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - - op_queue completed_ops; - while (wait_op* op = impl.op_queue_.front()) - { - op->ec_ = ec; - impl.op_queue_.pop(); - completed_ops.push(op); - } - - lock.unlock(); - io_context_.post_deferred_completions(completed_ops); - } -} - -void win_object_handle_service::wait_callback(PVOID param, BOOLEAN) -{ - implementation_type* impl = static_cast(param); - mutex::scoped_lock lock(impl->owner_->mutex_); - - if (impl->wait_handle_ != INVALID_HANDLE_VALUE) - { - ::UnregisterWaitEx(impl->wait_handle_, NULL); - impl->wait_handle_ = INVALID_HANDLE_VALUE; - } - - if (wait_op* op = impl->op_queue_.front()) - { - op_queue completed_ops; - - op->ec_ = asio::error_code(); - impl->op_queue_.pop(); - completed_ops.push(op); - - if (!impl->op_queue_.empty()) - { - if (!RegisterWaitForSingleObject(&impl->wait_handle_, - impl->handle_, &win_object_handle_service::wait_callback, - param, INFINITE, WT_EXECUTEONLYONCE)) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - - while ((op = impl->op_queue_.front()) != 0) - { - op->ec_ = ec; - impl->op_queue_.pop(); - completed_ops.push(op); - } - } - } - - io_context_impl& ioc = impl->owner_->io_context_; - lock.unlock(); - ioc.post_deferred_completions(completed_ops); - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - -#endif // ASIO_DETAIL_IMPL_WIN_OBJECT_HANDLE_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_static_mutex.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_static_mutex.ipp deleted file mode 100644 index 42089bd..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_static_mutex.ipp +++ /dev/null @@ -1,136 +0,0 @@ -// -// detail/impl/win_static_mutex.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_WIN_STATIC_MUTEX_IPP -#define ASIO_DETAIL_IMPL_WIN_STATIC_MUTEX_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) - -#include -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_static_mutex.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -void win_static_mutex::init() -{ - int error = do_init(); - asio::error_code ec(error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "static_mutex"); -} - -int win_static_mutex::do_init() -{ - using namespace std; // For sprintf. - wchar_t mutex_name[128]; -#if defined(ASIO_HAS_SECURE_RTL) - swprintf_s( -#else // defined(ASIO_HAS_SECURE_RTL) - _snwprintf( -#endif // defined(ASIO_HAS_SECURE_RTL) - mutex_name, 128, L"asio-58CCDC44-6264-4842-90C2-F3C545CB8AA7-%u-%p", - static_cast(::GetCurrentProcessId()), this); - -#if defined(ASIO_WINDOWS_APP) - HANDLE mutex = ::CreateMutexExW(0, mutex_name, CREATE_MUTEX_INITIAL_OWNER, 0); -#else // defined(ASIO_WINDOWS_APP) - HANDLE mutex = ::CreateMutexW(0, TRUE, mutex_name); -#endif // defined(ASIO_WINDOWS_APP) - DWORD last_error = ::GetLastError(); - if (mutex == 0) - return ::GetLastError(); - - if (last_error == ERROR_ALREADY_EXISTS) - { -#if defined(ASIO_WINDOWS_APP) - ::WaitForSingleObjectEx(mutex, INFINITE, false); -#else // defined(ASIO_WINDOWS_APP) - ::WaitForSingleObject(mutex, INFINITE); -#endif // defined(ASIO_WINDOWS_APP) - } - - if (initialised_) - { - ::ReleaseMutex(mutex); - ::CloseHandle(mutex); - return 0; - } - -#if defined(__MINGW32__) - // Not sure if MinGW supports structured exception handling, so for now - // we'll just call the Windows API and hope. -# if defined(UNDER_CE) - ::InitializeCriticalSection(&crit_section_); -# else - if (!::InitializeCriticalSectionAndSpinCount(&crit_section_, 0x80000000)) - { - last_error = ::GetLastError(); - ::ReleaseMutex(mutex); - ::CloseHandle(mutex); - return last_error; - } -# endif -#else - __try - { -# if defined(UNDER_CE) - ::InitializeCriticalSection(&crit_section_); -# elif defined(ASIO_WINDOWS_APP) - if (!::InitializeCriticalSectionEx(&crit_section_, 0, 0)) - { - last_error = ::GetLastError(); - ::ReleaseMutex(mutex); - ::CloseHandle(mutex); - return last_error; - } -# else - if (!::InitializeCriticalSectionAndSpinCount(&crit_section_, 0x80000000)) - { - last_error = ::GetLastError(); - ::ReleaseMutex(mutex); - ::CloseHandle(mutex); - return last_error; - } -# endif - } - __except(GetExceptionCode() == STATUS_NO_MEMORY - ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) - { - ::ReleaseMutex(mutex); - ::CloseHandle(mutex); - return ERROR_OUTOFMEMORY; - } -#endif - - initialised_ = true; - ::ReleaseMutex(mutex); - ::CloseHandle(mutex); - return 0; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_IMPL_WIN_STATIC_MUTEX_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_thread.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_thread.ipp deleted file mode 100644 index ed6dbaf..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_thread.ipp +++ /dev/null @@ -1,150 +0,0 @@ -// -// detail/impl/win_thread.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_WIN_THREAD_IPP -#define ASIO_DETAIL_IMPL_WIN_THREAD_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_APP) \ - && !defined(UNDER_CE) - -#include -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_thread.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -win_thread::~win_thread() -{ - ::CloseHandle(thread_); - - // The exit_event_ handle is deliberately allowed to leak here since it - // is an error for the owner of an internal thread not to join() it. -} - -void win_thread::join() -{ - HANDLE handles[2] = { exit_event_, thread_ }; - ::WaitForMultipleObjects(2, handles, FALSE, INFINITE); - ::CloseHandle(exit_event_); - if (terminate_threads()) - { - ::TerminateThread(thread_, 0); - } - else - { - ::QueueUserAPC(apc_function, thread_, 0); - ::WaitForSingleObject(thread_, INFINITE); - } -} - -std::size_t win_thread::hardware_concurrency() -{ - SYSTEM_INFO system_info; - ::GetSystemInfo(&system_info); - return system_info.dwNumberOfProcessors; -} - -void win_thread::start_thread(func_base* arg, unsigned int stack_size) -{ - ::HANDLE entry_event = 0; - arg->entry_event_ = entry_event = ::CreateEventW(0, true, false, 0); - if (!entry_event) - { - DWORD last_error = ::GetLastError(); - delete arg; - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "thread.entry_event"); - } - - arg->exit_event_ = exit_event_ = ::CreateEventW(0, true, false, 0); - if (!exit_event_) - { - DWORD last_error = ::GetLastError(); - delete arg; - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "thread.exit_event"); - } - - unsigned int thread_id = 0; - thread_ = reinterpret_cast(::_beginthreadex(0, - stack_size, win_thread_function, arg, 0, &thread_id)); - if (!thread_) - { - DWORD last_error = ::GetLastError(); - delete arg; - if (entry_event) - ::CloseHandle(entry_event); - if (exit_event_) - ::CloseHandle(exit_event_); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "thread"); - } - - if (entry_event) - { - ::WaitForSingleObject(entry_event, INFINITE); - ::CloseHandle(entry_event); - } -} - -unsigned int __stdcall win_thread_function(void* arg) -{ - win_thread::auto_func_base_ptr func = { - static_cast(arg) }; - - ::SetEvent(func.ptr->entry_event_); - - func.ptr->run(); - - // Signal that the thread has finished its work, but rather than returning go - // to sleep to put the thread into a well known state. If the thread is being - // joined during global object destruction then it may be killed using - // TerminateThread (to avoid a deadlock in DllMain). Otherwise, the SleepEx - // call will be interrupted using QueueUserAPC and the thread will shut down - // cleanly. - HANDLE exit_event = func.ptr->exit_event_; - delete func.ptr; - func.ptr = 0; - ::SetEvent(exit_event); - ::SleepEx(INFINITE, TRUE); - - return 0; -} - -#if defined(WINVER) && (WINVER < 0x0500) -void __stdcall apc_function(ULONG) {} -#else -void __stdcall apc_function(ULONG_PTR) {} -#endif - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_APP) - // && !defined(UNDER_CE) - -#endif // ASIO_DETAIL_IMPL_WIN_THREAD_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_tss_ptr.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_tss_ptr.ipp deleted file mode 100644 index 61df0ce..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_tss_ptr.ipp +++ /dev/null @@ -1,57 +0,0 @@ -// -// detail/impl/win_tss_ptr.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_WIN_TSS_PTR_IPP -#define ASIO_DETAIL_IMPL_WIN_TSS_PTR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) - -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_tss_ptr.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -DWORD win_tss_ptr_create() -{ -#if defined(UNDER_CE) - const DWORD out_of_indexes = 0xFFFFFFFF; -#else - const DWORD out_of_indexes = TLS_OUT_OF_INDEXES; -#endif - - DWORD tss_key = ::TlsAlloc(); - if (tss_key == out_of_indexes) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "tss"); - } - return tss_key; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_IMPL_WIN_TSS_PTR_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp b/Sources/Vendor/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp deleted file mode 100644 index 288ca8b..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +++ /dev/null @@ -1,629 +0,0 @@ -// -// detail/impl/winrt_ssocket_service_base.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_WINRT_SSOCKET_SERVICE_BASE_IPP -#define ASIO_DETAIL_IMPL_WINRT_SSOCKET_SERVICE_BASE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include -#include "asio/detail/winrt_ssocket_service_base.hpp" -#include "asio/detail/winrt_async_op.hpp" -#include "asio/detail/winrt_utils.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -winrt_ssocket_service_base::winrt_ssocket_service_base( - asio::io_context& io_context) - : io_context_(use_service(io_context)), - async_manager_(use_service(io_context)), - mutex_(), - impl_list_(0) -{ -} - -void winrt_ssocket_service_base::base_shutdown() -{ - // Close all implementations, causing all operations to complete. - asio::detail::mutex::scoped_lock lock(mutex_); - base_implementation_type* impl = impl_list_; - while (impl) - { - asio::error_code ignored_ec; - close(*impl, ignored_ec); - impl = impl->next_; - } -} - -void winrt_ssocket_service_base::construct( - winrt_ssocket_service_base::base_implementation_type& impl) -{ - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; -} - -void winrt_ssocket_service_base::base_move_construct( - winrt_ssocket_service_base::base_implementation_type& impl, - winrt_ssocket_service_base::base_implementation_type& other_impl) -{ - impl.socket_ = other_impl.socket_; - other_impl.socket_ = nullptr; - - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; -} - -void winrt_ssocket_service_base::base_move_assign( - winrt_ssocket_service_base::base_implementation_type& impl, - winrt_ssocket_service_base& other_service, - winrt_ssocket_service_base::base_implementation_type& other_impl) -{ - asio::error_code ignored_ec; - close(impl, ignored_ec); - - if (this != &other_service) - { - // Remove implementation from linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; - } - - impl.socket_ = other_impl.socket_; - other_impl.socket_ = nullptr; - - if (this != &other_service) - { - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(other_service.mutex_); - impl.next_ = other_service.impl_list_; - impl.prev_ = 0; - if (other_service.impl_list_) - other_service.impl_list_->prev_ = &impl; - other_service.impl_list_ = &impl; - } -} - -void winrt_ssocket_service_base::destroy( - winrt_ssocket_service_base::base_implementation_type& impl) -{ - asio::error_code ignored_ec; - close(impl, ignored_ec); - - // Remove implementation from linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; -} - -asio::error_code winrt_ssocket_service_base::close( - winrt_ssocket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (impl.socket_) - { - delete impl.socket_; - impl.socket_ = nullptr; - } - - ec = asio::error_code(); - return ec; -} - -winrt_ssocket_service_base::native_handle_type -winrt_ssocket_service_base::release( - winrt_ssocket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (!is_open(impl)) - return nullptr; - - cancel(impl, ec); - if (ec) - return nullptr; - - native_handle_type tmp = impl.socket_; - impl.socket_ = nullptr; - return tmp; -} - -std::size_t winrt_ssocket_service_base::do_get_endpoint( - const base_implementation_type& impl, bool local, - void* addr, std::size_t addr_len, asio::error_code& ec) const -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return addr_len; - } - - try - { - std::string addr_string = winrt_utils::string(local - ? impl.socket_->Information->LocalAddress->CanonicalName - : impl.socket_->Information->RemoteAddress->CanonicalName); - unsigned short port = winrt_utils::integer(local - ? impl.socket_->Information->LocalPort - : impl.socket_->Information->RemotePort); - unsigned long scope = 0; - - switch (reinterpret_cast(addr)->sa_family) - { - case ASIO_OS_DEF(AF_INET): - if (addr_len < sizeof(sockaddr_in4_type)) - { - ec = asio::error::invalid_argument; - return addr_len; - } - else - { - socket_ops::inet_pton(ASIO_OS_DEF(AF_INET), addr_string.c_str(), - &reinterpret_cast(addr)->sin_addr, &scope, ec); - reinterpret_cast(addr)->sin_port - = socket_ops::host_to_network_short(port); - ec = asio::error_code(); - return sizeof(sockaddr_in4_type); - } - case ASIO_OS_DEF(AF_INET6): - if (addr_len < sizeof(sockaddr_in6_type)) - { - ec = asio::error::invalid_argument; - return addr_len; - } - else - { - socket_ops::inet_pton(ASIO_OS_DEF(AF_INET6), addr_string.c_str(), - &reinterpret_cast(addr)->sin6_addr, &scope, ec); - reinterpret_cast(addr)->sin6_port - = socket_ops::host_to_network_short(port); - ec = asio::error_code(); - return sizeof(sockaddr_in6_type); - } - default: - ec = asio::error::address_family_not_supported; - return addr_len; - } - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - return addr_len; - } -} - -asio::error_code winrt_ssocket_service_base::do_set_option( - winrt_ssocket_service_base::base_implementation_type& impl, - int level, int optname, const void* optval, - std::size_t optlen, asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return ec; - } - - try - { - if (level == ASIO_OS_DEF(SOL_SOCKET) - && optname == ASIO_OS_DEF(SO_KEEPALIVE)) - { - if (optlen == sizeof(int)) - { - int value = 0; - std::memcpy(&value, optval, optlen); - impl.socket_->Control->KeepAlive = !!value; - ec = asio::error_code(); - } - else - { - ec = asio::error::invalid_argument; - } - } - else if (level == ASIO_OS_DEF(IPPROTO_TCP) - && optname == ASIO_OS_DEF(TCP_NODELAY)) - { - if (optlen == sizeof(int)) - { - int value = 0; - std::memcpy(&value, optval, optlen); - impl.socket_->Control->NoDelay = !!value; - ec = asio::error_code(); - } - else - { - ec = asio::error::invalid_argument; - } - } - else - { - ec = asio::error::invalid_argument; - } - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - } - - return ec; -} - -void winrt_ssocket_service_base::do_get_option( - const winrt_ssocket_service_base::base_implementation_type& impl, - int level, int optname, void* optval, - std::size_t* optlen, asio::error_code& ec) const -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return; - } - - try - { - if (level == ASIO_OS_DEF(SOL_SOCKET) - && optname == ASIO_OS_DEF(SO_KEEPALIVE)) - { - if (*optlen >= sizeof(int)) - { - int value = impl.socket_->Control->KeepAlive ? 1 : 0; - std::memcpy(optval, &value, sizeof(int)); - *optlen = sizeof(int); - ec = asio::error_code(); - } - else - { - ec = asio::error::invalid_argument; - } - } - else if (level == ASIO_OS_DEF(IPPROTO_TCP) - && optname == ASIO_OS_DEF(TCP_NODELAY)) - { - if (*optlen >= sizeof(int)) - { - int value = impl.socket_->Control->NoDelay ? 1 : 0; - std::memcpy(optval, &value, sizeof(int)); - *optlen = sizeof(int); - ec = asio::error_code(); - } - else - { - ec = asio::error::invalid_argument; - } - } - else - { - ec = asio::error::invalid_argument; - } - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - } -} - -asio::error_code winrt_ssocket_service_base::do_connect( - winrt_ssocket_service_base::base_implementation_type& impl, - const void* addr, asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return ec; - } - - char addr_string[max_addr_v6_str_len]; - unsigned short port; - switch (reinterpret_cast(addr)->sa_family) - { - case ASIO_OS_DEF(AF_INET): - socket_ops::inet_ntop(ASIO_OS_DEF(AF_INET), - &reinterpret_cast(addr)->sin_addr, - addr_string, sizeof(addr_string), 0, ec); - port = socket_ops::network_to_host_short( - reinterpret_cast(addr)->sin_port); - break; - case ASIO_OS_DEF(AF_INET6): - socket_ops::inet_ntop(ASIO_OS_DEF(AF_INET6), - &reinterpret_cast(addr)->sin6_addr, - addr_string, sizeof(addr_string), 0, ec); - port = socket_ops::network_to_host_short( - reinterpret_cast(addr)->sin6_port); - break; - default: - ec = asio::error::address_family_not_supported; - return ec; - } - - if (!ec) try - { - async_manager_.sync(impl.socket_->ConnectAsync( - ref new Windows::Networking::HostName( - winrt_utils::string(addr_string)), - winrt_utils::string(port)), ec); - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - } - - return ec; -} - -void winrt_ssocket_service_base::start_connect_op( - winrt_ssocket_service_base::base_implementation_type& impl, - const void* addr, winrt_async_op* op, bool is_continuation) -{ - if (!is_open(impl)) - { - op->ec_ = asio::error::bad_descriptor; - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - char addr_string[max_addr_v6_str_len]; - unsigned short port = 0; - switch (reinterpret_cast(addr)->sa_family) - { - case ASIO_OS_DEF(AF_INET): - socket_ops::inet_ntop(ASIO_OS_DEF(AF_INET), - &reinterpret_cast(addr)->sin_addr, - addr_string, sizeof(addr_string), 0, op->ec_); - port = socket_ops::network_to_host_short( - reinterpret_cast(addr)->sin_port); - break; - case ASIO_OS_DEF(AF_INET6): - socket_ops::inet_ntop(ASIO_OS_DEF(AF_INET6), - &reinterpret_cast(addr)->sin6_addr, - addr_string, sizeof(addr_string), 0, op->ec_); - port = socket_ops::network_to_host_short( - reinterpret_cast(addr)->sin6_port); - break; - default: - op->ec_ = asio::error::address_family_not_supported; - break; - } - - if (op->ec_) - { - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - try - { - async_manager_.async(impl.socket_->ConnectAsync( - ref new Windows::Networking::HostName( - winrt_utils::string(addr_string)), - winrt_utils::string(port)), op); - } - catch (Platform::Exception^ e) - { - op->ec_ = asio::error_code( - e->HResult, asio::system_category()); - io_context_.post_immediate_completion(op, is_continuation); - } -} - -std::size_t winrt_ssocket_service_base::do_send( - winrt_ssocket_service_base::base_implementation_type& impl, - const asio::const_buffer& data, - socket_base::message_flags flags, asio::error_code& ec) -{ - if (flags) - { - ec = asio::error::operation_not_supported; - return 0; - } - - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return 0; - } - - try - { - buffer_sequence_adapter bufs(asio::buffer(data)); - - if (bufs.all_empty()) - { - ec = asio::error_code(); - return 0; - } - - return async_manager_.sync( - impl.socket_->OutputStream->WriteAsync(bufs.buffers()[0]), ec); - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - return 0; - } -} - -void winrt_ssocket_service_base::start_send_op( - winrt_ssocket_service_base::base_implementation_type& impl, - const asio::const_buffer& data, socket_base::message_flags flags, - winrt_async_op* op, bool is_continuation) -{ - if (flags) - { - op->ec_ = asio::error::operation_not_supported; - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - if (!is_open(impl)) - { - op->ec_ = asio::error::bad_descriptor; - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - try - { - buffer_sequence_adapter bufs(asio::buffer(data)); - - if (bufs.all_empty()) - { - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - async_manager_.async( - impl.socket_->OutputStream->WriteAsync(bufs.buffers()[0]), op); - } - catch (Platform::Exception^ e) - { - op->ec_ = asio::error_code(e->HResult, - asio::system_category()); - io_context_.post_immediate_completion(op, is_continuation); - } -} - -std::size_t winrt_ssocket_service_base::do_receive( - winrt_ssocket_service_base::base_implementation_type& impl, - const asio::mutable_buffer& data, - socket_base::message_flags flags, asio::error_code& ec) -{ - if (flags) - { - ec = asio::error::operation_not_supported; - return 0; - } - - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return 0; - } - - try - { - buffer_sequence_adapter bufs(asio::buffer(data)); - - if (bufs.all_empty()) - { - ec = asio::error_code(); - return 0; - } - - async_manager_.sync( - impl.socket_->InputStream->ReadAsync( - bufs.buffers()[0], bufs.buffers()[0]->Capacity, - Windows::Storage::Streams::InputStreamOptions::Partial), ec); - - std::size_t bytes_transferred = bufs.buffers()[0]->Length; - if (bytes_transferred == 0 && !ec) - { - ec = asio::error::eof; - } - - return bytes_transferred; - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - return 0; - } -} - -void winrt_ssocket_service_base::start_receive_op( - winrt_ssocket_service_base::base_implementation_type& impl, - const asio::mutable_buffer& data, socket_base::message_flags flags, - winrt_async_op* op, - bool is_continuation) -{ - if (flags) - { - op->ec_ = asio::error::operation_not_supported; - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - if (!is_open(impl)) - { - op->ec_ = asio::error::bad_descriptor; - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - try - { - buffer_sequence_adapter bufs(asio::buffer(data)); - - if (bufs.all_empty()) - { - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - async_manager_.async( - impl.socket_->InputStream->ReadAsync( - bufs.buffers()[0], bufs.buffers()[0]->Capacity, - Windows::Storage::Streams::InputStreamOptions::Partial), op); - } - catch (Platform::Exception^ e) - { - op->ec_ = asio::error_code(e->HResult, - asio::system_category()); - io_context_.post_immediate_completion(op, is_continuation); - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_IMPL_WINRT_SSOCKET_SERVICE_BASE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp b/Sources/Vendor/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp deleted file mode 100644 index 856378f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +++ /dev/null @@ -1,92 +0,0 @@ -// -// detail/impl/winrt_timer_scheduler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_HPP -#define ASIO_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -void winrt_timer_scheduler::add_timer_queue(timer_queue& queue) -{ - do_add_timer_queue(queue); -} - -// Remove a timer queue from the reactor. -template -void winrt_timer_scheduler::remove_timer_queue(timer_queue& queue) -{ - do_remove_timer_queue(queue); -} - -template -void winrt_timer_scheduler::schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - { - io_context_.post_immediate_completion(op, false); - return; - } - - bool earliest = queue.enqueue_timer(time, timer, op); - io_context_.work_started(); - if (earliest) - event_.signal(lock); -} - -template -std::size_t winrt_timer_scheduler::cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - op_queue ops; - std::size_t n = queue.cancel_timer(timer, ops, max_cancelled); - lock.unlock(); - io_context_.post_deferred_completions(ops); - return n; -} - -template -void winrt_timer_scheduler::move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& to, - typename timer_queue::per_timer_data& from) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - op_queue ops; - queue.cancel_timer(to, ops); - queue.move_timer(to, from); - lock.unlock(); - scheduler_.post_deferred_completions(ops); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp b/Sources/Vendor/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp deleted file mode 100644 index ef21399..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +++ /dev/null @@ -1,122 +0,0 @@ -// -// detail/impl/winrt_timer_scheduler.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_IPP -#define ASIO_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/winrt_timer_scheduler.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -winrt_timer_scheduler::winrt_timer_scheduler( - asio::io_context& io_context) - : asio::detail::service_base(io_context), - io_context_(use_service(io_context)), - mutex_(), - event_(), - timer_queues_(), - thread_(0), - stop_thread_(false), - shutdown_(false) -{ - thread_ = new asio::detail::thread( - bind_handler(&winrt_timer_scheduler::call_run_thread, this)); -} - -winrt_timer_scheduler::~winrt_timer_scheduler() -{ - shutdown(); -} - -void winrt_timer_scheduler::shutdown() -{ - asio::detail::mutex::scoped_lock lock(mutex_); - shutdown_ = true; - stop_thread_ = true; - event_.signal(lock); - lock.unlock(); - - if (thread_) - { - thread_->join(); - delete thread_; - thread_ = 0; - } - - op_queue ops; - timer_queues_.get_all_timers(ops); - io_context_.abandon_operations(ops); -} - -void winrt_timer_scheduler::notify_fork(asio::io_context::fork_event) -{ -} - -void winrt_timer_scheduler::init_task() -{ -} - -void winrt_timer_scheduler::run_thread() -{ - asio::detail::mutex::scoped_lock lock(mutex_); - while (!stop_thread_) - { - const long max_wait_duration = 5 * 60 * 1000000; - long wait_duration = timer_queues_.wait_duration_usec(max_wait_duration); - event_.wait_for_usec(lock, wait_duration); - event_.clear(lock); - op_queue ops; - timer_queues_.get_ready_timers(ops); - if (!ops.empty()) - { - lock.unlock(); - io_context_.post_deferred_completions(ops); - lock.lock(); - } - } -} - -void winrt_timer_scheduler::call_run_thread(winrt_timer_scheduler* scheduler) -{ - scheduler->run_thread(); -} - -void winrt_timer_scheduler::do_add_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.insert(&queue); -} - -void winrt_timer_scheduler::do_remove_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.erase(&queue); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/winsock_init.ipp b/Sources/Vendor/asio/include/asio/detail/impl/winsock_init.ipp deleted file mode 100644 index da4b0c0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/winsock_init.ipp +++ /dev/null @@ -1,82 +0,0 @@ -// -// detail/impl/winsock_init.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IMPL_WINSOCK_INIT_IPP -#define ASIO_DETAIL_IMPL_WINSOCK_INIT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#include "asio/detail/socket_types.hpp" -#include "asio/detail/winsock_init.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -void winsock_init_base::startup(data& d, - unsigned char major, unsigned char minor) -{ - if (::InterlockedIncrement(&d.init_count_) == 1) - { - WSADATA wsa_data; - long result = ::WSAStartup(MAKEWORD(major, minor), &wsa_data); - ::InterlockedExchange(&d.result_, result); - } -} - -void winsock_init_base::manual_startup(data& d) -{ - if (::InterlockedIncrement(&d.init_count_) == 1) - { - ::InterlockedExchange(&d.result_, 0); - } -} - -void winsock_init_base::cleanup(data& d) -{ - if (::InterlockedDecrement(&d.init_count_) == 0) - { - ::WSACleanup(); - } -} - -void winsock_init_base::manual_cleanup(data& d) -{ - ::InterlockedDecrement(&d.init_count_); -} - -void winsock_init_base::throw_on_error(data& d) -{ - long result = ::InterlockedExchangeAdd(&d.result_, 0); - if (result != 0) - { - asio::error_code ec(result, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "winsock"); - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#endif // ASIO_DETAIL_IMPL_WINSOCK_INIT_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/io_control.hpp b/Sources/Vendor/asio/include/asio/detail/io_control.hpp deleted file mode 100644 index 12f35e0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/io_control.hpp +++ /dev/null @@ -1,84 +0,0 @@ -// -// detail/io_control.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IO_CONTROL_HPP -#define ASIO_DETAIL_IO_CONTROL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { -namespace io_control { - -// I/O control command for getting number of bytes available. -class bytes_readable -{ -public: - // Default constructor. - bytes_readable() - : value_(0) - { - } - - // Construct with a specific command value. - bytes_readable(std::size_t value) - : value_(static_cast(value)) - { - } - - // Get the name of the IO control command. - int name() const - { - return static_cast(ASIO_OS_DEF(FIONREAD)); - } - - // Set the value of the I/O control command. - void set(std::size_t value) - { - value_ = static_cast(value); - } - - // Get the current value of the I/O control command. - std::size_t get() const - { - return static_cast(value_); - } - - // Get the address of the command data. - detail::ioctl_arg_type* data() - { - return &value_; - } - - // Get the address of the command data. - const detail::ioctl_arg_type* data() const - { - return &value_; - } - -private: - detail::ioctl_arg_type value_; -}; - -} // namespace io_control -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IO_CONTROL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/is_buffer_sequence.hpp b/Sources/Vendor/asio/include/asio/detail/is_buffer_sequence.hpp deleted file mode 100644 index 69f9bbd..0000000 --- a/Sources/Vendor/asio/include/asio/detail/is_buffer_sequence.hpp +++ /dev/null @@ -1,263 +0,0 @@ -// -// detail/is_buffer_sequence.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IS_BUFFER_SEQUENCE_HPP -#define ASIO_DETAIL_IS_BUFFER_SEQUENCE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -class mutable_buffer; -class const_buffer; - -namespace detail { - -struct buffer_sequence_memfns_base -{ - void begin(); - void end(); - void size(); - void max_size(); - void capacity(); - void data(); - void prepare(); - void commit(); - void consume(); -}; - -template -struct buffer_sequence_memfns_derived - : T, buffer_sequence_memfns_base -{ -}; - -template -struct buffer_sequence_memfns_check -{ -}; - -template -char (&buffer_sequence_begin_helper(...))[2]; - -#if defined(ASIO_HAS_DECLTYPE) - -template -char buffer_sequence_begin_helper(T* t, - typename enable_if::value>::type*); - -#else // defined(ASIO_HAS_DECLTYPE) - -template -char buffer_sequence_begin_helper(T* t, - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::begin>*); - -#endif // defined(ASIO_HAS_DECLTYPE) - -template -char (&buffer_sequence_end_helper(...))[2]; - -#if defined(ASIO_HAS_DECLTYPE) - -template -char buffer_sequence_end_helper(T* t, - typename enable_if::value>::type*); - -#else // defined(ASIO_HAS_DECLTYPE) - -template -char buffer_sequence_end_helper(T* t, - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::end>*); - -#endif // defined(ASIO_HAS_DECLTYPE) - -template -char (&size_memfn_helper(...))[2]; - -template -char size_memfn_helper( - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::size>*); - -template -char (&max_size_memfn_helper(...))[2]; - -template -char max_size_memfn_helper( - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::max_size>*); - -template -char (&capacity_memfn_helper(...))[2]; - -template -char capacity_memfn_helper( - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::capacity>*); - -template -char (&data_memfn_helper(...))[2]; - -template -char data_memfn_helper( - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::data>*); - -template -char (&prepare_memfn_helper(...))[2]; - -template -char prepare_memfn_helper( - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::prepare>*); - -template -char (&commit_memfn_helper(...))[2]; - -template -char commit_memfn_helper( - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::commit>*); - -template -char (&consume_memfn_helper(...))[2]; - -template -char consume_memfn_helper( - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::consume>*); - -template -char (&buffer_sequence_element_type_helper(...))[2]; - -#if defined(ASIO_HAS_DECLTYPE) - -template -char buffer_sequence_element_type_helper(T* t, - typename enable_if::value>::type*); - -#else // defined(ASIO_HAS_DECLTYPE) - -template -char buffer_sequence_element_type_helper( - typename T::const_iterator*, - typename enable_if::value>::type*); - -#endif // defined(ASIO_HAS_DECLTYPE) - -template -char (&const_buffers_type_typedef_helper(...))[2]; - -template -char const_buffers_type_typedef_helper( - typename T::const_buffers_type*); - -template -char (&mutable_buffers_type_typedef_helper(...))[2]; - -template -char mutable_buffers_type_typedef_helper( - typename T::mutable_buffers_type*); - -template -struct is_buffer_sequence_class - : integral_constant(0)) != 1 && - sizeof(buffer_sequence_end_helper(0)) != 1 && - sizeof(buffer_sequence_element_type_helper(0, 0)) == 1> -{ -}; - -template -struct is_buffer_sequence - : conditional::value, - is_buffer_sequence_class, - false_type>::type -{ -}; - -template <> -struct is_buffer_sequence - : true_type -{ -}; - -template <> -struct is_buffer_sequence - : true_type -{ -}; - -template <> -struct is_buffer_sequence - : true_type -{ -}; - -template <> -struct is_buffer_sequence - : false_type -{ -}; - -template -struct is_dynamic_buffer_class - : integral_constant(0)) != 1 && - sizeof(max_size_memfn_helper(0)) != 1 && - sizeof(capacity_memfn_helper(0)) != 1 && - sizeof(data_memfn_helper(0)) != 1 && - sizeof(consume_memfn_helper(0)) != 1 && - sizeof(prepare_memfn_helper(0)) != 1 && - sizeof(commit_memfn_helper(0)) != 1 && - sizeof(const_buffers_type_typedef_helper(0)) == 1 && - sizeof(mutable_buffers_type_typedef_helper(0)) == 1> -{ -}; - -template -struct is_dynamic_buffer - : conditional::value, - is_dynamic_buffer_class, - false_type>::type -{ -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IS_BUFFER_SEQUENCE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/is_executor.hpp b/Sources/Vendor/asio/include/asio/detail/is_executor.hpp deleted file mode 100644 index 4584dd0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/is_executor.hpp +++ /dev/null @@ -1,126 +0,0 @@ -// -// detail/is_executor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_IS_EXECUTOR_HPP -#define ASIO_DETAIL_IS_EXECUTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct executor_memfns_base -{ - void context(); - void on_work_started(); - void on_work_finished(); - void dispatch(); - void post(); - void defer(); -}; - -template -struct executor_memfns_derived - : T, executor_memfns_base -{ -}; - -template -struct executor_memfns_check -{ -}; - -template -char (&context_memfn_helper(...))[2]; - -template -char context_memfn_helper( - executor_memfns_check< - void (executor_memfns_base::*)(), - &executor_memfns_derived::context>*); - -template -char (&on_work_started_memfn_helper(...))[2]; - -template -char on_work_started_memfn_helper( - executor_memfns_check< - void (executor_memfns_base::*)(), - &executor_memfns_derived::on_work_started>*); - -template -char (&on_work_finished_memfn_helper(...))[2]; - -template -char on_work_finished_memfn_helper( - executor_memfns_check< - void (executor_memfns_base::*)(), - &executor_memfns_derived::on_work_finished>*); - -template -char (&dispatch_memfn_helper(...))[2]; - -template -char dispatch_memfn_helper( - executor_memfns_check< - void (executor_memfns_base::*)(), - &executor_memfns_derived::dispatch>*); - -template -char (&post_memfn_helper(...))[2]; - -template -char post_memfn_helper( - executor_memfns_check< - void (executor_memfns_base::*)(), - &executor_memfns_derived::post>*); - -template -char (&defer_memfn_helper(...))[2]; - -template -char defer_memfn_helper( - executor_memfns_check< - void (executor_memfns_base::*)(), - &executor_memfns_derived::defer>*); - -template -struct is_executor_class - : integral_constant(0)) != 1 && - sizeof(on_work_started_memfn_helper(0)) != 1 && - sizeof(on_work_finished_memfn_helper(0)) != 1 && - sizeof(dispatch_memfn_helper(0)) != 1 && - sizeof(post_memfn_helper(0)) != 1 && - sizeof(defer_memfn_helper(0)) != 1> -{ -}; - -template -struct is_executor - : conditional::value, - is_executor_class, - false_type>::type -{ -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IS_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/keyword_tss_ptr.hpp b/Sources/Vendor/asio/include/asio/detail/keyword_tss_ptr.hpp deleted file mode 100644 index 2ae651a..0000000 --- a/Sources/Vendor/asio/include/asio/detail/keyword_tss_ptr.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// -// detail/keyword_tss_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_KEYWORD_TSS_PTR_HPP -#define ASIO_DETAIL_KEYWORD_TSS_PTR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_THREAD_KEYWORD_EXTENSION) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class keyword_tss_ptr - : private noncopyable -{ -public: - // Constructor. - keyword_tss_ptr() - { - } - - // Destructor. - ~keyword_tss_ptr() - { - } - - // Get the value. - operator T*() const - { - return value_; - } - - // Set the value. - void operator=(T* value) - { - value_ = value; - } - -private: - static ASIO_THREAD_KEYWORD T* value_; -}; - -template -ASIO_THREAD_KEYWORD T* keyword_tss_ptr::value_; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_THREAD_KEYWORD_EXTENSION) - -#endif // ASIO_DETAIL_KEYWORD_TSS_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/kqueue_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/kqueue_reactor.hpp deleted file mode 100644 index 43cb9f9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/kqueue_reactor.hpp +++ /dev/null @@ -1,242 +0,0 @@ -// -// detail/kqueue_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2005 Stefan Arentz (stefan at soze dot com) -// -// Distributed under the 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 ASIO_DETAIL_KQUEUE_REACTOR_HPP -#define ASIO_DETAIL_KQUEUE_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_KQUEUE) - -#include -#include -#include -#include -#include "asio/detail/limits.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/object_pool.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/select_interrupter.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/timer_queue_base.hpp" -#include "asio/detail/timer_queue_set.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/error.hpp" -#include "asio/execution_context.hpp" - -// Older versions of Mac OS X may not define EV_OOBAND. -#if !defined(EV_OOBAND) -# define EV_OOBAND EV_FLAG1 -#endif // !defined(EV_OOBAND) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class scheduler; - -class kqueue_reactor - : public execution_context_service_base -{ -private: - // The mutex type used by this reactor. - typedef conditionally_enabled_mutex mutex; - -public: - enum op_types { read_op = 0, write_op = 1, - connect_op = 1, except_op = 2, max_ops = 3 }; - - // Per-descriptor queues. - struct descriptor_state - { - descriptor_state(bool locking) : mutex_(locking) {} - - friend class kqueue_reactor; - friend class object_pool_access; - - descriptor_state* next_; - descriptor_state* prev_; - - mutex mutex_; - int descriptor_; - int num_kevents_; // 1 == read only, 2 == read and write - op_queue op_queue_[max_ops]; - bool shutdown_; - }; - - // Per-descriptor data. - typedef descriptor_state* per_descriptor_data; - - // Constructor. - ASIO_DECL kqueue_reactor(asio::execution_context& ctx); - - // Destructor. - ASIO_DECL ~kqueue_reactor(); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Recreate internal descriptors following a fork. - ASIO_DECL void notify_fork( - asio::execution_context::fork_event fork_ev); - - // Initialise the task. - ASIO_DECL void init_task(); - - // Register a socket with the reactor. Returns 0 on success, system error - // code on failure. - ASIO_DECL int register_descriptor(socket_type descriptor, - per_descriptor_data& descriptor_data); - - // Register a descriptor with an associated single operation. Returns 0 on - // success, system error code on failure. - ASIO_DECL int register_internal_descriptor( - int op_type, socket_type descriptor, - per_descriptor_data& descriptor_data, reactor_op* op); - - // Move descriptor registration from one descriptor_data object to another. - ASIO_DECL void move_descriptor(socket_type descriptor, - per_descriptor_data& target_descriptor_data, - per_descriptor_data& source_descriptor_data); - - // Post a reactor operation for immediate completion. - void post_immediate_completion(reactor_op* op, bool is_continuation) - { - scheduler_.post_immediate_completion(op, is_continuation); - } - - // Start a new operation. The reactor operation will be performed when the - // given descriptor is flagged as ready, or an error has occurred. - ASIO_DECL void start_op(int op_type, socket_type descriptor, - per_descriptor_data& descriptor_data, reactor_op* op, - bool is_continuation, bool allow_speculative); - - // Cancel all operations associated with the given descriptor. The - // handlers associated with the descriptor will be invoked with the - // operation_aborted error. - ASIO_DECL void cancel_ops(socket_type descriptor, - per_descriptor_data& descriptor_data); - - // Cancel any operations that are running against the descriptor and remove - // its registration from the reactor. The reactor resources associated with - // the descriptor must be released by calling cleanup_descriptor_data. - ASIO_DECL void deregister_descriptor(socket_type descriptor, - per_descriptor_data& descriptor_data, bool closing); - - // Remove the descriptor's registration from the reactor. The reactor - // resources associated with the descriptor must be released by calling - // cleanup_descriptor_data. - ASIO_DECL void deregister_internal_descriptor( - socket_type descriptor, per_descriptor_data& descriptor_data); - - // Perform any post-deregistration cleanup tasks associated with the - // descriptor data. - ASIO_DECL void cleanup_descriptor_data( - per_descriptor_data& descriptor_data); - - // Add a new timer queue to the reactor. - template - void add_timer_queue(timer_queue& queue); - - // Remove a timer queue from the reactor. - template - void remove_timer_queue(timer_queue& queue); - - // Schedule a new operation in the given timer queue to expire at the - // specified absolute time. - template - void schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op); - - // Cancel the timer operations associated with the given token. Returns the - // number of operations that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled = (std::numeric_limits::max)()); - - // Move the timer operations associated with the given timer. - template - void move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source); - - // Run the kqueue loop. - ASIO_DECL void run(long usec, op_queue& ops); - - // Interrupt the kqueue loop. - ASIO_DECL void interrupt(); - -private: - // Create the kqueue file descriptor. Throws an exception if the descriptor - // cannot be created. - ASIO_DECL static int do_kqueue_create(); - - // Allocate a new descriptor state object. - ASIO_DECL descriptor_state* allocate_descriptor_state(); - - // Free an existing descriptor state object. - ASIO_DECL void free_descriptor_state(descriptor_state* s); - - // Helper function to add a new timer queue. - ASIO_DECL void do_add_timer_queue(timer_queue_base& queue); - - // Helper function to remove a timer queue. - ASIO_DECL void do_remove_timer_queue(timer_queue_base& queue); - - // Get the timeout value for the kevent call. - ASIO_DECL timespec* get_timeout(long usec, timespec& ts); - - // The scheduler used to post completions. - scheduler& scheduler_; - - // Mutex to protect access to internal data. - mutex mutex_; - - // The kqueue file descriptor. - int kqueue_fd_; - - // The interrupter is used to break a blocking kevent call. - select_interrupter interrupter_; - - // The timer queues. - timer_queue_set timer_queues_; - - // Whether the service has been shut down. - bool shutdown_; - - // Mutex to protect access to the registered descriptors. - mutex registered_descriptors_mutex_; - - // Keep track of all registered descriptors. - object_pool registered_descriptors_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/kqueue_reactor.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/kqueue_reactor.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_KQUEUE) - -#endif // ASIO_DETAIL_KQUEUE_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/limits.hpp b/Sources/Vendor/asio/include/asio/detail/limits.hpp deleted file mode 100644 index d32470d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/limits.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// -// detail/limits.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_LIMITS_HPP -#define ASIO_DETAIL_LIMITS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_BOOST_LIMITS) -# include -#else // defined(ASIO_HAS_BOOST_LIMITS) -# include -#endif // defined(ASIO_HAS_BOOST_LIMITS) - -#endif // ASIO_DETAIL_LIMITS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/local_free_on_block_exit.hpp b/Sources/Vendor/asio/include/asio/detail/local_free_on_block_exit.hpp deleted file mode 100644 index eba6b77..0000000 --- a/Sources/Vendor/asio/include/asio/detail/local_free_on_block_exit.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// detail/local_free_on_block_exit.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_LOCAL_FREE_ON_BLOCK_EXIT_HPP -#define ASIO_DETAIL_LOCAL_FREE_ON_BLOCK_EXIT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -#if !defined(ASIO_WINDOWS_APP) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class local_free_on_block_exit - : private noncopyable -{ -public: - // Constructor blocks all signals for the calling thread. - explicit local_free_on_block_exit(void* p) - : p_(p) - { - } - - // Destructor restores the previous signal mask. - ~local_free_on_block_exit() - { - ::LocalFree(p_); - } - -private: - void* p_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS_APP) -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#endif // ASIO_DETAIL_LOCAL_FREE_ON_BLOCK_EXIT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/macos_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/macos_fenced_block.hpp deleted file mode 100644 index bbac270..0000000 --- a/Sources/Vendor/asio/include/asio/detail/macos_fenced_block.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// -// detail/macos_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_MACOS_FENCED_BLOCK_HPP -#define ASIO_DETAIL_MACOS_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(__MACH__) && defined(__APPLE__) - -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class macos_fenced_block - : private noncopyable -{ -public: - enum half_t { half }; - enum full_t { full }; - - // Constructor for a half fenced block. - explicit macos_fenced_block(half_t) - { - } - - // Constructor for a full fenced block. - explicit macos_fenced_block(full_t) - { - OSMemoryBarrier(); - } - - // Destructor. - ~macos_fenced_block() - { - OSMemoryBarrier(); - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(__MACH__) && defined(__APPLE__) - -#endif // ASIO_DETAIL_MACOS_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/memory.hpp b/Sources/Vendor/asio/include/asio/detail/memory.hpp deleted file mode 100644 index b1ec497..0000000 --- a/Sources/Vendor/asio/include/asio/detail/memory.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// -// detail/memory.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_MEMORY_HPP -#define ASIO_DETAIL_MEMORY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include - -#if !defined(ASIO_HAS_STD_SHARED_PTR) -# include -# include -#endif // !defined(ASIO_HAS_STD_SHARED_PTR) - -#if !defined(ASIO_HAS_STD_ADDRESSOF) -# include -#endif // !defined(ASIO_HAS_STD_ADDRESSOF) - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_STD_SHARED_PTR) -using std::shared_ptr; -using std::weak_ptr; -#else // defined(ASIO_HAS_STD_SHARED_PTR) -using boost::shared_ptr; -using boost::weak_ptr; -#endif // defined(ASIO_HAS_STD_SHARED_PTR) - -#if defined(ASIO_HAS_STD_ADDRESSOF) -using std::addressof; -#else // defined(ASIO_HAS_STD_ADDRESSOF) -using boost::addressof; -#endif // defined(ASIO_HAS_STD_ADDRESSOF) - -} // namespace detail - -#if defined(ASIO_HAS_CXX11_ALLOCATORS) -using std::allocator_arg_t; -# define ASIO_USES_ALLOCATOR(t) \ - namespace std { \ - template \ - struct uses_allocator : true_type {}; \ - } \ - /**/ -# define ASIO_REBIND_ALLOC(alloc, t) \ - typename std::allocator_traits::template rebind_alloc - /**/ -#else // defined(ASIO_HAS_CXX11_ALLOCATORS) -struct allocator_arg_t {}; -# define ASIO_USES_ALLOCATOR(t) -# define ASIO_REBIND_ALLOC(alloc, t) \ - typename alloc::template rebind::other - /**/ -#endif // defined(ASIO_HAS_CXX11_ALLOCATORS) - -} // namespace asio - -#endif // ASIO_DETAIL_MEMORY_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/mutex.hpp b/Sources/Vendor/asio/include/asio/detail/mutex.hpp deleted file mode 100644 index 2f8f0b1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/mutex.hpp +++ /dev/null @@ -1,48 +0,0 @@ -// -// detail/mutex.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_MUTEX_HPP -#define ASIO_DETAIL_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_THREADS) -# include "asio/detail/null_mutex.hpp" -#elif defined(ASIO_WINDOWS) -# include "asio/detail/win_mutex.hpp" -#elif defined(ASIO_HAS_PTHREADS) -# include "asio/detail/posix_mutex.hpp" -#elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) -# include "asio/detail/std_mutex.hpp" -#else -# error Only Windows, POSIX and std::mutex are supported! -#endif - -namespace asio { -namespace detail { - -#if !defined(ASIO_HAS_THREADS) -typedef null_mutex mutex; -#elif defined(ASIO_WINDOWS) -typedef win_mutex mutex; -#elif defined(ASIO_HAS_PTHREADS) -typedef posix_mutex mutex; -#elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) -typedef std_mutex mutex; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/noncopyable.hpp b/Sources/Vendor/asio/include/asio/detail/noncopyable.hpp deleted file mode 100644 index 0c038e1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/noncopyable.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// -// detail/noncopyable.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_NONCOPYABLE_HPP -#define ASIO_DETAIL_NONCOPYABLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class noncopyable -{ -protected: - noncopyable() {} - ~noncopyable() {} -private: - noncopyable(const noncopyable&); - const noncopyable& operator=(const noncopyable&); -}; - -} // namespace detail - -using asio::detail::noncopyable; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_NONCOPYABLE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_event.hpp b/Sources/Vendor/asio/include/asio/detail/null_event.hpp deleted file mode 100644 index 5686a41..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_event.hpp +++ /dev/null @@ -1,100 +0,0 @@ -// -// detail/null_event.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_NULL_EVENT_HPP -#define ASIO_DETAIL_NULL_EVENT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class null_event - : private noncopyable -{ -public: - // Constructor. - null_event() - { - } - - // Destructor. - ~null_event() - { - } - - // Signal the event. (Retained for backward compatibility.) - template - void signal(Lock&) - { - } - - // Signal all waiters. - template - void signal_all(Lock&) - { - } - - // Unlock the mutex and signal one waiter. - template - void unlock_and_signal_one(Lock&) - { - } - - // If there's a waiter, unlock the mutex and signal it. - template - bool maybe_unlock_and_signal_one(Lock&) - { - return false; - } - - // Reset the event. - template - void clear(Lock&) - { - } - - // Wait for the event to become signalled. - template - void wait(Lock&) - { - do_wait(); - } - - // Timed wait for the event to become signalled. - template - bool wait_for_usec(Lock&, long usec) - { - do_wait_for_usec(usec); - return true; - } - -private: - ASIO_DECL static void do_wait(); - ASIO_DECL static void do_wait_for_usec(long usec); -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/null_event.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_NULL_EVENT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/null_fenced_block.hpp deleted file mode 100644 index 0275326..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_fenced_block.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// -// detail/null_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_NULL_FENCED_BLOCK_HPP -#define ASIO_DETAIL_NULL_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class null_fenced_block - : private noncopyable -{ -public: - enum half_or_full_t { half, full }; - - // Constructor. - explicit null_fenced_block(half_or_full_t) - { - } - - // Destructor. - ~null_fenced_block() - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_NULL_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_global.hpp b/Sources/Vendor/asio/include/asio/detail/null_global.hpp deleted file mode 100644 index 727dd3f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_global.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// detail/null_global.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_NULL_GLOBAL_HPP -#define ASIO_DETAIL_NULL_GLOBAL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -struct null_global_impl -{ - null_global_impl() - : ptr_(0) - { - } - - // Destructor automatically cleans up the global. - ~null_global_impl() - { - delete ptr_; - } - - static null_global_impl instance_; - T* ptr_; -}; - -template -null_global_impl null_global_impl::instance_; - -template -T& null_global() -{ - if (null_global_impl::instance_.ptr_ == 0) - null_global_impl::instance_.ptr_ = new T; - return *null_global_impl::instance_.ptr_; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_NULL_GLOBAL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/null_mutex.hpp deleted file mode 100644 index afe3fc0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_mutex.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// detail/null_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_NULL_MUTEX_HPP -#define ASIO_DETAIL_NULL_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_THREADS) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class null_mutex - : private noncopyable -{ -public: - typedef asio::detail::scoped_lock scoped_lock; - - // Constructor. - null_mutex() - { - } - - // Destructor. - ~null_mutex() - { - } - - // Lock the mutex. - void lock() - { - } - - // Unlock the mutex. - void unlock() - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_THREADS) - -#endif // ASIO_DETAIL_NULL_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/null_reactor.hpp deleted file mode 100644 index ca3c5fd..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_reactor.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// -// detail/null_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_NULL_REACTOR_HPP -#define ASIO_DETAIL_NULL_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) || defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/scheduler_operation.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class null_reactor - : public execution_context_service_base -{ -public: - // Constructor. - null_reactor(asio::execution_context& ctx) - : execution_context_service_base(ctx) - { - } - - // Destructor. - ~null_reactor() - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - } - - // No-op because should never be called. - void run(long /*usec*/, op_queue& /*ops*/) - { - } - - // No-op. - void interrupt() - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) || defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_NULL_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_signal_blocker.hpp b/Sources/Vendor/asio/include/asio/detail/null_signal_blocker.hpp deleted file mode 100644 index edfe820..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_signal_blocker.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// detail/null_signal_blocker.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_NULL_SIGNAL_BLOCKER_HPP -#define ASIO_DETAIL_NULL_SIGNAL_BLOCKER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_THREADS) \ - || defined(ASIO_WINDOWS) \ - || defined(ASIO_WINDOWS_RUNTIME) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class null_signal_blocker - : private noncopyable -{ -public: - // Constructor blocks all signals for the calling thread. - null_signal_blocker() - { - } - - // Destructor restores the previous signal mask. - ~null_signal_blocker() - { - } - - // Block all signals for the calling thread. - void block() - { - } - - // Restore the previous signal mask. - void unblock() - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_THREADS) - // || defined(ASIO_WINDOWS) - // || defined(ASIO_WINDOWS_RUNTIME) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - -#endif // ASIO_DETAIL_NULL_SIGNAL_BLOCKER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_socket_service.hpp b/Sources/Vendor/asio/include/asio/detail/null_socket_service.hpp deleted file mode 100644 index 109c6c7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_socket_service.hpp +++ /dev/null @@ -1,508 +0,0 @@ -// -// detail/null_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_NULL_SOCKET_SERVICE_HPP -#define ASIO_DETAIL_NULL_SOCKET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/buffer.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/socket_base.hpp" -#include "asio/detail/bind_handler.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class null_socket_service : - public service_base > -{ -public: - // The protocol type. - typedef Protocol protocol_type; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // The native type of a socket. - typedef int native_handle_type; - - // The implementation type of the socket. - struct implementation_type - { - }; - - // Constructor. - null_socket_service(asio::io_context& io_context) - : service_base >(io_context), - io_context_(io_context) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - } - - // Construct a new socket implementation. - void construct(implementation_type&) - { - } - - // Move-construct a new socket implementation. - void move_construct(implementation_type&, implementation_type&) - { - } - - // Move-assign from another socket implementation. - void move_assign(implementation_type&, - null_socket_service&, implementation_type&) - { - } - - // Move-construct a new socket implementation from another protocol type. - template - void converting_move_construct(implementation_type&, - null_socket_service&, - typename null_socket_service::implementation_type&) - { - } - - // Destroy a socket implementation. - void destroy(implementation_type&) - { - } - - // Open a new socket implementation. - asio::error_code open(implementation_type&, - const protocol_type&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Assign a native socket to a socket implementation. - asio::error_code assign(implementation_type&, const protocol_type&, - const native_handle_type&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Determine whether the socket is open. - bool is_open(const implementation_type&) const - { - return false; - } - - // Destroy a socket implementation. - asio::error_code close(implementation_type&, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Release ownership of the socket. - native_handle_type release(implementation_type&, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Get the native socket representation. - native_handle_type native_handle(implementation_type&) - { - return 0; - } - - // Cancel all operations associated with the socket. - asio::error_code cancel(implementation_type&, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type&, - asio::error_code& ec) const - { - ec = asio::error::operation_not_supported; - return false; - } - - // Determine the number of bytes available for reading. - std::size_t available(const implementation_type&, - asio::error_code& ec) const - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Place the socket into the state where it will listen for new connections. - asio::error_code listen(implementation_type&, - int, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Perform an IO control command on the socket. - template - asio::error_code io_control(implementation_type&, - IO_Control_Command&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Gets the non-blocking mode of the socket. - bool non_blocking(const implementation_type&) const - { - return false; - } - - // Sets the non-blocking mode of the socket. - asio::error_code non_blocking(implementation_type&, - bool, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const implementation_type&) const - { - return false; - } - - // Sets the non-blocking mode of the native socket implementation. - asio::error_code native_non_blocking(implementation_type&, - bool, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Disable sends or receives on the socket. - asio::error_code shutdown(implementation_type&, - socket_base::shutdown_type, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Bind the socket to the specified local endpoint. - asio::error_code bind(implementation_type&, - const endpoint_type&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Set a socket option. - template - asio::error_code set_option(implementation_type&, - const Option&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Set a socket option. - template - asio::error_code get_option(const implementation_type&, - Option&, asio::error_code& ec) const - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Get the local endpoint. - endpoint_type local_endpoint(const implementation_type&, - asio::error_code& ec) const - { - ec = asio::error::operation_not_supported; - return endpoint_type(); - } - - // Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type&, - asio::error_code& ec) const - { - ec = asio::error::operation_not_supported; - return endpoint_type(); - } - - // Send the given data to the peer. - template - std::size_t send(implementation_type&, const ConstBufferSequence&, - socket_base::message_flags, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Wait until data can be sent without blocking. - std::size_t send(implementation_type&, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send(implementation_type&, const ConstBufferSequence&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send(implementation_type&, const null_buffers&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Receive some data from the peer. Returns the number of bytes received. - template - std::size_t receive(implementation_type&, const MutableBufferSequence&, - socket_base::message_flags, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Wait until data can be received without blocking. - std::size_t receive(implementation_type&, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive(implementation_type&, const MutableBufferSequence&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Wait until data can be received without blocking. - template - void async_receive(implementation_type&, const null_buffers&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Receive some data with associated flags. Returns the number of bytes - // received. - template - std::size_t receive_with_flags(implementation_type&, - const MutableBufferSequence&, socket_base::message_flags, - socket_base::message_flags&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Wait until data can be received without blocking. - std::size_t receive_with_flags(implementation_type&, - const null_buffers&, socket_base::message_flags, - socket_base::message_flags&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive_with_flags(implementation_type&, - const MutableBufferSequence&, socket_base::message_flags, - socket_base::message_flags&, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Wait until data can be received without blocking. - template - void async_receive_with_flags(implementation_type&, - const null_buffers&, socket_base::message_flags, - socket_base::message_flags&, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Send a datagram to the specified endpoint. Returns the number of bytes - // sent. - template - std::size_t send_to(implementation_type&, const ConstBufferSequence&, - const endpoint_type&, socket_base::message_flags, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Wait until data can be sent without blocking. - std::size_t send_to(implementation_type&, const null_buffers&, - const endpoint_type&, socket_base::message_flags, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send_to(implementation_type&, const ConstBufferSequence&, - const endpoint_type&, socket_base::message_flags, - Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send_to(implementation_type&, const null_buffers&, - const endpoint_type&, socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Receive a datagram with the endpoint of the sender. Returns the number of - // bytes received. - template - std::size_t receive_from(implementation_type&, const MutableBufferSequence&, - endpoint_type&, socket_base::message_flags, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Wait until data can be received without blocking. - std::size_t receive_from(implementation_type&, const null_buffers&, - endpoint_type&, socket_base::message_flags, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received and - // the sender_endpoint object must both be valid for the lifetime of the - // asynchronous operation. - template - void async_receive_from(implementation_type&, - const MutableBufferSequence&, endpoint_type&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Wait until data can be received without blocking. - template - void async_receive_from(implementation_type&, - const null_buffers&, endpoint_type&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Accept a new connection. - template - asio::error_code accept(implementation_type&, - Socket&, endpoint_type*, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Start an asynchronous accept. The peer and peer_endpoint objects - // must be valid until the accept's handler is invoked. - template - void async_accept(implementation_type&, Socket&, - endpoint_type*, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - io_context_.post(detail::bind_handler(handler, ec)); - } - - // Connect the socket to the specified endpoint. - asio::error_code connect(implementation_type&, - const endpoint_type&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Start an asynchronous connect. - template - void async_connect(implementation_type&, - const endpoint_type&, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - io_context_.post(detail::bind_handler(handler, ec)); - } - -private: - asio::io_context& io_context_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_NULL_SOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_static_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/null_static_mutex.hpp deleted file mode 100644 index 36ec04f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_static_mutex.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// -// detail/null_static_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_NULL_STATIC_MUTEX_HPP -#define ASIO_DETAIL_NULL_STATIC_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_THREADS) - -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct null_static_mutex -{ - typedef asio::detail::scoped_lock scoped_lock; - - // Initialise the mutex. - void init() - { - } - - // Lock the mutex. - void lock() - { - } - - // Unlock the mutex. - void unlock() - { - } - - int unused_; -}; - -#define ASIO_NULL_STATIC_MUTEX_INIT { 0 } - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_THREADS) - -#endif // ASIO_DETAIL_NULL_STATIC_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_thread.hpp b/Sources/Vendor/asio/include/asio/detail/null_thread.hpp deleted file mode 100644 index 7291ba3..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_thread.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// detail/null_thread.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_NULL_THREAD_HPP -#define ASIO_DETAIL_NULL_THREAD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_THREADS) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class null_thread - : private noncopyable -{ -public: - // Constructor. - template - null_thread(Function, unsigned int = 0) - { - asio::detail::throw_error( - asio::error::operation_not_supported, "thread"); - } - - // Destructor. - ~null_thread() - { - } - - // Wait for the thread to exit. - void join() - { - } - - // Get number of CPUs. - static std::size_t hardware_concurrency() - { - return 1; - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_THREADS) - -#endif // ASIO_DETAIL_NULL_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_tss_ptr.hpp b/Sources/Vendor/asio/include/asio/detail/null_tss_ptr.hpp deleted file mode 100644 index 323967d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_tss_ptr.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// -// detail/null_tss_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_NULL_TSS_PTR_HPP -#define ASIO_DETAIL_NULL_TSS_PTR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_THREADS) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class null_tss_ptr - : private noncopyable -{ -public: - // Constructor. - null_tss_ptr() - : value_(0) - { - } - - // Destructor. - ~null_tss_ptr() - { - } - - // Get the value. - operator T*() const - { - return value_; - } - - // Set the value. - void operator=(T* value) - { - value_ = value; - } - -private: - T* value_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_THREADS) - -#endif // ASIO_DETAIL_NULL_TSS_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/object_pool.hpp b/Sources/Vendor/asio/include/asio/detail/object_pool.hpp deleted file mode 100644 index e1a3c54..0000000 --- a/Sources/Vendor/asio/include/asio/detail/object_pool.hpp +++ /dev/null @@ -1,171 +0,0 @@ -// -// detail/object_pool.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_OBJECT_POOL_HPP -#define ASIO_DETAIL_OBJECT_POOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class object_pool; - -class object_pool_access -{ -public: - template - static Object* create() - { - return new Object; - } - - template - static Object* create(Arg arg) - { - return new Object(arg); - } - - template - static void destroy(Object* o) - { - delete o; - } - - template - static Object*& next(Object* o) - { - return o->next_; - } - - template - static Object*& prev(Object* o) - { - return o->prev_; - } -}; - -template -class object_pool - : private noncopyable -{ -public: - // Constructor. - object_pool() - : live_list_(0), - free_list_(0) - { - } - - // Destructor destroys all objects. - ~object_pool() - { - destroy_list(live_list_); - destroy_list(free_list_); - } - - // Get the object at the start of the live list. - Object* first() - { - return live_list_; - } - - // Allocate a new object. - Object* alloc() - { - Object* o = free_list_; - if (o) - free_list_ = object_pool_access::next(free_list_); - else - o = object_pool_access::create(); - - object_pool_access::next(o) = live_list_; - object_pool_access::prev(o) = 0; - if (live_list_) - object_pool_access::prev(live_list_) = o; - live_list_ = o; - - return o; - } - - // Allocate a new object with an argument. - template - Object* alloc(Arg arg) - { - Object* o = free_list_; - if (o) - free_list_ = object_pool_access::next(free_list_); - else - o = object_pool_access::create(arg); - - object_pool_access::next(o) = live_list_; - object_pool_access::prev(o) = 0; - if (live_list_) - object_pool_access::prev(live_list_) = o; - live_list_ = o; - - return o; - } - - // Free an object. Moves it to the free list. No destructors are run. - void free(Object* o) - { - if (live_list_ == o) - live_list_ = object_pool_access::next(o); - - if (object_pool_access::prev(o)) - { - object_pool_access::next(object_pool_access::prev(o)) - = object_pool_access::next(o); - } - - if (object_pool_access::next(o)) - { - object_pool_access::prev(object_pool_access::next(o)) - = object_pool_access::prev(o); - } - - object_pool_access::next(o) = free_list_; - object_pool_access::prev(o) = 0; - free_list_ = o; - } - -private: - // Helper function to destroy all elements in a list. - void destroy_list(Object* list) - { - while (list) - { - Object* o = list; - list = object_pool_access::next(o); - object_pool_access::destroy(o); - } - } - - // The list of live objects. - Object* live_list_; - - // The free list. - Object* free_list_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_OBJECT_POOL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/old_win_sdk_compat.hpp b/Sources/Vendor/asio/include/asio/detail/old_win_sdk_compat.hpp deleted file mode 100644 index bfb109e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/old_win_sdk_compat.hpp +++ /dev/null @@ -1,214 +0,0 @@ -// -// detail/old_win_sdk_compat.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_OLD_WIN_SDK_COMPAT_HPP -#define ASIO_DETAIL_OLD_WIN_SDK_COMPAT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -// Guess whether we are building against on old Platform SDK. -#if !defined(IN6ADDR_ANY_INIT) -#define ASIO_HAS_OLD_WIN_SDK 1 -#endif // !defined(IN6ADDR_ANY_INIT) - -#if defined(ASIO_HAS_OLD_WIN_SDK) - -// Emulation of types that are missing from old Platform SDKs. -// -// N.B. this emulation is also used if building for a Windows 2000 target with -// a recent (i.e. Vista or later) SDK, as the SDK does not provide IPv6 support -// in that case. - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -enum -{ - sockaddr_storage_maxsize = 128, // Maximum size. - sockaddr_storage_alignsize = (sizeof(__int64)), // Desired alignment. - sockaddr_storage_pad1size = (sockaddr_storage_alignsize - sizeof(short)), - sockaddr_storage_pad2size = (sockaddr_storage_maxsize - - (sizeof(short) + sockaddr_storage_pad1size + sockaddr_storage_alignsize)) -}; - -struct sockaddr_storage_emulation -{ - short ss_family; - char __ss_pad1[sockaddr_storage_pad1size]; - __int64 __ss_align; - char __ss_pad2[sockaddr_storage_pad2size]; -}; - -struct in6_addr_emulation -{ - union - { - u_char Byte[16]; - u_short Word[8]; - } u; -}; - -#if !defined(s6_addr) -# define _S6_un u -# define _S6_u8 Byte -# define s6_addr _S6_un._S6_u8 -#endif // !defined(s6_addr) - -struct sockaddr_in6_emulation -{ - short sin6_family; - u_short sin6_port; - u_long sin6_flowinfo; - in6_addr_emulation sin6_addr; - u_long sin6_scope_id; -}; - -struct ipv6_mreq_emulation -{ - in6_addr_emulation ipv6mr_multiaddr; - unsigned int ipv6mr_interface; -}; - -struct addrinfo_emulation -{ - int ai_flags; - int ai_family; - int ai_socktype; - int ai_protocol; - size_t ai_addrlen; - char* ai_canonname; - sockaddr* ai_addr; - addrinfo_emulation* ai_next; -}; - -#if !defined(AI_PASSIVE) -# define AI_PASSIVE 0x1 -#endif - -#if !defined(AI_CANONNAME) -# define AI_CANONNAME 0x2 -#endif - -#if !defined(AI_NUMERICHOST) -# define AI_NUMERICHOST 0x4 -#endif - -#if !defined(EAI_AGAIN) -# define EAI_AGAIN WSATRY_AGAIN -#endif - -#if !defined(EAI_BADFLAGS) -# define EAI_BADFLAGS WSAEINVAL -#endif - -#if !defined(EAI_FAIL) -# define EAI_FAIL WSANO_RECOVERY -#endif - -#if !defined(EAI_FAMILY) -# define EAI_FAMILY WSAEAFNOSUPPORT -#endif - -#if !defined(EAI_MEMORY) -# define EAI_MEMORY WSA_NOT_ENOUGH_MEMORY -#endif - -#if !defined(EAI_NODATA) -# define EAI_NODATA WSANO_DATA -#endif - -#if !defined(EAI_NONAME) -# define EAI_NONAME WSAHOST_NOT_FOUND -#endif - -#if !defined(EAI_SERVICE) -# define EAI_SERVICE WSATYPE_NOT_FOUND -#endif - -#if !defined(EAI_SOCKTYPE) -# define EAI_SOCKTYPE WSAESOCKTNOSUPPORT -#endif - -#if !defined(NI_NOFQDN) -# define NI_NOFQDN 0x01 -#endif - -#if !defined(NI_NUMERICHOST) -# define NI_NUMERICHOST 0x02 -#endif - -#if !defined(NI_NAMEREQD) -# define NI_NAMEREQD 0x04 -#endif - -#if !defined(NI_NUMERICSERV) -# define NI_NUMERICSERV 0x08 -#endif - -#if !defined(NI_DGRAM) -# define NI_DGRAM 0x10 -#endif - -#if !defined(IPPROTO_IPV6) -# define IPPROTO_IPV6 41 -#endif - -#if !defined(IPV6_UNICAST_HOPS) -# define IPV6_UNICAST_HOPS 4 -#endif - -#if !defined(IPV6_MULTICAST_IF) -# define IPV6_MULTICAST_IF 9 -#endif - -#if !defined(IPV6_MULTICAST_HOPS) -# define IPV6_MULTICAST_HOPS 10 -#endif - -#if !defined(IPV6_MULTICAST_LOOP) -# define IPV6_MULTICAST_LOOP 11 -#endif - -#if !defined(IPV6_JOIN_GROUP) -# define IPV6_JOIN_GROUP 12 -#endif - -#if !defined(IPV6_LEAVE_GROUP) -# define IPV6_LEAVE_GROUP 13 -#endif - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_OLD_WIN_SDK) - -// Even newer Platform SDKs that support IPv6 may not define IPV6_V6ONLY. -#if !defined(IPV6_V6ONLY) -# define IPV6_V6ONLY 27 -#endif - -// Some SDKs (e.g. Windows CE) don't define IPPROTO_ICMPV6. -#if !defined(IPPROTO_ICMPV6) -# define IPPROTO_ICMPV6 58 -#endif - -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#endif // ASIO_DETAIL_OLD_WIN_SDK_COMPAT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/op_queue.hpp b/Sources/Vendor/asio/include/asio/detail/op_queue.hpp deleted file mode 100644 index 6219f79..0000000 --- a/Sources/Vendor/asio/include/asio/detail/op_queue.hpp +++ /dev/null @@ -1,162 +0,0 @@ -// -// detail/op_queue.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_OP_QUEUE_HPP -#define ASIO_DETAIL_OP_QUEUE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class op_queue; - -class op_queue_access -{ -public: - template - static Operation* next(Operation* o) - { - return static_cast(o->next_); - } - - template - static void next(Operation1*& o1, Operation2* o2) - { - o1->next_ = o2; - } - - template - static void destroy(Operation* o) - { - o->destroy(); - } - - template - static Operation*& front(op_queue& q) - { - return q.front_; - } - - template - static Operation*& back(op_queue& q) - { - return q.back_; - } -}; - -template -class op_queue - : private noncopyable -{ -public: - // Constructor. - op_queue() - : front_(0), - back_(0) - { - } - - // Destructor destroys all operations. - ~op_queue() - { - while (Operation* op = front_) - { - pop(); - op_queue_access::destroy(op); - } - } - - // Get the operation at the front of the queue. - Operation* front() - { - return front_; - } - - // Pop an operation from the front of the queue. - void pop() - { - if (front_) - { - Operation* tmp = front_; - front_ = op_queue_access::next(front_); - if (front_ == 0) - back_ = 0; - op_queue_access::next(tmp, static_cast(0)); - } - } - - // Push an operation on to the back of the queue. - void push(Operation* h) - { - op_queue_access::next(h, static_cast(0)); - if (back_) - { - op_queue_access::next(back_, h); - back_ = h; - } - else - { - front_ = back_ = h; - } - } - - // Push all operations from another queue on to the back of the queue. The - // source queue may contain operations of a derived type. - template - void push(op_queue& q) - { - if (Operation* other_front = op_queue_access::front(q)) - { - if (back_) - op_queue_access::next(back_, other_front); - else - front_ = other_front; - back_ = op_queue_access::back(q); - op_queue_access::front(q) = 0; - op_queue_access::back(q) = 0; - } - } - - // Whether the queue is empty. - bool empty() const - { - return front_ == 0; - } - - // Test whether an operation is already enqueued. - bool is_enqueued(Operation* o) const - { - return op_queue_access::next(o) != 0 || back_ == o; - } - -private: - friend class op_queue_access; - - // The front of the queue. - Operation* front_; - - // The back of the queue. - Operation* back_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_OP_QUEUE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/operation.hpp b/Sources/Vendor/asio/include/asio/detail/operation.hpp deleted file mode 100644 index 811e54d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/operation.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// -// detail/operation.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_OPERATION_HPP -#define ASIO_DETAIL_OPERATION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_operation.hpp" -#else -# include "asio/detail/scheduler_operation.hpp" -#endif - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_IOCP) -typedef win_iocp_operation operation; -#else -typedef scheduler_operation operation; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_OPERATION_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/pipe_select_interrupter.hpp b/Sources/Vendor/asio/include/asio/detail/pipe_select_interrupter.hpp deleted file mode 100644 index 55d7db4..0000000 --- a/Sources/Vendor/asio/include/asio/detail/pipe_select_interrupter.hpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// detail/pipe_select_interrupter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_PIPE_SELECT_INTERRUPTER_HPP -#define ASIO_DETAIL_PIPE_SELECT_INTERRUPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS) -#if !defined(ASIO_WINDOWS_RUNTIME) -#if !defined(__CYGWIN__) -#if !defined(__SYMBIAN32__) -#if !defined(ASIO_HAS_EVENTFD) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class pipe_select_interrupter -{ -public: - // Constructor. - ASIO_DECL pipe_select_interrupter(); - - // Destructor. - ASIO_DECL ~pipe_select_interrupter(); - - // Recreate the interrupter's descriptors. Used after a fork. - ASIO_DECL void recreate(); - - // Interrupt the select call. - ASIO_DECL void interrupt(); - - // Reset the select interrupt. Returns true if the call was interrupted. - ASIO_DECL bool reset(); - - // Get the read descriptor to be passed to select. - int read_descriptor() const - { - return read_descriptor_; - } - -private: - // Open the descriptors. Throws on error. - ASIO_DECL void open_descriptors(); - - // Close the descriptors. - ASIO_DECL void close_descriptors(); - - // The read end of a connection used to interrupt the select call. This file - // descriptor is passed to select such that when it is time to stop, a single - // byte will be written on the other end of the connection and this - // descriptor will become readable. - int read_descriptor_; - - // The write end of a connection used to interrupt the select call. A single - // byte may be written to this to wake up the select which is waiting for the - // other end to become readable. - int write_descriptor_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/pipe_select_interrupter.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // !defined(ASIO_HAS_EVENTFD) -#endif // !defined(__SYMBIAN32__) -#endif // !defined(__CYGWIN__) -#endif // !defined(ASIO_WINDOWS_RUNTIME) -#endif // !defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_PIPE_SELECT_INTERRUPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/pop_options.hpp b/Sources/Vendor/asio/include/asio/detail/pop_options.hpp deleted file mode 100644 index 1045612..0000000 --- a/Sources/Vendor/asio/include/asio/detail/pop_options.hpp +++ /dev/null @@ -1,135 +0,0 @@ -// -// detail/pop_options.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -// No header guard - -#if defined(__COMO__) - -// Comeau C++ - -#elif defined(__DMC__) - -// Digital Mars C++ - -#elif defined(__INTEL_COMPILER) || defined(__ICL) \ - || defined(__ICC) || defined(__ECC) - -// Intel C++ - -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) - -#elif defined(__clang__) - -// Clang - -# if defined(__OBJC__) -# if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1) -# if defined(ASIO_OBJC_WORKAROUND) -# undef Protocol -# undef id -# undef ASIO_OBJC_WORKAROUND -# endif -# endif -# endif - -# if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) -# pragma GCC visibility pop -# endif // !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) - -#elif defined(__GNUC__) - -// GNU C++ - -# if defined(__MINGW32__) || defined(__CYGWIN__) -# pragma pack (pop) -# endif - -# if defined(__OBJC__) -# if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1) -# if defined(ASIO_OBJC_WORKAROUND) -# undef Protocol -# undef id -# undef ASIO_OBJC_WORKAROUND -# endif -# endif -# endif - -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) - -# if (__GNUC__ >= 7) -# pragma GCC diagnostic pop -# endif // (__GNUC__ >= 7) - -#elif defined(__KCC) - -// Kai C++ - -#elif defined(__sgi) - -// SGI MIPSpro C++ - -#elif defined(__DECCXX) - -// Compaq Tru64 Unix cxx - -#elif defined(__ghs) - -// Greenhills C++ - -#elif defined(__BORLANDC__) - -// Borland C++ - -# pragma option pop -# pragma nopushoptwarn -# pragma nopackwarning - -#elif defined(__MWERKS__) - -// Metrowerks CodeWarrior - -#elif defined(__SUNPRO_CC) - -// Sun Workshop Compiler C++ - -#elif defined(__HP_aCC) - -// HP aCC - -#elif defined(__MRC__) || defined(__SC__) - -// MPW MrCpp or SCpp - -#elif defined(__IBMCPP__) - -// IBM Visual Age - -#elif defined(_MSC_VER) - -// Microsoft Visual C++ -// -// Must remain the last #elif since some other vendors (Metrowerks, for example) -// also #define _MSC_VER - -# pragma warning (pop) -# pragma pack (pop) - -# if defined(__cplusplus_cli) || defined(__cplusplus_winrt) -# if defined(ASIO_CLR_WORKAROUND) -# undef generic -# undef ASIO_CLR_WORKAROUND -# endif -# endif - -#endif diff --git a/Sources/Vendor/asio/include/asio/detail/posix_event.hpp b/Sources/Vendor/asio/include/asio/detail/posix_event.hpp deleted file mode 100644 index 121065e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_event.hpp +++ /dev/null @@ -1,162 +0,0 @@ -// -// detail/posix_event.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_POSIX_EVENT_HPP -#define ASIO_DETAIL_POSIX_EVENT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_PTHREADS) - -#include -#include "asio/detail/assert.hpp" -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class posix_event - : private noncopyable -{ -public: - // Constructor. - ASIO_DECL posix_event(); - - // Destructor. - ~posix_event() - { - ::pthread_cond_destroy(&cond_); - } - - // Signal the event. (Retained for backward compatibility.) - template - void signal(Lock& lock) - { - this->signal_all(lock); - } - - // Signal all waiters. - template - void signal_all(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - (void)lock; - state_ |= 1; - ::pthread_cond_broadcast(&cond_); // Ignore EINVAL. - } - - // Unlock the mutex and signal one waiter. - template - void unlock_and_signal_one(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - state_ |= 1; - bool have_waiters = (state_ > 1); - lock.unlock(); - if (have_waiters) - ::pthread_cond_signal(&cond_); // Ignore EINVAL. - } - - // If there's a waiter, unlock the mutex and signal it. - template - bool maybe_unlock_and_signal_one(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - state_ |= 1; - if (state_ > 1) - { - lock.unlock(); - ::pthread_cond_signal(&cond_); // Ignore EINVAL. - return true; - } - return false; - } - - // Reset the event. - template - void clear(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - (void)lock; - state_ &= ~std::size_t(1); - } - - // Wait for the event to become signalled. - template - void wait(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - while ((state_ & 1) == 0) - { - state_ += 2; - ::pthread_cond_wait(&cond_, &lock.mutex().mutex_); // Ignore EINVAL. - state_ -= 2; - } - } - - // Timed wait for the event to become signalled. - template - bool wait_for_usec(Lock& lock, long usec) - { - ASIO_ASSERT(lock.locked()); - if ((state_ & 1) == 0) - { - state_ += 2; - timespec ts; -#if (defined(__MACH__) && defined(__APPLE__)) \ - || (defined(__ANDROID__) && (__ANDROID_API__ < 21) \ - && defined(HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE)) - ts.tv_sec = usec / 1000000; - ts.tv_nsec = (usec % 1000000) * 1000; - ::pthread_cond_timedwait_relative_np( - &cond_, &lock.mutex().mutex_, &ts); // Ignore EINVAL. -#else // (defined(__MACH__) && defined(__APPLE__)) - // || (defined(__ANDROID__) && (__ANDROID_API__ < 21) - // && defined(HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE)) - if (::clock_gettime(CLOCK_MONOTONIC, &ts) == 0) - { - ts.tv_sec += usec / 1000000; - ts.tv_nsec = (usec % 1000000) * 1000; - ts.tv_sec += ts.tv_nsec / 1000000000; - ts.tv_nsec = ts.tv_nsec % 1000000000; - ::pthread_cond_timedwait(&cond_, - &lock.mutex().mutex_, &ts); // Ignore EINVAL. - } -#endif // (defined(__MACH__) && defined(__APPLE__)) - // || (defined(__ANDROID__) && (__ANDROID_API__ < 21) - // && defined(HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE)) - state_ -= 2; - } - return (state_ & 1) != 0; - } - -private: - ::pthread_cond_t cond_; - std::size_t state_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/posix_event.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_POSIX_EVENT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/posix_fd_set_adapter.hpp b/Sources/Vendor/asio/include/asio/detail/posix_fd_set_adapter.hpp deleted file mode 100644 index 95042d6..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_fd_set_adapter.hpp +++ /dev/null @@ -1,118 +0,0 @@ -// -// detail/posix_fd_set_adapter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_POSIX_FD_SET_ADAPTER_HPP -#define ASIO_DETAIL_POSIX_FD_SET_ADAPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS) \ - && !defined(__CYGWIN__) \ - && !defined(ASIO_WINDOWS_RUNTIME) - -#include -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/reactor_op_queue.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Adapts the FD_SET type to meet the Descriptor_Set concept's requirements. -class posix_fd_set_adapter : noncopyable -{ -public: - posix_fd_set_adapter() - : max_descriptor_(invalid_socket) - { - using namespace std; // Needed for memset on Solaris. - FD_ZERO(&fd_set_); - } - - void reset() - { - using namespace std; // Needed for memset on Solaris. - FD_ZERO(&fd_set_); - } - - bool set(socket_type descriptor) - { - if (descriptor < (socket_type)FD_SETSIZE) - { - if (max_descriptor_ == invalid_socket || descriptor > max_descriptor_) - max_descriptor_ = descriptor; - FD_SET(descriptor, &fd_set_); - return true; - } - return false; - } - - void set(reactor_op_queue& operations, op_queue& ops) - { - reactor_op_queue::iterator i = operations.begin(); - while (i != operations.end()) - { - reactor_op_queue::iterator op_iter = i++; - if (!set(op_iter->first)) - { - asio::error_code ec(error::fd_set_failure); - operations.cancel_operations(op_iter, ops, ec); - } - } - } - - bool is_set(socket_type descriptor) const - { - return FD_ISSET(descriptor, &fd_set_) != 0; - } - - operator fd_set*() - { - return &fd_set_; - } - - socket_type max_descriptor() const - { - return max_descriptor_; - } - - void perform(reactor_op_queue& operations, - op_queue& ops) const - { - reactor_op_queue::iterator i = operations.begin(); - while (i != operations.end()) - { - reactor_op_queue::iterator op_iter = i++; - if (is_set(op_iter->first)) - operations.perform_operations(op_iter, ops); - } - } - -private: - mutable fd_set fd_set_; - socket_type max_descriptor_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS) - // && !defined(__CYGWIN__) - // && !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_POSIX_FD_SET_ADAPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/posix_global.hpp b/Sources/Vendor/asio/include/asio/detail/posix_global.hpp deleted file mode 100644 index 7ee0a71..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_global.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// -// detail/posix_global.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_POSIX_GLOBAL_HPP -#define ASIO_DETAIL_POSIX_GLOBAL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_PTHREADS) - -#include -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -struct posix_global_impl -{ - // Helper function to perform initialisation. - static void do_init() - { - instance_.static_ptr_ = instance_.ptr_ = new T; - } - - // Destructor automatically cleans up the global. - ~posix_global_impl() - { - delete static_ptr_; - } - - static ::pthread_once_t init_once_; - static T* static_ptr_; - static posix_global_impl instance_; - T* ptr_; -}; - -template -::pthread_once_t posix_global_impl::init_once_ = PTHREAD_ONCE_INIT; - -template -T* posix_global_impl::static_ptr_ = 0; - -template -posix_global_impl posix_global_impl::instance_; - -template -T& posix_global() -{ - int result = ::pthread_once( - &posix_global_impl::init_once_, - &posix_global_impl::do_init); - - if (result != 0) - std::terminate(); - - return *posix_global_impl::instance_.ptr_; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_POSIX_GLOBAL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/posix_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/posix_mutex.hpp deleted file mode 100644 index c0d9fc9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_mutex.hpp +++ /dev/null @@ -1,76 +0,0 @@ -// -// detail/posix_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_POSIX_MUTEX_HPP -#define ASIO_DETAIL_POSIX_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_PTHREADS) - -#include -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class posix_event; - -class posix_mutex - : private noncopyable -{ -public: - typedef asio::detail::scoped_lock scoped_lock; - - // Constructor. - ASIO_DECL posix_mutex(); - - // Destructor. - ~posix_mutex() - { - ::pthread_mutex_destroy(&mutex_); // Ignore EBUSY. - } - - // Lock the mutex. - void lock() - { - (void)::pthread_mutex_lock(&mutex_); // Ignore EINVAL. - } - - // Unlock the mutex. - void unlock() - { - (void)::pthread_mutex_unlock(&mutex_); // Ignore EINVAL. - } - -private: - friend class posix_event; - ::pthread_mutex_t mutex_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/posix_mutex.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_POSIX_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/posix_signal_blocker.hpp b/Sources/Vendor/asio/include/asio/detail/posix_signal_blocker.hpp deleted file mode 100644 index fab5eb1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_signal_blocker.hpp +++ /dev/null @@ -1,85 +0,0 @@ -// -// detail/posix_signal_blocker.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_POSIX_SIGNAL_BLOCKER_HPP -#define ASIO_DETAIL_POSIX_SIGNAL_BLOCKER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_PTHREADS) - -#include -#include -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class posix_signal_blocker - : private noncopyable -{ -public: - // Constructor blocks all signals for the calling thread. - posix_signal_blocker() - : blocked_(false) - { - sigset_t new_mask; - sigfillset(&new_mask); - blocked_ = (pthread_sigmask(SIG_BLOCK, &new_mask, &old_mask_) == 0); - } - - // Destructor restores the previous signal mask. - ~posix_signal_blocker() - { - if (blocked_) - pthread_sigmask(SIG_SETMASK, &old_mask_, 0); - } - - // Block all signals for the calling thread. - void block() - { - if (!blocked_) - { - sigset_t new_mask; - sigfillset(&new_mask); - blocked_ = (pthread_sigmask(SIG_BLOCK, &new_mask, &old_mask_) == 0); - } - } - - // Restore the previous signal mask. - void unblock() - { - if (blocked_) - blocked_ = (pthread_sigmask(SIG_SETMASK, &old_mask_, 0) != 0); - } - -private: - // Have signals been blocked. - bool blocked_; - - // The previous signal mask. - sigset_t old_mask_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_POSIX_SIGNAL_BLOCKER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/posix_static_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/posix_static_mutex.hpp deleted file mode 100644 index 59b86c1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_static_mutex.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// detail/posix_static_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_POSIX_STATIC_MUTEX_HPP -#define ASIO_DETAIL_POSIX_STATIC_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_PTHREADS) - -#include -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct posix_static_mutex -{ - typedef asio::detail::scoped_lock scoped_lock; - - // Initialise the mutex. - void init() - { - // Nothing to do. - } - - // Lock the mutex. - void lock() - { - (void)::pthread_mutex_lock(&mutex_); // Ignore EINVAL. - } - - // Unlock the mutex. - void unlock() - { - (void)::pthread_mutex_unlock(&mutex_); // Ignore EINVAL. - } - - ::pthread_mutex_t mutex_; -}; - -#define ASIO_POSIX_STATIC_MUTEX_INIT { PTHREAD_MUTEX_INITIALIZER } - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_POSIX_STATIC_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/posix_thread.hpp b/Sources/Vendor/asio/include/asio/detail/posix_thread.hpp deleted file mode 100644 index 1817af2..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_thread.hpp +++ /dev/null @@ -1,109 +0,0 @@ -// -// detail/posix_thread.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_POSIX_THREAD_HPP -#define ASIO_DETAIL_POSIX_THREAD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_PTHREADS) - -#include -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -extern "C" -{ - ASIO_DECL void* asio_detail_posix_thread_function(void* arg); -} - -class posix_thread - : private noncopyable -{ -public: - // Constructor. - template - posix_thread(Function f, unsigned int = 0) - : joined_(false) - { - start_thread(new func(f)); - } - - // Destructor. - ASIO_DECL ~posix_thread(); - - // Wait for the thread to exit. - ASIO_DECL void join(); - - // Get number of CPUs. - ASIO_DECL static std::size_t hardware_concurrency(); - -private: - friend void* asio_detail_posix_thread_function(void* arg); - - class func_base - { - public: - virtual ~func_base() {} - virtual void run() = 0; - }; - - struct auto_func_base_ptr - { - func_base* ptr; - ~auto_func_base_ptr() { delete ptr; } - }; - - template - class func - : public func_base - { - public: - func(Function f) - : f_(f) - { - } - - virtual void run() - { - f_(); - } - - private: - Function f_; - }; - - ASIO_DECL void start_thread(func_base* arg); - - ::pthread_t thread_; - bool joined_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/posix_thread.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_POSIX_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/posix_tss_ptr.hpp b/Sources/Vendor/asio/include/asio/detail/posix_tss_ptr.hpp deleted file mode 100644 index a3096b4..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_tss_ptr.hpp +++ /dev/null @@ -1,79 +0,0 @@ -// -// detail/posix_tss_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_POSIX_TSS_PTR_HPP -#define ASIO_DETAIL_POSIX_TSS_PTR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_PTHREADS) - -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Helper function to create thread-specific storage. -ASIO_DECL void posix_tss_ptr_create(pthread_key_t& key); - -template -class posix_tss_ptr - : private noncopyable -{ -public: - // Constructor. - posix_tss_ptr() - { - posix_tss_ptr_create(tss_key_); - } - - // Destructor. - ~posix_tss_ptr() - { - ::pthread_key_delete(tss_key_); - } - - // Get the value. - operator T*() const - { - return static_cast(::pthread_getspecific(tss_key_)); - } - - // Set the value. - void operator=(T* value) - { - ::pthread_setspecific(tss_key_, value); - } - -private: - // Thread-specific storage to allow unlocked access to determine whether a - // thread is a member of the pool. - pthread_key_t tss_key_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/posix_tss_ptr.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_POSIX_TSS_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/push_options.hpp b/Sources/Vendor/asio/include/asio/detail/push_options.hpp deleted file mode 100644 index 0a3e979..0000000 --- a/Sources/Vendor/asio/include/asio/detail/push_options.hpp +++ /dev/null @@ -1,175 +0,0 @@ -// -// detail/push_options.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -// No header guard - -#if defined(__COMO__) - -// Comeau C++ - -#elif defined(__DMC__) - -// Digital Mars C++ - -#elif defined(__INTEL_COMPILER) || defined(__ICL) \ - || defined(__ICC) || defined(__ECC) - -// Intel C++ - -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) - -#elif defined(__clang__) - -// Clang - -# if defined(__OBJC__) -# if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1) -# if !defined(ASIO_DISABLE_OBJC_WORKAROUND) -# if !defined(Protocol) && !defined(id) -# define Protocol cpp_Protocol -# define id cpp_id -# define ASIO_OBJC_WORKAROUND -# endif -# endif -# endif -# endif - -# if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) -# pragma GCC visibility push (default) -# endif // !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) - -#elif defined(__GNUC__) - -// GNU C++ - -# if defined(__MINGW32__) || defined(__CYGWIN__) -# pragma pack (push, 8) -# endif - -# if defined(__OBJC__) -# if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1) -# if !defined(ASIO_DISABLE_OBJC_WORKAROUND) -# if !defined(Protocol) && !defined(id) -# define Protocol cpp_Protocol -# define id cpp_id -# define ASIO_OBJC_WORKAROUND -# endif -# endif -# endif -# endif - -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) - -# if (__GNUC__ >= 7) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wimplicit-fallthrough" -# endif // (__GNUC__ >= 7) - -#elif defined(__KCC) - -// Kai C++ - -#elif defined(__sgi) - -// SGI MIPSpro C++ - -#elif defined(__DECCXX) - -// Compaq Tru64 Unix cxx - -#elif defined(__ghs) - -// Greenhills C++ - -#elif defined(__BORLANDC__) - -// Borland C++ - -# pragma option push -a8 -b -Ve- -Vx- -w-inl -vi- -# pragma nopushoptwarn -# pragma nopackwarning -# if !defined(__MT__) -# error Multithreaded RTL must be selected. -# endif // !defined(__MT__) - -#elif defined(__MWERKS__) - -// Metrowerks CodeWarrior - -#elif defined(__SUNPRO_CC) - -// Sun Workshop Compiler C++ - -#elif defined(__HP_aCC) - -// HP aCC - -#elif defined(__MRC__) || defined(__SC__) - -// MPW MrCpp or SCpp - -#elif defined(__IBMCPP__) - -// IBM Visual Age - -#elif defined(_MSC_VER) - -// Microsoft Visual C++ -// -// Must remain the last #elif since some other vendors (Metrowerks, for example) -// also #define _MSC_VER - -# pragma warning (disable:4103) -# pragma warning (push) -# pragma warning (disable:4127) -# pragma warning (disable:4180) -# pragma warning (disable:4244) -# pragma warning (disable:4355) -# pragma warning (disable:4510) -# pragma warning (disable:4512) -# pragma warning (disable:4610) -# pragma warning (disable:4675) -# if (_MSC_VER < 1600) -// Visual Studio 2008 generates spurious warnings about unused parameters. -# pragma warning (disable:4100) -# endif // (_MSC_VER < 1600) -# if defined(_M_IX86) && defined(_Wp64) -// The /Wp64 option is broken. If you want to check 64 bit portability, use a -// 64 bit compiler! -# pragma warning (disable:4311) -# pragma warning (disable:4312) -# endif // defined(_M_IX86) && defined(_Wp64) -# pragma pack (push, 8) -// Note that if the /Og optimisation flag is enabled with MSVC6, the compiler -// has a tendency to incorrectly optimise away some calls to member template -// functions, even though those functions contain code that should not be -// optimised away! Therefore we will always disable this optimisation option -// for the MSVC6 compiler. -# if (_MSC_VER < 1300) -# pragma optimize ("g", off) -# endif -# if !defined(_MT) -# error Multithreaded RTL must be selected. -# endif // !defined(_MT) - -# if defined(__cplusplus_cli) || defined(__cplusplus_winrt) -# if !defined(ASIO_DISABLE_CLR_WORKAROUND) -# if !defined(generic) -# define generic cpp_generic -# define ASIO_CLR_WORKAROUND -# endif -# endif -# endif - -#endif diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_descriptor_service.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_descriptor_service.hpp deleted file mode 100644 index e866863..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_descriptor_service.hpp +++ /dev/null @@ -1,388 +0,0 @@ -// -// detail/reactive_descriptor_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTIVE_DESCRIPTOR_SERVICE_HPP -#define ASIO_DETAIL_REACTIVE_DESCRIPTOR_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - -#include "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/descriptor_ops.hpp" -#include "asio/detail/descriptor_read_op.hpp" -#include "asio/detail/descriptor_write_op.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/reactive_null_buffers_op.hpp" -#include "asio/detail/reactive_wait_op.hpp" -#include "asio/detail/reactor.hpp" -#include "asio/posix/descriptor_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class reactive_descriptor_service : - public service_base -{ -public: - // The native type of a descriptor. - typedef int native_handle_type; - - // The implementation type of the descriptor. - class implementation_type - : private asio::detail::noncopyable - { - public: - // Default constructor. - implementation_type() - : descriptor_(-1), - state_(0) - { - } - - private: - // Only this service will have access to the internal values. - friend class reactive_descriptor_service; - - // The native descriptor representation. - int descriptor_; - - // The current state of the descriptor. - descriptor_ops::state_type state_; - - // Per-descriptor data used by the reactor. - reactor::per_descriptor_data reactor_data_; - }; - - // Constructor. - ASIO_DECL reactive_descriptor_service( - asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Construct a new descriptor implementation. - ASIO_DECL void construct(implementation_type& impl); - - // Move-construct a new descriptor implementation. - ASIO_DECL void move_construct(implementation_type& impl, - implementation_type& other_impl); - - // Move-assign from another descriptor implementation. - ASIO_DECL void move_assign(implementation_type& impl, - reactive_descriptor_service& other_service, - implementation_type& other_impl); - - // Destroy a descriptor implementation. - ASIO_DECL void destroy(implementation_type& impl); - - // Assign a native descriptor to a descriptor implementation. - ASIO_DECL asio::error_code assign(implementation_type& impl, - const native_handle_type& native_descriptor, - asio::error_code& ec); - - // Determine whether the descriptor is open. - bool is_open(const implementation_type& impl) const - { - return impl.descriptor_ != -1; - } - - // Destroy a descriptor implementation. - ASIO_DECL asio::error_code close(implementation_type& impl, - asio::error_code& ec); - - // Get the native descriptor representation. - native_handle_type native_handle(const implementation_type& impl) const - { - return impl.descriptor_; - } - - // Release ownership of the native descriptor representation. - ASIO_DECL native_handle_type release(implementation_type& impl); - - // Cancel all operations associated with the descriptor. - ASIO_DECL asio::error_code cancel(implementation_type& impl, - asio::error_code& ec); - - // Perform an IO control command on the descriptor. - template - asio::error_code io_control(implementation_type& impl, - IO_Control_Command& command, asio::error_code& ec) - { - descriptor_ops::ioctl(impl.descriptor_, impl.state_, - command.name(), static_cast(command.data()), ec); - return ec; - } - - // Gets the non-blocking mode of the descriptor. - bool non_blocking(const implementation_type& impl) const - { - return (impl.state_ & descriptor_ops::user_set_non_blocking) != 0; - } - - // Sets the non-blocking mode of the descriptor. - asio::error_code non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - descriptor_ops::set_user_non_blocking( - impl.descriptor_, impl.state_, mode, ec); - return ec; - } - - // Gets the non-blocking mode of the native descriptor implementation. - bool native_non_blocking(const implementation_type& impl) const - { - return (impl.state_ & descriptor_ops::internal_non_blocking) != 0; - } - - // Sets the non-blocking mode of the native descriptor implementation. - asio::error_code native_non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - descriptor_ops::set_internal_non_blocking( - impl.descriptor_, impl.state_, mode, ec); - return ec; - } - - // Wait for the descriptor to become ready to read, ready to write, or to have - // pending error conditions. - asio::error_code wait(implementation_type& impl, - posix::descriptor_base::wait_type w, asio::error_code& ec) - { - switch (w) - { - case posix::descriptor_base::wait_read: - descriptor_ops::poll_read(impl.descriptor_, impl.state_, ec); - break; - case posix::descriptor_base::wait_write: - descriptor_ops::poll_write(impl.descriptor_, impl.state_, ec); - break; - case posix::descriptor_base::wait_error: - descriptor_ops::poll_error(impl.descriptor_, impl.state_, ec); - break; - default: - ec = asio::error::invalid_argument; - break; - } - - return ec; - } - - // Asynchronously wait for the descriptor to become ready to read, ready to - // write, or to have pending error conditions. - template - void async_wait(implementation_type& impl, - posix::descriptor_base::wait_type w, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_wait_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "descriptor", - &impl, impl.descriptor_, "async_wait")); - - int op_type; - switch (w) - { - case posix::descriptor_base::wait_read: - op_type = reactor::read_op; - break; - case posix::descriptor_base::wait_write: - op_type = reactor::write_op; - break; - case posix::descriptor_base::wait_error: - op_type = reactor::except_op; - break; - default: - p.p->ec_ = asio::error::invalid_argument; - reactor_.post_immediate_completion(p.p, is_continuation); - p.v = p.p = 0; - return; - } - - start_op(impl, op_type, p.p, is_continuation, false, false); - p.v = p.p = 0; - } - - // Write some data to the descriptor. - template - size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return descriptor_ops::sync_write(impl.descriptor_, impl.state_, - bufs.buffers(), bufs.count(), bufs.all_empty(), ec); - } - - // Wait until data can be written without blocking. - size_t write_some(implementation_type& impl, - const null_buffers&, asio::error_code& ec) - { - // Wait for descriptor to become ready. - descriptor_ops::poll_write(impl.descriptor_, impl.state_, ec); - - return 0; - } - - // Start an asynchronous write. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef descriptor_write_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.descriptor_, buffers, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "descriptor", - &impl, impl.descriptor_, "async_write_some")); - - start_op(impl, reactor::write_op, p.p, is_continuation, true, - buffer_sequence_adapter::all_empty(buffers)); - p.v = p.p = 0; - } - - // Start an asynchronous wait until data can be written without blocking. - template - void async_write_some(implementation_type& impl, - const null_buffers&, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "descriptor", - &impl, impl.descriptor_, "async_write_some(null_buffers)")); - - start_op(impl, reactor::write_op, p.p, is_continuation, false, false); - p.v = p.p = 0; - } - - // Read some data from the stream. Returns the number of bytes read. - template - size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return descriptor_ops::sync_read(impl.descriptor_, impl.state_, - bufs.buffers(), bufs.count(), bufs.all_empty(), ec); - } - - // Wait until data can be read without blocking. - size_t read_some(implementation_type& impl, - const null_buffers&, asio::error_code& ec) - { - // Wait for descriptor to become ready. - descriptor_ops::poll_read(impl.descriptor_, impl.state_, ec); - - return 0; - } - - // Start an asynchronous read. The buffer for the data being read must be - // valid for the lifetime of the asynchronous operation. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef descriptor_read_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.descriptor_, buffers, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "descriptor", - &impl, impl.descriptor_, "async_read_some")); - - start_op(impl, reactor::read_op, p.p, is_continuation, true, - buffer_sequence_adapter::all_empty(buffers)); - p.v = p.p = 0; - } - - // Wait until data can be read without blocking. - template - void async_read_some(implementation_type& impl, - const null_buffers&, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "descriptor", - &impl, impl.descriptor_, "async_read_some(null_buffers)")); - - start_op(impl, reactor::read_op, p.p, is_continuation, false, false); - p.v = p.p = 0; - } - -private: - // Start the asynchronous operation. - ASIO_DECL void start_op(implementation_type& impl, int op_type, - reactor_op* op, bool is_continuation, bool is_non_blocking, bool noop); - - // The selector that performs event demultiplexing for the service. - reactor& reactor_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/reactive_descriptor_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - -#endif // ASIO_DETAIL_REACTIVE_DESCRIPTOR_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_null_buffers_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_null_buffers_op.hpp deleted file mode 100644 index 7408269..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_null_buffers_op.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// detail/reactive_null_buffers_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTIVE_NULL_BUFFERS_OP_HPP -#define ASIO_DETAIL_REACTIVE_NULL_BUFFERS_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_null_buffers_op : public reactor_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_null_buffers_op); - - reactive_null_buffers_op(Handler& handler) - : reactor_op(&reactive_null_buffers_op::do_perform, - &reactive_null_buffers_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static status do_perform(reactor_op*) - { - return done; - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_null_buffers_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_NULL_BUFFERS_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_serial_port_service.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_serial_port_service.hpp deleted file mode 100644 index 6fddd9f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_serial_port_service.hpp +++ /dev/null @@ -1,236 +0,0 @@ -// -// detail/reactive_serial_port_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_DETAIL_REACTIVE_SERIAL_PORT_SERVICE_HPP -#define ASIO_DETAIL_REACTIVE_SERIAL_PORT_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_SERIAL_PORT) -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#include -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/serial_port_base.hpp" -#include "asio/detail/descriptor_ops.hpp" -#include "asio/detail/reactive_descriptor_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Extend reactive_descriptor_service to provide serial port support. -class reactive_serial_port_service : - public service_base -{ -public: - // The native type of a serial port. - typedef reactive_descriptor_service::native_handle_type native_handle_type; - - // The implementation type of the serial port. - typedef reactive_descriptor_service::implementation_type implementation_type; - - ASIO_DECL reactive_serial_port_service( - asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Construct a new serial port implementation. - void construct(implementation_type& impl) - { - descriptor_service_.construct(impl); - } - - // Move-construct a new serial port implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - descriptor_service_.move_construct(impl, other_impl); - } - - // Move-assign from another serial port implementation. - void move_assign(implementation_type& impl, - reactive_serial_port_service& other_service, - implementation_type& other_impl) - { - descriptor_service_.move_assign(impl, - other_service.descriptor_service_, other_impl); - } - - // Destroy a serial port implementation. - void destroy(implementation_type& impl) - { - descriptor_service_.destroy(impl); - } - - // Open the serial port using the specified device name. - ASIO_DECL asio::error_code open(implementation_type& impl, - const std::string& device, asio::error_code& ec); - - // Assign a native descriptor to a serial port implementation. - asio::error_code assign(implementation_type& impl, - const native_handle_type& native_descriptor, - asio::error_code& ec) - { - return descriptor_service_.assign(impl, native_descriptor, ec); - } - - // Determine whether the serial port is open. - bool is_open(const implementation_type& impl) const - { - return descriptor_service_.is_open(impl); - } - - // Destroy a serial port implementation. - asio::error_code close(implementation_type& impl, - asio::error_code& ec) - { - return descriptor_service_.close(impl, ec); - } - - // Get the native serial port representation. - native_handle_type native_handle(implementation_type& impl) - { - return descriptor_service_.native_handle(impl); - } - - // Cancel all operations associated with the serial port. - asio::error_code cancel(implementation_type& impl, - asio::error_code& ec) - { - return descriptor_service_.cancel(impl, ec); - } - - // Set an option on the serial port. - template - asio::error_code set_option(implementation_type& impl, - const SettableSerialPortOption& option, asio::error_code& ec) - { - return do_set_option(impl, - &reactive_serial_port_service::store_option, - &option, ec); - } - - // Get an option from the serial port. - template - asio::error_code get_option(const implementation_type& impl, - GettableSerialPortOption& option, asio::error_code& ec) const - { - return do_get_option(impl, - &reactive_serial_port_service::load_option, - &option, ec); - } - - // Send a break sequence to the serial port. - asio::error_code send_break(implementation_type& impl, - asio::error_code& ec) - { - errno = 0; - descriptor_ops::error_wrapper(::tcsendbreak( - descriptor_service_.native_handle(impl), 0), ec); - return ec; - } - - // Write the given data. Returns the number of bytes sent. - template - size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return descriptor_service_.write_some(impl, buffers, ec); - } - - // Start an asynchronous write. The data being written must be valid for the - // lifetime of the asynchronous operation. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, Handler& handler) - { - descriptor_service_.async_write_some(impl, buffers, handler); - } - - // Read some data. Returns the number of bytes received. - template - size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return descriptor_service_.read_some(impl, buffers, ec); - } - - // Start an asynchronous read. The buffer for the data being received must be - // valid for the lifetime of the asynchronous operation. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, Handler& handler) - { - descriptor_service_.async_read_some(impl, buffers, handler); - } - -private: - // Function pointer type for storing a serial port option. - typedef asio::error_code (*store_function_type)( - const void*, termios&, asio::error_code&); - - // Helper function template to store a serial port option. - template - static asio::error_code store_option(const void* option, - termios& storage, asio::error_code& ec) - { - static_cast(option)->store(storage, ec); - return ec; - } - - // Helper function to set a serial port option. - ASIO_DECL asio::error_code do_set_option( - implementation_type& impl, store_function_type store, - const void* option, asio::error_code& ec); - - // Function pointer type for loading a serial port option. - typedef asio::error_code (*load_function_type)( - void*, const termios&, asio::error_code&); - - // Helper function template to load a serial port option. - template - static asio::error_code load_option(void* option, - const termios& storage, asio::error_code& ec) - { - static_cast(option)->load(storage, ec); - return ec; - } - - // Helper function to get a serial port option. - ASIO_DECL asio::error_code do_get_option( - const implementation_type& impl, load_function_type load, - void* option, asio::error_code& ec) const; - - // The implementation used for initiating asynchronous operations. - reactive_descriptor_service descriptor_service_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/reactive_serial_port_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) -#endif // defined(ASIO_HAS_SERIAL_PORT) - -#endif // ASIO_DETAIL_REACTIVE_SERIAL_PORT_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_accept_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_accept_op.hpp deleted file mode 100644 index 4a98f04..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_accept_op.hpp +++ /dev/null @@ -1,217 +0,0 @@ -// -// detail/reactive_socket_accept_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTIVE_SOCKET_ACCEPT_OP_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_ACCEPT_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_holder.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_socket_accept_op_base : public reactor_op -{ -public: - reactive_socket_accept_op_base(socket_type socket, - socket_ops::state_type state, Socket& peer, const Protocol& protocol, - typename Protocol::endpoint* peer_endpoint, func_type complete_func) - : reactor_op(&reactive_socket_accept_op_base::do_perform, complete_func), - socket_(socket), - state_(state), - peer_(peer), - protocol_(protocol), - peer_endpoint_(peer_endpoint), - addrlen_(peer_endpoint ? peer_endpoint->capacity() : 0) - { - } - - static status do_perform(reactor_op* base) - { - reactive_socket_accept_op_base* o( - static_cast(base)); - - socket_type new_socket = invalid_socket; - status result = socket_ops::non_blocking_accept(o->socket_, - o->state_, o->peer_endpoint_ ? o->peer_endpoint_->data() : 0, - o->peer_endpoint_ ? &o->addrlen_ : 0, o->ec_, new_socket) - ? done : not_done; - o->new_socket_.reset(new_socket); - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_accept", o->ec_)); - - return result; - } - - void do_assign() - { - if (new_socket_.get() != invalid_socket) - { - if (peer_endpoint_) - peer_endpoint_->resize(addrlen_); - peer_.assign(protocol_, new_socket_.get(), ec_); - if (!ec_) - new_socket_.release(); - } - } - -private: - socket_type socket_; - socket_ops::state_type state_; - socket_holder new_socket_; - Socket& peer_; - Protocol protocol_; - typename Protocol::endpoint* peer_endpoint_; - std::size_t addrlen_; -}; - -template -class reactive_socket_accept_op : - public reactive_socket_accept_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_accept_op); - - reactive_socket_accept_op(socket_type socket, - socket_ops::state_type state, Socket& peer, const Protocol& protocol, - typename Protocol::endpoint* peer_endpoint, Handler& handler) - : reactive_socket_accept_op_base(socket, state, peer, - protocol, peer_endpoint, &reactive_socket_accept_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_accept_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - // On success, assign new connection to peer socket object. - if (owner) - o->do_assign(); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(o->handler_, o->ec_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -#if defined(ASIO_HAS_MOVE) - -template -class reactive_socket_move_accept_op : - private Protocol::socket, - public reactive_socket_accept_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_move_accept_op); - - reactive_socket_move_accept_op(io_context& ioc, socket_type socket, - socket_ops::state_type state, const Protocol& protocol, - typename Protocol::endpoint* peer_endpoint, Handler& handler) - : Protocol::socket(ioc), - reactive_socket_accept_op_base( - socket, state, *this, protocol, peer_endpoint, - &reactive_socket_move_accept_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_move_accept_op* o( - static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - // On success, assign new connection to peer socket object. - if (owner) - o->do_assign(); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::move_binder2 - handler(0, ASIO_MOVE_CAST(Handler)(o->handler_), o->ec_, - ASIO_MOVE_CAST(typename Protocol::socket)(*o)); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, "...")); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -#endif // defined(ASIO_HAS_MOVE) - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_ACCEPT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_connect_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_connect_op.hpp deleted file mode 100644 index 76164b2..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_connect_op.hpp +++ /dev/null @@ -1,113 +0,0 @@ -// -// detail/reactive_socket_connect_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTIVE_SOCKET_CONNECT_OP_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_CONNECT_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class reactive_socket_connect_op_base : public reactor_op -{ -public: - reactive_socket_connect_op_base(socket_type socket, func_type complete_func) - : reactor_op(&reactive_socket_connect_op_base::do_perform, complete_func), - socket_(socket) - { - } - - static status do_perform(reactor_op* base) - { - reactive_socket_connect_op_base* o( - static_cast(base)); - - status result = socket_ops::non_blocking_connect( - o->socket_, o->ec_) ? done : not_done; - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_connect", o->ec_)); - - return result; - } - -private: - socket_type socket_; -}; - -template -class reactive_socket_connect_op : public reactive_socket_connect_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_connect_op); - - reactive_socket_connect_op(socket_type socket, Handler& handler) - : reactive_socket_connect_op_base(socket, - &reactive_socket_connect_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_connect_op* o - (static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(o->handler_, o->ec_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_CONNECT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_recv_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_recv_op.hpp deleted file mode 100644 index 04bd266..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_recv_op.hpp +++ /dev/null @@ -1,135 +0,0 @@ -// -// detail/reactive_socket_recv_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTIVE_SOCKET_RECV_OP_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_RECV_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_socket_recv_op_base : public reactor_op -{ -public: - reactive_socket_recv_op_base(socket_type socket, - socket_ops::state_type state, const MutableBufferSequence& buffers, - socket_base::message_flags flags, func_type complete_func) - : reactor_op(&reactive_socket_recv_op_base::do_perform, complete_func), - socket_(socket), - state_(state), - buffers_(buffers), - flags_(flags) - { - } - - static status do_perform(reactor_op* base) - { - reactive_socket_recv_op_base* o( - static_cast(base)); - - buffer_sequence_adapter bufs(o->buffers_); - - status result = socket_ops::non_blocking_recv(o->socket_, - bufs.buffers(), bufs.count(), o->flags_, - (o->state_ & socket_ops::stream_oriented) != 0, - o->ec_, o->bytes_transferred_) ? done : not_done; - - if (result == done) - if ((o->state_ & socket_ops::stream_oriented) != 0) - if (o->bytes_transferred_ == 0) - result = done_and_exhausted; - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_recv", - o->ec_, o->bytes_transferred_)); - - return result; - } - -private: - socket_type socket_; - socket_ops::state_type state_; - MutableBufferSequence buffers_; - socket_base::message_flags flags_; -}; - -template -class reactive_socket_recv_op : - public reactive_socket_recv_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_recv_op); - - reactive_socket_recv_op(socket_type socket, - socket_ops::state_type state, const MutableBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - : reactive_socket_recv_op_base(socket, state, - buffers, flags, &reactive_socket_recv_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_recv_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_RECV_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp deleted file mode 100644 index 3d4fa4c..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +++ /dev/null @@ -1,138 +0,0 @@ -// -// detail/reactive_socket_recvfrom_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTIVE_SOCKET_RECVFROM_OP_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_RECVFROM_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_socket_recvfrom_op_base : public reactor_op -{ -public: - reactive_socket_recvfrom_op_base(socket_type socket, int protocol_type, - const MutableBufferSequence& buffers, Endpoint& endpoint, - socket_base::message_flags flags, func_type complete_func) - : reactor_op(&reactive_socket_recvfrom_op_base::do_perform, complete_func), - socket_(socket), - protocol_type_(protocol_type), - buffers_(buffers), - sender_endpoint_(endpoint), - flags_(flags) - { - } - - static status do_perform(reactor_op* base) - { - reactive_socket_recvfrom_op_base* o( - static_cast(base)); - - buffer_sequence_adapter bufs(o->buffers_); - - std::size_t addr_len = o->sender_endpoint_.capacity(); - status result = socket_ops::non_blocking_recvfrom(o->socket_, - bufs.buffers(), bufs.count(), o->flags_, - o->sender_endpoint_.data(), &addr_len, - o->ec_, o->bytes_transferred_) ? done : not_done; - - if (result && !o->ec_) - o->sender_endpoint_.resize(addr_len); - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_recvfrom", - o->ec_, o->bytes_transferred_)); - - return result; - } - -private: - socket_type socket_; - int protocol_type_; - MutableBufferSequence buffers_; - Endpoint& sender_endpoint_; - socket_base::message_flags flags_; -}; - -template -class reactive_socket_recvfrom_op : - public reactive_socket_recvfrom_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_recvfrom_op); - - reactive_socket_recvfrom_op(socket_type socket, int protocol_type, - const MutableBufferSequence& buffers, Endpoint& endpoint, - socket_base::message_flags flags, Handler& handler) - : reactive_socket_recvfrom_op_base( - socket, protocol_type, buffers, endpoint, flags, - &reactive_socket_recvfrom_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_recvfrom_op* o( - static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_RECVFROM_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp deleted file mode 100644 index f473274..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +++ /dev/null @@ -1,132 +0,0 @@ -// -// detail/reactive_socket_recvmsg_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTIVE_SOCKET_RECVMSG_OP_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_RECVMSG_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/socket_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_socket_recvmsg_op_base : public reactor_op -{ -public: - reactive_socket_recvmsg_op_base(socket_type socket, - const MutableBufferSequence& buffers, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, func_type complete_func) - : reactor_op(&reactive_socket_recvmsg_op_base::do_perform, complete_func), - socket_(socket), - buffers_(buffers), - in_flags_(in_flags), - out_flags_(out_flags) - { - } - - static status do_perform(reactor_op* base) - { - reactive_socket_recvmsg_op_base* o( - static_cast(base)); - - buffer_sequence_adapter bufs(o->buffers_); - - status result = socket_ops::non_blocking_recvmsg(o->socket_, - bufs.buffers(), bufs.count(), - o->in_flags_, o->out_flags_, - o->ec_, o->bytes_transferred_) ? done : not_done; - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_recvmsg", - o->ec_, o->bytes_transferred_)); - - return result; - } - -private: - socket_type socket_; - MutableBufferSequence buffers_; - socket_base::message_flags in_flags_; - socket_base::message_flags& out_flags_; -}; - -template -class reactive_socket_recvmsg_op : - public reactive_socket_recvmsg_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_recvmsg_op); - - reactive_socket_recvmsg_op(socket_type socket, - const MutableBufferSequence& buffers, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, Handler& handler) - : reactive_socket_recvmsg_op_base(socket, buffers, - in_flags, out_flags, &reactive_socket_recvmsg_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_recvmsg_op* o( - static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_RECVMSG_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_send_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_send_op.hpp deleted file mode 100644 index bd550d9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_send_op.hpp +++ /dev/null @@ -1,134 +0,0 @@ -// -// detail/reactive_socket_send_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTIVE_SOCKET_SEND_OP_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_SEND_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_socket_send_op_base : public reactor_op -{ -public: - reactive_socket_send_op_base(socket_type socket, - socket_ops::state_type state, const ConstBufferSequence& buffers, - socket_base::message_flags flags, func_type complete_func) - : reactor_op(&reactive_socket_send_op_base::do_perform, complete_func), - socket_(socket), - state_(state), - buffers_(buffers), - flags_(flags) - { - } - - static status do_perform(reactor_op* base) - { - reactive_socket_send_op_base* o( - static_cast(base)); - - buffer_sequence_adapter bufs(o->buffers_); - - status result = socket_ops::non_blocking_send(o->socket_, - bufs.buffers(), bufs.count(), o->flags_, - o->ec_, o->bytes_transferred_) ? done : not_done; - - if (result == done) - if ((o->state_ & socket_ops::stream_oriented) != 0) - if (o->bytes_transferred_ < bufs.total_size()) - result = done_and_exhausted; - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_send", - o->ec_, o->bytes_transferred_)); - - return result; - } - -private: - socket_type socket_; - socket_ops::state_type state_; - ConstBufferSequence buffers_; - socket_base::message_flags flags_; -}; - -template -class reactive_socket_send_op : - public reactive_socket_send_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_send_op); - - reactive_socket_send_op(socket_type socket, - socket_ops::state_type state, const ConstBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - : reactive_socket_send_op_base(socket, - state, buffers, flags, &reactive_socket_send_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_send_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_SEND_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_sendto_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_sendto_op.hpp deleted file mode 100644 index c97554d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_sendto_op.hpp +++ /dev/null @@ -1,130 +0,0 @@ -// -// detail/reactive_socket_sendto_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTIVE_SOCKET_SENDTO_OP_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_SENDTO_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_socket_sendto_op_base : public reactor_op -{ -public: - reactive_socket_sendto_op_base(socket_type socket, - const ConstBufferSequence& buffers, const Endpoint& endpoint, - socket_base::message_flags flags, func_type complete_func) - : reactor_op(&reactive_socket_sendto_op_base::do_perform, complete_func), - socket_(socket), - buffers_(buffers), - destination_(endpoint), - flags_(flags) - { - } - - static status do_perform(reactor_op* base) - { - reactive_socket_sendto_op_base* o( - static_cast(base)); - - buffer_sequence_adapter bufs(o->buffers_); - - status result = socket_ops::non_blocking_sendto(o->socket_, - bufs.buffers(), bufs.count(), o->flags_, - o->destination_.data(), o->destination_.size(), - o->ec_, o->bytes_transferred_) ? done : not_done; - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_sendto", - o->ec_, o->bytes_transferred_)); - - return result; - } - -private: - socket_type socket_; - ConstBufferSequence buffers_; - Endpoint destination_; - socket_base::message_flags flags_; -}; - -template -class reactive_socket_sendto_op : - public reactive_socket_sendto_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_sendto_op); - - reactive_socket_sendto_op(socket_type socket, - const ConstBufferSequence& buffers, const Endpoint& endpoint, - socket_base::message_flags flags, Handler& handler) - : reactive_socket_sendto_op_base(socket, - buffers, endpoint, flags, &reactive_socket_sendto_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_sendto_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_SENDTO_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_service.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_service.hpp deleted file mode 100644 index 15a4fdb..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_service.hpp +++ /dev/null @@ -1,526 +0,0 @@ -// -// detail/reactive_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTIVE_SOCKET_SERVICE_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_IOCP) - -#include "asio/buffer.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/socket_base.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/reactive_null_buffers_op.hpp" -#include "asio/detail/reactive_socket_accept_op.hpp" -#include "asio/detail/reactive_socket_connect_op.hpp" -#include "asio/detail/reactive_socket_recvfrom_op.hpp" -#include "asio/detail/reactive_socket_sendto_op.hpp" -#include "asio/detail/reactive_socket_service_base.hpp" -#include "asio/detail/reactor.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_holder.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_socket_service : - public service_base >, - public reactive_socket_service_base -{ -public: - // The protocol type. - typedef Protocol protocol_type; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // The native type of a socket. - typedef socket_type native_handle_type; - - // The implementation type of the socket. - struct implementation_type : - reactive_socket_service_base::base_implementation_type - { - // Default constructor. - implementation_type() - : protocol_(endpoint_type().protocol()) - { - } - - // The protocol associated with the socket. - protocol_type protocol_; - }; - - // Constructor. - reactive_socket_service(asio::io_context& io_context) - : service_base >(io_context), - reactive_socket_service_base(io_context) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - this->base_shutdown(); - } - - // Move-construct a new socket implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - this->base_move_construct(impl, other_impl); - - impl.protocol_ = other_impl.protocol_; - other_impl.protocol_ = endpoint_type().protocol(); - } - - // Move-assign from another socket implementation. - void move_assign(implementation_type& impl, - reactive_socket_service_base& other_service, - implementation_type& other_impl) - { - this->base_move_assign(impl, other_service, other_impl); - - impl.protocol_ = other_impl.protocol_; - other_impl.protocol_ = endpoint_type().protocol(); - } - - // Move-construct a new socket implementation from another protocol type. - template - void converting_move_construct(implementation_type& impl, - reactive_socket_service&, - typename reactive_socket_service< - Protocol1>::implementation_type& other_impl) - { - this->base_move_construct(impl, other_impl); - - impl.protocol_ = protocol_type(other_impl.protocol_); - other_impl.protocol_ = typename Protocol1::endpoint().protocol(); - } - - // Open a new socket implementation. - asio::error_code open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - if (!do_open(impl, protocol.family(), - protocol.type(), protocol.protocol(), ec)) - impl.protocol_ = protocol; - return ec; - } - - // Assign a native socket to a socket implementation. - asio::error_code assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_socket, - asio::error_code& ec) - { - if (!do_assign(impl, protocol.type(), native_socket, ec)) - impl.protocol_ = protocol; - return ec; - } - - // Get the native socket representation. - native_handle_type native_handle(implementation_type& impl) - { - return impl.socket_; - } - - // Bind the socket to the specified local endpoint. - asio::error_code bind(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - socket_ops::bind(impl.socket_, endpoint.data(), endpoint.size(), ec); - return ec; - } - - // Set a socket option. - template - asio::error_code set_option(implementation_type& impl, - const Option& option, asio::error_code& ec) - { - socket_ops::setsockopt(impl.socket_, impl.state_, - option.level(impl.protocol_), option.name(impl.protocol_), - option.data(impl.protocol_), option.size(impl.protocol_), ec); - return ec; - } - - // Set a socket option. - template - asio::error_code get_option(const implementation_type& impl, - Option& option, asio::error_code& ec) const - { - std::size_t size = option.size(impl.protocol_); - socket_ops::getsockopt(impl.socket_, impl.state_, - option.level(impl.protocol_), option.name(impl.protocol_), - option.data(impl.protocol_), &size, ec); - if (!ec) - option.resize(impl.protocol_, size); - return ec; - } - - // Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - endpoint_type endpoint; - std::size_t addr_len = endpoint.capacity(); - if (socket_ops::getsockname(impl.socket_, endpoint.data(), &addr_len, ec)) - return endpoint_type(); - endpoint.resize(addr_len); - return endpoint; - } - - // Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - endpoint_type endpoint; - std::size_t addr_len = endpoint.capacity(); - if (socket_ops::getpeername(impl.socket_, - endpoint.data(), &addr_len, false, ec)) - return endpoint_type(); - endpoint.resize(addr_len); - return endpoint; - } - - // Disable sends or receives on the socket. - asio::error_code shutdown(base_implementation_type& impl, - socket_base::shutdown_type what, asio::error_code& ec) - { - socket_ops::shutdown(impl.socket_, what, ec); - return ec; - } - - // Send a datagram to the specified endpoint. Returns the number of bytes - // sent. - template - size_t send_to(implementation_type& impl, const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_sendto(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), flags, - destination.data(), destination.size(), ec); - } - - // Wait until data can be sent without blocking. - size_t send_to(implementation_type& impl, const null_buffers&, - const endpoint_type&, socket_base::message_flags, - asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_write(impl.socket_, impl.state_, -1, ec); - - return 0; - } - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send_to(implementation_type& impl, - const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_sendto_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.socket_, buffers, destination, flags, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_send_to")); - - start_op(impl, reactor::write_op, p.p, is_continuation, true, false); - p.v = p.p = 0; - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send_to(implementation_type& impl, const null_buffers&, - const endpoint_type&, socket_base::message_flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_send_to(null_buffers)")); - - start_op(impl, reactor::write_op, p.p, is_continuation, false, false); - p.v = p.p = 0; - } - - // Receive a datagram with the endpoint of the sender. Returns the number of - // bytes received. - template - size_t receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - std::size_t addr_len = sender_endpoint.capacity(); - std::size_t bytes_recvd = socket_ops::sync_recvfrom( - impl.socket_, impl.state_, bufs.buffers(), bufs.count(), - flags, sender_endpoint.data(), &addr_len, ec); - - if (!ec) - sender_endpoint.resize(addr_len); - - return bytes_recvd; - } - - // Wait until data can be received without blocking. - size_t receive_from(implementation_type& impl, const null_buffers&, - endpoint_type& sender_endpoint, socket_base::message_flags, - asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - - // Reset endpoint since it can be given no sensible value at this time. - sender_endpoint = endpoint_type(); - - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received and - // the sender_endpoint object must both be valid for the lifetime of the - // asynchronous operation. - template - void async_receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_recvfrom_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - int protocol = impl.protocol_.type(); - p.p = new (p.v) op(impl.socket_, protocol, - buffers, sender_endpoint, flags, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_receive_from")); - - start_op(impl, - (flags & socket_base::message_out_of_band) - ? reactor::except_op : reactor::read_op, - p.p, is_continuation, true, false); - p.v = p.p = 0; - } - - // Wait until data can be received without blocking. - template - void async_receive_from(implementation_type& impl, - const null_buffers&, endpoint_type& sender_endpoint, - socket_base::message_flags flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_receive_from(null_buffers)")); - - // Reset endpoint since it can be given no sensible value at this time. - sender_endpoint = endpoint_type(); - - start_op(impl, - (flags & socket_base::message_out_of_band) - ? reactor::except_op : reactor::read_op, - p.p, is_continuation, false, false); - p.v = p.p = 0; - } - - // Accept a new connection. - template - asio::error_code accept(implementation_type& impl, - Socket& peer, endpoint_type* peer_endpoint, asio::error_code& ec) - { - // We cannot accept a socket that is already open. - if (peer.is_open()) - { - ec = asio::error::already_open; - return ec; - } - - std::size_t addr_len = peer_endpoint ? peer_endpoint->capacity() : 0; - socket_holder new_socket(socket_ops::sync_accept(impl.socket_, - impl.state_, peer_endpoint ? peer_endpoint->data() : 0, - peer_endpoint ? &addr_len : 0, ec)); - - // On success, assign new connection to peer socket object. - if (new_socket.get() != invalid_socket) - { - if (peer_endpoint) - peer_endpoint->resize(addr_len); - peer.assign(impl.protocol_, new_socket.get(), ec); - if (!ec) - new_socket.release(); - } - - return ec; - } - -#if defined(ASIO_HAS_MOVE) - // Accept a new connection. - typename Protocol::socket accept(implementation_type& impl, - io_context* peer_io_context, endpoint_type* peer_endpoint, - asio::error_code& ec) - { - typename Protocol::socket peer( - peer_io_context ? *peer_io_context : io_context_); - - std::size_t addr_len = peer_endpoint ? peer_endpoint->capacity() : 0; - socket_holder new_socket(socket_ops::sync_accept(impl.socket_, - impl.state_, peer_endpoint ? peer_endpoint->data() : 0, - peer_endpoint ? &addr_len : 0, ec)); - - // On success, assign new connection to peer socket object. - if (new_socket.get() != invalid_socket) - { - if (peer_endpoint) - peer_endpoint->resize(addr_len); - peer.assign(impl.protocol_, new_socket.get(), ec); - if (!ec) - new_socket.release(); - } - - return peer; - } -#endif // defined(ASIO_HAS_MOVE) - - // Start an asynchronous accept. The peer and peer_endpoint objects must be - // valid until the accept's handler is invoked. - template - void async_accept(implementation_type& impl, Socket& peer, - endpoint_type* peer_endpoint, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_accept_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.socket_, impl.state_, peer, - impl.protocol_, peer_endpoint, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_accept")); - - start_accept_op(impl, p.p, is_continuation, peer.is_open()); - p.v = p.p = 0; - } - -#if defined(ASIO_HAS_MOVE) - // Start an asynchronous accept. The peer_endpoint object must be valid until - // the accept's handler is invoked. - template - void async_accept(implementation_type& impl, - asio::io_context* peer_io_context, - endpoint_type* peer_endpoint, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_move_accept_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(peer_io_context ? *peer_io_context : io_context_, - impl.socket_, impl.state_, impl.protocol_, peer_endpoint, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_accept")); - - start_accept_op(impl, p.p, is_continuation, false); - p.v = p.p = 0; - } -#endif // defined(ASIO_HAS_MOVE) - - // Connect the socket to the specified endpoint. - asio::error_code connect(implementation_type& impl, - const endpoint_type& peer_endpoint, asio::error_code& ec) - { - socket_ops::sync_connect(impl.socket_, - peer_endpoint.data(), peer_endpoint.size(), ec); - return ec; - } - - // Start an asynchronous connect. - template - void async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_connect_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.socket_, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_connect")); - - start_connect_op(impl, p.p, is_continuation, - peer_endpoint.data(), peer_endpoint.size()); - p.v = p.p = 0; - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_service_base.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_service_base.hpp deleted file mode 100644 index ccd497e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_service_base.hpp +++ /dev/null @@ -1,511 +0,0 @@ -// -// detail/reactive_socket_service_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTIVE_SOCKET_SERVICE_BASE_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_SERVICE_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_IOCP) \ - && !defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/buffer.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/socket_base.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactive_null_buffers_op.hpp" -#include "asio/detail/reactive_socket_recv_op.hpp" -#include "asio/detail/reactive_socket_recvmsg_op.hpp" -#include "asio/detail/reactive_socket_send_op.hpp" -#include "asio/detail/reactive_wait_op.hpp" -#include "asio/detail/reactor.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_holder.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class reactive_socket_service_base -{ -public: - // The native type of a socket. - typedef socket_type native_handle_type; - - // The implementation type of the socket. - struct base_implementation_type - { - // The native socket representation. - socket_type socket_; - - // The current state of the socket. - socket_ops::state_type state_; - - // Per-descriptor data used by the reactor. - reactor::per_descriptor_data reactor_data_; - }; - - // Constructor. - ASIO_DECL reactive_socket_service_base( - asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void base_shutdown(); - - // Construct a new socket implementation. - ASIO_DECL void construct(base_implementation_type& impl); - - // Move-construct a new socket implementation. - ASIO_DECL void base_move_construct(base_implementation_type& impl, - base_implementation_type& other_impl); - - // Move-assign from another socket implementation. - ASIO_DECL void base_move_assign(base_implementation_type& impl, - reactive_socket_service_base& other_service, - base_implementation_type& other_impl); - - // Destroy a socket implementation. - ASIO_DECL void destroy(base_implementation_type& impl); - - // Determine whether the socket is open. - bool is_open(const base_implementation_type& impl) const - { - return impl.socket_ != invalid_socket; - } - - // Destroy a socket implementation. - ASIO_DECL asio::error_code close( - base_implementation_type& impl, asio::error_code& ec); - - // Release ownership of the socket. - ASIO_DECL socket_type release( - base_implementation_type& impl, asio::error_code& ec); - - // Get the native socket representation. - native_handle_type native_handle(base_implementation_type& impl) - { - return impl.socket_; - } - - // Cancel all operations associated with the socket. - ASIO_DECL asio::error_code cancel( - base_implementation_type& impl, asio::error_code& ec); - - // Determine whether the socket is at the out-of-band data mark. - bool at_mark(const base_implementation_type& impl, - asio::error_code& ec) const - { - return socket_ops::sockatmark(impl.socket_, ec); - } - - // Determine the number of bytes available for reading. - std::size_t available(const base_implementation_type& impl, - asio::error_code& ec) const - { - return socket_ops::available(impl.socket_, ec); - } - - // Place the socket into the state where it will listen for new connections. - asio::error_code listen(base_implementation_type& impl, - int backlog, asio::error_code& ec) - { - socket_ops::listen(impl.socket_, backlog, ec); - return ec; - } - - // Perform an IO control command on the socket. - template - asio::error_code io_control(base_implementation_type& impl, - IO_Control_Command& command, asio::error_code& ec) - { - socket_ops::ioctl(impl.socket_, impl.state_, command.name(), - static_cast(command.data()), ec); - return ec; - } - - // Gets the non-blocking mode of the socket. - bool non_blocking(const base_implementation_type& impl) const - { - return (impl.state_ & socket_ops::user_set_non_blocking) != 0; - } - - // Sets the non-blocking mode of the socket. - asio::error_code non_blocking(base_implementation_type& impl, - bool mode, asio::error_code& ec) - { - socket_ops::set_user_non_blocking(impl.socket_, impl.state_, mode, ec); - return ec; - } - - // Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const base_implementation_type& impl) const - { - return (impl.state_ & socket_ops::internal_non_blocking) != 0; - } - - // Sets the non-blocking mode of the native socket implementation. - asio::error_code native_non_blocking(base_implementation_type& impl, - bool mode, asio::error_code& ec) - { - socket_ops::set_internal_non_blocking(impl.socket_, impl.state_, mode, ec); - return ec; - } - - // Wait for the socket to become ready to read, ready to write, or to have - // pending error conditions. - asio::error_code wait(base_implementation_type& impl, - socket_base::wait_type w, asio::error_code& ec) - { - switch (w) - { - case socket_base::wait_read: - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - break; - case socket_base::wait_write: - socket_ops::poll_write(impl.socket_, impl.state_, -1, ec); - break; - case socket_base::wait_error: - socket_ops::poll_error(impl.socket_, impl.state_, -1, ec); - break; - default: - ec = asio::error::invalid_argument; - break; - } - - return ec; - } - - // Asynchronously wait for the socket to become ready to read, ready to - // write, or to have pending error conditions. - template - void async_wait(base_implementation_type& impl, - socket_base::wait_type w, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_wait_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_wait")); - - int op_type; - switch (w) - { - case socket_base::wait_read: - op_type = reactor::read_op; - break; - case socket_base::wait_write: - op_type = reactor::write_op; - break; - case socket_base::wait_error: - op_type = reactor::except_op; - break; - default: - p.p->ec_ = asio::error::invalid_argument; - reactor_.post_immediate_completion(p.p, is_continuation); - p.v = p.p = 0; - return; - } - - start_op(impl, op_type, p.p, is_continuation, false, false); - p.v = p.p = 0; - } - - // Send the given data to the peer. - template - size_t send(base_implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_send(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), flags, bufs.all_empty(), ec); - } - - // Wait until data can be sent without blocking. - size_t send(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_write(impl.socket_, impl.state_, -1, ec); - - return 0; - } - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send(base_implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_send_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.socket_, impl.state_, buffers, flags, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_send")); - - start_op(impl, reactor::write_op, p.p, is_continuation, true, - ((impl.state_ & socket_ops::stream_oriented) - && buffer_sequence_adapter::all_empty(buffers))); - p.v = p.p = 0; - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_send(null_buffers)")); - - start_op(impl, reactor::write_op, p.p, is_continuation, false, false); - p.v = p.p = 0; - } - - // Receive some data from the peer. Returns the number of bytes received. - template - size_t receive(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_recv(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), flags, bufs.all_empty(), ec); - } - - // Wait until data can be received without blocking. - size_t receive(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_recv_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.socket_, impl.state_, buffers, flags, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_receive")); - - start_op(impl, - (flags & socket_base::message_out_of_band) - ? reactor::except_op : reactor::read_op, - p.p, is_continuation, - (flags & socket_base::message_out_of_band) == 0, - ((impl.state_ & socket_ops::stream_oriented) - && buffer_sequence_adapter::all_empty(buffers))); - p.v = p.p = 0; - } - - // Wait until data can be received without blocking. - template - void async_receive(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_receive(null_buffers)")); - - start_op(impl, - (flags & socket_base::message_out_of_band) - ? reactor::except_op : reactor::read_op, - p.p, is_continuation, false, false); - p.v = p.p = 0; - } - - // Receive some data with associated flags. Returns the number of bytes - // received. - template - size_t receive_with_flags(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_recvmsg(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), in_flags, out_flags, ec); - } - - // Wait until data can be received without blocking. - size_t receive_with_flags(base_implementation_type& impl, - const null_buffers&, socket_base::message_flags, - socket_base::message_flags& out_flags, asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - - // Clear out_flags, since we cannot give it any other sensible value when - // performing a null_buffers operation. - out_flags = 0; - - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive_with_flags(base_implementation_type& impl, - const MutableBufferSequence& buffers, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_recvmsg_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.socket_, buffers, in_flags, out_flags, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_receive_with_flags")); - - start_op(impl, - (in_flags & socket_base::message_out_of_band) - ? reactor::except_op : reactor::read_op, - p.p, is_continuation, - (in_flags & socket_base::message_out_of_band) == 0, false); - p.v = p.p = 0; - } - - // Wait until data can be received without blocking. - template - void async_receive_with_flags(base_implementation_type& impl, - const null_buffers&, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_receive_with_flags(null_buffers)")); - - // Clear out_flags, since we cannot give it any other sensible value when - // performing a null_buffers operation. - out_flags = 0; - - start_op(impl, - (in_flags & socket_base::message_out_of_band) - ? reactor::except_op : reactor::read_op, - p.p, is_continuation, false, false); - p.v = p.p = 0; - } - -protected: - // Open a new socket implementation. - ASIO_DECL asio::error_code do_open( - base_implementation_type& impl, int af, - int type, int protocol, asio::error_code& ec); - - // Assign a native socket to a socket implementation. - ASIO_DECL asio::error_code do_assign( - base_implementation_type& impl, int type, - const native_handle_type& native_socket, asio::error_code& ec); - - // Start the asynchronous read or write operation. - ASIO_DECL void start_op(base_implementation_type& impl, int op_type, - reactor_op* op, bool is_continuation, bool is_non_blocking, bool noop); - - // Start the asynchronous accept operation. - ASIO_DECL void start_accept_op(base_implementation_type& impl, - reactor_op* op, bool is_continuation, bool peer_is_open); - - // Start the asynchronous connect operation. - ASIO_DECL void start_connect_op(base_implementation_type& impl, - reactor_op* op, bool is_continuation, - const socket_addr_type* addr, size_t addrlen); - - // The io_context that owns this socket service. - io_context& io_context_; - - // The selector that performs event demultiplexing for the service. - reactor& reactor_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/reactive_socket_service_base.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // !defined(ASIO_HAS_IOCP) - // && !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_SERVICE_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_wait_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_wait_op.hpp deleted file mode 100644 index 616d8b1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_wait_op.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// detail/reactive_wait_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTIVE_WAIT_OP_HPP -#define ASIO_DETAIL_REACTIVE_WAIT_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_wait_op : public reactor_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_wait_op); - - reactive_wait_op(Handler& handler) - : reactor_op(&reactive_wait_op::do_perform, - &reactive_wait_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static status do_perform(reactor_op*) - { - return done; - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_wait_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(o->handler_, o->ec_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_WAIT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactor.hpp b/Sources/Vendor/asio/include/asio/detail/reactor.hpp deleted file mode 100644 index 4750276..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactor.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// -// detail/reactor.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTOR_HPP -#define ASIO_DETAIL_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/reactor_fwd.hpp" - -#if defined(ASIO_HAS_EPOLL) -# include "asio/detail/epoll_reactor.hpp" -#elif defined(ASIO_HAS_KQUEUE) -# include "asio/detail/kqueue_reactor.hpp" -#elif defined(ASIO_HAS_DEV_POLL) -# include "asio/detail/dev_poll_reactor.hpp" -#elif defined(ASIO_HAS_IOCP) || defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/null_reactor.hpp" -#else -# include "asio/detail/select_reactor.hpp" -#endif - -#endif // ASIO_DETAIL_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactor_fwd.hpp b/Sources/Vendor/asio/include/asio/detail/reactor_fwd.hpp deleted file mode 100644 index a4555c3..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactor_fwd.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// -// detail/reactor_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTOR_FWD_HPP -#define ASIO_DETAIL_REACTOR_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_IOCP) || defined(ASIO_WINDOWS_RUNTIME) -typedef class null_reactor reactor; -#elif defined(ASIO_HAS_IOCP) -typedef class select_reactor reactor; -#elif defined(ASIO_HAS_EPOLL) -typedef class epoll_reactor reactor; -#elif defined(ASIO_HAS_KQUEUE) -typedef class kqueue_reactor reactor; -#elif defined(ASIO_HAS_DEV_POLL) -typedef class dev_poll_reactor reactor; -#else -typedef class select_reactor reactor; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_REACTOR_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactor_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactor_op.hpp deleted file mode 100644 index faad1a7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactor_op.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// -// detail/reactor_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTOR_OP_HPP -#define ASIO_DETAIL_REACTOR_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class reactor_op - : public operation -{ -public: - // The error code to be passed to the completion handler. - asio::error_code ec_; - - // The number of bytes transferred, to be passed to the completion handler. - std::size_t bytes_transferred_; - - // Status returned by perform function. May be used to decide whether it is - // worth performing more operations on the descriptor immediately. - enum status { not_done, done, done_and_exhausted }; - - // Perform the operation. Returns true if it is finished. - status perform() - { - return perform_func_(this); - } - -protected: - typedef status (*perform_func_type)(reactor_op*); - - reactor_op(perform_func_type perform_func, func_type complete_func) - : operation(complete_func), - bytes_transferred_(0), - perform_func_(perform_func) - { - } - -private: - perform_func_type perform_func_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTOR_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactor_op_queue.hpp b/Sources/Vendor/asio/include/asio/detail/reactor_op_queue.hpp deleted file mode 100644 index 898f31d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactor_op_queue.hpp +++ /dev/null @@ -1,168 +0,0 @@ -// -// detail/reactor_op_queue.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REACTOR_OP_QUEUE_HPP -#define ASIO_DETAIL_REACTOR_OP_QUEUE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/hash_map.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactor_op_queue - : private noncopyable -{ -public: - typedef Descriptor key_type; - - struct mapped_type : op_queue - { - mapped_type() {} - mapped_type(const mapped_type&) {} - void operator=(const mapped_type&) {} - }; - - typedef typename hash_map::value_type value_type; - typedef typename hash_map::iterator iterator; - - // Constructor. - reactor_op_queue() - : operations_() - { - } - - // Obtain iterators to all registered descriptors. - iterator begin() { return operations_.begin(); } - iterator end() { return operations_.end(); } - - // Add a new operation to the queue. Returns true if this is the only - // operation for the given descriptor, in which case the reactor's event - // demultiplexing function call may need to be interrupted and restarted. - bool enqueue_operation(Descriptor descriptor, reactor_op* op) - { - std::pair entry = - operations_.insert(value_type(descriptor, mapped_type())); - entry.first->second.push(op); - return entry.second; - } - - // Cancel all operations associated with the descriptor identified by the - // supplied iterator. Any operations pending for the descriptor will be - // cancelled. Returns true if any operations were cancelled, in which case - // the reactor's event demultiplexing function may need to be interrupted and - // restarted. - bool cancel_operations(iterator i, op_queue& ops, - const asio::error_code& ec = - asio::error::operation_aborted) - { - if (i != operations_.end()) - { - while (reactor_op* op = i->second.front()) - { - op->ec_ = ec; - i->second.pop(); - ops.push(op); - } - operations_.erase(i); - return true; - } - - return false; - } - - // Cancel all operations associated with the descriptor. Any operations - // pending for the descriptor will be cancelled. Returns true if any - // operations were cancelled, in which case the reactor's event - // demultiplexing function may need to be interrupted and restarted. - bool cancel_operations(Descriptor descriptor, op_queue& ops, - const asio::error_code& ec = - asio::error::operation_aborted) - { - return this->cancel_operations(operations_.find(descriptor), ops, ec); - } - - // Whether there are no operations in the queue. - bool empty() const - { - return operations_.empty(); - } - - // Determine whether there are any operations associated with the descriptor. - bool has_operation(Descriptor descriptor) const - { - return operations_.find(descriptor) != operations_.end(); - } - - // Perform the operations corresponding to the descriptor identified by the - // supplied iterator. Returns true if there are still unfinished operations - // queued for the descriptor. - bool perform_operations(iterator i, op_queue& ops) - { - if (i != operations_.end()) - { - while (reactor_op* op = i->second.front()) - { - if (op->perform()) - { - i->second.pop(); - ops.push(op); - } - else - { - return true; - } - } - operations_.erase(i); - } - return false; - } - - // Perform the operations corresponding to the descriptor. Returns true if - // there are still unfinished operations queued for the descriptor. - bool perform_operations(Descriptor descriptor, op_queue& ops) - { - return this->perform_operations(operations_.find(descriptor), ops); - } - - // Get all operations owned by the queue. - void get_all_operations(op_queue& ops) - { - iterator i = operations_.begin(); - while (i != operations_.end()) - { - iterator op_iter = i++; - ops.push(op_iter->second); - operations_.erase(op_iter); - } - } - -private: - // The operations that are currently executing asynchronously. - hash_map operations_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTOR_OP_QUEUE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/recycling_allocator.hpp b/Sources/Vendor/asio/include/asio/detail/recycling_allocator.hpp deleted file mode 100644 index 964af1d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/recycling_allocator.hpp +++ /dev/null @@ -1,104 +0,0 @@ -// -// detail/recycling_allocator.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_RECYCLING_ALLOCATOR_HPP -#define ASIO_DETAIL_RECYCLING_ALLOCATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/thread_context.hpp" -#include "asio/detail/thread_info_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class recycling_allocator -{ -public: - typedef T value_type; - - template - struct rebind - { - typedef recycling_allocator other; - }; - - recycling_allocator() - { - } - - template - recycling_allocator(const recycling_allocator&) - { - } - - T* allocate(std::size_t n) - { - typedef thread_context::thread_call_stack call_stack; - void* p = thread_info_base::allocate(call_stack::top(), sizeof(T) * n); - return static_cast(p); - } - - void deallocate(T* p, std::size_t n) - { - typedef thread_context::thread_call_stack call_stack; - thread_info_base::deallocate(call_stack::top(), p, sizeof(T) * n); - } -}; - -template <> -class recycling_allocator -{ -public: - typedef void value_type; - - template - struct rebind - { - typedef recycling_allocator other; - }; - - recycling_allocator() - { - } - - template - recycling_allocator(const recycling_allocator&) - { - } -}; - -template -struct get_recycling_allocator -{ - typedef Allocator type; - static type get(const Allocator& a) { return a; } -}; - -template -struct get_recycling_allocator > -{ - typedef recycling_allocator type; - static type get(const std::allocator&) { return type(); } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_RECYCLING_ALLOCATOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/regex_fwd.hpp b/Sources/Vendor/asio/include/asio/detail/regex_fwd.hpp deleted file mode 100644 index dcf7d06..0000000 --- a/Sources/Vendor/asio/include/asio/detail/regex_fwd.hpp +++ /dev/null @@ -1,35 +0,0 @@ -// -// detail/regex_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_REGEX_FWD_HPP -#define ASIO_DETAIL_REGEX_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if defined(ASIO_HAS_BOOST_REGEX) - -#include -#include - -namespace boost { - -template -struct sub_match; - -template -class match_results; - -} // namespace boost - -#endif // defined(ASIO_HAS_BOOST_REGEX) - -#endif // ASIO_DETAIL_REGEX_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/resolve_endpoint_op.hpp b/Sources/Vendor/asio/include/asio/detail/resolve_endpoint_op.hpp deleted file mode 100644 index 8eee2f9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/resolve_endpoint_op.hpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// detail/resolve_endpoint_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_RESOLVER_ENDPOINT_OP_HPP -#define ASIO_DETAIL_RESOLVER_ENDPOINT_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/basic_resolver_results.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/resolve_op.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class resolve_endpoint_op : public resolve_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(resolve_endpoint_op); - - typedef typename Protocol::endpoint endpoint_type; - typedef asio::ip::basic_resolver_results results_type; - - resolve_endpoint_op(socket_ops::weak_cancel_token_type cancel_token, - const endpoint_type& endpoint, io_context_impl& ioc, Handler& handler) - : resolve_op(&resolve_endpoint_op::do_complete), - cancel_token_(cancel_token), - endpoint_(endpoint), - io_context_impl_(ioc), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the operation object. - resolve_endpoint_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - if (owner && owner != &o->io_context_impl_) - { - // The operation is being run on the worker io_context. Time to perform - // the resolver operation. - - // Perform the blocking endpoint resolution operation. - char host_name[NI_MAXHOST]; - char service_name[NI_MAXSERV]; - socket_ops::background_getnameinfo(o->cancel_token_, o->endpoint_.data(), - o->endpoint_.size(), host_name, NI_MAXHOST, service_name, NI_MAXSERV, - o->endpoint_.protocol().type(), o->ec_); - o->results_ = results_type::create(o->endpoint_, host_name, service_name); - - // Pass operation back to main io_context for completion. - o->io_context_impl_.post_deferred_completion(o); - p.v = p.p = 0; - } - else - { - // The operation has been returned to the main io_context. The completion - // handler is ready to be delivered. - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated - // before the upcall is made. Even if we're not about to make an upcall, - // a sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->results_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, "...")); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - } - -private: - socket_ops::weak_cancel_token_type cancel_token_; - endpoint_type endpoint_; - io_context_impl& io_context_impl_; - Handler handler_; - results_type results_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_RESOLVER_ENDPOINT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/resolve_op.hpp b/Sources/Vendor/asio/include/asio/detail/resolve_op.hpp deleted file mode 100644 index a528aa8..0000000 --- a/Sources/Vendor/asio/include/asio/detail/resolve_op.hpp +++ /dev/null @@ -1,45 +0,0 @@ -// -// detail/resolve_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_RESOLVE_OP_HPP -#define ASIO_DETAIL_RESOLVE_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/error.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class resolve_op : public operation -{ -public: - // The error code to be passed to the completion handler. - asio::error_code ec_; - -protected: - resolve_op(func_type complete_func) - : operation(complete_func) - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_RESOLVE_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/resolve_query_op.hpp b/Sources/Vendor/asio/include/asio/detail/resolve_query_op.hpp deleted file mode 100644 index 0ec5a32..0000000 --- a/Sources/Vendor/asio/include/asio/detail/resolve_query_op.hpp +++ /dev/null @@ -1,134 +0,0 @@ -// -// detail/resolve_query_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_RESOLVE_QUERY_OP_HPP -#define ASIO_DETAIL_RESOLVE_QUERY_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/basic_resolver_results.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/resolve_op.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class resolve_query_op : public resolve_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(resolve_query_op); - - typedef asio::ip::basic_resolver_query query_type; - typedef asio::ip::basic_resolver_results results_type; - - resolve_query_op(socket_ops::weak_cancel_token_type cancel_token, - const query_type& query, io_context_impl& ioc, Handler& handler) - : resolve_op(&resolve_query_op::do_complete), - cancel_token_(cancel_token), - query_(query), - io_context_impl_(ioc), - handler_(ASIO_MOVE_CAST(Handler)(handler)), - addrinfo_(0) - { - handler_work::start(handler_); - } - - ~resolve_query_op() - { - if (addrinfo_) - socket_ops::freeaddrinfo(addrinfo_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the operation object. - resolve_query_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - - if (owner && owner != &o->io_context_impl_) - { - // The operation is being run on the worker io_context. Time to perform - // the resolver operation. - - // Perform the blocking host resolution operation. - socket_ops::background_getaddrinfo(o->cancel_token_, - o->query_.host_name().c_str(), o->query_.service_name().c_str(), - o->query_.hints(), &o->addrinfo_, o->ec_); - - // Pass operation back to main io_context for completion. - o->io_context_impl_.post_deferred_completion(o); - p.v = p.p = 0; - } - else - { - // The operation has been returned to the main io_context. The completion - // handler is ready to be delivered. - - // Take ownership of the operation's outstanding work. - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated - // before the upcall is made. Even if we're not about to make an upcall, - // a sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, results_type()); - p.h = asio::detail::addressof(handler.handler_); - if (o->addrinfo_) - { - handler.arg2_ = results_type::create(o->addrinfo_, - o->query_.host_name(), o->query_.service_name()); - } - p.reset(); - - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, "...")); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - } - -private: - socket_ops::weak_cancel_token_type cancel_token_; - query_type query_; - io_context_impl& io_context_impl_; - Handler handler_; - asio::detail::addrinfo_type* addrinfo_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_RESOLVE_QUERY_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/resolver_service.hpp b/Sources/Vendor/asio/include/asio/detail/resolver_service.hpp deleted file mode 100644 index 11a94d1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/resolver_service.hpp +++ /dev/null @@ -1,145 +0,0 @@ -// -// detail/resolver_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_RESOLVER_SERVICE_HPP -#define ASIO_DETAIL_RESOLVER_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/basic_resolver_results.hpp" -#include "asio/detail/concurrency_hint.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/resolve_endpoint_op.hpp" -#include "asio/detail/resolve_query_op.hpp" -#include "asio/detail/resolver_service_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class resolver_service : - public service_base >, - public resolver_service_base -{ -public: - // The implementation type of the resolver. A cancellation token is used to - // indicate to the background thread that the operation has been cancelled. - typedef socket_ops::shared_cancel_token_type implementation_type; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // The query type. - typedef asio::ip::basic_resolver_query query_type; - - // The results type. - typedef asio::ip::basic_resolver_results results_type; - - // Constructor. - resolver_service(asio::io_context& io_context) - : service_base >(io_context), - resolver_service_base(io_context) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - this->base_shutdown(); - } - - // Perform any fork-related housekeeping. - void notify_fork(asio::io_context::fork_event fork_ev) - { - this->base_notify_fork(fork_ev); - } - - // Resolve a query to a list of entries. - results_type resolve(implementation_type&, const query_type& query, - asio::error_code& ec) - { - asio::detail::addrinfo_type* address_info = 0; - - socket_ops::getaddrinfo(query.host_name().c_str(), - query.service_name().c_str(), query.hints(), &address_info, ec); - auto_addrinfo auto_address_info(address_info); - - return ec ? results_type() : results_type::create( - address_info, query.host_name(), query.service_name()); - } - - // Asynchronously resolve a query to a list of entries. - template - void async_resolve(implementation_type& impl, - const query_type& query, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef resolve_query_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl, query, io_context_impl_, handler); - - ASIO_HANDLER_CREATION((io_context_impl_.context(), - *p.p, "resolver", &impl, 0, "async_resolve")); - - start_resolve_op(p.p); - p.v = p.p = 0; - } - - // Resolve an endpoint to a list of entries. - results_type resolve(implementation_type&, - const endpoint_type& endpoint, asio::error_code& ec) - { - char host_name[NI_MAXHOST]; - char service_name[NI_MAXSERV]; - socket_ops::sync_getnameinfo(endpoint.data(), endpoint.size(), - host_name, NI_MAXHOST, service_name, NI_MAXSERV, - endpoint.protocol().type(), ec); - - return ec ? results_type() : results_type::create( - endpoint, host_name, service_name); - } - - // Asynchronously resolve an endpoint to a list of entries. - template - void async_resolve(implementation_type& impl, - const endpoint_type& endpoint, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef resolve_endpoint_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl, endpoint, io_context_impl_, handler); - - ASIO_HANDLER_CREATION((io_context_impl_.context(), - *p.p, "resolver", &impl, 0, "async_resolve")); - - start_resolve_op(p.p); - p.v = p.p = 0; - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_RESOLVER_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/resolver_service_base.hpp b/Sources/Vendor/asio/include/asio/detail/resolver_service_base.hpp deleted file mode 100644 index 10a7922..0000000 --- a/Sources/Vendor/asio/include/asio/detail/resolver_service_base.hpp +++ /dev/null @@ -1,140 +0,0 @@ -// -// detail/resolver_service_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_RESOLVER_SERVICE_BASE_HPP -#define ASIO_DETAIL_RESOLVER_SERVICE_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/error.hpp" -#include "asio/executor_work_guard.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/resolve_op.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/detail/thread.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class resolver_service_base -{ -public: - // The implementation type of the resolver. A cancellation token is used to - // indicate to the background thread that the operation has been cancelled. - typedef socket_ops::shared_cancel_token_type implementation_type; - - // Constructor. - ASIO_DECL resolver_service_base(asio::io_context& io_context); - - // Destructor. - ASIO_DECL ~resolver_service_base(); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void base_shutdown(); - - // Perform any fork-related housekeeping. - ASIO_DECL void base_notify_fork( - asio::io_context::fork_event fork_ev); - - // Construct a new resolver implementation. - ASIO_DECL void construct(implementation_type& impl); - - // Destroy a resolver implementation. - ASIO_DECL void destroy(implementation_type&); - - // Move-construct a new resolver implementation. - ASIO_DECL void move_construct(implementation_type& impl, - implementation_type& other_impl); - - // Move-assign from another resolver implementation. - ASIO_DECL void move_assign(implementation_type& impl, - resolver_service_base& other_service, - implementation_type& other_impl); - - // Cancel pending asynchronous operations. - ASIO_DECL void cancel(implementation_type& impl); - -protected: - // Helper function to start an asynchronous resolve operation. - ASIO_DECL void start_resolve_op(resolve_op* op); - -#if !defined(ASIO_WINDOWS_RUNTIME) - // Helper class to perform exception-safe cleanup of addrinfo objects. - class auto_addrinfo - : private asio::detail::noncopyable - { - public: - explicit auto_addrinfo(asio::detail::addrinfo_type* ai) - : ai_(ai) - { - } - - ~auto_addrinfo() - { - if (ai_) - socket_ops::freeaddrinfo(ai_); - } - - operator asio::detail::addrinfo_type*() - { - return ai_; - } - - private: - asio::detail::addrinfo_type* ai_; - }; -#endif // !defined(ASIO_WINDOWS_RUNTIME) - - // Helper class to run the work io_context in a thread. - class work_io_context_runner; - - // Start the work thread if it's not already running. - ASIO_DECL void start_work_thread(); - - // The io_context implementation used to post completions. - io_context_impl& io_context_impl_; - -private: - // Mutex to protect access to internal data. - asio::detail::mutex mutex_; - - // Private io_context used for performing asynchronous host resolution. - asio::detail::scoped_ptr work_io_context_; - - // The work io_context implementation used to post completions. - io_context_impl& work_io_context_impl_; - - // Work for the private io_context to perform. - asio::executor_work_guard< - asio::io_context::executor_type> work_; - - // Thread used for running the work io_context's run loop. - asio::detail::scoped_ptr work_thread_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/resolver_service_base.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_RESOLVER_SERVICE_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/scheduler.hpp b/Sources/Vendor/asio/include/asio/detail/scheduler.hpp deleted file mode 100644 index 10c29b7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/scheduler.hpp +++ /dev/null @@ -1,213 +0,0 @@ -// -// detail/scheduler.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SCHEDULER_HPP -#define ASIO_DETAIL_SCHEDULER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/error_code.hpp" -#include "asio/execution_context.hpp" -#include "asio/detail/atomic_count.hpp" -#include "asio/detail/conditionally_enabled_event.hpp" -#include "asio/detail/conditionally_enabled_mutex.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/reactor_fwd.hpp" -#include "asio/detail/scheduler_operation.hpp" -#include "asio/detail/thread_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct scheduler_thread_info; - -class scheduler - : public execution_context_service_base, - public thread_context -{ -public: - typedef scheduler_operation operation; - - // Constructor. Specifies the number of concurrent threads that are likely to - // run the scheduler. If set to 1 certain optimisation are performed. - ASIO_DECL scheduler(asio::execution_context& ctx, - int concurrency_hint = 0); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Initialise the task, if required. - ASIO_DECL void init_task(); - - // Run the event loop until interrupted or no more work. - ASIO_DECL std::size_t run(asio::error_code& ec); - - // Run until interrupted or one operation is performed. - ASIO_DECL std::size_t run_one(asio::error_code& ec); - - // Run until timeout, interrupted, or one operation is performed. - ASIO_DECL std::size_t wait_one( - long usec, asio::error_code& ec); - - // Poll for operations without blocking. - ASIO_DECL std::size_t poll(asio::error_code& ec); - - // Poll for one operation without blocking. - ASIO_DECL std::size_t poll_one(asio::error_code& ec); - - // Interrupt the event processing loop. - ASIO_DECL void stop(); - - // Determine whether the scheduler is stopped. - ASIO_DECL bool stopped() const; - - // Restart in preparation for a subsequent run invocation. - ASIO_DECL void restart(); - - // Notify that some work has started. - void work_started() - { - ++outstanding_work_; - } - - // Used to compensate for a forthcoming work_finished call. Must be called - // from within a scheduler-owned thread. - ASIO_DECL void compensating_work_started(); - - // Notify that some work has finished. - void work_finished() - { - if (--outstanding_work_ == 0) - stop(); - } - - // Return whether a handler can be dispatched immediately. - bool can_dispatch() - { - return thread_call_stack::contains(this) != 0; - } - - // Request invocation of the given operation and return immediately. Assumes - // that work_started() has not yet been called for the operation. - ASIO_DECL void post_immediate_completion( - operation* op, bool is_continuation); - - // Request invocation of the given operation and return immediately. Assumes - // that work_started() was previously called for the operation. - ASIO_DECL void post_deferred_completion(operation* op); - - // Request invocation of the given operations and return immediately. Assumes - // that work_started() was previously called for each operation. - ASIO_DECL void post_deferred_completions(op_queue& ops); - - // Enqueue the given operation following a failed attempt to dispatch the - // operation for immediate invocation. - ASIO_DECL void do_dispatch(operation* op); - - // Process unfinished operations as part of a shutdownoperation. Assumes that - // work_started() was previously called for the operations. - ASIO_DECL void abandon_operations(op_queue& ops); - - // Get the concurrency hint that was used to initialise the scheduler. - int concurrency_hint() const - { - return concurrency_hint_; - } - -private: - // The mutex type used by this scheduler. - typedef conditionally_enabled_mutex mutex; - - // The event type used by this scheduler. - typedef conditionally_enabled_event event; - - // Structure containing thread-specific data. - typedef scheduler_thread_info thread_info; - - // Run at most one operation. May block. - ASIO_DECL std::size_t do_run_one(mutex::scoped_lock& lock, - thread_info& this_thread, const asio::error_code& ec); - - // Run at most one operation with a timeout. May block. - ASIO_DECL std::size_t do_wait_one(mutex::scoped_lock& lock, - thread_info& this_thread, long usec, const asio::error_code& ec); - - // Poll for at most one operation. - ASIO_DECL std::size_t do_poll_one(mutex::scoped_lock& lock, - thread_info& this_thread, const asio::error_code& ec); - - // Stop the task and all idle threads. - ASIO_DECL void stop_all_threads(mutex::scoped_lock& lock); - - // Wake a single idle thread, or the task, and always unlock the mutex. - ASIO_DECL void wake_one_thread_and_unlock( - mutex::scoped_lock& lock); - - // Helper class to perform task-related operations on block exit. - struct task_cleanup; - friend struct task_cleanup; - - // Helper class to call work-related operations on block exit. - struct work_cleanup; - friend struct work_cleanup; - - // Whether to optimise for single-threaded use cases. - const bool one_thread_; - - // Mutex to protect access to internal data. - mutable mutex mutex_; - - // Event to wake up blocked threads. - event wakeup_event_; - - // The task to be run by this service. - reactor* task_; - - // Operation object to represent the position of the task in the queue. - struct task_operation : operation - { - task_operation() : operation(0) {} - } task_operation_; - - // Whether the task has been interrupted. - bool task_interrupted_; - - // The count of unfinished work. - atomic_count outstanding_work_; - - // The queue of handlers that are ready to be delivered. - op_queue op_queue_; - - // Flag to indicate that the dispatcher has been stopped. - bool stopped_; - - // Flag to indicate that the dispatcher has been shut down. - bool shutdown_; - - // The concurrency hint used to initialise the scheduler. - const int concurrency_hint_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/scheduler.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_SCHEDULER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/scheduler_operation.hpp b/Sources/Vendor/asio/include/asio/detail/scheduler_operation.hpp deleted file mode 100644 index 1c2ce02..0000000 --- a/Sources/Vendor/asio/include/asio/detail/scheduler_operation.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// detail/scheduler_operation.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SCHEDULER_OPERATION_HPP -#define ASIO_DETAIL_SCHEDULER_OPERATION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/error_code.hpp" -#include "asio/detail/handler_tracking.hpp" -#include "asio/detail/op_queue.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class scheduler; - -// Base class for all operations. A function pointer is used instead of virtual -// functions to avoid the associated overhead. -class scheduler_operation ASIO_INHERIT_TRACKED_HANDLER -{ -public: - typedef scheduler_operation operation_type; - - void complete(void* owner, const asio::error_code& ec, - std::size_t bytes_transferred) - { - func_(owner, this, ec, bytes_transferred); - } - - void destroy() - { - func_(0, this, asio::error_code(), 0); - } - -protected: - typedef void (*func_type)(void*, - scheduler_operation*, - const asio::error_code&, std::size_t); - - scheduler_operation(func_type func) - : next_(0), - func_(func), - task_result_(0) - { - } - - // Prevents deletion through this type. - ~scheduler_operation() - { - } - -private: - friend class op_queue_access; - scheduler_operation* next_; - func_type func_; -protected: - friend class scheduler; - unsigned int task_result_; // Passed into bytes transferred. -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SCHEDULER_OPERATION_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/scheduler_thread_info.hpp b/Sources/Vendor/asio/include/asio/detail/scheduler_thread_info.hpp deleted file mode 100644 index 2ffe013..0000000 --- a/Sources/Vendor/asio/include/asio/detail/scheduler_thread_info.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// -// detail/scheduler_thread_info.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SCHEDULER_THREAD_INFO_HPP -#define ASIO_DETAIL_SCHEDULER_THREAD_INFO_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/op_queue.hpp" -#include "asio/detail/thread_info_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class scheduler; -class scheduler_operation; - -struct scheduler_thread_info : public thread_info_base -{ - op_queue private_op_queue; - long private_outstanding_work; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SCHEDULER_THREAD_INFO_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/scoped_lock.hpp b/Sources/Vendor/asio/include/asio/detail/scoped_lock.hpp deleted file mode 100644 index 6cbce38..0000000 --- a/Sources/Vendor/asio/include/asio/detail/scoped_lock.hpp +++ /dev/null @@ -1,101 +0,0 @@ -// -// detail/scoped_lock.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SCOPED_LOCK_HPP -#define ASIO_DETAIL_SCOPED_LOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Helper class to lock and unlock a mutex automatically. -template -class scoped_lock - : private noncopyable -{ -public: - // Tag type used to distinguish constructors. - enum adopt_lock_t { adopt_lock }; - - // Constructor adopts a lock that is already held. - scoped_lock(Mutex& m, adopt_lock_t) - : mutex_(m), - locked_(true) - { - } - - // Constructor acquires the lock. - explicit scoped_lock(Mutex& m) - : mutex_(m) - { - mutex_.lock(); - locked_ = true; - } - - // Destructor releases the lock. - ~scoped_lock() - { - if (locked_) - mutex_.unlock(); - } - - // Explicitly acquire the lock. - void lock() - { - if (!locked_) - { - mutex_.lock(); - locked_ = true; - } - } - - // Explicitly release the lock. - void unlock() - { - if (locked_) - { - mutex_.unlock(); - locked_ = false; - } - } - - // Test whether the lock is held. - bool locked() const - { - return locked_; - } - - // Get the underlying mutex. - Mutex& mutex() - { - return mutex_; - } - -private: - // The underlying mutex. - Mutex& mutex_; - - // Whether the mutex is currently locked or unlocked. - bool locked_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SCOPED_LOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/scoped_ptr.hpp b/Sources/Vendor/asio/include/asio/detail/scoped_ptr.hpp deleted file mode 100644 index 3449c53..0000000 --- a/Sources/Vendor/asio/include/asio/detail/scoped_ptr.hpp +++ /dev/null @@ -1,87 +0,0 @@ -// -// detail/scoped_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SCOPED_PTR_HPP -#define ASIO_DETAIL_SCOPED_PTR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class scoped_ptr -{ -public: - // Constructor. - explicit scoped_ptr(T* p = 0) - : p_(p) - { - } - - // Destructor. - ~scoped_ptr() - { - delete p_; - } - - // Access. - T* get() - { - return p_; - } - - // Access. - T* operator->() - { - return p_; - } - - // Dereference. - T& operator*() - { - return *p_; - } - - // Reset pointer. - void reset(T* p = 0) - { - delete p_; - p_ = p; - } - - // Release ownership of the pointer. - T* release() - { - T* tmp = p_; - p_ = 0; - return tmp; - } - -private: - // Disallow copying and assignment. - scoped_ptr(const scoped_ptr&); - scoped_ptr& operator=(const scoped_ptr&); - - T* p_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SCOPED_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/select_interrupter.hpp b/Sources/Vendor/asio/include/asio/detail/select_interrupter.hpp deleted file mode 100644 index 1a07599..0000000 --- a/Sources/Vendor/asio/include/asio/detail/select_interrupter.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// detail/select_interrupter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SELECT_INTERRUPTER_HPP -#define ASIO_DETAIL_SELECT_INTERRUPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS_RUNTIME) - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) || defined(__SYMBIAN32__) -# include "asio/detail/socket_select_interrupter.hpp" -#elif defined(ASIO_HAS_EVENTFD) -# include "asio/detail/eventfd_select_interrupter.hpp" -#else -# include "asio/detail/pipe_select_interrupter.hpp" -#endif - -namespace asio { -namespace detail { - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) || defined(__SYMBIAN32__) -typedef socket_select_interrupter select_interrupter; -#elif defined(ASIO_HAS_EVENTFD) -typedef eventfd_select_interrupter select_interrupter; -#else -typedef pipe_select_interrupter select_interrupter; -#endif - -} // namespace detail -} // namespace asio - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_SELECT_INTERRUPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/select_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/select_reactor.hpp deleted file mode 100644 index 0996549..0000000 --- a/Sources/Vendor/asio/include/asio/detail/select_reactor.hpp +++ /dev/null @@ -1,238 +0,0 @@ -// -// detail/select_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SELECT_REACTOR_HPP -#define ASIO_DETAIL_SELECT_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) \ - || (!defined(ASIO_HAS_DEV_POLL) \ - && !defined(ASIO_HAS_EPOLL) \ - && !defined(ASIO_HAS_KQUEUE) \ - && !defined(ASIO_WINDOWS_RUNTIME)) - -#include -#include "asio/detail/fd_set_adapter.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/reactor_op_queue.hpp" -#include "asio/detail/select_interrupter.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/timer_queue_base.hpp" -#include "asio/detail/timer_queue_set.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/execution_context.hpp" - -#if defined(ASIO_HAS_IOCP) -# include "asio/detail/thread.hpp" -#endif // defined(ASIO_HAS_IOCP) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class select_reactor - : public execution_context_service_base -{ -public: -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - enum op_types { read_op = 0, write_op = 1, except_op = 2, - max_select_ops = 3, connect_op = 3, max_ops = 4 }; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - enum op_types { read_op = 0, write_op = 1, except_op = 2, - max_select_ops = 3, connect_op = 1, max_ops = 3 }; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - - // Per-descriptor data. - struct per_descriptor_data - { - }; - - // Constructor. - ASIO_DECL select_reactor(asio::execution_context& ctx); - - // Destructor. - ASIO_DECL ~select_reactor(); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Recreate internal descriptors following a fork. - ASIO_DECL void notify_fork( - asio::execution_context::fork_event fork_ev); - - // Initialise the task, but only if the reactor is not in its own thread. - ASIO_DECL void init_task(); - - // Register a socket with the reactor. Returns 0 on success, system error - // code on failure. - ASIO_DECL int register_descriptor(socket_type, per_descriptor_data&); - - // Register a descriptor with an associated single operation. Returns 0 on - // success, system error code on failure. - ASIO_DECL int register_internal_descriptor( - int op_type, socket_type descriptor, - per_descriptor_data& descriptor_data, reactor_op* op); - - // Post a reactor operation for immediate completion. - void post_immediate_completion(reactor_op* op, bool is_continuation) - { - scheduler_.post_immediate_completion(op, is_continuation); - } - - // Start a new operation. The reactor operation will be performed when the - // given descriptor is flagged as ready, or an error has occurred. - ASIO_DECL void start_op(int op_type, socket_type descriptor, - per_descriptor_data&, reactor_op* op, bool is_continuation, bool); - - // Cancel all operations associated with the given descriptor. The - // handlers associated with the descriptor will be invoked with the - // operation_aborted error. - ASIO_DECL void cancel_ops(socket_type descriptor, per_descriptor_data&); - - // Cancel any operations that are running against the descriptor and remove - // its registration from the reactor. The reactor resources associated with - // the descriptor must be released by calling cleanup_descriptor_data. - ASIO_DECL void deregister_descriptor(socket_type descriptor, - per_descriptor_data&, bool closing); - - // Remove the descriptor's registration from the reactor. The reactor - // resources associated with the descriptor must be released by calling - // cleanup_descriptor_data. - ASIO_DECL void deregister_internal_descriptor( - socket_type descriptor, per_descriptor_data&); - - // Perform any post-deregistration cleanup tasks associated with the - // descriptor data. - ASIO_DECL void cleanup_descriptor_data(per_descriptor_data&); - - // Move descriptor registration from one descriptor_data object to another. - ASIO_DECL void move_descriptor(socket_type descriptor, - per_descriptor_data& target_descriptor_data, - per_descriptor_data& source_descriptor_data); - - // Add a new timer queue to the reactor. - template - void add_timer_queue(timer_queue& queue); - - // Remove a timer queue from the reactor. - template - void remove_timer_queue(timer_queue& queue); - - // Schedule a new operation in the given timer queue to expire at the - // specified absolute time. - template - void schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op); - - // Cancel the timer operations associated with the given token. Returns the - // number of operations that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled = (std::numeric_limits::max)()); - - // Move the timer operations associated with the given timer. - template - void move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source); - - // Run select once until interrupted or events are ready to be dispatched. - ASIO_DECL void run(long usec, op_queue& ops); - - // Interrupt the select loop. - ASIO_DECL void interrupt(); - -private: -#if defined(ASIO_HAS_IOCP) - // Run the select loop in the thread. - ASIO_DECL void run_thread(); -#endif // defined(ASIO_HAS_IOCP) - - // Helper function to add a new timer queue. - ASIO_DECL void do_add_timer_queue(timer_queue_base& queue); - - // Helper function to remove a timer queue. - ASIO_DECL void do_remove_timer_queue(timer_queue_base& queue); - - // Get the timeout value for the select call. - ASIO_DECL timeval* get_timeout(long usec, timeval& tv); - - // Cancel all operations associated with the given descriptor. This function - // does not acquire the select_reactor's mutex. - ASIO_DECL void cancel_ops_unlocked(socket_type descriptor, - const asio::error_code& ec); - - // The scheduler implementation used to post completions. -# if defined(ASIO_HAS_IOCP) - typedef class win_iocp_io_context scheduler_type; -# else // defined(ASIO_HAS_IOCP) - typedef class scheduler scheduler_type; -# endif // defined(ASIO_HAS_IOCP) - scheduler_type& scheduler_; - - // Mutex to protect access to internal data. - asio::detail::mutex mutex_; - - // The interrupter is used to break a blocking select call. - select_interrupter interrupter_; - - // The queues of read, write and except operations. - reactor_op_queue op_queue_[max_ops]; - - // The file descriptor sets to be passed to the select system call. - fd_set_adapter fd_sets_[max_select_ops]; - - // The timer queues. - timer_queue_set timer_queues_; - -#if defined(ASIO_HAS_IOCP) - // Helper class to run the reactor loop in a thread. - class thread_function; - friend class thread_function; - - // Does the reactor loop thread need to stop. - bool stop_thread_; - - // The thread that is running the reactor loop. - asio::detail::thread* thread_; -#endif // defined(ASIO_HAS_IOCP) - - // Whether the service has been shut down. - bool shutdown_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/select_reactor.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/select_reactor.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_IOCP) - // || (!defined(ASIO_HAS_DEV_POLL) - // && !defined(ASIO_HAS_EPOLL) - // && !defined(ASIO_HAS_KQUEUE) - // && !defined(ASIO_WINDOWS_RUNTIME)) - -#endif // ASIO_DETAIL_SELECT_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/service_registry.hpp b/Sources/Vendor/asio/include/asio/detail/service_registry.hpp deleted file mode 100644 index cda6307..0000000 --- a/Sources/Vendor/asio/include/asio/detail/service_registry.hpp +++ /dev/null @@ -1,164 +0,0 @@ -// -// detail/service_registry.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SERVICE_REGISTRY_HPP -#define ASIO_DETAIL_SERVICE_REGISTRY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/mutex.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -class io_context; - -namespace detail { - -template -class typeid_wrapper {}; - -class service_registry - : private noncopyable -{ -public: - // Constructor. - ASIO_DECL service_registry(execution_context& owner); - - // Destructor. - ASIO_DECL ~service_registry(); - - // Shutdown all services. - ASIO_DECL void shutdown_services(); - - // Destroy all services. - ASIO_DECL void destroy_services(); - - // Notify all services of a fork event. - ASIO_DECL void notify_fork(execution_context::fork_event fork_ev); - - // Get the service object corresponding to the specified service type. Will - // create a new service object automatically if no such object already - // exists. Ownership of the service object is not transferred to the caller. - template - Service& use_service(); - - // Get the service object corresponding to the specified service type. Will - // create a new service object automatically if no such object already - // exists. Ownership of the service object is not transferred to the caller. - // This overload is used for backwards compatibility with services that - // inherit from io_context::service. - template - Service& use_service(io_context& owner); - - // Add a service object. Throws on error, in which case ownership of the - // object is retained by the caller. - template - void add_service(Service* new_service); - - // Check whether a service object of the specified type already exists. - template - bool has_service() const; - -private: - // Initalise a service's key when the key_type typedef is not available. - template - static void init_key(execution_context::service::key& key, ...); - -#if !defined(ASIO_NO_TYPEID) - // Initalise a service's key when the key_type typedef is available. - template - static void init_key(execution_context::service::key& key, - typename enable_if< - is_base_of::value>::type*); -#endif // !defined(ASIO_NO_TYPEID) - - // Initialise a service's key based on its id. - ASIO_DECL static void init_key_from_id( - execution_context::service::key& key, - const execution_context::id& id); - -#if !defined(ASIO_NO_TYPEID) - // Initialise a service's key based on its id. - template - static void init_key_from_id(execution_context::service::key& key, - const service_id& /*id*/); -#endif // !defined(ASIO_NO_TYPEID) - - // Check if a service matches the given id. - ASIO_DECL static bool keys_match( - const execution_context::service::key& key1, - const execution_context::service::key& key2); - - // The type of a factory function used for creating a service instance. - typedef execution_context::service*(*factory_type)(void*); - - // Factory function for creating a service instance. - template - static execution_context::service* create(void* owner); - - // Destroy a service instance. - ASIO_DECL static void destroy(execution_context::service* service); - - // Helper class to manage service pointers. - struct auto_service_ptr; - friend struct auto_service_ptr; - struct auto_service_ptr - { - execution_context::service* ptr_; - ~auto_service_ptr() { destroy(ptr_); } - }; - - // Get the service object corresponding to the specified service key. Will - // create a new service object automatically if no such object already - // exists. Ownership of the service object is not transferred to the caller. - ASIO_DECL execution_context::service* do_use_service( - const execution_context::service::key& key, - factory_type factory, void* owner); - - // Add a service object. Throws on error, in which case ownership of the - // object is retained by the caller. - ASIO_DECL void do_add_service( - const execution_context::service::key& key, - execution_context::service* new_service); - - // Check whether a service object with the specified key already exists. - ASIO_DECL bool do_has_service( - const execution_context::service::key& key) const; - - // Mutex to protect access to internal data. - mutable asio::detail::mutex mutex_; - - // The owner of this service registry and the services it contains. - execution_context& owner_; - - // The first service in the list of contained services. - execution_context::service* first_service_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/service_registry.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/service_registry.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_SERVICE_REGISTRY_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/signal_blocker.hpp b/Sources/Vendor/asio/include/asio/detail/signal_blocker.hpp deleted file mode 100644 index b684295..0000000 --- a/Sources/Vendor/asio/include/asio/detail/signal_blocker.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// -// detail/signal_blocker.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SIGNAL_BLOCKER_HPP -#define ASIO_DETAIL_SIGNAL_BLOCKER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_THREADS) || defined(ASIO_WINDOWS) \ - || defined(ASIO_WINDOWS_RUNTIME) \ - || defined(__CYGWIN__) || defined(__SYMBIAN32__) -# include "asio/detail/null_signal_blocker.hpp" -#elif defined(ASIO_HAS_PTHREADS) -# include "asio/detail/posix_signal_blocker.hpp" -#else -# error Only Windows and POSIX are supported! -#endif - -namespace asio { -namespace detail { - -#if !defined(ASIO_HAS_THREADS) || defined(ASIO_WINDOWS) \ - || defined(ASIO_WINDOWS_RUNTIME) \ - || defined(__CYGWIN__) || defined(__SYMBIAN32__) -typedef null_signal_blocker signal_blocker; -#elif defined(ASIO_HAS_PTHREADS) -typedef posix_signal_blocker signal_blocker; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_SIGNAL_BLOCKER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/signal_handler.hpp b/Sources/Vendor/asio/include/asio/detail/signal_handler.hpp deleted file mode 100644 index d1c9910..0000000 --- a/Sources/Vendor/asio/include/asio/detail/signal_handler.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// -// detail/signal_handler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SIGNAL_HANDLER_HPP -#define ASIO_DETAIL_SIGNAL_HANDLER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_work.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/signal_op.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class signal_handler : public signal_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(signal_handler); - - signal_handler(Handler& h) - : signal_op(&signal_handler::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(h)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - signal_handler* h(static_cast(base)); - ptr p = { asio::detail::addressof(h->handler_), h, h }; - handler_work w(h->handler_); - - ASIO_HANDLER_COMPLETION((*h)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(h->handler_, h->ec_, h->signal_number_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SIGNAL_HANDLER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/signal_init.hpp b/Sources/Vendor/asio/include/asio/detail/signal_init.hpp deleted file mode 100644 index 814ff51..0000000 --- a/Sources/Vendor/asio/include/asio/detail/signal_init.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// -// detail/signal_init.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SIGNAL_INIT_HPP -#define ASIO_DETAIL_SIGNAL_INIT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class signal_init -{ -public: - // Constructor. - signal_init() - { - std::signal(Signal, SIG_IGN); - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#endif // ASIO_DETAIL_SIGNAL_INIT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/signal_op.hpp b/Sources/Vendor/asio/include/asio/detail/signal_op.hpp deleted file mode 100644 index c4e364c..0000000 --- a/Sources/Vendor/asio/include/asio/detail/signal_op.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// -// detail/signal_op.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SIGNAL_OP_HPP -#define ASIO_DETAIL_SIGNAL_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class signal_op - : public operation -{ -public: - // The error code to be passed to the completion handler. - asio::error_code ec_; - - // The signal number to be passed to the completion handler. - int signal_number_; - -protected: - signal_op(func_type func) - : operation(func), - signal_number_(0) - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SIGNAL_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/signal_set_service.hpp b/Sources/Vendor/asio/include/asio/detail/signal_set_service.hpp deleted file mode 100644 index a18ab70..0000000 --- a/Sources/Vendor/asio/include/asio/detail/signal_set_service.hpp +++ /dev/null @@ -1,217 +0,0 @@ -// -// detail/signal_set_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SIGNAL_SET_SERVICE_HPP -#define ASIO_DETAIL_SIGNAL_SET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/signal_handler.hpp" -#include "asio/detail/signal_op.hpp" -#include "asio/detail/socket_types.hpp" - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) -# include "asio/detail/reactor.hpp" -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -#if defined(NSIG) && (NSIG > 0) -enum { max_signal_number = NSIG }; -#else -enum { max_signal_number = 128 }; -#endif - -extern ASIO_DECL struct signal_state* get_signal_state(); - -extern "C" ASIO_DECL void asio_signal_handler(int signal_number); - -class signal_set_service : - public service_base -{ -public: - // Type used for tracking an individual signal registration. - class registration - { - public: - // Default constructor. - registration() - : signal_number_(0), - queue_(0), - undelivered_(0), - next_in_table_(0), - prev_in_table_(0), - next_in_set_(0) - { - } - - private: - // Only this service will have access to the internal values. - friend class signal_set_service; - - // The signal number that is registered. - int signal_number_; - - // The waiting signal handlers. - op_queue* queue_; - - // The number of undelivered signals. - std::size_t undelivered_; - - // Pointers to adjacent registrations in the registrations_ table. - registration* next_in_table_; - registration* prev_in_table_; - - // Link to next registration in the signal set. - registration* next_in_set_; - }; - - // The implementation type of the signal_set. - class implementation_type - { - public: - // Default constructor. - implementation_type() - : signals_(0) - { - } - - private: - // Only this service will have access to the internal values. - friend class signal_set_service; - - // The pending signal handlers. - op_queue queue_; - - // Linked list of registered signals. - registration* signals_; - }; - - // Constructor. - ASIO_DECL signal_set_service(asio::io_context& io_context); - - // Destructor. - ASIO_DECL ~signal_set_service(); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Perform fork-related housekeeping. - ASIO_DECL void notify_fork( - asio::io_context::fork_event fork_ev); - - // Construct a new signal_set implementation. - ASIO_DECL void construct(implementation_type& impl); - - // Destroy a signal_set implementation. - ASIO_DECL void destroy(implementation_type& impl); - - // Add a signal to a signal_set. - ASIO_DECL asio::error_code add(implementation_type& impl, - int signal_number, asio::error_code& ec); - - // Remove a signal to a signal_set. - ASIO_DECL asio::error_code remove(implementation_type& impl, - int signal_number, asio::error_code& ec); - - // Remove all signals from a signal_set. - ASIO_DECL asio::error_code clear(implementation_type& impl, - asio::error_code& ec); - - // Cancel all operations associated with the signal set. - ASIO_DECL asio::error_code cancel(implementation_type& impl, - asio::error_code& ec); - - // Start an asynchronous operation to wait for a signal to be delivered. - template - void async_wait(implementation_type& impl, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef signal_handler op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((io_context_.context(), - *p.p, "signal_set", &impl, 0, "async_wait")); - - start_wait_op(impl, p.p); - p.v = p.p = 0; - } - - // Deliver notification that a particular signal occurred. - ASIO_DECL static void deliver_signal(int signal_number); - -private: - // Helper function to add a service to the global signal state. - ASIO_DECL static void add_service(signal_set_service* service); - - // Helper function to remove a service from the global signal state. - ASIO_DECL static void remove_service(signal_set_service* service); - - // Helper function to create the pipe descriptors. - ASIO_DECL static void open_descriptors(); - - // Helper function to close the pipe descriptors. - ASIO_DECL static void close_descriptors(); - - // Helper function to start a wait operation. - ASIO_DECL void start_wait_op(implementation_type& impl, signal_op* op); - - // The io_context instance used for dispatching handlers. - io_context_impl& io_context_; - -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - // The type used for registering for pipe reactor notifications. - class pipe_read_op; - - // The reactor used for waiting for pipe readiness. - reactor& reactor_; - - // The per-descriptor reactor data used for the pipe. - reactor::per_descriptor_data reactor_data_; -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - - // A mapping from signal number to the registered signal sets. - registration* registrations_[max_signal_number]; - - // Pointers to adjacent services in linked list. - signal_set_service* next_; - signal_set_service* prev_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/signal_set_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_SIGNAL_SET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/socket_holder.hpp b/Sources/Vendor/asio/include/asio/detail/socket_holder.hpp deleted file mode 100644 index 99b081f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/socket_holder.hpp +++ /dev/null @@ -1,98 +0,0 @@ -// -// detail/socket_holder.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SOCKET_HOLDER_HPP -#define ASIO_DETAIL_SOCKET_HOLDER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Implement the resource acquisition is initialisation idiom for sockets. -class socket_holder - : private noncopyable -{ -public: - // Construct as an uninitialised socket. - socket_holder() - : socket_(invalid_socket) - { - } - - // Construct to take ownership of the specified socket. - explicit socket_holder(socket_type s) - : socket_(s) - { - } - - // Destructor. - ~socket_holder() - { - if (socket_ != invalid_socket) - { - asio::error_code ec; - socket_ops::state_type state = 0; - socket_ops::close(socket_, state, true, ec); - } - } - - // Get the underlying socket. - socket_type get() const - { - return socket_; - } - - // Reset to an uninitialised socket. - void reset() - { - if (socket_ != invalid_socket) - { - asio::error_code ec; - socket_ops::state_type state = 0; - socket_ops::close(socket_, state, true, ec); - socket_ = invalid_socket; - } - } - - // Reset to take ownership of the specified socket. - void reset(socket_type s) - { - reset(); - socket_ = s; - } - - // Release ownership of the socket. - socket_type release() - { - socket_type tmp = socket_; - socket_ = invalid_socket; - return tmp; - } - -private: - // The underlying socket. - socket_type socket_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SOCKET_HOLDER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/socket_ops.hpp b/Sources/Vendor/asio/include/asio/detail/socket_ops.hpp deleted file mode 100644 index 815b0d1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/socket_ops.hpp +++ /dev/null @@ -1,337 +0,0 @@ -// -// detail/socket_ops.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SOCKET_OPS_HPP -#define ASIO_DETAIL_SOCKET_OPS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/error_code.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { -namespace socket_ops { - -// Socket state bits. -enum -{ - // The user wants a non-blocking socket. - user_set_non_blocking = 1, - - // The socket has been set non-blocking. - internal_non_blocking = 2, - - // Helper "state" used to determine whether the socket is non-blocking. - non_blocking = user_set_non_blocking | internal_non_blocking, - - // User wants connection_aborted errors, which are disabled by default. - enable_connection_aborted = 4, - - // The user set the linger option. Needs to be checked when closing. - user_set_linger = 8, - - // The socket is stream-oriented. - stream_oriented = 16, - - // The socket is datagram-oriented. - datagram_oriented = 32, - - // The socket may have been dup()-ed. - possible_dup = 64 -}; - -typedef unsigned char state_type; - -struct noop_deleter { void operator()(void*) {} }; -typedef shared_ptr shared_cancel_token_type; -typedef weak_ptr weak_cancel_token_type; - -#if !defined(ASIO_WINDOWS_RUNTIME) - -ASIO_DECL socket_type accept(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec); - -ASIO_DECL socket_type sync_accept(socket_type s, - state_type state, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec); - -#if defined(ASIO_HAS_IOCP) - -ASIO_DECL void complete_iocp_accept(socket_type s, - void* output_buffer, DWORD address_length, - socket_addr_type* addr, std::size_t* addrlen, - socket_type new_socket, asio::error_code& ec); - -#else // defined(ASIO_HAS_IOCP) - -ASIO_DECL bool non_blocking_accept(socket_type s, - state_type state, socket_addr_type* addr, std::size_t* addrlen, - asio::error_code& ec, socket_type& new_socket); - -#endif // defined(ASIO_HAS_IOCP) - -ASIO_DECL int bind(socket_type s, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec); - -ASIO_DECL int close(socket_type s, state_type& state, - bool destruction, asio::error_code& ec); - -ASIO_DECL bool set_user_non_blocking(socket_type s, - state_type& state, bool value, asio::error_code& ec); - -ASIO_DECL bool set_internal_non_blocking(socket_type s, - state_type& state, bool value, asio::error_code& ec); - -ASIO_DECL int shutdown(socket_type s, - int what, asio::error_code& ec); - -ASIO_DECL int connect(socket_type s, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec); - -ASIO_DECL void sync_connect(socket_type s, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec); - -#if defined(ASIO_HAS_IOCP) - -ASIO_DECL void complete_iocp_connect(socket_type s, - asio::error_code& ec); - -#endif // defined(ASIO_HAS_IOCP) - -ASIO_DECL bool non_blocking_connect(socket_type s, - asio::error_code& ec); - -ASIO_DECL int socketpair(int af, int type, int protocol, - socket_type sv[2], asio::error_code& ec); - -ASIO_DECL bool sockatmark(socket_type s, asio::error_code& ec); - -ASIO_DECL size_t available(socket_type s, asio::error_code& ec); - -ASIO_DECL int listen(socket_type s, - int backlog, asio::error_code& ec); - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -typedef WSABUF buf; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -typedef iovec buf; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -ASIO_DECL void init_buf(buf& b, void* data, size_t size); - -ASIO_DECL void init_buf(buf& b, const void* data, size_t size); - -ASIO_DECL signed_size_type recv(socket_type s, buf* bufs, - size_t count, int flags, asio::error_code& ec); - -ASIO_DECL size_t sync_recv(socket_type s, state_type state, buf* bufs, - size_t count, int flags, bool all_empty, asio::error_code& ec); - -#if defined(ASIO_HAS_IOCP) - -ASIO_DECL void complete_iocp_recv(state_type state, - const weak_cancel_token_type& cancel_token, bool all_empty, - asio::error_code& ec, size_t bytes_transferred); - -#else // defined(ASIO_HAS_IOCP) - -ASIO_DECL bool non_blocking_recv(socket_type s, - buf* bufs, size_t count, int flags, bool is_stream, - asio::error_code& ec, size_t& bytes_transferred); - -#endif // defined(ASIO_HAS_IOCP) - -ASIO_DECL signed_size_type recvfrom(socket_type s, buf* bufs, - size_t count, int flags, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec); - -ASIO_DECL size_t sync_recvfrom(socket_type s, state_type state, - buf* bufs, size_t count, int flags, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec); - -#if defined(ASIO_HAS_IOCP) - -ASIO_DECL void complete_iocp_recvfrom( - const weak_cancel_token_type& cancel_token, - asio::error_code& ec); - -#else // defined(ASIO_HAS_IOCP) - -ASIO_DECL bool non_blocking_recvfrom(socket_type s, - buf* bufs, size_t count, int flags, - socket_addr_type* addr, std::size_t* addrlen, - asio::error_code& ec, size_t& bytes_transferred); - -#endif // defined(ASIO_HAS_IOCP) - -ASIO_DECL signed_size_type recvmsg(socket_type s, buf* bufs, - size_t count, int in_flags, int& out_flags, - asio::error_code& ec); - -ASIO_DECL size_t sync_recvmsg(socket_type s, state_type state, - buf* bufs, size_t count, int in_flags, int& out_flags, - asio::error_code& ec); - -#if defined(ASIO_HAS_IOCP) - -ASIO_DECL void complete_iocp_recvmsg( - const weak_cancel_token_type& cancel_token, - asio::error_code& ec); - -#else // defined(ASIO_HAS_IOCP) - -ASIO_DECL bool non_blocking_recvmsg(socket_type s, - buf* bufs, size_t count, int in_flags, int& out_flags, - asio::error_code& ec, size_t& bytes_transferred); - -#endif // defined(ASIO_HAS_IOCP) - -ASIO_DECL signed_size_type send(socket_type s, const buf* bufs, - size_t count, int flags, asio::error_code& ec); - -ASIO_DECL size_t sync_send(socket_type s, state_type state, - const buf* bufs, size_t count, int flags, - bool all_empty, asio::error_code& ec); - -#if defined(ASIO_HAS_IOCP) - -ASIO_DECL void complete_iocp_send( - const weak_cancel_token_type& cancel_token, - asio::error_code& ec); - -#else // defined(ASIO_HAS_IOCP) - -ASIO_DECL bool non_blocking_send(socket_type s, - const buf* bufs, size_t count, int flags, - asio::error_code& ec, size_t& bytes_transferred); - -#endif // defined(ASIO_HAS_IOCP) - -ASIO_DECL signed_size_type sendto(socket_type s, const buf* bufs, - size_t count, int flags, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec); - -ASIO_DECL size_t sync_sendto(socket_type s, state_type state, - const buf* bufs, size_t count, int flags, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec); - -#if !defined(ASIO_HAS_IOCP) - -ASIO_DECL bool non_blocking_sendto(socket_type s, - const buf* bufs, size_t count, int flags, - const socket_addr_type* addr, std::size_t addrlen, - asio::error_code& ec, size_t& bytes_transferred); - -#endif // !defined(ASIO_HAS_IOCP) - -ASIO_DECL socket_type socket(int af, int type, int protocol, - asio::error_code& ec); - -ASIO_DECL int setsockopt(socket_type s, state_type& state, - int level, int optname, const void* optval, - std::size_t optlen, asio::error_code& ec); - -ASIO_DECL int getsockopt(socket_type s, state_type state, - int level, int optname, void* optval, - size_t* optlen, asio::error_code& ec); - -ASIO_DECL int getpeername(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, bool cached, asio::error_code& ec); - -ASIO_DECL int getsockname(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec); - -ASIO_DECL int ioctl(socket_type s, state_type& state, - int cmd, ioctl_arg_type* arg, asio::error_code& ec); - -ASIO_DECL int select(int nfds, fd_set* readfds, fd_set* writefds, - fd_set* exceptfds, timeval* timeout, asio::error_code& ec); - -ASIO_DECL int poll_read(socket_type s, - state_type state, int msec, asio::error_code& ec); - -ASIO_DECL int poll_write(socket_type s, - state_type state, int msec, asio::error_code& ec); - -ASIO_DECL int poll_error(socket_type s, - state_type state, int msec, asio::error_code& ec); - -ASIO_DECL int poll_connect(socket_type s, - int msec, asio::error_code& ec); - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -ASIO_DECL const char* inet_ntop(int af, const void* src, char* dest, - size_t length, unsigned long scope_id, asio::error_code& ec); - -ASIO_DECL int inet_pton(int af, const char* src, void* dest, - unsigned long* scope_id, asio::error_code& ec); - -ASIO_DECL int gethostname(char* name, - int namelen, asio::error_code& ec); - -#if !defined(ASIO_WINDOWS_RUNTIME) - -ASIO_DECL asio::error_code getaddrinfo(const char* host, - const char* service, const addrinfo_type& hints, - addrinfo_type** result, asio::error_code& ec); - -ASIO_DECL asio::error_code background_getaddrinfo( - const weak_cancel_token_type& cancel_token, const char* host, - const char* service, const addrinfo_type& hints, - addrinfo_type** result, asio::error_code& ec); - -ASIO_DECL void freeaddrinfo(addrinfo_type* ai); - -ASIO_DECL asio::error_code getnameinfo( - const socket_addr_type* addr, std::size_t addrlen, - char* host, std::size_t hostlen, char* serv, - std::size_t servlen, int flags, asio::error_code& ec); - -ASIO_DECL asio::error_code sync_getnameinfo( - const socket_addr_type* addr, std::size_t addrlen, - char* host, std::size_t hostlen, char* serv, - std::size_t servlen, int sock_type, asio::error_code& ec); - -ASIO_DECL asio::error_code background_getnameinfo( - const weak_cancel_token_type& cancel_token, - const socket_addr_type* addr, std::size_t addrlen, - char* host, std::size_t hostlen, char* serv, - std::size_t servlen, int sock_type, asio::error_code& ec); - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -ASIO_DECL u_long_type network_to_host_long(u_long_type value); - -ASIO_DECL u_long_type host_to_network_long(u_long_type value); - -ASIO_DECL u_short_type network_to_host_short(u_short_type value); - -ASIO_DECL u_short_type host_to_network_short(u_short_type value); - -} // namespace socket_ops -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/socket_ops.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_SOCKET_OPS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/socket_option.hpp b/Sources/Vendor/asio/include/asio/detail/socket_option.hpp deleted file mode 100644 index 6852d56..0000000 --- a/Sources/Vendor/asio/include/asio/detail/socket_option.hpp +++ /dev/null @@ -1,316 +0,0 @@ -// -// detail/socket_option.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SOCKET_OPTION_HPP -#define ASIO_DETAIL_SOCKET_OPTION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_exception.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { -namespace socket_option { - -// Helper template for implementing boolean-based options. -template -class boolean -{ -public: - // Default constructor. - boolean() - : value_(0) - { - } - - // Construct with a specific option value. - explicit boolean(bool v) - : value_(v ? 1 : 0) - { - } - - // Set the current value of the boolean. - boolean& operator=(bool v) - { - value_ = v ? 1 : 0; - return *this; - } - - // Get the current value of the boolean. - bool value() const - { - return !!value_; - } - - // Convert to bool. - operator bool() const - { - return !!value_; - } - - // Test for false. - bool operator!() const - { - return !value_; - } - - // Get the level of the socket option. - template - int level(const Protocol&) const - { - return Level; - } - - // Get the name of the socket option. - template - int name(const Protocol&) const - { - return Name; - } - - // Get the address of the boolean data. - template - int* data(const Protocol&) - { - return &value_; - } - - // Get the address of the boolean data. - template - const int* data(const Protocol&) const - { - return &value_; - } - - // Get the size of the boolean data. - template - std::size_t size(const Protocol&) const - { - return sizeof(value_); - } - - // Set the size of the boolean data. - template - void resize(const Protocol&, std::size_t s) - { - // On some platforms (e.g. Windows Vista), the getsockopt function will - // return the size of a boolean socket option as one byte, even though a - // four byte integer was passed in. - switch (s) - { - case sizeof(char): - value_ = *reinterpret_cast(&value_) ? 1 : 0; - break; - case sizeof(value_): - break; - default: - { - std::length_error ex("boolean socket option resize"); - asio::detail::throw_exception(ex); - } - } - } - -private: - int value_; -}; - -// Helper template for implementing integer options. -template -class integer -{ -public: - // Default constructor. - integer() - : value_(0) - { - } - - // Construct with a specific option value. - explicit integer(int v) - : value_(v) - { - } - - // Set the value of the int option. - integer& operator=(int v) - { - value_ = v; - return *this; - } - - // Get the current value of the int option. - int value() const - { - return value_; - } - - // Get the level of the socket option. - template - int level(const Protocol&) const - { - return Level; - } - - // Get the name of the socket option. - template - int name(const Protocol&) const - { - return Name; - } - - // Get the address of the int data. - template - int* data(const Protocol&) - { - return &value_; - } - - // Get the address of the int data. - template - const int* data(const Protocol&) const - { - return &value_; - } - - // Get the size of the int data. - template - std::size_t size(const Protocol&) const - { - return sizeof(value_); - } - - // Set the size of the int data. - template - void resize(const Protocol&, std::size_t s) - { - if (s != sizeof(value_)) - { - std::length_error ex("integer socket option resize"); - asio::detail::throw_exception(ex); - } - } - -private: - int value_; -}; - -// Helper template for implementing linger options. -template -class linger -{ -public: - // Default constructor. - linger() - { - value_.l_onoff = 0; - value_.l_linger = 0; - } - - // Construct with specific option values. - linger(bool e, int t) - { - enabled(e); - timeout ASIO_PREVENT_MACRO_SUBSTITUTION(t); - } - - // Set the value for whether linger is enabled. - void enabled(bool value) - { - value_.l_onoff = value ? 1 : 0; - } - - // Get the value for whether linger is enabled. - bool enabled() const - { - return value_.l_onoff != 0; - } - - // Set the value for the linger timeout. - void timeout ASIO_PREVENT_MACRO_SUBSTITUTION(int value) - { -#if defined(WIN32) - value_.l_linger = static_cast(value); -#else - value_.l_linger = value; -#endif - } - - // Get the value for the linger timeout. - int timeout ASIO_PREVENT_MACRO_SUBSTITUTION() const - { - return static_cast(value_.l_linger); - } - - // Get the level of the socket option. - template - int level(const Protocol&) const - { - return Level; - } - - // Get the name of the socket option. - template - int name(const Protocol&) const - { - return Name; - } - - // Get the address of the linger data. - template - detail::linger_type* data(const Protocol&) - { - return &value_; - } - - // Get the address of the linger data. - template - const detail::linger_type* data(const Protocol&) const - { - return &value_; - } - - // Get the size of the linger data. - template - std::size_t size(const Protocol&) const - { - return sizeof(value_); - } - - // Set the size of the int data. - template - void resize(const Protocol&, std::size_t s) - { - if (s != sizeof(value_)) - { - std::length_error ex("linger socket option resize"); - asio::detail::throw_exception(ex); - } - } - -private: - detail::linger_type value_; -}; - -} // namespace socket_option -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SOCKET_OPTION_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/socket_select_interrupter.hpp b/Sources/Vendor/asio/include/asio/detail/socket_select_interrupter.hpp deleted file mode 100644 index 7351070..0000000 --- a/Sources/Vendor/asio/include/asio/detail/socket_select_interrupter.hpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// detail/socket_select_interrupter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SOCKET_SELECT_INTERRUPTER_HPP -#define ASIO_DETAIL_SOCKET_SELECT_INTERRUPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS_RUNTIME) - -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class socket_select_interrupter -{ -public: - // Constructor. - ASIO_DECL socket_select_interrupter(); - - // Destructor. - ASIO_DECL ~socket_select_interrupter(); - - // Recreate the interrupter's descriptors. Used after a fork. - ASIO_DECL void recreate(); - - // Interrupt the select call. - ASIO_DECL void interrupt(); - - // Reset the select interrupt. Returns true if the call was interrupted. - ASIO_DECL bool reset(); - - // Get the read descriptor to be passed to select. - socket_type read_descriptor() const - { - return read_descriptor_; - } - -private: - // Open the descriptors. Throws on error. - ASIO_DECL void open_descriptors(); - - // Close the descriptors. - ASIO_DECL void close_descriptors(); - - // The read end of a connection used to interrupt the select call. This file - // descriptor is passed to select such that when it is time to stop, a single - // byte will be written on the other end of the connection and this - // descriptor will become readable. - socket_type read_descriptor_; - - // The write end of a connection used to interrupt the select call. A single - // byte may be written to this to wake up the select which is waiting for the - // other end to become readable. - socket_type write_descriptor_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/socket_select_interrupter.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_SOCKET_SELECT_INTERRUPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/socket_types.hpp b/Sources/Vendor/asio/include/asio/detail/socket_types.hpp deleted file mode 100644 index d354343..0000000 --- a/Sources/Vendor/asio/include/asio/detail/socket_types.hpp +++ /dev/null @@ -1,416 +0,0 @@ -// -// detail/socket_types.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SOCKET_TYPES_HPP -#define ASIO_DETAIL_SOCKET_TYPES_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -// Empty. -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_) -# error WinSock.h has already been included -# endif // defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_) -# if defined(__BORLANDC__) -# include // Needed for __errno -# if !defined(_WSPIAPI_H_) -# define _WSPIAPI_H_ -# define ASIO_WSPIAPI_H_DEFINED -# endif // !defined(_WSPIAPI_H_) -# endif // defined(__BORLANDC__) -# include -# include -# if defined(WINAPI_FAMILY) -# if ((WINAPI_FAMILY & WINAPI_PARTITION_DESKTOP) != 0) -# include -# endif // ((WINAPI_FAMILY & WINAPI_PARTITION_DESKTOP) != 0) -# endif // defined(WINAPI_FAMILY) -# if !defined(ASIO_WINDOWS_APP) -# include -# endif // !defined(ASIO_WINDOWS_APP) -# if defined(ASIO_WSPIAPI_H_DEFINED) -# undef _WSPIAPI_H_ -# undef ASIO_WSPIAPI_H_DEFINED -# endif // defined(ASIO_WSPIAPI_H_DEFINED) -# if !defined(ASIO_NO_DEFAULT_LINKED_LIBS) -# if defined(UNDER_CE) -# pragma comment(lib, "ws2.lib") -# elif defined(_MSC_VER) || defined(__BORLANDC__) -# pragma comment(lib, "ws2_32.lib") -# if !defined(ASIO_WINDOWS_APP) -# pragma comment(lib, "mswsock.lib") -# endif // !defined(ASIO_WINDOWS_APP) -# endif // defined(_MSC_VER) || defined(__BORLANDC__) -# endif // !defined(ASIO_NO_DEFAULT_LINKED_LIBS) -# include "asio/detail/old_win_sdk_compat.hpp" -#else -# include -# if (defined(__MACH__) && defined(__APPLE__)) \ - || defined(__FreeBSD__) || defined(__NetBSD__) \ - || defined(__OpenBSD__) || defined(__linux__) \ - || defined(__EMSCRIPTEN__) -# include -# elif !defined(__SYMBIAN32__) -# include -# endif -# include -# include -# include -# if defined(__hpux) -# include -# endif -# if !defined(__hpux) || defined(__SELECT) -# include -# endif -# include -# include -# include -# include -# if !defined(__SYMBIAN32__) -# include -# endif -# include -# include -# include -# include -# if defined(__sun) -# include -# include -# endif -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -#if defined(ASIO_WINDOWS_RUNTIME) -const int max_addr_v4_str_len = 256; -const int max_addr_v6_str_len = 256; -typedef unsigned __int32 u_long_type; -typedef unsigned __int16 u_short_type; -struct in4_addr_type { u_long_type s_addr; }; -struct in4_mreq_type { in4_addr_type imr_multiaddr, imr_interface; }; -struct in6_addr_type { unsigned char s6_addr[16]; }; -struct in6_mreq_type { in6_addr_type ipv6mr_multiaddr; - unsigned long ipv6mr_interface; }; -struct socket_addr_type { int sa_family; }; -struct sockaddr_in4_type { int sin_family; - in4_addr_type sin_addr; u_short_type sin_port; }; -struct sockaddr_in6_type { int sin6_family; - in6_addr_type sin6_addr; u_short_type sin6_port; - u_long_type sin6_flowinfo; u_long_type sin6_scope_id; }; -struct sockaddr_storage_type { int ss_family; - unsigned char ss_bytes[128 - sizeof(int)]; }; -struct addrinfo_type { int ai_flags; - int ai_family, ai_socktype, ai_protocol; - int ai_addrlen; const void* ai_addr; - const char* ai_canonname; addrinfo_type* ai_next; }; -struct linger_type { u_short_type l_onoff, l_linger; }; -typedef u_long_type ioctl_arg_type; -typedef int signed_size_type; -# define ASIO_OS_DEF(c) ASIO_OS_DEF_##c -# define ASIO_OS_DEF_AF_UNSPEC 0 -# define ASIO_OS_DEF_AF_INET 2 -# define ASIO_OS_DEF_AF_INET6 23 -# define ASIO_OS_DEF_SOCK_STREAM 1 -# define ASIO_OS_DEF_SOCK_DGRAM 2 -# define ASIO_OS_DEF_SOCK_RAW 3 -# define ASIO_OS_DEF_SOCK_SEQPACKET 5 -# define ASIO_OS_DEF_IPPROTO_IP 0 -# define ASIO_OS_DEF_IPPROTO_IPV6 41 -# define ASIO_OS_DEF_IPPROTO_TCP 6 -# define ASIO_OS_DEF_IPPROTO_UDP 17 -# define ASIO_OS_DEF_IPPROTO_ICMP 1 -# define ASIO_OS_DEF_IPPROTO_ICMPV6 58 -# define ASIO_OS_DEF_FIONBIO 1 -# define ASIO_OS_DEF_FIONREAD 2 -# define ASIO_OS_DEF_INADDR_ANY 0 -# define ASIO_OS_DEF_MSG_OOB 0x1 -# define ASIO_OS_DEF_MSG_PEEK 0x2 -# define ASIO_OS_DEF_MSG_DONTROUTE 0x4 -# define ASIO_OS_DEF_MSG_EOR 0 // Not supported. -# define ASIO_OS_DEF_SHUT_RD 0x0 -# define ASIO_OS_DEF_SHUT_WR 0x1 -# define ASIO_OS_DEF_SHUT_RDWR 0x2 -# define ASIO_OS_DEF_SOMAXCONN 0x7fffffff -# define ASIO_OS_DEF_SOL_SOCKET 0xffff -# define ASIO_OS_DEF_SO_BROADCAST 0x20 -# define ASIO_OS_DEF_SO_DEBUG 0x1 -# define ASIO_OS_DEF_SO_DONTROUTE 0x10 -# define ASIO_OS_DEF_SO_KEEPALIVE 0x8 -# define ASIO_OS_DEF_SO_LINGER 0x80 -# define ASIO_OS_DEF_SO_OOBINLINE 0x100 -# define ASIO_OS_DEF_SO_SNDBUF 0x1001 -# define ASIO_OS_DEF_SO_RCVBUF 0x1002 -# define ASIO_OS_DEF_SO_SNDLOWAT 0x1003 -# define ASIO_OS_DEF_SO_RCVLOWAT 0x1004 -# define ASIO_OS_DEF_SO_REUSEADDR 0x4 -# define ASIO_OS_DEF_TCP_NODELAY 0x1 -# define ASIO_OS_DEF_IP_MULTICAST_IF 2 -# define ASIO_OS_DEF_IP_MULTICAST_TTL 3 -# define ASIO_OS_DEF_IP_MULTICAST_LOOP 4 -# define ASIO_OS_DEF_IP_ADD_MEMBERSHIP 5 -# define ASIO_OS_DEF_IP_DROP_MEMBERSHIP 6 -# define ASIO_OS_DEF_IP_TTL 7 -# define ASIO_OS_DEF_IPV6_UNICAST_HOPS 4 -# define ASIO_OS_DEF_IPV6_MULTICAST_IF 9 -# define ASIO_OS_DEF_IPV6_MULTICAST_HOPS 10 -# define ASIO_OS_DEF_IPV6_MULTICAST_LOOP 11 -# define ASIO_OS_DEF_IPV6_JOIN_GROUP 12 -# define ASIO_OS_DEF_IPV6_LEAVE_GROUP 13 -# define ASIO_OS_DEF_AI_CANONNAME 0x2 -# define ASIO_OS_DEF_AI_PASSIVE 0x1 -# define ASIO_OS_DEF_AI_NUMERICHOST 0x4 -# define ASIO_OS_DEF_AI_NUMERICSERV 0x8 -# define ASIO_OS_DEF_AI_V4MAPPED 0x800 -# define ASIO_OS_DEF_AI_ALL 0x100 -# define ASIO_OS_DEF_AI_ADDRCONFIG 0x400 -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) -typedef SOCKET socket_type; -const SOCKET invalid_socket = INVALID_SOCKET; -const int socket_error_retval = SOCKET_ERROR; -const int max_addr_v4_str_len = 256; -const int max_addr_v6_str_len = 256; -typedef sockaddr socket_addr_type; -typedef in_addr in4_addr_type; -typedef ip_mreq in4_mreq_type; -typedef sockaddr_in sockaddr_in4_type; -# if defined(ASIO_HAS_OLD_WIN_SDK) -typedef in6_addr_emulation in6_addr_type; -typedef ipv6_mreq_emulation in6_mreq_type; -typedef sockaddr_in6_emulation sockaddr_in6_type; -typedef sockaddr_storage_emulation sockaddr_storage_type; -typedef addrinfo_emulation addrinfo_type; -# else -typedef in6_addr in6_addr_type; -typedef ipv6_mreq in6_mreq_type; -typedef sockaddr_in6 sockaddr_in6_type; -typedef sockaddr_storage sockaddr_storage_type; -typedef addrinfo addrinfo_type; -# endif -typedef ::linger linger_type; -typedef unsigned long ioctl_arg_type; -typedef u_long u_long_type; -typedef u_short u_short_type; -typedef int signed_size_type; -# define ASIO_OS_DEF(c) ASIO_OS_DEF_##c -# define ASIO_OS_DEF_AF_UNSPEC AF_UNSPEC -# define ASIO_OS_DEF_AF_INET AF_INET -# define ASIO_OS_DEF_AF_INET6 AF_INET6 -# define ASIO_OS_DEF_SOCK_STREAM SOCK_STREAM -# define ASIO_OS_DEF_SOCK_DGRAM SOCK_DGRAM -# define ASIO_OS_DEF_SOCK_RAW SOCK_RAW -# define ASIO_OS_DEF_SOCK_SEQPACKET SOCK_SEQPACKET -# define ASIO_OS_DEF_IPPROTO_IP IPPROTO_IP -# define ASIO_OS_DEF_IPPROTO_IPV6 IPPROTO_IPV6 -# define ASIO_OS_DEF_IPPROTO_TCP IPPROTO_TCP -# define ASIO_OS_DEF_IPPROTO_UDP IPPROTO_UDP -# define ASIO_OS_DEF_IPPROTO_ICMP IPPROTO_ICMP -# define ASIO_OS_DEF_IPPROTO_ICMPV6 IPPROTO_ICMPV6 -# define ASIO_OS_DEF_FIONBIO FIONBIO -# define ASIO_OS_DEF_FIONREAD FIONREAD -# define ASIO_OS_DEF_INADDR_ANY INADDR_ANY -# define ASIO_OS_DEF_MSG_OOB MSG_OOB -# define ASIO_OS_DEF_MSG_PEEK MSG_PEEK -# define ASIO_OS_DEF_MSG_DONTROUTE MSG_DONTROUTE -# define ASIO_OS_DEF_MSG_EOR 0 // Not supported on Windows. -# define ASIO_OS_DEF_SHUT_RD SD_RECEIVE -# define ASIO_OS_DEF_SHUT_WR SD_SEND -# define ASIO_OS_DEF_SHUT_RDWR SD_BOTH -# define ASIO_OS_DEF_SOMAXCONN SOMAXCONN -# define ASIO_OS_DEF_SOL_SOCKET SOL_SOCKET -# define ASIO_OS_DEF_SO_BROADCAST SO_BROADCAST -# define ASIO_OS_DEF_SO_DEBUG SO_DEBUG -# define ASIO_OS_DEF_SO_DONTROUTE SO_DONTROUTE -# define ASIO_OS_DEF_SO_KEEPALIVE SO_KEEPALIVE -# define ASIO_OS_DEF_SO_LINGER SO_LINGER -# define ASIO_OS_DEF_SO_OOBINLINE SO_OOBINLINE -# define ASIO_OS_DEF_SO_SNDBUF SO_SNDBUF -# define ASIO_OS_DEF_SO_RCVBUF SO_RCVBUF -# define ASIO_OS_DEF_SO_SNDLOWAT SO_SNDLOWAT -# define ASIO_OS_DEF_SO_RCVLOWAT SO_RCVLOWAT -# define ASIO_OS_DEF_SO_REUSEADDR SO_REUSEADDR -# define ASIO_OS_DEF_TCP_NODELAY TCP_NODELAY -# define ASIO_OS_DEF_IP_MULTICAST_IF IP_MULTICAST_IF -# define ASIO_OS_DEF_IP_MULTICAST_TTL IP_MULTICAST_TTL -# define ASIO_OS_DEF_IP_MULTICAST_LOOP IP_MULTICAST_LOOP -# define ASIO_OS_DEF_IP_ADD_MEMBERSHIP IP_ADD_MEMBERSHIP -# define ASIO_OS_DEF_IP_DROP_MEMBERSHIP IP_DROP_MEMBERSHIP -# define ASIO_OS_DEF_IP_TTL IP_TTL -# define ASIO_OS_DEF_IPV6_UNICAST_HOPS IPV6_UNICAST_HOPS -# define ASIO_OS_DEF_IPV6_MULTICAST_IF IPV6_MULTICAST_IF -# define ASIO_OS_DEF_IPV6_MULTICAST_HOPS IPV6_MULTICAST_HOPS -# define ASIO_OS_DEF_IPV6_MULTICAST_LOOP IPV6_MULTICAST_LOOP -# define ASIO_OS_DEF_IPV6_JOIN_GROUP IPV6_JOIN_GROUP -# define ASIO_OS_DEF_IPV6_LEAVE_GROUP IPV6_LEAVE_GROUP -# define ASIO_OS_DEF_AI_CANONNAME AI_CANONNAME -# define ASIO_OS_DEF_AI_PASSIVE AI_PASSIVE -# define ASIO_OS_DEF_AI_NUMERICHOST AI_NUMERICHOST -# if defined(AI_NUMERICSERV) -# define ASIO_OS_DEF_AI_NUMERICSERV AI_NUMERICSERV -# else -# define ASIO_OS_DEF_AI_NUMERICSERV 0 -# endif -# if defined(AI_V4MAPPED) -# define ASIO_OS_DEF_AI_V4MAPPED AI_V4MAPPED -# else -# define ASIO_OS_DEF_AI_V4MAPPED 0 -# endif -# if defined(AI_ALL) -# define ASIO_OS_DEF_AI_ALL AI_ALL -# else -# define ASIO_OS_DEF_AI_ALL 0 -# endif -# if defined(AI_ADDRCONFIG) -# define ASIO_OS_DEF_AI_ADDRCONFIG AI_ADDRCONFIG -# else -# define ASIO_OS_DEF_AI_ADDRCONFIG 0 -# endif -# if defined (_WIN32_WINNT) -const int max_iov_len = 64; -# else -const int max_iov_len = 16; -# endif -#else -typedef int socket_type; -const int invalid_socket = -1; -const int socket_error_retval = -1; -const int max_addr_v4_str_len = INET_ADDRSTRLEN; -#if defined(INET6_ADDRSTRLEN) -const int max_addr_v6_str_len = INET6_ADDRSTRLEN + 1 + IF_NAMESIZE; -#else // defined(INET6_ADDRSTRLEN) -const int max_addr_v6_str_len = 256; -#endif // defined(INET6_ADDRSTRLEN) -typedef sockaddr socket_addr_type; -typedef in_addr in4_addr_type; -# if defined(__hpux) -// HP-UX doesn't provide ip_mreq when _XOPEN_SOURCE_EXTENDED is defined. -struct in4_mreq_type -{ - struct in_addr imr_multiaddr; - struct in_addr imr_interface; -}; -# else -typedef ip_mreq in4_mreq_type; -# endif -typedef sockaddr_in sockaddr_in4_type; -typedef in6_addr in6_addr_type; -typedef ipv6_mreq in6_mreq_type; -typedef sockaddr_in6 sockaddr_in6_type; -typedef sockaddr_storage sockaddr_storage_type; -typedef sockaddr_un sockaddr_un_type; -typedef addrinfo addrinfo_type; -typedef ::linger linger_type; -typedef int ioctl_arg_type; -typedef uint32_t u_long_type; -typedef uint16_t u_short_type; -#if defined(ASIO_HAS_SSIZE_T) -typedef ssize_t signed_size_type; -#else // defined(ASIO_HAS_SSIZE_T) -typedef int signed_size_type; -#endif // defined(ASIO_HAS_SSIZE_T) -# define ASIO_OS_DEF(c) ASIO_OS_DEF_##c -# define ASIO_OS_DEF_AF_UNSPEC AF_UNSPEC -# define ASIO_OS_DEF_AF_INET AF_INET -# define ASIO_OS_DEF_AF_INET6 AF_INET6 -# define ASIO_OS_DEF_SOCK_STREAM SOCK_STREAM -# define ASIO_OS_DEF_SOCK_DGRAM SOCK_DGRAM -# define ASIO_OS_DEF_SOCK_RAW SOCK_RAW -# define ASIO_OS_DEF_SOCK_SEQPACKET SOCK_SEQPACKET -# define ASIO_OS_DEF_IPPROTO_IP IPPROTO_IP -# define ASIO_OS_DEF_IPPROTO_IPV6 IPPROTO_IPV6 -# define ASIO_OS_DEF_IPPROTO_TCP IPPROTO_TCP -# define ASIO_OS_DEF_IPPROTO_UDP IPPROTO_UDP -# define ASIO_OS_DEF_IPPROTO_ICMP IPPROTO_ICMP -# define ASIO_OS_DEF_IPPROTO_ICMPV6 IPPROTO_ICMPV6 -# define ASIO_OS_DEF_FIONBIO FIONBIO -# define ASIO_OS_DEF_FIONREAD FIONREAD -# define ASIO_OS_DEF_INADDR_ANY INADDR_ANY -# define ASIO_OS_DEF_MSG_OOB MSG_OOB -# define ASIO_OS_DEF_MSG_PEEK MSG_PEEK -# define ASIO_OS_DEF_MSG_DONTROUTE MSG_DONTROUTE -# define ASIO_OS_DEF_MSG_EOR MSG_EOR -# define ASIO_OS_DEF_SHUT_RD SHUT_RD -# define ASIO_OS_DEF_SHUT_WR SHUT_WR -# define ASIO_OS_DEF_SHUT_RDWR SHUT_RDWR -# define ASIO_OS_DEF_SOMAXCONN SOMAXCONN -# define ASIO_OS_DEF_SOL_SOCKET SOL_SOCKET -# define ASIO_OS_DEF_SO_BROADCAST SO_BROADCAST -# define ASIO_OS_DEF_SO_DEBUG SO_DEBUG -# define ASIO_OS_DEF_SO_DONTROUTE SO_DONTROUTE -# define ASIO_OS_DEF_SO_KEEPALIVE SO_KEEPALIVE -# define ASIO_OS_DEF_SO_LINGER SO_LINGER -# define ASIO_OS_DEF_SO_OOBINLINE SO_OOBINLINE -# define ASIO_OS_DEF_SO_SNDBUF SO_SNDBUF -# define ASIO_OS_DEF_SO_RCVBUF SO_RCVBUF -# define ASIO_OS_DEF_SO_SNDLOWAT SO_SNDLOWAT -# define ASIO_OS_DEF_SO_RCVLOWAT SO_RCVLOWAT -# define ASIO_OS_DEF_SO_REUSEADDR SO_REUSEADDR -# define ASIO_OS_DEF_TCP_NODELAY TCP_NODELAY -# define ASIO_OS_DEF_IP_MULTICAST_IF IP_MULTICAST_IF -# define ASIO_OS_DEF_IP_MULTICAST_TTL IP_MULTICAST_TTL -# define ASIO_OS_DEF_IP_MULTICAST_LOOP IP_MULTICAST_LOOP -# define ASIO_OS_DEF_IP_ADD_MEMBERSHIP IP_ADD_MEMBERSHIP -# define ASIO_OS_DEF_IP_DROP_MEMBERSHIP IP_DROP_MEMBERSHIP -# define ASIO_OS_DEF_IP_TTL IP_TTL -# define ASIO_OS_DEF_IPV6_UNICAST_HOPS IPV6_UNICAST_HOPS -# define ASIO_OS_DEF_IPV6_MULTICAST_IF IPV6_MULTICAST_IF -# define ASIO_OS_DEF_IPV6_MULTICAST_HOPS IPV6_MULTICAST_HOPS -# define ASIO_OS_DEF_IPV6_MULTICAST_LOOP IPV6_MULTICAST_LOOP -# define ASIO_OS_DEF_IPV6_JOIN_GROUP IPV6_JOIN_GROUP -# define ASIO_OS_DEF_IPV6_LEAVE_GROUP IPV6_LEAVE_GROUP -# define ASIO_OS_DEF_AI_CANONNAME AI_CANONNAME -# define ASIO_OS_DEF_AI_PASSIVE AI_PASSIVE -# define ASIO_OS_DEF_AI_NUMERICHOST AI_NUMERICHOST -# if defined(AI_NUMERICSERV) -# define ASIO_OS_DEF_AI_NUMERICSERV AI_NUMERICSERV -# else -# define ASIO_OS_DEF_AI_NUMERICSERV 0 -# endif -// Note: QNX Neutrino 6.3 defines AI_V4MAPPED, AI_ALL and AI_ADDRCONFIG but -// does not implement them. Therefore they are specifically excluded here. -# if defined(AI_V4MAPPED) && !defined(__QNXNTO__) -# define ASIO_OS_DEF_AI_V4MAPPED AI_V4MAPPED -# else -# define ASIO_OS_DEF_AI_V4MAPPED 0 -# endif -# if defined(AI_ALL) && !defined(__QNXNTO__) -# define ASIO_OS_DEF_AI_ALL AI_ALL -# else -# define ASIO_OS_DEF_AI_ALL 0 -# endif -# if defined(AI_ADDRCONFIG) && !defined(__QNXNTO__) -# define ASIO_OS_DEF_AI_ADDRCONFIG AI_ADDRCONFIG -# else -# define ASIO_OS_DEF_AI_ADDRCONFIG 0 -# endif -# if defined(IOV_MAX) -const int max_iov_len = IOV_MAX; -# else -// POSIX platforms are not required to define IOV_MAX. -const int max_iov_len = 16; -# endif -#endif -const int custom_socket_option_level = 0xA5100000; -const int enable_connection_aborted_option = 1; -const int always_fail_option = 2; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SOCKET_TYPES_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/solaris_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/solaris_fenced_block.hpp deleted file mode 100644 index d48f6a3..0000000 --- a/Sources/Vendor/asio/include/asio/detail/solaris_fenced_block.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// -// detail/solaris_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_SOLARIS_FENCED_BLOCK_HPP -#define ASIO_DETAIL_SOLARIS_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(__sun) - -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class solaris_fenced_block - : private noncopyable -{ -public: - enum half_t { half }; - enum full_t { full }; - - // Constructor for a half fenced block. - explicit solaris_fenced_block(half_t) - { - } - - // Constructor for a full fenced block. - explicit solaris_fenced_block(full_t) - { - membar_consumer(); - } - - // Destructor. - ~solaris_fenced_block() - { - membar_producer(); - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(__sun) - -#endif // ASIO_DETAIL_SOLARIS_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/static_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/static_mutex.hpp deleted file mode 100644 index 8f2bc02..0000000 --- a/Sources/Vendor/asio/include/asio/detail/static_mutex.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// detail/static_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_STATIC_MUTEX_HPP -#define ASIO_DETAIL_STATIC_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_THREADS) -# include "asio/detail/null_static_mutex.hpp" -#elif defined(ASIO_WINDOWS) -# include "asio/detail/win_static_mutex.hpp" -#elif defined(ASIO_HAS_PTHREADS) -# include "asio/detail/posix_static_mutex.hpp" -#elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) -# include "asio/detail/std_static_mutex.hpp" -#else -# error Only Windows and POSIX are supported! -#endif - -namespace asio { -namespace detail { - -#if !defined(ASIO_HAS_THREADS) -typedef null_static_mutex static_mutex; -# define ASIO_STATIC_MUTEX_INIT ASIO_NULL_STATIC_MUTEX_INIT -#elif defined(ASIO_WINDOWS) -typedef win_static_mutex static_mutex; -# define ASIO_STATIC_MUTEX_INIT ASIO_WIN_STATIC_MUTEX_INIT -#elif defined(ASIO_HAS_PTHREADS) -typedef posix_static_mutex static_mutex; -# define ASIO_STATIC_MUTEX_INIT ASIO_POSIX_STATIC_MUTEX_INIT -#elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) -typedef std_static_mutex static_mutex; -# define ASIO_STATIC_MUTEX_INIT ASIO_STD_STATIC_MUTEX_INIT -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_STATIC_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/std_event.hpp b/Sources/Vendor/asio/include/asio/detail/std_event.hpp deleted file mode 100644 index 5639ecd..0000000 --- a/Sources/Vendor/asio/include/asio/detail/std_event.hpp +++ /dev/null @@ -1,176 +0,0 @@ -// -// detail/std_event.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_STD_EVENT_HPP -#define ASIO_DETAIL_STD_EVENT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) - -#include -#include -#include "asio/detail/assert.hpp" -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class std_event - : private noncopyable -{ -public: - // Constructor. - std_event() - : state_(0) - { - } - - // Destructor. - ~std_event() - { - } - - // Signal the event. (Retained for backward compatibility.) - template - void signal(Lock& lock) - { - this->signal_all(lock); - } - - // Signal all waiters. - template - void signal_all(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - (void)lock; - state_ |= 1; - cond_.notify_all(); - } - - // Unlock the mutex and signal one waiter. - template - void unlock_and_signal_one(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - state_ |= 1; - bool have_waiters = (state_ > 1); - lock.unlock(); - if (have_waiters) - cond_.notify_one(); - } - - // If there's a waiter, unlock the mutex and signal it. - template - bool maybe_unlock_and_signal_one(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - state_ |= 1; - if (state_ > 1) - { - lock.unlock(); - cond_.notify_one(); - return true; - } - return false; - } - - // Reset the event. - template - void clear(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - (void)lock; - state_ &= ~std::size_t(1); - } - - // Wait for the event to become signalled. - template - void wait(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - unique_lock_adapter u_lock(lock); - while ((state_ & 1) == 0) - { - waiter w(state_); - cond_.wait(u_lock.unique_lock_); - } - } - - // Timed wait for the event to become signalled. - template - bool wait_for_usec(Lock& lock, long usec) - { - ASIO_ASSERT(lock.locked()); - unique_lock_adapter u_lock(lock); - if ((state_ & 1) == 0) - { - waiter w(state_); - cond_.wait_for(u_lock.unique_lock_, std::chrono::microseconds(usec)); - } - return (state_ & 1) != 0; - } - -private: - // Helper class to temporarily adapt a scoped_lock into a unique_lock so that - // it can be passed to std::condition_variable::wait(). - struct unique_lock_adapter - { - template - explicit unique_lock_adapter(Lock& lock) - : unique_lock_(lock.mutex().mutex_, std::adopt_lock) - { - } - - ~unique_lock_adapter() - { - unique_lock_.release(); - } - - std::unique_lock unique_lock_; - }; - - // Helper to increment and decrement the state to track outstanding waiters. - class waiter - { - public: - explicit waiter(std::size_t& state) - : state_(state) - { - state_ += 2; - } - - ~waiter() - { - state_ -= 2; - } - - private: - std::size_t& state_; - }; - - std::condition_variable cond_; - std::size_t state_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) - -#endif // ASIO_DETAIL_STD_EVENT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/std_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/std_fenced_block.hpp deleted file mode 100644 index 0d8ade0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/std_fenced_block.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// -// detail/std_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_STD_FENCED_BLOCK_HPP -#define ASIO_DETAIL_STD_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_STD_ATOMIC) - -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class std_fenced_block - : private noncopyable -{ -public: - enum half_t { half }; - enum full_t { full }; - - // Constructor for a half fenced block. - explicit std_fenced_block(half_t) - { - } - - // Constructor for a full fenced block. - explicit std_fenced_block(full_t) - { - std::atomic_thread_fence(std::memory_order_acquire); - } - - // Destructor. - ~std_fenced_block() - { - std::atomic_thread_fence(std::memory_order_release); - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_STD_ATOMIC) - -#endif // ASIO_DETAIL_STD_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/std_global.hpp b/Sources/Vendor/asio/include/asio/detail/std_global.hpp deleted file mode 100644 index 0c5173e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/std_global.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// -// detail/std_global.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_STD_GLOBAL_HPP -#define ASIO_DETAIL_STD_GLOBAL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_STD_CALL_ONCE) - -#include -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -struct std_global_impl -{ - // Helper function to perform initialisation. - static void do_init() - { - instance_.ptr_ = new T; - } - - // Destructor automatically cleans up the global. - ~std_global_impl() - { - delete ptr_; - } - - static std::once_flag init_once_; - static std_global_impl instance_; - T* ptr_; -}; - -template -std::once_flag std_global_impl::init_once_; - -template -std_global_impl std_global_impl::instance_; - -template -T& std_global() -{ - std::call_once(std_global_impl::init_once_, &std_global_impl::do_init); - return *std_global_impl::instance_.ptr_; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_STD_CALL_ONCE) - -#endif // ASIO_DETAIL_STD_GLOBAL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/std_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/std_mutex.hpp deleted file mode 100644 index 159049e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/std_mutex.hpp +++ /dev/null @@ -1,73 +0,0 @@ -// -// detail/std_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_STD_MUTEX_HPP -#define ASIO_DETAIL_STD_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) - -#include -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class std_event; - -class std_mutex - : private noncopyable -{ -public: - typedef asio::detail::scoped_lock scoped_lock; - - // Constructor. - std_mutex() - { - } - - // Destructor. - ~std_mutex() - { - } - - // Lock the mutex. - void lock() - { - mutex_.lock(); - } - - // Unlock the mutex. - void unlock() - { - mutex_.unlock(); - } - -private: - friend class std_event; - std::mutex mutex_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) - -#endif // ASIO_DETAIL_STD_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/std_static_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/std_static_mutex.hpp deleted file mode 100644 index e9c9dc5..0000000 --- a/Sources/Vendor/asio/include/asio/detail/std_static_mutex.hpp +++ /dev/null @@ -1,81 +0,0 @@ -// -// detail/std_static_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_STD_STATIC_MUTEX_HPP -#define ASIO_DETAIL_STD_STATIC_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) - -#include -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class std_event; - -class std_static_mutex - : private noncopyable -{ -public: - typedef asio::detail::scoped_lock scoped_lock; - - // Constructor. - std_static_mutex(int) - { - } - - // Destructor. - ~std_static_mutex() - { - } - - // Initialise the mutex. - void init() - { - // Nothing to do. - } - - // Lock the mutex. - void lock() - { - mutex_.lock(); - } - - // Unlock the mutex. - void unlock() - { - mutex_.unlock(); - } - -private: - friend class std_event; - std::mutex mutex_; -}; - -#define ASIO_STD_STATIC_MUTEX_INIT 0 - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) - -#endif // ASIO_DETAIL_STD_STATIC_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/std_thread.hpp b/Sources/Vendor/asio/include/asio/detail/std_thread.hpp deleted file mode 100644 index a240308..0000000 --- a/Sources/Vendor/asio/include/asio/detail/std_thread.hpp +++ /dev/null @@ -1,71 +0,0 @@ -// -// detail/std_thread.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_STD_THREAD_HPP -#define ASIO_DETAIL_STD_THREAD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_STD_THREAD) - -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class std_thread - : private noncopyable -{ -public: - // Constructor. - template - std_thread(Function f, unsigned int = 0) - : thread_(f) - { - } - - // Destructor. - ~std_thread() - { - join(); - } - - // Wait for the thread to exit. - void join() - { - if (thread_.joinable()) - thread_.join(); - } - - // Get number of CPUs. - static std::size_t hardware_concurrency() - { - return std::thread::hardware_concurrency(); - } - -private: - std::thread thread_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_STD_THREAD) - -#endif // ASIO_DETAIL_STD_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/strand_executor_service.hpp b/Sources/Vendor/asio/include/asio/detail/strand_executor_service.hpp deleted file mode 100644 index 67e8427..0000000 --- a/Sources/Vendor/asio/include/asio/detail/strand_executor_service.hpp +++ /dev/null @@ -1,142 +0,0 @@ -// -// detail/strand_executor_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_STRAND_EXECUTOR_SERVICE_HPP -#define ASIO_DETAIL_STRAND_EXECUTOR_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/atomic_count.hpp" -#include "asio/detail/executor_op.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/scheduler_operation.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Default service implementation for a strand. -class strand_executor_service - : public execution_context_service_base -{ -public: - // The underlying implementation of a strand. - class strand_impl - { - public: - ASIO_DECL ~strand_impl(); - - private: - friend class strand_executor_service; - - // Mutex to protect access to internal data. - mutex* mutex_; - - // Indicates whether the strand is currently "locked" by a handler. This - // means that there is a handler upcall in progress, or that the strand - // itself has been scheduled in order to invoke some pending handlers. - bool locked_; - - // Indicates that the strand has been shut down and will accept no further - // handlers. - bool shutdown_; - - // The handlers that are waiting on the strand but should not be run until - // after the next time the strand is scheduled. This queue must only be - // modified while the mutex is locked. - op_queue waiting_queue_; - - // The handlers that are ready to be run. Logically speaking, these are the - // handlers that hold the strand's lock. The ready queue is only modified - // from within the strand and so may be accessed without locking the mutex. - op_queue ready_queue_; - - // Pointers to adjacent handle implementations in linked list. - strand_impl* next_; - strand_impl* prev_; - - // The strand service in where the implementation is held. - strand_executor_service* service_; - }; - - typedef shared_ptr implementation_type; - - // Construct a new strand service for the specified context. - ASIO_DECL explicit strand_executor_service(execution_context& context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Create a new strand_executor implementation. - ASIO_DECL implementation_type create_implementation(); - - // Request invocation of the given function. - template - static void dispatch(const implementation_type& impl, Executor& ex, - ASIO_MOVE_ARG(Function) function, const Allocator& a); - - // Request invocation of the given function and return immediately. - template - static void post(const implementation_type& impl, Executor& ex, - ASIO_MOVE_ARG(Function) function, const Allocator& a); - - // Request invocation of the given function and return immediately. - template - static void defer(const implementation_type& impl, Executor& ex, - ASIO_MOVE_ARG(Function) function, const Allocator& a); - - // Determine whether the strand is running in the current thread. - ASIO_DECL static bool running_in_this_thread( - const implementation_type& impl); - -private: - friend class strand_impl; - template class invoker; - - // Adds a function to the strand. Returns true if it acquires the lock. - ASIO_DECL static bool enqueue(const implementation_type& impl, - scheduler_operation* op); - - // Mutex to protect access to the service-wide state. - mutex mutex_; - - // Number of mutexes shared between all strand objects. - enum { num_mutexes = 193 }; - - // Pool of mutexes. - scoped_ptr mutexes_[num_mutexes]; - - // Extra value used when hashing to prevent recycled memory locations from - // getting the same mutex. - std::size_t salt_; - - // The head of a linked list of all implementations. - strand_impl* impl_list_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/strand_executor_service.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/strand_executor_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_STRAND_EXECUTOR_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/strand_service.hpp b/Sources/Vendor/asio/include/asio/detail/strand_service.hpp deleted file mode 100644 index edc14a0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/strand_service.hpp +++ /dev/null @@ -1,142 +0,0 @@ -// -// detail/strand_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_STRAND_SERVICE_HPP -#define ASIO_DETAIL_STRAND_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/scoped_ptr.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Default service implementation for a strand. -class strand_service - : public asio::detail::service_base -{ -private: - // Helper class to re-post the strand on exit. - struct on_do_complete_exit; - - // Helper class to re-post the strand on exit. - struct on_dispatch_exit; - -public: - - // The underlying implementation of a strand. - class strand_impl - : public operation - { - public: - strand_impl(); - - private: - // Only this service will have access to the internal values. - friend class strand_service; - friend struct on_do_complete_exit; - friend struct on_dispatch_exit; - - // Mutex to protect access to internal data. - asio::detail::mutex mutex_; - - // Indicates whether the strand is currently "locked" by a handler. This - // means that there is a handler upcall in progress, or that the strand - // itself has been scheduled in order to invoke some pending handlers. - bool locked_; - - // The handlers that are waiting on the strand but should not be run until - // after the next time the strand is scheduled. This queue must only be - // modified while the mutex is locked. - op_queue waiting_queue_; - - // The handlers that are ready to be run. Logically speaking, these are the - // handlers that hold the strand's lock. The ready queue is only modified - // from within the strand and so may be accessed without locking the mutex. - op_queue ready_queue_; - }; - - typedef strand_impl* implementation_type; - - // Construct a new strand service for the specified io_context. - ASIO_DECL explicit strand_service(asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Construct a new strand implementation. - ASIO_DECL void construct(implementation_type& impl); - - // Request the io_context to invoke the given handler. - template - void dispatch(implementation_type& impl, Handler& handler); - - // Request the io_context to invoke the given handler and return immediately. - template - void post(implementation_type& impl, Handler& handler); - - // Determine whether the strand is running in the current thread. - ASIO_DECL bool running_in_this_thread( - const implementation_type& impl) const; - -private: - // Helper function to dispatch a handler. Returns true if the handler should - // be dispatched immediately. - ASIO_DECL bool do_dispatch(implementation_type& impl, operation* op); - - // Helper fiunction to post a handler. - ASIO_DECL void do_post(implementation_type& impl, - operation* op, bool is_continuation); - - ASIO_DECL static void do_complete(void* owner, - operation* base, const asio::error_code& ec, - std::size_t bytes_transferred); - - // The io_context implementation used to post completions. - io_context_impl& io_context_; - - // Mutex to protect access to the array of implementations. - asio::detail::mutex mutex_; - - // Number of implementations shared between all strand objects. -#if defined(ASIO_STRAND_IMPLEMENTATIONS) - enum { num_implementations = ASIO_STRAND_IMPLEMENTATIONS }; -#else // defined(ASIO_STRAND_IMPLEMENTATIONS) - enum { num_implementations = 193 }; -#endif // defined(ASIO_STRAND_IMPLEMENTATIONS) - - // Pool of implementations. - scoped_ptr implementations_[num_implementations]; - - // Extra value used when hashing to prevent recycled memory locations from - // getting the same strand implementation. - std::size_t salt_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/strand_service.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/strand_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_STRAND_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/string_view.hpp b/Sources/Vendor/asio/include/asio/detail/string_view.hpp deleted file mode 100644 index f09cebc..0000000 --- a/Sources/Vendor/asio/include/asio/detail/string_view.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// -// detail/string_view.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_STRING_VIEW_HPP -#define ASIO_DETAIL_STRING_VIEW_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_STRING_VIEW) - -#if defined(ASIO_HAS_STD_STRING_VIEW) -# include -#elif defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) -# include -#else // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) -# error ASIO_HAS_STRING_VIEW is set but no string_view is available -#endif // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) - -namespace asio { - -#if defined(ASIO_HAS_STD_STRING_VIEW) -using std::basic_string_view; -using std::string_view; -#elif defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) -using std::experimental::basic_string_view; -using std::experimental::string_view; -#endif // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) - -} // namespace asio - -# define ASIO_STRING_VIEW_PARAM asio::string_view -#else // defined(ASIO_HAS_STRING_VIEW) -# define ASIO_STRING_VIEW_PARAM const std::string& -#endif // defined(ASIO_HAS_STRING_VIEW) - -#endif // ASIO_DETAIL_STRING_VIEW_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/thread.hpp b/Sources/Vendor/asio/include/asio/detail/thread.hpp deleted file mode 100644 index ea556db..0000000 --- a/Sources/Vendor/asio/include/asio/detail/thread.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// -// detail/thread.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_THREAD_HPP -#define ASIO_DETAIL_THREAD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_THREADS) -# include "asio/detail/null_thread.hpp" -#elif defined(ASIO_WINDOWS) -# if defined(UNDER_CE) -# include "asio/detail/wince_thread.hpp" -# elif defined(ASIO_WINDOWS_APP) -# include "asio/detail/winapp_thread.hpp" -# else -# include "asio/detail/win_thread.hpp" -# endif -#elif defined(ASIO_HAS_PTHREADS) -# include "asio/detail/posix_thread.hpp" -#elif defined(ASIO_HAS_STD_THREAD) -# include "asio/detail/std_thread.hpp" -#else -# error Only Windows, POSIX and std::thread are supported! -#endif - -namespace asio { -namespace detail { - -#if !defined(ASIO_HAS_THREADS) -typedef null_thread thread; -#elif defined(ASIO_WINDOWS) -# if defined(UNDER_CE) -typedef wince_thread thread; -# elif defined(ASIO_WINDOWS_APP) -typedef winapp_thread thread; -# else -typedef win_thread thread; -# endif -#elif defined(ASIO_HAS_PTHREADS) -typedef posix_thread thread; -#elif defined(ASIO_HAS_STD_THREAD) -typedef std_thread thread; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/thread_context.hpp b/Sources/Vendor/asio/include/asio/detail/thread_context.hpp deleted file mode 100644 index 88b4f31..0000000 --- a/Sources/Vendor/asio/include/asio/detail/thread_context.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// -// detail/thread_context.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_THREAD_CONTEXT_HPP -#define ASIO_DETAIL_THREAD_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include -#include -#include "asio/detail/call_stack.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class thread_info_base; - -// Base class for things that manage threads (scheduler, win_iocp_io_context). -class thread_context -{ -public: - // Per-thread call stack to track the state of each thread in the context. - typedef call_stack thread_call_stack; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_THREAD_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/thread_group.hpp b/Sources/Vendor/asio/include/asio/detail/thread_group.hpp deleted file mode 100644 index 1e400b0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/thread_group.hpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// detail/thread_group.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_THREAD_GROUP_HPP -#define ASIO_DETAIL_THREAD_GROUP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/detail/thread.hpp" - -namespace asio { -namespace detail { - -class thread_group -{ -public: - // Constructor initialises an empty thread group. - thread_group() - : first_(0) - { - } - - // Destructor joins any remaining threads in the group. - ~thread_group() - { - join(); - } - - // Create a new thread in the group. - template - void create_thread(Function f) - { - first_ = new item(f, first_); - } - - // Create new threads in the group. - template - void create_threads(Function f, std::size_t num_threads) - { - for (std::size_t i = 0; i < num_threads; ++i) - create_thread(f); - } - - // Wait for all threads in the group to exit. - void join() - { - while (first_) - { - first_->thread_.join(); - item* tmp = first_; - first_ = first_->next_; - delete tmp; - } - } - -private: - // Structure used to track a single thread in the group. - struct item - { - template - explicit item(Function f, item* next) - : thread_(f), - next_(next) - { - } - - asio::detail::thread thread_; - item* next_; - }; - - // The first thread in the group. - item* first_; -}; - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_THREAD_GROUP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/thread_info_base.hpp b/Sources/Vendor/asio/include/asio/detail/thread_info_base.hpp deleted file mode 100644 index 1b22207..0000000 --- a/Sources/Vendor/asio/include/asio/detail/thread_info_base.hpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// detail/thread_info_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_THREAD_INFO_BASE_HPP -#define ASIO_DETAIL_THREAD_INFO_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class thread_info_base - : private noncopyable -{ -public: - struct default_tag - { - enum { mem_index = 0 }; - }; - - struct awaitee_tag - { - enum { mem_index = 1 }; - }; - - thread_info_base() - { - for (int i = 0; i < max_mem_index; ++i) - reusable_memory_[i] = 0; - } - - ~thread_info_base() - { - for (int i = 0; i < max_mem_index; ++i) - if (reusable_memory_[i]) - ::operator delete(reusable_memory_[i]); - } - - static void* allocate(thread_info_base* this_thread, std::size_t size) - { - return allocate(default_tag(), this_thread, size); - } - - static void deallocate(thread_info_base* this_thread, - void* pointer, std::size_t size) - { - deallocate(default_tag(), this_thread, pointer, size); - } - - template - static void* allocate(Purpose, thread_info_base* this_thread, - std::size_t size) - { - std::size_t chunks = (size + chunk_size - 1) / chunk_size; - - if (this_thread && this_thread->reusable_memory_[Purpose::mem_index]) - { - void* const pointer = this_thread->reusable_memory_[Purpose::mem_index]; - this_thread->reusable_memory_[Purpose::mem_index] = 0; - - unsigned char* const mem = static_cast(pointer); - if (static_cast(mem[0]) >= chunks) - { - mem[size] = mem[0]; - return pointer; - } - - ::operator delete(pointer); - } - - void* const pointer = ::operator new(chunks * chunk_size + 1); - unsigned char* const mem = static_cast(pointer); - mem[size] = (chunks <= UCHAR_MAX) ? static_cast(chunks) : 0; - return pointer; - } - - template - static void deallocate(Purpose, thread_info_base* this_thread, - void* pointer, std::size_t size) - { - if (size <= chunk_size * UCHAR_MAX) - { - if (this_thread && this_thread->reusable_memory_[Purpose::mem_index] == 0) - { - unsigned char* const mem = static_cast(pointer); - mem[0] = mem[size]; - this_thread->reusable_memory_[Purpose::mem_index] = pointer; - return; - } - } - - ::operator delete(pointer); - } - -private: - enum { chunk_size = 4 }; - enum { max_mem_index = 2 }; - void* reusable_memory_[max_mem_index]; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_THREAD_INFO_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/throw_error.hpp b/Sources/Vendor/asio/include/asio/detail/throw_error.hpp deleted file mode 100644 index 5dd8785..0000000 --- a/Sources/Vendor/asio/include/asio/detail/throw_error.hpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// detail/throw_error.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_THROW_ERROR_HPP -#define ASIO_DETAIL_THROW_ERROR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/error_code.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -ASIO_DECL void do_throw_error(const asio::error_code& err); - -ASIO_DECL void do_throw_error(const asio::error_code& err, - const char* location); - -inline void throw_error(const asio::error_code& err) -{ - if (err) - do_throw_error(err); -} - -inline void throw_error(const asio::error_code& err, - const char* location) -{ - if (err) - do_throw_error(err, location); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/throw_error.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_THROW_ERROR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/throw_exception.hpp b/Sources/Vendor/asio/include/asio/detail/throw_exception.hpp deleted file mode 100644 index f9f7bfb..0000000 --- a/Sources/Vendor/asio/include/asio/detail/throw_exception.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// -// detail/throw_exception.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_THROW_EXCEPTION_HPP -#define ASIO_DETAIL_THROW_EXCEPTION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_BOOST_THROW_EXCEPTION) -# include -#endif // defined(ASIO_BOOST_THROW_EXCEPTION) - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_BOOST_THROW_EXCEPTION) -using boost::throw_exception; -#else // defined(ASIO_HAS_BOOST_THROW_EXCEPTION) - -// Declare the throw_exception function for all targets. -template -void throw_exception(const Exception& e); - -// Only define the throw_exception function when exceptions are enabled. -// Otherwise, it is up to the application to provide a definition of this -// function. -# if !defined(ASIO_NO_EXCEPTIONS) -template -void throw_exception(const Exception& e) -{ - throw e; -} -# endif // !defined(ASIO_NO_EXCEPTIONS) - -#endif // defined(ASIO_HAS_BOOST_THROW_EXCEPTION) - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_THROW_EXCEPTION_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/timer_queue.hpp b/Sources/Vendor/asio/include/asio/detail/timer_queue.hpp deleted file mode 100644 index de37000..0000000 --- a/Sources/Vendor/asio/include/asio/detail/timer_queue.hpp +++ /dev/null @@ -1,360 +0,0 @@ -// -// detail/timer_queue.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_TIMER_QUEUE_HPP -#define ASIO_DETAIL_TIMER_QUEUE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include "asio/detail/cstdint.hpp" -#include "asio/detail/date_time_fwd.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/timer_queue_base.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class timer_queue - : public timer_queue_base -{ -public: - // The time type. - typedef typename Time_Traits::time_type time_type; - - // The duration type. - typedef typename Time_Traits::duration_type duration_type; - - // Per-timer data. - class per_timer_data - { - public: - per_timer_data() : - heap_index_((std::numeric_limits::max)()), - next_(0), prev_(0) - { - } - - private: - friend class timer_queue; - - // The operations waiting on the timer. - op_queue op_queue_; - - // The index of the timer in the heap. - std::size_t heap_index_; - - // Pointers to adjacent timers in a linked list. - per_timer_data* next_; - per_timer_data* prev_; - }; - - // Constructor. - timer_queue() - : timers_(), - heap_() - { - } - - // Add a new timer to the queue. Returns true if this is the timer that is - // earliest in the queue, in which case the reactor's event demultiplexing - // function call may need to be interrupted and restarted. - bool enqueue_timer(const time_type& time, per_timer_data& timer, wait_op* op) - { - // Enqueue the timer object. - if (timer.prev_ == 0 && &timer != timers_) - { - if (this->is_positive_infinity(time)) - { - // No heap entry is required for timers that never expire. - timer.heap_index_ = (std::numeric_limits::max)(); - } - else - { - // Put the new timer at the correct position in the heap. This is done - // first since push_back() can throw due to allocation failure. - timer.heap_index_ = heap_.size(); - heap_entry entry = { time, &timer }; - heap_.push_back(entry); - up_heap(heap_.size() - 1); - } - - // Insert the new timer into the linked list of active timers. - timer.next_ = timers_; - timer.prev_ = 0; - if (timers_) - timers_->prev_ = &timer; - timers_ = &timer; - } - - // Enqueue the individual timer operation. - timer.op_queue_.push(op); - - // Interrupt reactor only if newly added timer is first to expire. - return timer.heap_index_ == 0 && timer.op_queue_.front() == op; - } - - // Whether there are no timers in the queue. - virtual bool empty() const - { - return timers_ == 0; - } - - // Get the time for the timer that is earliest in the queue. - virtual long wait_duration_msec(long max_duration) const - { - if (heap_.empty()) - return max_duration; - - return this->to_msec( - Time_Traits::to_posix_duration( - Time_Traits::subtract(heap_[0].time_, Time_Traits::now())), - max_duration); - } - - // Get the time for the timer that is earliest in the queue. - virtual long wait_duration_usec(long max_duration) const - { - if (heap_.empty()) - return max_duration; - - return this->to_usec( - Time_Traits::to_posix_duration( - Time_Traits::subtract(heap_[0].time_, Time_Traits::now())), - max_duration); - } - - // Dequeue all timers not later than the current time. - virtual void get_ready_timers(op_queue& ops) - { - if (!heap_.empty()) - { - const time_type now = Time_Traits::now(); - while (!heap_.empty() && !Time_Traits::less_than(now, heap_[0].time_)) - { - per_timer_data* timer = heap_[0].timer_; - ops.push(timer->op_queue_); - remove_timer(*timer); - } - } - } - - // Dequeue all timers. - virtual void get_all_timers(op_queue& ops) - { - while (timers_) - { - per_timer_data* timer = timers_; - timers_ = timers_->next_; - ops.push(timer->op_queue_); - timer->next_ = 0; - timer->prev_ = 0; - } - - heap_.clear(); - } - - // Cancel and dequeue operations for the given timer. - std::size_t cancel_timer(per_timer_data& timer, op_queue& ops, - std::size_t max_cancelled = (std::numeric_limits::max)()) - { - std::size_t num_cancelled = 0; - if (timer.prev_ != 0 || &timer == timers_) - { - while (wait_op* op = (num_cancelled != max_cancelled) - ? timer.op_queue_.front() : 0) - { - op->ec_ = asio::error::operation_aborted; - timer.op_queue_.pop(); - ops.push(op); - ++num_cancelled; - } - if (timer.op_queue_.empty()) - remove_timer(timer); - } - return num_cancelled; - } - - // Move operations from one timer to another, empty timer. - void move_timer(per_timer_data& target, per_timer_data& source) - { - target.op_queue_.push(source.op_queue_); - - target.heap_index_ = source.heap_index_; - source.heap_index_ = (std::numeric_limits::max)(); - - if (target.heap_index_ < heap_.size()) - heap_[target.heap_index_].timer_ = ⌖ - - if (timers_ == &source) - timers_ = ⌖ - if (source.prev_) - source.prev_->next_ = ⌖ - if (source.next_) - source.next_->prev_= ⌖ - target.next_ = source.next_; - target.prev_ = source.prev_; - source.next_ = 0; - source.prev_ = 0; - } - -private: - // Move the item at the given index up the heap to its correct position. - void up_heap(std::size_t index) - { - while (index > 0) - { - std::size_t parent = (index - 1) / 2; - if (!Time_Traits::less_than(heap_[index].time_, heap_[parent].time_)) - break; - swap_heap(index, parent); - index = parent; - } - } - - // Move the item at the given index down the heap to its correct position. - void down_heap(std::size_t index) - { - std::size_t child = index * 2 + 1; - while (child < heap_.size()) - { - std::size_t min_child = (child + 1 == heap_.size() - || Time_Traits::less_than( - heap_[child].time_, heap_[child + 1].time_)) - ? child : child + 1; - if (Time_Traits::less_than(heap_[index].time_, heap_[min_child].time_)) - break; - swap_heap(index, min_child); - index = min_child; - child = index * 2 + 1; - } - } - - // Swap two entries in the heap. - void swap_heap(std::size_t index1, std::size_t index2) - { - heap_entry tmp = heap_[index1]; - heap_[index1] = heap_[index2]; - heap_[index2] = tmp; - heap_[index1].timer_->heap_index_ = index1; - heap_[index2].timer_->heap_index_ = index2; - } - - // Remove a timer from the heap and list of timers. - void remove_timer(per_timer_data& timer) - { - // Remove the timer from the heap. - std::size_t index = timer.heap_index_; - if (!heap_.empty() && index < heap_.size()) - { - if (index == heap_.size() - 1) - { - timer.heap_index_ = (std::numeric_limits::max)(); - heap_.pop_back(); - } - else - { - swap_heap(index, heap_.size() - 1); - timer.heap_index_ = (std::numeric_limits::max)(); - heap_.pop_back(); - if (index > 0 && Time_Traits::less_than( - heap_[index].time_, heap_[(index - 1) / 2].time_)) - up_heap(index); - else - down_heap(index); - } - } - - // Remove the timer from the linked list of active timers. - if (timers_ == &timer) - timers_ = timer.next_; - if (timer.prev_) - timer.prev_->next_ = timer.next_; - if (timer.next_) - timer.next_->prev_= timer.prev_; - timer.next_ = 0; - timer.prev_ = 0; - } - - // Determine if the specified absolute time is positive infinity. - template - static bool is_positive_infinity(const Time_Type&) - { - return false; - } - - // Determine if the specified absolute time is positive infinity. - template - static bool is_positive_infinity( - const boost::date_time::base_time& time) - { - return time.is_pos_infinity(); - } - - // Helper function to convert a duration into milliseconds. - template - long to_msec(const Duration& d, long max_duration) const - { - if (d.ticks() <= 0) - return 0; - int64_t msec = d.total_milliseconds(); - if (msec == 0) - return 1; - if (msec > max_duration) - return max_duration; - return static_cast(msec); - } - - // Helper function to convert a duration into microseconds. - template - long to_usec(const Duration& d, long max_duration) const - { - if (d.ticks() <= 0) - return 0; - int64_t usec = d.total_microseconds(); - if (usec == 0) - return 1; - if (usec > max_duration) - return max_duration; - return static_cast(usec); - } - - // The head of a linked list of all active timers. - per_timer_data* timers_; - - struct heap_entry - { - // The time when the timer should fire. - time_type time_; - - // The associated timer with enqueued operations. - per_timer_data* timer_; - }; - - // The heap of timers, with the earliest timer at the front. - std::vector heap_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_TIMER_QUEUE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/timer_queue_base.hpp b/Sources/Vendor/asio/include/asio/detail/timer_queue_base.hpp deleted file mode 100644 index 4af995f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/timer_queue_base.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// -// detail/timer_queue_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_TIMER_QUEUE_BASE_HPP -#define ASIO_DETAIL_TIMER_QUEUE_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class timer_queue_base - : private noncopyable -{ -public: - // Constructor. - timer_queue_base() : next_(0) {} - - // Destructor. - virtual ~timer_queue_base() {} - - // Whether there are no timers in the queue. - virtual bool empty() const = 0; - - // Get the time to wait until the next timer. - virtual long wait_duration_msec(long max_duration) const = 0; - - // Get the time to wait until the next timer. - virtual long wait_duration_usec(long max_duration) const = 0; - - // Dequeue all ready timers. - virtual void get_ready_timers(op_queue& ops) = 0; - - // Dequeue all timers. - virtual void get_all_timers(op_queue& ops) = 0; - -private: - friend class timer_queue_set; - - // Next timer queue in the set. - timer_queue_base* next_; -}; - -template -class timer_queue; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_TIMER_QUEUE_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/timer_queue_ptime.hpp b/Sources/Vendor/asio/include/asio/detail/timer_queue_ptime.hpp deleted file mode 100644 index 84e8338..0000000 --- a/Sources/Vendor/asio/include/asio/detail/timer_queue_ptime.hpp +++ /dev/null @@ -1,99 +0,0 @@ -// -// detail/timer_queue_ptime.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_TIMER_QUEUE_PTIME_HPP -#define ASIO_DETAIL_TIMER_QUEUE_PTIME_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_BOOST_DATE_TIME) - -#include "asio/time_traits.hpp" -#include "asio/detail/timer_queue.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct forwarding_posix_time_traits : time_traits {}; - -// Template specialisation for the commonly used instantation. -template <> -class timer_queue > - : public timer_queue_base -{ -public: - // The time type. - typedef boost::posix_time::ptime time_type; - - // The duration type. - typedef boost::posix_time::time_duration duration_type; - - // Per-timer data. - typedef timer_queue::per_timer_data - per_timer_data; - - // Constructor. - ASIO_DECL timer_queue(); - - // Destructor. - ASIO_DECL virtual ~timer_queue(); - - // Add a new timer to the queue. Returns true if this is the timer that is - // earliest in the queue, in which case the reactor's event demultiplexing - // function call may need to be interrupted and restarted. - ASIO_DECL bool enqueue_timer(const time_type& time, - per_timer_data& timer, wait_op* op); - - // Whether there are no timers in the queue. - ASIO_DECL virtual bool empty() const; - - // Get the time for the timer that is earliest in the queue. - ASIO_DECL virtual long wait_duration_msec(long max_duration) const; - - // Get the time for the timer that is earliest in the queue. - ASIO_DECL virtual long wait_duration_usec(long max_duration) const; - - // Dequeue all timers not later than the current time. - ASIO_DECL virtual void get_ready_timers(op_queue& ops); - - // Dequeue all timers. - ASIO_DECL virtual void get_all_timers(op_queue& ops); - - // Cancel and dequeue operations for the given timer. - ASIO_DECL std::size_t cancel_timer( - per_timer_data& timer, op_queue& ops, - std::size_t max_cancelled = (std::numeric_limits::max)()); - - // Move operations from one timer to another, empty timer. - ASIO_DECL void move_timer(per_timer_data& target, - per_timer_data& source); - -private: - timer_queue impl_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/timer_queue_ptime.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - -#endif // ASIO_DETAIL_TIMER_QUEUE_PTIME_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/timer_queue_set.hpp b/Sources/Vendor/asio/include/asio/detail/timer_queue_set.hpp deleted file mode 100644 index 0ea372a..0000000 --- a/Sources/Vendor/asio/include/asio/detail/timer_queue_set.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// -// detail/timer_queue_set.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_TIMER_QUEUE_SET_HPP -#define ASIO_DETAIL_TIMER_QUEUE_SET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/timer_queue_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class timer_queue_set -{ -public: - // Constructor. - ASIO_DECL timer_queue_set(); - - // Add a timer queue to the set. - ASIO_DECL void insert(timer_queue_base* q); - - // Remove a timer queue from the set. - ASIO_DECL void erase(timer_queue_base* q); - - // Determine whether all queues are empty. - ASIO_DECL bool all_empty() const; - - // Get the wait duration in milliseconds. - ASIO_DECL long wait_duration_msec(long max_duration) const; - - // Get the wait duration in microseconds. - ASIO_DECL long wait_duration_usec(long max_duration) const; - - // Dequeue all ready timers. - ASIO_DECL void get_ready_timers(op_queue& ops); - - // Dequeue all timers. - ASIO_DECL void get_all_timers(op_queue& ops); - -private: - timer_queue_base* first_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/timer_queue_set.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_TIMER_QUEUE_SET_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/timer_scheduler.hpp b/Sources/Vendor/asio/include/asio/detail/timer_scheduler.hpp deleted file mode 100644 index b1f8df4..0000000 --- a/Sources/Vendor/asio/include/asio/detail/timer_scheduler.hpp +++ /dev/null @@ -1,35 +0,0 @@ -// -// detail/timer_scheduler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_TIMER_SCHEDULER_HPP -#define ASIO_DETAIL_TIMER_SCHEDULER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/timer_scheduler_fwd.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/winrt_timer_scheduler.hpp" -#elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_io_context.hpp" -#elif defined(ASIO_HAS_EPOLL) -# include "asio/detail/epoll_reactor.hpp" -#elif defined(ASIO_HAS_KQUEUE) -# include "asio/detail/kqueue_reactor.hpp" -#elif defined(ASIO_HAS_DEV_POLL) -# include "asio/detail/dev_poll_reactor.hpp" -#else -# include "asio/detail/select_reactor.hpp" -#endif - -#endif // ASIO_DETAIL_TIMER_SCHEDULER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/timer_scheduler_fwd.hpp b/Sources/Vendor/asio/include/asio/detail/timer_scheduler_fwd.hpp deleted file mode 100644 index 80bae50..0000000 --- a/Sources/Vendor/asio/include/asio/detail/timer_scheduler_fwd.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// -// detail/timer_scheduler_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_TIMER_SCHEDULER_FWD_HPP -#define ASIO_DETAIL_TIMER_SCHEDULER_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -namespace asio { -namespace detail { - -#if defined(ASIO_WINDOWS_RUNTIME) -typedef class winrt_timer_scheduler timer_scheduler; -#elif defined(ASIO_HAS_IOCP) -typedef class win_iocp_io_context timer_scheduler; -#elif defined(ASIO_HAS_EPOLL) -typedef class epoll_reactor timer_scheduler; -#elif defined(ASIO_HAS_KQUEUE) -typedef class kqueue_reactor timer_scheduler; -#elif defined(ASIO_HAS_DEV_POLL) -typedef class dev_poll_reactor timer_scheduler; -#else -typedef class select_reactor timer_scheduler; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_TIMER_SCHEDULER_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/tss_ptr.hpp b/Sources/Vendor/asio/include/asio/detail/tss_ptr.hpp deleted file mode 100644 index e628abe..0000000 --- a/Sources/Vendor/asio/include/asio/detail/tss_ptr.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// detail/tss_ptr.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_TSS_PTR_HPP -#define ASIO_DETAIL_TSS_PTR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_THREADS) -# include "asio/detail/null_tss_ptr.hpp" -#elif defined(ASIO_HAS_THREAD_KEYWORD_EXTENSION) -# include "asio/detail/keyword_tss_ptr.hpp" -#elif defined(ASIO_WINDOWS) -# include "asio/detail/win_tss_ptr.hpp" -#elif defined(ASIO_HAS_PTHREADS) -# include "asio/detail/posix_tss_ptr.hpp" -#else -# error Only Windows and POSIX are supported! -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class tss_ptr -#if !defined(ASIO_HAS_THREADS) - : public null_tss_ptr -#elif defined(ASIO_HAS_THREAD_KEYWORD_EXTENSION) - : public keyword_tss_ptr -#elif defined(ASIO_WINDOWS) - : public win_tss_ptr -#elif defined(ASIO_HAS_PTHREADS) - : public posix_tss_ptr -#endif -{ -public: - void operator=(T* value) - { -#if !defined(ASIO_HAS_THREADS) - null_tss_ptr::operator=(value); -#elif defined(ASIO_HAS_THREAD_KEYWORD_EXTENSION) - keyword_tss_ptr::operator=(value); -#elif defined(ASIO_WINDOWS) - win_tss_ptr::operator=(value); -#elif defined(ASIO_HAS_PTHREADS) - posix_tss_ptr::operator=(value); -#endif - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_TSS_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/type_traits.hpp b/Sources/Vendor/asio/include/asio/detail/type_traits.hpp deleted file mode 100644 index edf0928..0000000 --- a/Sources/Vendor/asio/include/asio/detail/type_traits.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// -// detail/type_traits.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_TYPE_TRAITS_HPP -#define ASIO_DETAIL_TYPE_TRAITS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_STD_TYPE_TRAITS) -# include -#else // defined(ASIO_HAS_TYPE_TRAITS) -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -#endif // defined(ASIO_HAS_TYPE_TRAITS) - -namespace asio { - -#if defined(ASIO_HAS_STD_TYPE_TRAITS) -using std::add_const; -using std::conditional; -using std::decay; -using std::enable_if; -using std::false_type; -using std::integral_constant; -using std::is_base_of; -using std::is_class; -using std::is_const; -using std::is_convertible; -using std::is_function; -using std::is_same; -using std::remove_pointer; -using std::remove_reference; -#if defined(ASIO_HAS_STD_INVOKE_RESULT) -template struct result_of; -template -struct result_of : std::invoke_result {}; -#else // defined(ASIO_HAS_STD_INVOKE_RESULT) -using std::result_of; -#endif // defined(ASIO_HAS_STD_INVOKE_RESULT) -using std::true_type; -#else // defined(ASIO_HAS_STD_TYPE_TRAITS) -using boost::add_const; -template -struct enable_if : boost::enable_if_c {}; -using boost::conditional; -using boost::decay; -using boost::false_type; -using boost::integral_constant; -using boost::is_base_of; -using boost::is_class; -using boost::is_const; -using boost::is_convertible; -using boost::is_function; -using boost::is_same; -using boost::remove_pointer; -using boost::remove_reference; -using boost::result_of; -using boost::true_type; -#endif // defined(ASIO_HAS_STD_TYPE_TRAITS) - -} // namespace asio - -#endif // ASIO_DETAIL_TYPE_TRAITS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/variadic_templates.hpp b/Sources/Vendor/asio/include/asio/detail/variadic_templates.hpp deleted file mode 100644 index d54eb4e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/variadic_templates.hpp +++ /dev/null @@ -1,119 +0,0 @@ -// -// detail/variadic_templates.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_VARIADIC_TEMPLATES_HPP -#define ASIO_DETAIL_VARIADIC_TEMPLATES_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -# define ASIO_VARIADIC_TPARAMS(n) ASIO_VARIADIC_TPARAMS_##n - -# define ASIO_VARIADIC_TPARAMS_1 \ - typename T1 -# define ASIO_VARIADIC_TPARAMS_2 \ - typename T1, typename T2 -# define ASIO_VARIADIC_TPARAMS_3 \ - typename T1, typename T2, typename T3 -# define ASIO_VARIADIC_TPARAMS_4 \ - typename T1, typename T2, typename T3, typename T4 -# define ASIO_VARIADIC_TPARAMS_5 \ - typename T1, typename T2, typename T3, typename T4, typename T5 - -# define ASIO_VARIADIC_TARGS(n) ASIO_VARIADIC_TARGS_##n - -# define ASIO_VARIADIC_TARGS_1 T1 -# define ASIO_VARIADIC_TARGS_2 T1, T2 -# define ASIO_VARIADIC_TARGS_3 T1, T2, T3 -# define ASIO_VARIADIC_TARGS_4 T1, T2, T3, T4 -# define ASIO_VARIADIC_TARGS_5 T1, T2, T3, T4, T5 - -# define ASIO_VARIADIC_BYVAL_PARAMS(n) \ - ASIO_VARIADIC_BYVAL_PARAMS_##n - -# define ASIO_VARIADIC_BYVAL_PARAMS_1 T1 x1 -# define ASIO_VARIADIC_BYVAL_PARAMS_2 T1 x1, T2 x2 -# define ASIO_VARIADIC_BYVAL_PARAMS_3 T1 x1, T2 x2, T3 x3 -# define ASIO_VARIADIC_BYVAL_PARAMS_4 T1 x1, T2 x2, T3 x3, T4 x4 -# define ASIO_VARIADIC_BYVAL_PARAMS_5 T1 x1, T2 x2, T3 x3, T4 x4, T5 x5 - -# define ASIO_VARIADIC_BYVAL_ARGS(n) \ - ASIO_VARIADIC_BYVAL_ARGS_##n - -# define ASIO_VARIADIC_BYVAL_ARGS_1 x1 -# define ASIO_VARIADIC_BYVAL_ARGS_2 x1, x2 -# define ASIO_VARIADIC_BYVAL_ARGS_3 x1, x2, x3 -# define ASIO_VARIADIC_BYVAL_ARGS_4 x1, x2, x3, x4 -# define ASIO_VARIADIC_BYVAL_ARGS_5 x1, x2, x3, x4, x5 - -# define ASIO_VARIADIC_MOVE_PARAMS(n) \ - ASIO_VARIADIC_MOVE_PARAMS_##n - -# define ASIO_VARIADIC_MOVE_PARAMS_1 \ - ASIO_MOVE_ARG(T1) x1 -# define ASIO_VARIADIC_MOVE_PARAMS_2 \ - ASIO_MOVE_ARG(T1) x1, ASIO_MOVE_ARG(T2) x2 -# define ASIO_VARIADIC_MOVE_PARAMS_3 \ - ASIO_MOVE_ARG(T1) x1, ASIO_MOVE_ARG(T2) x2, \ - ASIO_MOVE_ARG(T3) x3 -# define ASIO_VARIADIC_MOVE_PARAMS_4 \ - ASIO_MOVE_ARG(T1) x1, ASIO_MOVE_ARG(T2) x2, \ - ASIO_MOVE_ARG(T3) x3, ASIO_MOVE_ARG(T4) x4 -# define ASIO_VARIADIC_MOVE_PARAMS_5 \ - ASIO_MOVE_ARG(T1) x1, ASIO_MOVE_ARG(T2) x2, \ - ASIO_MOVE_ARG(T3) x3, ASIO_MOVE_ARG(T4) x4, \ - ASIO_MOVE_ARG(T5) x5 - -# define ASIO_VARIADIC_MOVE_ARGS(n) \ - ASIO_VARIADIC_MOVE_ARGS_##n - -# define ASIO_VARIADIC_MOVE_ARGS_1 \ - ASIO_MOVE_CAST(T1)(x1) -# define ASIO_VARIADIC_MOVE_ARGS_2 \ - ASIO_MOVE_CAST(T1)(x1), ASIO_MOVE_CAST(T2)(x2) -# define ASIO_VARIADIC_MOVE_ARGS_3 \ - ASIO_MOVE_CAST(T1)(x1), ASIO_MOVE_CAST(T2)(x2), \ - ASIO_MOVE_CAST(T3)(x3) -# define ASIO_VARIADIC_MOVE_ARGS_4 \ - ASIO_MOVE_CAST(T1)(x1), ASIO_MOVE_CAST(T2)(x2), \ - ASIO_MOVE_CAST(T3)(x3), ASIO_MOVE_CAST(T4)(x4) -# define ASIO_VARIADIC_MOVE_ARGS_5 \ - ASIO_MOVE_CAST(T1)(x1), ASIO_MOVE_CAST(T2)(x2), \ - ASIO_MOVE_CAST(T3)(x3), ASIO_MOVE_CAST(T4)(x4), \ - ASIO_MOVE_CAST(T5)(x5) - -# define ASIO_VARIADIC_DECAY(n) \ - ASIO_VARIADIC_DECAY_##n - -# define ASIO_VARIADIC_DECAY_1 \ - typename decay::type -# define ASIO_VARIADIC_DECAY_2 \ - typename decay::type, typename decay::type -# define ASIO_VARIADIC_DECAY_3 \ - typename decay::type, typename decay::type, \ - typename decay::type -# define ASIO_VARIADIC_DECAY_4 \ - typename decay::type, typename decay::type, \ - typename decay::type, typename decay::type -# define ASIO_VARIADIC_DECAY_5 \ - typename decay::type, typename decay::type, \ - typename decay::type, typename decay::type, \ - typename decay::type - -# define ASIO_VARIADIC_GENERATE(m) m(1) m(2) m(3) m(4) m(5) - -#endif // !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#endif // ASIO_DETAIL_VARIADIC_TEMPLATES_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/wait_handler.hpp b/Sources/Vendor/asio/include/asio/detail/wait_handler.hpp deleted file mode 100644 index bd3dc24..0000000 --- a/Sources/Vendor/asio/include/asio/detail/wait_handler.hpp +++ /dev/null @@ -1,85 +0,0 @@ -// -// detail/wait_handler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WAIT_HANDLER_HPP -#define ASIO_DETAIL_WAIT_HANDLER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class wait_handler : public wait_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(wait_handler); - - wait_handler(Handler& h) - : wait_op(&wait_handler::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(h)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - wait_handler* h(static_cast(base)); - ptr p = { asio::detail::addressof(h->handler_), h, h }; - handler_work w(h->handler_); - - ASIO_HANDLER_COMPLETION((*h)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(h->handler_, h->ec_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_WAIT_HANDLER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/wait_op.hpp b/Sources/Vendor/asio/include/asio/detail/wait_op.hpp deleted file mode 100644 index 1a3017b..0000000 --- a/Sources/Vendor/asio/include/asio/detail/wait_op.hpp +++ /dev/null @@ -1,45 +0,0 @@ -// -// detail/wait_op.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WAIT_OP_HPP -#define ASIO_DETAIL_WAIT_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class wait_op - : public operation -{ -public: - // The error code to be passed to the completion handler. - asio::error_code ec_; - -protected: - wait_op(func_type func) - : operation(func) - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_WAIT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_event.hpp b/Sources/Vendor/asio/include/asio/detail/win_event.hpp deleted file mode 100644 index 859cdee..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_event.hpp +++ /dev/null @@ -1,151 +0,0 @@ -// -// detail/win_event.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_EVENT_HPP -#define ASIO_DETAIL_WIN_EVENT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) - -#include "asio/detail/assert.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_event - : private noncopyable -{ -public: - // Constructor. - ASIO_DECL win_event(); - - // Destructor. - ASIO_DECL ~win_event(); - - // Signal the event. (Retained for backward compatibility.) - template - void signal(Lock& lock) - { - this->signal_all(lock); - } - - // Signal all waiters. - template - void signal_all(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - (void)lock; - state_ |= 1; - ::SetEvent(events_[0]); - } - - // Unlock the mutex and signal one waiter. - template - void unlock_and_signal_one(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - state_ |= 1; - bool have_waiters = (state_ > 1); - lock.unlock(); - if (have_waiters) - ::SetEvent(events_[1]); - } - - // If there's a waiter, unlock the mutex and signal it. - template - bool maybe_unlock_and_signal_one(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - state_ |= 1; - if (state_ > 1) - { - lock.unlock(); - ::SetEvent(events_[1]); - return true; - } - return false; - } - - // Reset the event. - template - void clear(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - (void)lock; - ::ResetEvent(events_[0]); - state_ &= ~std::size_t(1); - } - - // Wait for the event to become signalled. - template - void wait(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - while ((state_ & 1) == 0) - { - state_ += 2; - lock.unlock(); -#if defined(ASIO_WINDOWS_APP) - ::WaitForMultipleObjectsEx(2, events_, false, INFINITE, false); -#else // defined(ASIO_WINDOWS_APP) - ::WaitForMultipleObjects(2, events_, false, INFINITE); -#endif // defined(ASIO_WINDOWS_APP) - lock.lock(); - state_ -= 2; - } - } - - // Timed wait for the event to become signalled. - template - bool wait_for_usec(Lock& lock, long usec) - { - ASIO_ASSERT(lock.locked()); - if ((state_ & 1) == 0) - { - state_ += 2; - lock.unlock(); - DWORD msec = usec > 0 ? (usec < 1000 ? 1 : usec / 1000) : 0; -#if defined(ASIO_WINDOWS_APP) - ::WaitForMultipleObjectsEx(2, events_, false, msec, false); -#else // defined(ASIO_WINDOWS_APP) - ::WaitForMultipleObjects(2, events_, false, msec); -#endif // defined(ASIO_WINDOWS_APP) - lock.lock(); - state_ -= 2; - } - return (state_ & 1) != 0; - } - -private: - HANDLE events_[2]; - std::size_t state_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_event.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_WIN_EVENT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_fd_set_adapter.hpp b/Sources/Vendor/asio/include/asio/detail/win_fd_set_adapter.hpp deleted file mode 100644 index 8d5e700..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_fd_set_adapter.hpp +++ /dev/null @@ -1,149 +0,0 @@ -// -// detail/win_fd_set_adapter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_FD_SET_ADAPTER_HPP -#define ASIO_DETAIL_WIN_FD_SET_ADAPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/reactor_op_queue.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Adapts the FD_SET type to meet the Descriptor_Set concept's requirements. -class win_fd_set_adapter : noncopyable -{ -public: - enum { default_fd_set_size = 1024 }; - - win_fd_set_adapter() - : capacity_(default_fd_set_size), - max_descriptor_(invalid_socket) - { - fd_set_ = static_cast(::operator new( - sizeof(win_fd_set) - sizeof(SOCKET) - + sizeof(SOCKET) * (capacity_))); - fd_set_->fd_count = 0; - } - - ~win_fd_set_adapter() - { - ::operator delete(fd_set_); - } - - void reset() - { - fd_set_->fd_count = 0; - max_descriptor_ = invalid_socket; - } - - bool set(socket_type descriptor) - { - for (u_int i = 0; i < fd_set_->fd_count; ++i) - if (fd_set_->fd_array[i] == descriptor) - return true; - - reserve(fd_set_->fd_count + 1); - fd_set_->fd_array[fd_set_->fd_count++] = descriptor; - return true; - } - - void set(reactor_op_queue& operations, op_queue&) - { - reactor_op_queue::iterator i = operations.begin(); - while (i != operations.end()) - { - reactor_op_queue::iterator op_iter = i++; - reserve(fd_set_->fd_count + 1); - fd_set_->fd_array[fd_set_->fd_count++] = op_iter->first; - } - } - - bool is_set(socket_type descriptor) const - { - return !!__WSAFDIsSet(descriptor, - const_cast(reinterpret_cast(fd_set_))); - } - - operator fd_set*() - { - return reinterpret_cast(fd_set_); - } - - socket_type max_descriptor() const - { - return max_descriptor_; - } - - void perform(reactor_op_queue& operations, - op_queue& ops) const - { - for (u_int i = 0; i < fd_set_->fd_count; ++i) - operations.perform_operations(fd_set_->fd_array[i], ops); - } - -private: - // This structure is defined to be compatible with the Windows API fd_set - // structure, but without being dependent on the value of FD_SETSIZE. We use - // the "struct hack" to allow the number of descriptors to be varied at - // runtime. - struct win_fd_set - { - u_int fd_count; - SOCKET fd_array[1]; - }; - - // Increase the fd_set_ capacity to at least the specified number of elements. - void reserve(u_int n) - { - if (n <= capacity_) - return; - - u_int new_capacity = capacity_ + capacity_ / 2; - if (new_capacity < n) - new_capacity = n; - - win_fd_set* new_fd_set = static_cast(::operator new( - sizeof(win_fd_set) - sizeof(SOCKET) - + sizeof(SOCKET) * (new_capacity))); - - new_fd_set->fd_count = fd_set_->fd_count; - for (u_int i = 0; i < fd_set_->fd_count; ++i) - new_fd_set->fd_array[i] = fd_set_->fd_array[i]; - - ::operator delete(fd_set_); - fd_set_ = new_fd_set; - capacity_ = new_capacity; - } - - win_fd_set* fd_set_; - u_int capacity_; - socket_type max_descriptor_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#endif // ASIO_DETAIL_WIN_FD_SET_ADAPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/win_fenced_block.hpp deleted file mode 100644 index 1ce6e13..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_fenced_block.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// detail/win_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_FENCED_BLOCK_HPP -#define ASIO_DETAIL_WIN_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) && !defined(UNDER_CE) - -#include "asio/detail/socket_types.hpp" -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_fenced_block - : private noncopyable -{ -public: - enum half_t { half }; - enum full_t { full }; - - // Constructor for a half fenced block. - explicit win_fenced_block(half_t) - { - } - - // Constructor for a full fenced block. - explicit win_fenced_block(full_t) - { -#if defined(__BORLANDC__) - LONG barrier = 0; - ::InterlockedExchange(&barrier, 1); -#elif defined(ASIO_MSVC) \ - && ((ASIO_MSVC < 1400) || !defined(MemoryBarrier)) -# if defined(_M_IX86) -# pragma warning(push) -# pragma warning(disable:4793) - LONG barrier; - __asm { xchg barrier, eax } -# pragma warning(pop) -# endif // defined(_M_IX86) -#else - MemoryBarrier(); -#endif - } - - // Destructor. - ~win_fenced_block() - { -#if defined(__BORLANDC__) - LONG barrier = 0; - ::InterlockedExchange(&barrier, 1); -#elif defined(ASIO_MSVC) \ - && ((ASIO_MSVC < 1400) || !defined(MemoryBarrier)) -# if defined(_M_IX86) -# pragma warning(push) -# pragma warning(disable:4793) - LONG barrier; - __asm { xchg barrier, eax } -# pragma warning(pop) -# endif // defined(_M_IX86) -#else - MemoryBarrier(); -#endif - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) && !defined(UNDER_CE) - -#endif // ASIO_DETAIL_WIN_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_global.hpp b/Sources/Vendor/asio/include/asio/detail/win_global.hpp deleted file mode 100644 index dd0a555..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_global.hpp +++ /dev/null @@ -1,74 +0,0 @@ -// -// detail/win_global.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_GLOBAL_HPP -#define ASIO_DETAIL_WIN_GLOBAL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/static_mutex.hpp" -#include "asio/detail/tss_ptr.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -struct win_global_impl -{ - // Destructor automatically cleans up the global. - ~win_global_impl() - { - delete ptr_; - } - - static win_global_impl instance_; - static static_mutex mutex_; - static T* ptr_; - static tss_ptr tss_ptr_; -}; - -template -win_global_impl win_global_impl::instance_ = { 0 }; - -template -static_mutex win_global_impl::mutex_ = ASIO_STATIC_MUTEX_INIT; - -template -T* win_global_impl::ptr_ = 0; - -template -tss_ptr win_global_impl::tss_ptr_; - -template -T& win_global() -{ - if (static_cast(win_global_impl::tss_ptr_) == 0) - { - win_global_impl::mutex_.init(); - static_mutex::scoped_lock lock(win_global_impl::mutex_); - if (win_global_impl::ptr_ == 0) - win_global_impl::ptr_ = new T; - win_global_impl::tss_ptr_ = win_global_impl::ptr_; - } - - return *win_global_impl::tss_ptr_; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_WIN_GLOBAL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_read_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_read_op.hpp deleted file mode 100644 index 88e3f6c..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_read_op.hpp +++ /dev/null @@ -1,111 +0,0 @@ -// -// detail/win_iocp_handle_read_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_DETAIL_WIN_IOCP_HANDLE_READ_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_HANDLE_READ_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/error.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_handle_read_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_handle_read_op); - - win_iocp_handle_read_op( - const MutableBufferSequence& buffers, Handler& handler) - : operation(&win_iocp_handle_read_op::do_complete), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t bytes_transferred) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_handle_read_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - if (owner) - { - // Check whether buffers are still valid. - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_HANDLE_EOF) - ec = asio::error::eof; - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - MutableBufferSequence buffers_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_HANDLE_READ_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_service.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_service.hpp deleted file mode 100644 index 849fe8f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_service.hpp +++ /dev/null @@ -1,323 +0,0 @@ -// -// detail/win_iocp_handle_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_DETAIL_WIN_IOCP_HANDLE_SERVICE_HPP -#define ASIO_DETAIL_WIN_IOCP_HANDLE_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/cstdint.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/win_iocp_handle_read_op.hpp" -#include "asio/detail/win_iocp_handle_write_op.hpp" -#include "asio/detail/win_iocp_io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_iocp_handle_service : - public service_base -{ -public: - // The native type of a stream handle. - typedef HANDLE native_handle_type; - - // The implementation type of the stream handle. - class implementation_type - { - public: - // Default constructor. - implementation_type() - : handle_(INVALID_HANDLE_VALUE), - safe_cancellation_thread_id_(0), - next_(0), - prev_(0) - { - } - - private: - // Only this service will have access to the internal values. - friend class win_iocp_handle_service; - - // The native stream handle representation. - native_handle_type handle_; - - // The ID of the thread from which it is safe to cancel asynchronous - // operations. 0 means no asynchronous operations have been started yet. - // ~0 means asynchronous operations have been started from more than one - // thread, and cancellation is not supported for the handle. - DWORD safe_cancellation_thread_id_; - - // Pointers to adjacent handle implementations in linked list. - implementation_type* next_; - implementation_type* prev_; - }; - - ASIO_DECL win_iocp_handle_service(asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Construct a new handle implementation. - ASIO_DECL void construct(implementation_type& impl); - - // Move-construct a new handle implementation. - ASIO_DECL void move_construct(implementation_type& impl, - implementation_type& other_impl); - - // Move-assign from another handle implementation. - ASIO_DECL void move_assign(implementation_type& impl, - win_iocp_handle_service& other_service, - implementation_type& other_impl); - - // Destroy a handle implementation. - ASIO_DECL void destroy(implementation_type& impl); - - // Assign a native handle to a handle implementation. - ASIO_DECL asio::error_code assign(implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec); - - // Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return impl.handle_ != INVALID_HANDLE_VALUE; - } - - // Destroy a handle implementation. - ASIO_DECL asio::error_code close(implementation_type& impl, - asio::error_code& ec); - - // Get the native handle representation. - native_handle_type native_handle(const implementation_type& impl) const - { - return impl.handle_; - } - - // Cancel all operations associated with the handle. - ASIO_DECL asio::error_code cancel(implementation_type& impl, - asio::error_code& ec); - - // Write the given data. Returns the number of bytes written. - template - size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return write_some_at(impl, 0, buffers, ec); - } - - // Write the given data at the specified offset. Returns the number of bytes - // written. - template - size_t write_some_at(implementation_type& impl, uint64_t offset, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - asio::const_buffer buffer = - buffer_sequence_adapter::first(buffers); - - return do_write(impl, offset, buffer, ec); - } - - // Start an asynchronous write. The data being written must be valid for the - // lifetime of the asynchronous operation. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_handle_write_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(buffers, handler); - - ASIO_HANDLER_CREATION((iocp_service_.context(), *p.p, "handle", &impl, - reinterpret_cast(impl.handle_), "async_write_some")); - - start_write_op(impl, 0, - buffer_sequence_adapter::first(buffers), p.p); - p.v = p.p = 0; - } - - // Start an asynchronous write at a specified offset. The data being written - // must be valid for the lifetime of the asynchronous operation. - template - void async_write_some_at(implementation_type& impl, uint64_t offset, - const ConstBufferSequence& buffers, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_handle_write_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(buffers, handler); - - ASIO_HANDLER_CREATION((iocp_service_.context(), *p.p, "handle", &impl, - reinterpret_cast(impl.handle_), "async_write_some_at")); - - start_write_op(impl, offset, - buffer_sequence_adapter::first(buffers), p.p); - p.v = p.p = 0; - } - - // Read some data. Returns the number of bytes received. - template - size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return read_some_at(impl, 0, buffers, ec); - } - - // Read some data at a specified offset. Returns the number of bytes received. - template - size_t read_some_at(implementation_type& impl, uint64_t offset, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - asio::mutable_buffer buffer = - buffer_sequence_adapter::first(buffers); - - return do_read(impl, offset, buffer, ec); - } - - // Start an asynchronous read. The buffer for the data being received must be - // valid for the lifetime of the asynchronous operation. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_handle_read_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(buffers, handler); - - ASIO_HANDLER_CREATION((iocp_service_.context(), *p.p, "handle", &impl, - reinterpret_cast(impl.handle_), "async_read_some")); - - start_read_op(impl, 0, - buffer_sequence_adapter::first(buffers), p.p); - p.v = p.p = 0; - } - - // Start an asynchronous read at a specified offset. The buffer for the data - // being received must be valid for the lifetime of the asynchronous - // operation. - template - void async_read_some_at(implementation_type& impl, uint64_t offset, - const MutableBufferSequence& buffers, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_handle_read_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(buffers, handler); - - ASIO_HANDLER_CREATION((iocp_service_.context(), *p.p, "handle", &impl, - reinterpret_cast(impl.handle_), "async_read_some_at")); - - start_read_op(impl, offset, - buffer_sequence_adapter::first(buffers), p.p); - p.v = p.p = 0; - } - -private: - // Prevent the use of the null_buffers type with this service. - size_t write_some(implementation_type& impl, - const null_buffers& buffers, asio::error_code& ec); - size_t write_some_at(implementation_type& impl, uint64_t offset, - const null_buffers& buffers, asio::error_code& ec); - template - void async_write_some(implementation_type& impl, - const null_buffers& buffers, Handler& handler); - template - void async_write_some_at(implementation_type& impl, uint64_t offset, - const null_buffers& buffers, Handler& handler); - size_t read_some(implementation_type& impl, - const null_buffers& buffers, asio::error_code& ec); - size_t read_some_at(implementation_type& impl, uint64_t offset, - const null_buffers& buffers, asio::error_code& ec); - template - void async_read_some(implementation_type& impl, - const null_buffers& buffers, Handler& handler); - template - void async_read_some_at(implementation_type& impl, uint64_t offset, - const null_buffers& buffers, Handler& handler); - - // Helper class for waiting for synchronous operations to complete. - class overlapped_wrapper; - - // Helper function to perform a synchronous write operation. - ASIO_DECL size_t do_write(implementation_type& impl, - uint64_t offset, const asio::const_buffer& buffer, - asio::error_code& ec); - - // Helper function to start a write operation. - ASIO_DECL void start_write_op(implementation_type& impl, - uint64_t offset, const asio::const_buffer& buffer, - operation* op); - - // Helper function to perform a synchronous write operation. - ASIO_DECL size_t do_read(implementation_type& impl, - uint64_t offset, const asio::mutable_buffer& buffer, - asio::error_code& ec); - - // Helper function to start a read operation. - ASIO_DECL void start_read_op(implementation_type& impl, - uint64_t offset, const asio::mutable_buffer& buffer, - operation* op); - - // Update the ID of the thread from which cancellation is safe. - ASIO_DECL void update_cancellation_thread_id(implementation_type& impl); - - // Helper function to close a handle when the associated object is being - // destroyed. - ASIO_DECL void close_for_destruction(implementation_type& impl); - - // The IOCP service used for running asynchronous operations and dispatching - // handlers. - win_iocp_io_context& iocp_service_; - - // Mutex to protect access to the linked list of implementations. - mutex mutex_; - - // The head of a linked list of all implementations. - implementation_type* impl_list_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_iocp_handle_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_HANDLE_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_write_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_write_op.hpp deleted file mode 100644 index d7bb944..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_write_op.hpp +++ /dev/null @@ -1,103 +0,0 @@ -// -// detail/win_iocp_handle_write_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_DETAIL_WIN_IOCP_HANDLE_WRITE_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_HANDLE_WRITE_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/error.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_handle_write_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_handle_write_op); - - win_iocp_handle_write_op(const ConstBufferSequence& buffers, Handler& handler) - : operation(&win_iocp_handle_write_op::do_complete), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& ec, std::size_t bytes_transferred) - { - // Take ownership of the operation object. - win_iocp_handle_write_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - if (owner) - { - // Check whether buffers are still valid. - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - ConstBufferSequence buffers_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_HANDLE_WRITE_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_io_context.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_io_context.hpp deleted file mode 100644 index 11bf58b..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_io_context.hpp +++ /dev/null @@ -1,328 +0,0 @@ -// -// detail/win_iocp_io_context.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_IO_CONTEXT_HPP -#define ASIO_DETAIL_WIN_IOCP_IO_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/detail/limits.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/thread.hpp" -#include "asio/detail/thread_context.hpp" -#include "asio/detail/timer_queue_base.hpp" -#include "asio/detail/timer_queue_set.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/detail/win_iocp_operation.hpp" -#include "asio/detail/win_iocp_thread_info.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class wait_op; - -class win_iocp_io_context - : public execution_context_service_base, - public thread_context -{ -public: - // Constructor. Specifies a concurrency hint that is passed through to the - // underlying I/O completion port. - ASIO_DECL win_iocp_io_context(asio::execution_context& ctx, - int concurrency_hint = -1); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Initialise the task. Nothing to do here. - void init_task() - { - } - - // Register a handle with the IO completion port. - ASIO_DECL asio::error_code register_handle( - HANDLE handle, asio::error_code& ec); - - // Run the event loop until stopped or no more work. - ASIO_DECL size_t run(asio::error_code& ec); - - // Run until stopped or one operation is performed. - ASIO_DECL size_t run_one(asio::error_code& ec); - - // Run until timeout, interrupted, or one operation is performed. - ASIO_DECL size_t wait_one(long usec, asio::error_code& ec); - - // Poll for operations without blocking. - ASIO_DECL size_t poll(asio::error_code& ec); - - // Poll for one operation without blocking. - ASIO_DECL size_t poll_one(asio::error_code& ec); - - // Stop the event processing loop. - ASIO_DECL void stop(); - - // Determine whether the io_context is stopped. - bool stopped() const - { - return ::InterlockedExchangeAdd(&stopped_, 0) != 0; - } - - // Restart in preparation for a subsequent run invocation. - void restart() - { - ::InterlockedExchange(&stopped_, 0); - } - - // Notify that some work has started. - void work_started() - { - ::InterlockedIncrement(&outstanding_work_); - } - - // Notify that some work has finished. - void work_finished() - { - if (::InterlockedDecrement(&outstanding_work_) == 0) - stop(); - } - - // Return whether a handler can be dispatched immediately. - bool can_dispatch() - { - return thread_call_stack::contains(this) != 0; - } - - // Request invocation of the given operation and return immediately. Assumes - // that work_started() has not yet been called for the operation. - void post_immediate_completion(win_iocp_operation* op, bool) - { - work_started(); - post_deferred_completion(op); - } - - // Request invocation of the given operation and return immediately. Assumes - // that work_started() was previously called for the operation. - ASIO_DECL void post_deferred_completion(win_iocp_operation* op); - - // Request invocation of the given operation and return immediately. Assumes - // that work_started() was previously called for the operations. - ASIO_DECL void post_deferred_completions( - op_queue& ops); - - // Request invocation of the given operation using the thread-private queue - // and return immediately. Assumes that work_started() has not yet been - // called for the operation. - void post_private_immediate_completion(win_iocp_operation* op) - { - post_immediate_completion(op, false); - } - - // Request invocation of the given operation using the thread-private queue - // and return immediately. Assumes that work_started() was previously called - // for the operation. - void post_private_deferred_completion(win_iocp_operation* op) - { - post_deferred_completion(op); - } - - // Enqueue the given operation following a failed attempt to dispatch the - // operation for immediate invocation. - void do_dispatch(operation* op) - { - post_immediate_completion(op, false); - } - - // Process unfinished operations as part of a shutdown operation. Assumes - // that work_started() was previously called for the operations. - ASIO_DECL void abandon_operations(op_queue& ops); - - // Called after starting an overlapped I/O operation that did not complete - // immediately. The caller must have already called work_started() prior to - // starting the operation. - ASIO_DECL void on_pending(win_iocp_operation* op); - - // Called after starting an overlapped I/O operation that completed - // immediately. The caller must have already called work_started() prior to - // starting the operation. - ASIO_DECL void on_completion(win_iocp_operation* op, - DWORD last_error = 0, DWORD bytes_transferred = 0); - - // Called after starting an overlapped I/O operation that completed - // immediately. The caller must have already called work_started() prior to - // starting the operation. - ASIO_DECL void on_completion(win_iocp_operation* op, - const asio::error_code& ec, DWORD bytes_transferred = 0); - - // Add a new timer queue to the service. - template - void add_timer_queue(timer_queue& timer_queue); - - // Remove a timer queue from the service. - template - void remove_timer_queue(timer_queue& timer_queue); - - // Schedule a new operation in the given timer queue to expire at the - // specified absolute time. - template - void schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op); - - // Cancel the timer associated with the given token. Returns the number of - // handlers that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled = (std::numeric_limits::max)()); - - // Move the timer operations associated with the given timer. - template - void move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& to, - typename timer_queue::per_timer_data& from); - - // Get the concurrency hint that was used to initialise the io_context. - int concurrency_hint() const - { - return concurrency_hint_; - } - -private: -#if defined(WINVER) && (WINVER < 0x0500) - typedef DWORD dword_ptr_t; - typedef ULONG ulong_ptr_t; -#else // defined(WINVER) && (WINVER < 0x0500) - typedef DWORD_PTR dword_ptr_t; - typedef ULONG_PTR ulong_ptr_t; -#endif // defined(WINVER) && (WINVER < 0x0500) - - // Dequeues at most one operation from the I/O completion port, and then - // executes it. Returns the number of operations that were dequeued (i.e. - // either 0 or 1). - ASIO_DECL size_t do_one(DWORD msec, asio::error_code& ec); - - // Helper to calculate the GetQueuedCompletionStatus timeout. - ASIO_DECL static DWORD get_gqcs_timeout(); - - // Helper function to add a new timer queue. - ASIO_DECL void do_add_timer_queue(timer_queue_base& queue); - - // Helper function to remove a timer queue. - ASIO_DECL void do_remove_timer_queue(timer_queue_base& queue); - - // Called to recalculate and update the timeout. - ASIO_DECL void update_timeout(); - - // Helper class to call work_finished() on block exit. - struct work_finished_on_block_exit; - - // Helper class for managing a HANDLE. - struct auto_handle - { - HANDLE handle; - auto_handle() : handle(0) {} - ~auto_handle() { if (handle) ::CloseHandle(handle); } - }; - - // The IO completion port used for queueing operations. - auto_handle iocp_; - - // The count of unfinished work. - long outstanding_work_; - - // Flag to indicate whether the event loop has been stopped. - mutable long stopped_; - - // Flag to indicate whether there is an in-flight stop event. Every event - // posted using PostQueuedCompletionStatus consumes non-paged pool, so to - // avoid exhausting this resouce we limit the number of outstanding events. - long stop_event_posted_; - - // Flag to indicate whether the service has been shut down. - long shutdown_; - - enum - { - // Timeout to use with GetQueuedCompletionStatus on older versions of - // Windows. Some versions of windows have a "bug" where a call to - // GetQueuedCompletionStatus can appear stuck even though there are events - // waiting on the queue. Using a timeout helps to work around the issue. - default_gqcs_timeout = 500, - - // Maximum waitable timer timeout, in milliseconds. - max_timeout_msec = 5 * 60 * 1000, - - // Maximum waitable timer timeout, in microseconds. - max_timeout_usec = max_timeout_msec * 1000, - - // Completion key value used to wake up a thread to dispatch timers or - // completed operations. - wake_for_dispatch = 1, - - // Completion key value to indicate that an operation has posted with the - // original last_error and bytes_transferred values stored in the fields of - // the OVERLAPPED structure. - overlapped_contains_result = 2 - }; - - // Timeout to use with GetQueuedCompletionStatus. - const DWORD gqcs_timeout_; - - // Function object for processing timeouts in a background thread. - struct timer_thread_function; - friend struct timer_thread_function; - - // Background thread used for processing timeouts. - scoped_ptr timer_thread_; - - // A waitable timer object used for waiting for timeouts. - auto_handle waitable_timer_; - - // Non-zero if timers or completed operations need to be dispatched. - long dispatch_required_; - - // Mutex for protecting access to the timer queues and completed operations. - mutex dispatch_mutex_; - - // The timer queues. - timer_queue_set timer_queues_; - - // The operations that are ready to dispatch. - op_queue completed_ops_; - - // The concurrency hint used to initialise the io_context. - const int concurrency_hint_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/win_iocp_io_context.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_iocp_io_context.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_IO_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_null_buffers_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_null_buffers_op.hpp deleted file mode 100644 index db70cb2..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// detail/win_iocp_null_buffers_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_NULL_BUFFERS_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_NULL_BUFFERS_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_null_buffers_op : public reactor_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_null_buffers_op); - - win_iocp_null_buffers_op(socket_ops::weak_cancel_token_type cancel_token, - Handler& handler) - : reactor_op(&win_iocp_null_buffers_op::do_perform, - &win_iocp_null_buffers_op::do_complete), - cancel_token_(cancel_token), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static status do_perform(reactor_op*) - { - return done; - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t bytes_transferred) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_null_buffers_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // The reactor may have stored a result in the operation object. - if (o->ec_) - ec = o->ec_; - - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_NETNAME_DELETED) - { - if (o->cancel_token_.expired()) - ec = asio::error::operation_aborted; - else - ec = asio::error::connection_reset; - } - else if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = asio::error::connection_refused; - } - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - socket_ops::weak_cancel_token_type cancel_token_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_NULL_BUFFERS_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_operation.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_operation.hpp deleted file mode 100644 index 81d43f0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_operation.hpp +++ /dev/null @@ -1,96 +0,0 @@ -// -// detail/win_iocp_operation.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_OPERATION_HPP -#define ASIO_DETAIL_WIN_IOCP_OPERATION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/detail/handler_tracking.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/error_code.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_iocp_io_context; - -// Base class for all operations. A function pointer is used instead of virtual -// functions to avoid the associated overhead. -class win_iocp_operation - : public OVERLAPPED - ASIO_ALSO_INHERIT_TRACKED_HANDLER -{ -public: - typedef win_iocp_operation operation_type; - - void complete(void* owner, const asio::error_code& ec, - std::size_t bytes_transferred) - { - func_(owner, this, ec, bytes_transferred); - } - - void destroy() - { - func_(0, this, asio::error_code(), 0); - } - -protected: - typedef void (*func_type)( - void*, win_iocp_operation*, - const asio::error_code&, std::size_t); - - win_iocp_operation(func_type func) - : next_(0), - func_(func) - { - reset(); - } - - // Prevents deletion through this type. - ~win_iocp_operation() - { - } - - void reset() - { - Internal = 0; - InternalHigh = 0; - Offset = 0; - OffsetHigh = 0; - hEvent = 0; - ready_ = 0; - } - -private: - friend class op_queue_access; - friend class win_iocp_io_context; - win_iocp_operation* next_; - func_type func_; - long ready_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_OPERATION_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_overlapped_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_overlapped_op.hpp deleted file mode 100644 index 2b2cc31..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_overlapped_op.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// detail/win_iocp_overlapped_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_OVERLAPPED_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_OVERLAPPED_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/error.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_overlapped_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_overlapped_op); - - win_iocp_overlapped_op(Handler& handler) - : operation(&win_iocp_overlapped_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& ec, std::size_t bytes_transferred) - { - // Take ownership of the operation object. - win_iocp_overlapped_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_OVERLAPPED_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp deleted file mode 100644 index 7a19114..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +++ /dev/null @@ -1,143 +0,0 @@ -// -// detail/win_iocp_overlapped_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_OVERLAPPED_PTR_HPP -#define ASIO_DETAIL_WIN_IOCP_OVERLAPPED_PTR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/io_context.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/win_iocp_overlapped_op.hpp" -#include "asio/detail/win_iocp_io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Wraps a handler to create an OVERLAPPED object for use with overlapped I/O. -class win_iocp_overlapped_ptr - : private noncopyable -{ -public: - // Construct an empty win_iocp_overlapped_ptr. - win_iocp_overlapped_ptr() - : ptr_(0), - iocp_service_(0) - { - } - - // Construct an win_iocp_overlapped_ptr to contain the specified handler. - template - explicit win_iocp_overlapped_ptr( - asio::io_context& io_context, ASIO_MOVE_ARG(Handler) handler) - : ptr_(0), - iocp_service_(0) - { - this->reset(io_context, ASIO_MOVE_CAST(Handler)(handler)); - } - - // Destructor automatically frees the OVERLAPPED object unless released. - ~win_iocp_overlapped_ptr() - { - reset(); - } - - // Reset to empty. - void reset() - { - if (ptr_) - { - ptr_->destroy(); - ptr_ = 0; - iocp_service_->work_finished(); - iocp_service_ = 0; - } - } - - // Reset to contain the specified handler, freeing any current OVERLAPPED - // object. - template - void reset(asio::io_context& io_context, Handler handler) - { - typedef win_iocp_overlapped_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((io_context, *p.p, - "io_context", &io_context.impl_, 0, "overlapped")); - - io_context.impl_.work_started(); - reset(); - ptr_ = p.p; - p.v = p.p = 0; - iocp_service_ = &io_context.impl_; - } - - // Get the contained OVERLAPPED object. - OVERLAPPED* get() - { - return ptr_; - } - - // Get the contained OVERLAPPED object. - const OVERLAPPED* get() const - { - return ptr_; - } - - // Release ownership of the OVERLAPPED object. - OVERLAPPED* release() - { - if (ptr_) - iocp_service_->on_pending(ptr_); - - OVERLAPPED* tmp = ptr_; - ptr_ = 0; - iocp_service_ = 0; - return tmp; - } - - // Post completion notification for overlapped operation. Releases ownership. - void complete(const asio::error_code& ec, - std::size_t bytes_transferred) - { - if (ptr_) - { - iocp_service_->on_completion(ptr_, ec, - static_cast(bytes_transferred)); - ptr_ = 0; - iocp_service_ = 0; - } - } - -private: - win_iocp_operation* ptr_; - win_iocp_io_context* iocp_service_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_OVERLAPPED_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_serial_port_service.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_serial_port_service.hpp deleted file mode 100644 index ac06348..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_serial_port_service.hpp +++ /dev/null @@ -1,230 +0,0 @@ -// -// detail/win_iocp_serial_port_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_DETAIL_WIN_IOCP_SERIAL_PORT_SERVICE_HPP -#define ASIO_DETAIL_WIN_IOCP_SERIAL_PORT_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) && defined(ASIO_HAS_SERIAL_PORT) - -#include -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/win_iocp_handle_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Extend win_iocp_handle_service to provide serial port support. -class win_iocp_serial_port_service : - public service_base -{ -public: - // The native type of a serial port. - typedef win_iocp_handle_service::native_handle_type native_handle_type; - - // The implementation type of the serial port. - typedef win_iocp_handle_service::implementation_type implementation_type; - - // Constructor. - ASIO_DECL win_iocp_serial_port_service( - asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Construct a new serial port implementation. - void construct(implementation_type& impl) - { - handle_service_.construct(impl); - } - - // Move-construct a new serial port implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - handle_service_.move_construct(impl, other_impl); - } - - // Move-assign from another serial port implementation. - void move_assign(implementation_type& impl, - win_iocp_serial_port_service& other_service, - implementation_type& other_impl) - { - handle_service_.move_assign(impl, - other_service.handle_service_, other_impl); - } - - // Destroy a serial port implementation. - void destroy(implementation_type& impl) - { - handle_service_.destroy(impl); - } - - // Open the serial port using the specified device name. - ASIO_DECL asio::error_code open(implementation_type& impl, - const std::string& device, asio::error_code& ec); - - // Assign a native handle to a serial port implementation. - asio::error_code assign(implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec) - { - return handle_service_.assign(impl, handle, ec); - } - - // Determine whether the serial port is open. - bool is_open(const implementation_type& impl) const - { - return handle_service_.is_open(impl); - } - - // Destroy a serial port implementation. - asio::error_code close(implementation_type& impl, - asio::error_code& ec) - { - return handle_service_.close(impl, ec); - } - - // Get the native serial port representation. - native_handle_type native_handle(implementation_type& impl) - { - return handle_service_.native_handle(impl); - } - - // Cancel all operations associated with the handle. - asio::error_code cancel(implementation_type& impl, - asio::error_code& ec) - { - return handle_service_.cancel(impl, ec); - } - - // Set an option on the serial port. - template - asio::error_code set_option(implementation_type& impl, - const SettableSerialPortOption& option, asio::error_code& ec) - { - return do_set_option(impl, - &win_iocp_serial_port_service::store_option, - &option, ec); - } - - // Get an option from the serial port. - template - asio::error_code get_option(const implementation_type& impl, - GettableSerialPortOption& option, asio::error_code& ec) const - { - return do_get_option(impl, - &win_iocp_serial_port_service::load_option, - &option, ec); - } - - // Send a break sequence to the serial port. - asio::error_code send_break(implementation_type&, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Write the given data. Returns the number of bytes sent. - template - size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return handle_service_.write_some(impl, buffers, ec); - } - - // Start an asynchronous write. The data being written must be valid for the - // lifetime of the asynchronous operation. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, Handler& handler) - { - handle_service_.async_write_some(impl, buffers, handler); - } - - // Read some data. Returns the number of bytes received. - template - size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return handle_service_.read_some(impl, buffers, ec); - } - - // Start an asynchronous read. The buffer for the data being received must be - // valid for the lifetime of the asynchronous operation. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, Handler& handler) - { - handle_service_.async_read_some(impl, buffers, handler); - } - -private: - // Function pointer type for storing a serial port option. - typedef asio::error_code (*store_function_type)( - const void*, ::DCB&, asio::error_code&); - - // Helper function template to store a serial port option. - template - static asio::error_code store_option(const void* option, - ::DCB& storage, asio::error_code& ec) - { - static_cast(option)->store(storage, ec); - return ec; - } - - // Helper function to set a serial port option. - ASIO_DECL asio::error_code do_set_option( - implementation_type& impl, store_function_type store, - const void* option, asio::error_code& ec); - - // Function pointer type for loading a serial port option. - typedef asio::error_code (*load_function_type)( - void*, const ::DCB&, asio::error_code&); - - // Helper function template to load a serial port option. - template - static asio::error_code load_option(void* option, - const ::DCB& storage, asio::error_code& ec) - { - static_cast(option)->load(storage, ec); - return ec; - } - - // Helper function to get a serial port option. - ASIO_DECL asio::error_code do_get_option( - const implementation_type& impl, load_function_type load, - void* option, asio::error_code& ec) const; - - // The implementation used for initiating asynchronous operations. - win_iocp_handle_service handle_service_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_iocp_serial_port_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_IOCP) && defined(ASIO_HAS_SERIAL_PORT) - -#endif // ASIO_DETAIL_WIN_IOCP_SERIAL_PORT_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_accept_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_accept_op.hpp deleted file mode 100644 index 18e7335..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +++ /dev/null @@ -1,297 +0,0 @@ -// -// detail/win_iocp_socket_accept_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_SOCKET_ACCEPT_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_ACCEPT_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/win_iocp_socket_service_base.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_socket_accept_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_socket_accept_op); - - win_iocp_socket_accept_op(win_iocp_socket_service_base& socket_service, - socket_type socket, Socket& peer, const Protocol& protocol, - typename Protocol::endpoint* peer_endpoint, - bool enable_connection_aborted, Handler& handler) - : operation(&win_iocp_socket_accept_op::do_complete), - socket_service_(socket_service), - socket_(socket), - peer_(peer), - protocol_(protocol), - peer_endpoint_(peer_endpoint), - enable_connection_aborted_(enable_connection_aborted), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - socket_holder& new_socket() - { - return new_socket_; - } - - void* output_buffer() - { - return output_buffer_; - } - - DWORD address_length() - { - return sizeof(sockaddr_storage_type) + 16; - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t /*bytes_transferred*/) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_socket_accept_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - if (owner) - { - typename Protocol::endpoint peer_endpoint; - std::size_t addr_len = peer_endpoint.capacity(); - socket_ops::complete_iocp_accept(o->socket_, - o->output_buffer(), o->address_length(), - peer_endpoint.data(), &addr_len, - o->new_socket_.get(), ec); - - // Restart the accept operation if we got the connection_aborted error - // and the enable_connection_aborted socket option is not set. - if (ec == asio::error::connection_aborted - && !o->enable_connection_aborted_) - { - o->reset(); - o->socket_service_.restart_accept_op(o->socket_, - o->new_socket_, o->protocol_.family(), - o->protocol_.type(), o->protocol_.protocol(), - o->output_buffer(), o->address_length(), o); - p.v = p.p = 0; - return; - } - - // If the socket was successfully accepted, transfer ownership of the - // socket to the peer object. - if (!ec) - { - o->peer_.assign(o->protocol_, - typename Socket::native_handle_type( - o->new_socket_.get(), peer_endpoint), ec); - if (!ec) - o->new_socket_.release(); - } - - // Pass endpoint back to caller. - if (o->peer_endpoint_) - *o->peer_endpoint_ = peer_endpoint; - } - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(o->handler_, ec); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - win_iocp_socket_service_base& socket_service_; - socket_type socket_; - socket_holder new_socket_; - Socket& peer_; - Protocol protocol_; - typename Protocol::endpoint* peer_endpoint_; - unsigned char output_buffer_[(sizeof(sockaddr_storage_type) + 16) * 2]; - bool enable_connection_aborted_; - Handler handler_; -}; - -#if defined(ASIO_HAS_MOVE) - -template -class win_iocp_socket_move_accept_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_socket_move_accept_op); - - win_iocp_socket_move_accept_op( - win_iocp_socket_service_base& socket_service, socket_type socket, - const Protocol& protocol, asio::io_context& peer_io_context, - typename Protocol::endpoint* peer_endpoint, - bool enable_connection_aborted, Handler& handler) - : operation(&win_iocp_socket_move_accept_op::do_complete), - socket_service_(socket_service), - socket_(socket), - peer_(peer_io_context), - protocol_(protocol), - peer_endpoint_(peer_endpoint), - enable_connection_aborted_(enable_connection_aborted), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - socket_holder& new_socket() - { - return new_socket_; - } - - void* output_buffer() - { - return output_buffer_; - } - - DWORD address_length() - { - return sizeof(sockaddr_storage_type) + 16; - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t /*bytes_transferred*/) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_socket_move_accept_op* o( - static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - if (owner) - { - typename Protocol::endpoint peer_endpoint; - std::size_t addr_len = peer_endpoint.capacity(); - socket_ops::complete_iocp_accept(o->socket_, - o->output_buffer(), o->address_length(), - peer_endpoint.data(), &addr_len, - o->new_socket_.get(), ec); - - // Restart the accept operation if we got the connection_aborted error - // and the enable_connection_aborted socket option is not set. - if (ec == asio::error::connection_aborted - && !o->enable_connection_aborted_) - { - o->reset(); - o->socket_service_.restart_accept_op(o->socket_, - o->new_socket_, o->protocol_.family(), - o->protocol_.type(), o->protocol_.protocol(), - o->output_buffer(), o->address_length(), o); - p.v = p.p = 0; - return; - } - - // If the socket was successfully accepted, transfer ownership of the - // socket to the peer object. - if (!ec) - { - o->peer_.assign(o->protocol_, - typename Protocol::socket::native_handle_type( - o->new_socket_.get(), peer_endpoint), ec); - if (!ec) - o->new_socket_.release(); - } - - // Pass endpoint back to caller. - if (o->peer_endpoint_) - *o->peer_endpoint_ = peer_endpoint; - } - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::move_binder2 - handler(0, ASIO_MOVE_CAST(Handler)(o->handler_), ec, - ASIO_MOVE_CAST(typename Protocol::socket)(o->peer_)); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, "...")); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - win_iocp_socket_service_base& socket_service_; - socket_type socket_; - socket_holder new_socket_; - typename Protocol::socket peer_; - Protocol protocol_; - typename Protocol::endpoint* peer_endpoint_; - unsigned char output_buffer_[(sizeof(sockaddr_storage_type) + 16) * 2]; - bool enable_connection_aborted_; - Handler handler_; -}; - -#endif // defined(ASIO_HAS_MOVE) - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_ACCEPT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_connect_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_connect_op.hpp deleted file mode 100644 index e0c52dc..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +++ /dev/null @@ -1,127 +0,0 @@ -// -// detail/win_iocp_socket_connect_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_SOCKET_CONNECT_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_CONNECT_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_iocp_socket_connect_op_base : public reactor_op -{ -public: - win_iocp_socket_connect_op_base(socket_type socket, func_type complete_func) - : reactor_op(&win_iocp_socket_connect_op_base::do_perform, complete_func), - socket_(socket), - connect_ex_(false) - { - } - - static status do_perform(reactor_op* base) - { - win_iocp_socket_connect_op_base* o( - static_cast(base)); - - return socket_ops::non_blocking_connect( - o->socket_, o->ec_) ? done : not_done; - } - - socket_type socket_; - bool connect_ex_; -}; - -template -class win_iocp_socket_connect_op : public win_iocp_socket_connect_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_socket_connect_op); - - win_iocp_socket_connect_op(socket_type socket, Handler& handler) - : win_iocp_socket_connect_op_base(socket, - &win_iocp_socket_connect_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t /*bytes_transferred*/) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_socket_connect_op* o( - static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - if (owner) - { - if (o->connect_ex_) - socket_ops::complete_iocp_connect(o->socket_, ec); - else - ec = o->ec_; - } - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(o->handler_, ec); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_CONNECT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recv_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recv_op.hpp deleted file mode 100644 index 4159540..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +++ /dev/null @@ -1,117 +0,0 @@ -// -// detail/win_iocp_socket_recv_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_SOCKET_RECV_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_RECV_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_socket_recv_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_socket_recv_op); - - win_iocp_socket_recv_op(socket_ops::state_type state, - socket_ops::weak_cancel_token_type cancel_token, - const MutableBufferSequence& buffers, Handler& handler) - : operation(&win_iocp_socket_recv_op::do_complete), - state_(state), - cancel_token_(cancel_token), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t bytes_transferred) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_socket_recv_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - if (owner) - { - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - socket_ops::complete_iocp_recv(o->state_, o->cancel_token_, - buffer_sequence_adapter::all_empty(o->buffers_), - ec, bytes_transferred); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - socket_ops::state_type state_; - socket_ops::weak_cancel_token_type cancel_token_; - MutableBufferSequence buffers_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_RECV_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp deleted file mode 100644 index 843ce5b..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +++ /dev/null @@ -1,125 +0,0 @@ -// -// detail/win_iocp_socket_recvfrom_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_SOCKET_RECVFROM_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_RECVFROM_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_socket_recvfrom_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_socket_recvfrom_op); - - win_iocp_socket_recvfrom_op(Endpoint& endpoint, - socket_ops::weak_cancel_token_type cancel_token, - const MutableBufferSequence& buffers, Handler& handler) - : operation(&win_iocp_socket_recvfrom_op::do_complete), - endpoint_(endpoint), - endpoint_size_(static_cast(endpoint.capacity())), - cancel_token_(cancel_token), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - int& endpoint_size() - { - return endpoint_size_; - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t bytes_transferred) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_socket_recvfrom_op* o( - static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - if (owner) - { - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - socket_ops::complete_iocp_recvfrom(o->cancel_token_, ec); - - // Record the size of the endpoint returned by the operation. - o->endpoint_.resize(o->endpoint_size_); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Endpoint& endpoint_; - int endpoint_size_; - socket_ops::weak_cancel_token_type cancel_token_; - MutableBufferSequence buffers_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_RECVFROM_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp deleted file mode 100644 index 78f36b7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +++ /dev/null @@ -1,118 +0,0 @@ -// -// detail/win_iocp_socket_recvmsg_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_SOCKET_RECVMSG_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_RECVMSG_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" -#include "asio/socket_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_socket_recvmsg_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_socket_recvmsg_op); - - win_iocp_socket_recvmsg_op( - socket_ops::weak_cancel_token_type cancel_token, - const MutableBufferSequence& buffers, - socket_base::message_flags& out_flags, Handler& handler) - : operation(&win_iocp_socket_recvmsg_op::do_complete), - cancel_token_(cancel_token), - buffers_(buffers), - out_flags_(out_flags), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t bytes_transferred) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_socket_recvmsg_op* o( - static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - if (owner) - { - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - socket_ops::complete_iocp_recvmsg(o->cancel_token_, ec); - o->out_flags_ = 0; - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - socket_ops::weak_cancel_token_type cancel_token_; - MutableBufferSequence buffers_; - socket_base::message_flags& out_flags_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_RECVMSG_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_send_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_send_op.hpp deleted file mode 100644 index e1c7ab9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_send_op.hpp +++ /dev/null @@ -1,111 +0,0 @@ -// -// detail/win_iocp_socket_send_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_SOCKET_SEND_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_SEND_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_socket_send_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_socket_send_op); - - win_iocp_socket_send_op(socket_ops::weak_cancel_token_type cancel_token, - const ConstBufferSequence& buffers, Handler& handler) - : operation(&win_iocp_socket_send_op::do_complete), - cancel_token_(cancel_token), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t bytes_transferred) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_socket_send_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - if (owner) - { - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - socket_ops::complete_iocp_send(o->cancel_token_, ec); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - socket_ops::weak_cancel_token_type cancel_token_; - ConstBufferSequence buffers_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_SEND_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_service.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_service.hpp deleted file mode 100644 index 3f01b4d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_service.hpp +++ /dev/null @@ -1,599 +0,0 @@ -// -// detail/win_iocp_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_SOCKET_SERVICE_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/socket_base.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/select_reactor.hpp" -#include "asio/detail/socket_holder.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/win_iocp_io_context.hpp" -#include "asio/detail/win_iocp_null_buffers_op.hpp" -#include "asio/detail/win_iocp_socket_accept_op.hpp" -#include "asio/detail/win_iocp_socket_connect_op.hpp" -#include "asio/detail/win_iocp_socket_recvfrom_op.hpp" -#include "asio/detail/win_iocp_socket_send_op.hpp" -#include "asio/detail/win_iocp_socket_service_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_socket_service : - public service_base >, - public win_iocp_socket_service_base -{ -public: - // The protocol type. - typedef Protocol protocol_type; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // The native type of a socket. - class native_handle_type - { - public: - native_handle_type(socket_type s) - : socket_(s), - have_remote_endpoint_(false) - { - } - - native_handle_type(socket_type s, const endpoint_type& ep) - : socket_(s), - have_remote_endpoint_(true), - remote_endpoint_(ep) - { - } - - void operator=(socket_type s) - { - socket_ = s; - have_remote_endpoint_ = false; - remote_endpoint_ = endpoint_type(); - } - - operator socket_type() const - { - return socket_; - } - - bool have_remote_endpoint() const - { - return have_remote_endpoint_; - } - - endpoint_type remote_endpoint() const - { - return remote_endpoint_; - } - - private: - socket_type socket_; - bool have_remote_endpoint_; - endpoint_type remote_endpoint_; - }; - - // The implementation type of the socket. - struct implementation_type : - win_iocp_socket_service_base::base_implementation_type - { - // Default constructor. - implementation_type() - : protocol_(endpoint_type().protocol()), - have_remote_endpoint_(false), - remote_endpoint_() - { - } - - // The protocol associated with the socket. - protocol_type protocol_; - - // Whether we have a cached remote endpoint. - bool have_remote_endpoint_; - - // A cached remote endpoint. - endpoint_type remote_endpoint_; - }; - - // Constructor. - win_iocp_socket_service(asio::io_context& io_context) - : service_base >(io_context), - win_iocp_socket_service_base(io_context) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - this->base_shutdown(); - } - - // Move-construct a new socket implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - this->base_move_construct(impl, other_impl); - - impl.protocol_ = other_impl.protocol_; - other_impl.protocol_ = endpoint_type().protocol(); - - impl.have_remote_endpoint_ = other_impl.have_remote_endpoint_; - other_impl.have_remote_endpoint_ = false; - - impl.remote_endpoint_ = other_impl.remote_endpoint_; - other_impl.remote_endpoint_ = endpoint_type(); - } - - // Move-assign from another socket implementation. - void move_assign(implementation_type& impl, - win_iocp_socket_service_base& other_service, - implementation_type& other_impl) - { - this->base_move_assign(impl, other_service, other_impl); - - impl.protocol_ = other_impl.protocol_; - other_impl.protocol_ = endpoint_type().protocol(); - - impl.have_remote_endpoint_ = other_impl.have_remote_endpoint_; - other_impl.have_remote_endpoint_ = false; - - impl.remote_endpoint_ = other_impl.remote_endpoint_; - other_impl.remote_endpoint_ = endpoint_type(); - } - - // Move-construct a new socket implementation from another protocol type. - template - void converting_move_construct(implementation_type& impl, - win_iocp_socket_service&, - typename win_iocp_socket_service< - Protocol1>::implementation_type& other_impl) - { - this->base_move_construct(impl, other_impl); - - impl.protocol_ = protocol_type(other_impl.protocol_); - other_impl.protocol_ = typename Protocol1::endpoint().protocol(); - - impl.have_remote_endpoint_ = other_impl.have_remote_endpoint_; - other_impl.have_remote_endpoint_ = false; - - impl.remote_endpoint_ = other_impl.remote_endpoint_; - other_impl.remote_endpoint_ = typename Protocol1::endpoint(); - } - - // Open a new socket implementation. - asio::error_code open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - if (!do_open(impl, protocol.family(), - protocol.type(), protocol.protocol(), ec)) - { - impl.protocol_ = protocol; - impl.have_remote_endpoint_ = false; - impl.remote_endpoint_ = endpoint_type(); - } - return ec; - } - - // Assign a native socket to a socket implementation. - asio::error_code assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_socket, - asio::error_code& ec) - { - if (!do_assign(impl, protocol.type(), native_socket, ec)) - { - impl.protocol_ = protocol; - impl.have_remote_endpoint_ = native_socket.have_remote_endpoint(); - impl.remote_endpoint_ = native_socket.remote_endpoint(); - } - return ec; - } - - // Get the native socket representation. - native_handle_type native_handle(implementation_type& impl) - { - if (impl.have_remote_endpoint_) - return native_handle_type(impl.socket_, impl.remote_endpoint_); - return native_handle_type(impl.socket_); - } - - // Bind the socket to the specified local endpoint. - asio::error_code bind(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - socket_ops::bind(impl.socket_, endpoint.data(), endpoint.size(), ec); - return ec; - } - - // Set a socket option. - template - asio::error_code set_option(implementation_type& impl, - const Option& option, asio::error_code& ec) - { - socket_ops::setsockopt(impl.socket_, impl.state_, - option.level(impl.protocol_), option.name(impl.protocol_), - option.data(impl.protocol_), option.size(impl.protocol_), ec); - return ec; - } - - // Set a socket option. - template - asio::error_code get_option(const implementation_type& impl, - Option& option, asio::error_code& ec) const - { - std::size_t size = option.size(impl.protocol_); - socket_ops::getsockopt(impl.socket_, impl.state_, - option.level(impl.protocol_), option.name(impl.protocol_), - option.data(impl.protocol_), &size, ec); - if (!ec) - option.resize(impl.protocol_, size); - return ec; - } - - // Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - endpoint_type endpoint; - std::size_t addr_len = endpoint.capacity(); - if (socket_ops::getsockname(impl.socket_, endpoint.data(), &addr_len, ec)) - return endpoint_type(); - endpoint.resize(addr_len); - return endpoint; - } - - // Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - endpoint_type endpoint = impl.remote_endpoint_; - std::size_t addr_len = endpoint.capacity(); - if (socket_ops::getpeername(impl.socket_, endpoint.data(), - &addr_len, impl.have_remote_endpoint_, ec)) - return endpoint_type(); - endpoint.resize(addr_len); - return endpoint; - } - - // Disable sends or receives on the socket. - asio::error_code shutdown(base_implementation_type& impl, - socket_base::shutdown_type what, asio::error_code& ec) - { - socket_ops::shutdown(impl.socket_, what, ec); - return ec; - } - - // Send a datagram to the specified endpoint. Returns the number of bytes - // sent. - template - size_t send_to(implementation_type& impl, const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_sendto(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), flags, - destination.data(), destination.size(), ec); - } - - // Wait until data can be sent without blocking. - size_t send_to(implementation_type& impl, const null_buffers&, - const endpoint_type&, socket_base::message_flags, - asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_write(impl.socket_, impl.state_, -1, ec); - - return 0; - } - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_send_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, buffers, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_send_to")); - - buffer_sequence_adapter bufs(buffers); - - start_send_to_op(impl, bufs.buffers(), bufs.count(), - destination.data(), static_cast(destination.size()), - flags, p.p); - p.v = p.p = 0; - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send_to(implementation_type& impl, const null_buffers&, - const endpoint_type&, socket_base::message_flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_send_to(null_buffers)")); - - start_reactor_op(impl, select_reactor::write_op, p.p); - p.v = p.p = 0; - } - - // Receive a datagram with the endpoint of the sender. Returns the number of - // bytes received. - template - size_t receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - std::size_t addr_len = sender_endpoint.capacity(); - std::size_t bytes_recvd = socket_ops::sync_recvfrom( - impl.socket_, impl.state_, bufs.buffers(), bufs.count(), - flags, sender_endpoint.data(), &addr_len, ec); - - if (!ec) - sender_endpoint.resize(addr_len); - - return bytes_recvd; - } - - // Wait until data can be received without blocking. - size_t receive_from(implementation_type& impl, - const null_buffers&, endpoint_type& sender_endpoint, - socket_base::message_flags, asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - - // Reset endpoint since it can be given no sensible value at this time. - sender_endpoint = endpoint_type(); - - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received and - // the sender_endpoint object must both be valid for the lifetime of the - // asynchronous operation. - template - void async_receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endp, - socket_base::message_flags flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_recvfrom_op< - MutableBufferSequence, endpoint_type, Handler> op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(sender_endp, impl.cancel_token_, buffers, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_receive_from")); - - buffer_sequence_adapter bufs(buffers); - - start_receive_from_op(impl, bufs.buffers(), bufs.count(), - sender_endp.data(), flags, &p.p->endpoint_size(), p.p); - p.v = p.p = 0; - } - - // Wait until data can be received without blocking. - template - void async_receive_from(implementation_type& impl, - const null_buffers&, endpoint_type& sender_endpoint, - socket_base::message_flags flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_receive_from(null_buffers)")); - - // Reset endpoint since it can be given no sensible value at this time. - sender_endpoint = endpoint_type(); - - start_null_buffers_receive_op(impl, flags, p.p); - p.v = p.p = 0; - } - - // Accept a new connection. - template - asio::error_code accept(implementation_type& impl, Socket& peer, - endpoint_type* peer_endpoint, asio::error_code& ec) - { - // We cannot accept a socket that is already open. - if (peer.is_open()) - { - ec = asio::error::already_open; - return ec; - } - - std::size_t addr_len = peer_endpoint ? peer_endpoint->capacity() : 0; - socket_holder new_socket(socket_ops::sync_accept(impl.socket_, - impl.state_, peer_endpoint ? peer_endpoint->data() : 0, - peer_endpoint ? &addr_len : 0, ec)); - - // On success, assign new connection to peer socket object. - if (new_socket.get() != invalid_socket) - { - if (peer_endpoint) - peer_endpoint->resize(addr_len); - peer.assign(impl.protocol_, new_socket.get(), ec); - if (!ec) - new_socket.release(); - } - - return ec; - } - -#if defined(ASIO_HAS_MOVE) - // Accept a new connection. - typename Protocol::socket accept(implementation_type& impl, - io_context* peer_io_context, endpoint_type* peer_endpoint, - asio::error_code& ec) - { - typename Protocol::socket peer( - peer_io_context ? *peer_io_context : io_context_); - - std::size_t addr_len = peer_endpoint ? peer_endpoint->capacity() : 0; - socket_holder new_socket(socket_ops::sync_accept(impl.socket_, - impl.state_, peer_endpoint ? peer_endpoint->data() : 0, - peer_endpoint ? &addr_len : 0, ec)); - - // On success, assign new connection to peer socket object. - if (new_socket.get() != invalid_socket) - { - if (peer_endpoint) - peer_endpoint->resize(addr_len); - peer.assign(impl.protocol_, new_socket.get(), ec); - if (!ec) - new_socket.release(); - } - - return peer; - } -#endif // defined(ASIO_HAS_MOVE) - - // Start an asynchronous accept. The peer and peer_endpoint objects - // must be valid until the accept's handler is invoked. - template - void async_accept(implementation_type& impl, Socket& peer, - endpoint_type* peer_endpoint, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_accept_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - bool enable_connection_aborted = - (impl.state_ & socket_ops::enable_connection_aborted) != 0; - p.p = new (p.v) op(*this, impl.socket_, peer, impl.protocol_, - peer_endpoint, enable_connection_aborted, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_accept")); - - start_accept_op(impl, peer.is_open(), p.p->new_socket(), - impl.protocol_.family(), impl.protocol_.type(), - impl.protocol_.protocol(), p.p->output_buffer(), - p.p->address_length(), p.p); - p.v = p.p = 0; - } - -#if defined(ASIO_HAS_MOVE) - // Start an asynchronous accept. The peer and peer_endpoint objects - // must be valid until the accept's handler is invoked. - template - void async_accept(implementation_type& impl, - asio::io_context* peer_io_context, - endpoint_type* peer_endpoint, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_move_accept_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - bool enable_connection_aborted = - (impl.state_ & socket_ops::enable_connection_aborted) != 0; - p.p = new (p.v) op(*this, impl.socket_, impl.protocol_, - peer_io_context ? *peer_io_context : io_context_, - peer_endpoint, enable_connection_aborted, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_accept")); - - start_accept_op(impl, false, p.p->new_socket(), - impl.protocol_.family(), impl.protocol_.type(), - impl.protocol_.protocol(), p.p->output_buffer(), - p.p->address_length(), p.p); - p.v = p.p = 0; - } -#endif // defined(ASIO_HAS_MOVE) - - // Connect the socket to the specified endpoint. - asio::error_code connect(implementation_type& impl, - const endpoint_type& peer_endpoint, asio::error_code& ec) - { - socket_ops::sync_connect(impl.socket_, - peer_endpoint.data(), peer_endpoint.size(), ec); - return ec; - } - - // Start an asynchronous connect. - template - void async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_connect_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.socket_, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_connect")); - - start_connect_op(impl, impl.protocol_.family(), impl.protocol_.type(), - peer_endpoint.data(), static_cast(peer_endpoint.size()), p.p); - p.v = p.p = 0; - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_service_base.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_service_base.hpp deleted file mode 100644 index ef1d718..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_service_base.hpp +++ /dev/null @@ -1,591 +0,0 @@ -// -// detail/win_iocp_socket_service_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_SOCKET_SERVICE_BASE_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_SERVICE_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/socket_base.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/select_reactor.hpp" -#include "asio/detail/socket_holder.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/win_iocp_io_context.hpp" -#include "asio/detail/win_iocp_null_buffers_op.hpp" -#include "asio/detail/win_iocp_socket_connect_op.hpp" -#include "asio/detail/win_iocp_socket_send_op.hpp" -#include "asio/detail/win_iocp_socket_recv_op.hpp" -#include "asio/detail/win_iocp_socket_recvmsg_op.hpp" -#include "asio/detail/win_iocp_wait_op.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_iocp_socket_service_base -{ -public: - // The implementation type of the socket. - struct base_implementation_type - { - // The native socket representation. - socket_type socket_; - - // The current state of the socket. - socket_ops::state_type state_; - - // We use a shared pointer as a cancellation token here to work around the - // broken Windows support for cancellation. MSDN says that when you call - // closesocket any outstanding WSARecv or WSASend operations will complete - // with the error ERROR_OPERATION_ABORTED. In practice they complete with - // ERROR_NETNAME_DELETED, which means you can't tell the difference between - // a local cancellation and the socket being hard-closed by the peer. - socket_ops::shared_cancel_token_type cancel_token_; - - // Per-descriptor data used by the reactor. - select_reactor::per_descriptor_data reactor_data_; - -#if defined(ASIO_ENABLE_CANCELIO) - // The ID of the thread from which it is safe to cancel asynchronous - // operations. 0 means no asynchronous operations have been started yet. - // ~0 means asynchronous operations have been started from more than one - // thread, and cancellation is not supported for the socket. - DWORD safe_cancellation_thread_id_; -#endif // defined(ASIO_ENABLE_CANCELIO) - - // Pointers to adjacent socket implementations in linked list. - base_implementation_type* next_; - base_implementation_type* prev_; - }; - - // Constructor. - ASIO_DECL win_iocp_socket_service_base( - asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void base_shutdown(); - - // Construct a new socket implementation. - ASIO_DECL void construct(base_implementation_type& impl); - - // Move-construct a new socket implementation. - ASIO_DECL void base_move_construct(base_implementation_type& impl, - base_implementation_type& other_impl); - - // Move-assign from another socket implementation. - ASIO_DECL void base_move_assign(base_implementation_type& impl, - win_iocp_socket_service_base& other_service, - base_implementation_type& other_impl); - - // Destroy a socket implementation. - ASIO_DECL void destroy(base_implementation_type& impl); - - // Determine whether the socket is open. - bool is_open(const base_implementation_type& impl) const - { - return impl.socket_ != invalid_socket; - } - - // Destroy a socket implementation. - ASIO_DECL asio::error_code close( - base_implementation_type& impl, asio::error_code& ec); - - // Release ownership of the socket. - ASIO_DECL socket_type release( - base_implementation_type& impl, asio::error_code& ec); - - // Cancel all operations associated with the socket. - ASIO_DECL asio::error_code cancel( - base_implementation_type& impl, asio::error_code& ec); - - // Determine whether the socket is at the out-of-band data mark. - bool at_mark(const base_implementation_type& impl, - asio::error_code& ec) const - { - return socket_ops::sockatmark(impl.socket_, ec); - } - - // Determine the number of bytes available for reading. - std::size_t available(const base_implementation_type& impl, - asio::error_code& ec) const - { - return socket_ops::available(impl.socket_, ec); - } - - // Place the socket into the state where it will listen for new connections. - asio::error_code listen(base_implementation_type& impl, - int backlog, asio::error_code& ec) - { - socket_ops::listen(impl.socket_, backlog, ec); - return ec; - } - - // Perform an IO control command on the socket. - template - asio::error_code io_control(base_implementation_type& impl, - IO_Control_Command& command, asio::error_code& ec) - { - socket_ops::ioctl(impl.socket_, impl.state_, command.name(), - static_cast(command.data()), ec); - return ec; - } - - // Gets the non-blocking mode of the socket. - bool non_blocking(const base_implementation_type& impl) const - { - return (impl.state_ & socket_ops::user_set_non_blocking) != 0; - } - - // Sets the non-blocking mode of the socket. - asio::error_code non_blocking(base_implementation_type& impl, - bool mode, asio::error_code& ec) - { - socket_ops::set_user_non_blocking(impl.socket_, impl.state_, mode, ec); - return ec; - } - - // Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const base_implementation_type& impl) const - { - return (impl.state_ & socket_ops::internal_non_blocking) != 0; - } - - // Sets the non-blocking mode of the native socket implementation. - asio::error_code native_non_blocking(base_implementation_type& impl, - bool mode, asio::error_code& ec) - { - socket_ops::set_internal_non_blocking(impl.socket_, impl.state_, mode, ec); - return ec; - } - - // Wait for the socket to become ready to read, ready to write, or to have - // pending error conditions. - asio::error_code wait(base_implementation_type& impl, - socket_base::wait_type w, asio::error_code& ec) - { - switch (w) - { - case socket_base::wait_read: - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - break; - case socket_base::wait_write: - socket_ops::poll_write(impl.socket_, impl.state_, -1, ec); - break; - case socket_base::wait_error: - socket_ops::poll_error(impl.socket_, impl.state_, -1, ec); - break; - default: - ec = asio::error::invalid_argument; - break; - } - - return ec; - } - - // Asynchronously wait for the socket to become ready to read, ready to - // write, or to have pending error conditions. - template - void async_wait(base_implementation_type& impl, - socket_base::wait_type w, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_wait_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_wait")); - - switch (w) - { - case socket_base::wait_read: - start_null_buffers_receive_op(impl, 0, p.p); - break; - case socket_base::wait_write: - start_reactor_op(impl, select_reactor::write_op, p.p); - break; - case socket_base::wait_error: - start_reactor_op(impl, select_reactor::except_op, p.p); - break; - default: - p.p->ec_ = asio::error::invalid_argument; - iocp_service_.post_immediate_completion(p.p, is_continuation); - break; - } - - p.v = p.p = 0; - } - - // Send the given data to the peer. Returns the number of bytes sent. - template - size_t send(base_implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_send(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), flags, bufs.all_empty(), ec); - } - - // Wait until data can be sent without blocking. - size_t send(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_write(impl.socket_, impl.state_, -1, ec); - - return 0; - } - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send(base_implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_send_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, buffers, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_send")); - - buffer_sequence_adapter bufs(buffers); - - start_send_op(impl, bufs.buffers(), bufs.count(), flags, - (impl.state_ & socket_ops::stream_oriented) != 0 && bufs.all_empty(), - p.p); - p.v = p.p = 0; - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_send(null_buffers)")); - - start_reactor_op(impl, select_reactor::write_op, p.p); - p.v = p.p = 0; - } - - // Receive some data from the peer. Returns the number of bytes received. - template - size_t receive(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_recv(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), flags, bufs.all_empty(), ec); - } - - // Wait until data can be received without blocking. - size_t receive(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_recv_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.state_, impl.cancel_token_, buffers, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_receive")); - - buffer_sequence_adapter bufs(buffers); - - start_receive_op(impl, bufs.buffers(), bufs.count(), flags, - (impl.state_ & socket_ops::stream_oriented) != 0 && bufs.all_empty(), - p.p); - p.v = p.p = 0; - } - - // Wait until data can be received without blocking. - template - void async_receive(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_receive(null_buffers)")); - - start_null_buffers_receive_op(impl, flags, p.p); - p.v = p.p = 0; - } - - // Receive some data with associated flags. Returns the number of bytes - // received. - template - size_t receive_with_flags(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_recvmsg(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), in_flags, out_flags, ec); - } - - // Wait until data can be received without blocking. - size_t receive_with_flags(base_implementation_type& impl, - const null_buffers&, socket_base::message_flags, - socket_base::message_flags& out_flags, asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - - // Clear out_flags, since we cannot give it any other sensible value when - // performing a null_buffers operation. - out_flags = 0; - - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive_with_flags(base_implementation_type& impl, - const MutableBufferSequence& buffers, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_recvmsg_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, buffers, out_flags, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_receive_with_flags")); - - buffer_sequence_adapter bufs(buffers); - - start_receive_op(impl, bufs.buffers(), bufs.count(), in_flags, false, p.p); - p.v = p.p = 0; - } - - // Wait until data can be received without blocking. - template - void async_receive_with_flags(base_implementation_type& impl, - const null_buffers&, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_receive_with_flags(null_buffers)")); - - // Reset out_flags since it can be given no sensible value at this time. - out_flags = 0; - - start_null_buffers_receive_op(impl, in_flags, p.p); - p.v = p.p = 0; - } - - // Helper function to restart an asynchronous accept operation. - ASIO_DECL void restart_accept_op(socket_type s, - socket_holder& new_socket, int family, int type, int protocol, - void* output_buffer, DWORD address_length, operation* op); - -protected: - // Open a new socket implementation. - ASIO_DECL asio::error_code do_open( - base_implementation_type& impl, int family, int type, - int protocol, asio::error_code& ec); - - // Assign a native socket to a socket implementation. - ASIO_DECL asio::error_code do_assign( - base_implementation_type& impl, int type, - socket_type native_socket, asio::error_code& ec); - - // Helper function to start an asynchronous send operation. - ASIO_DECL void start_send_op(base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, - socket_base::message_flags flags, bool noop, operation* op); - - // Helper function to start an asynchronous send_to operation. - ASIO_DECL void start_send_to_op(base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, - const socket_addr_type* addr, int addrlen, - socket_base::message_flags flags, operation* op); - - // Helper function to start an asynchronous receive operation. - ASIO_DECL void start_receive_op(base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, - socket_base::message_flags flags, bool noop, operation* op); - - // Helper function to start an asynchronous null_buffers receive operation. - ASIO_DECL void start_null_buffers_receive_op( - base_implementation_type& impl, - socket_base::message_flags flags, reactor_op* op); - - // Helper function to start an asynchronous receive_from operation. - ASIO_DECL void start_receive_from_op(base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, socket_addr_type* addr, - socket_base::message_flags flags, int* addrlen, operation* op); - - // Helper function to start an asynchronous accept operation. - ASIO_DECL void start_accept_op(base_implementation_type& impl, - bool peer_is_open, socket_holder& new_socket, int family, int type, - int protocol, void* output_buffer, DWORD address_length, operation* op); - - // Start an asynchronous read or write operation using the reactor. - ASIO_DECL void start_reactor_op(base_implementation_type& impl, - int op_type, reactor_op* op); - - // Start the asynchronous connect operation using the reactor. - ASIO_DECL void start_connect_op(base_implementation_type& impl, - int family, int type, const socket_addr_type* remote_addr, - std::size_t remote_addrlen, win_iocp_socket_connect_op_base* op); - - // Helper function to close a socket when the associated object is being - // destroyed. - ASIO_DECL void close_for_destruction(base_implementation_type& impl); - - // Update the ID of the thread from which cancellation is safe. - ASIO_DECL void update_cancellation_thread_id( - base_implementation_type& impl); - - // Helper function to get the reactor. If no reactor has been created yet, a - // new one is obtained from the io_context and a pointer to it is cached in - // this service. - ASIO_DECL select_reactor& get_reactor(); - - // The type of a ConnectEx function pointer, as old SDKs may not provide it. - typedef BOOL (PASCAL *connect_ex_fn)(SOCKET, - const socket_addr_type*, int, void*, DWORD, DWORD*, OVERLAPPED*); - - // Helper function to get the ConnectEx pointer. If no ConnectEx pointer has - // been obtained yet, one is obtained using WSAIoctl and the pointer is - // cached. Returns a null pointer if ConnectEx is not available. - ASIO_DECL connect_ex_fn get_connect_ex( - base_implementation_type& impl, int type); - - // The type of a NtSetInformationFile function pointer. - typedef LONG (NTAPI *nt_set_info_fn)(HANDLE, ULONG_PTR*, void*, ULONG, ULONG); - - // Helper function to get the NtSetInformationFile function pointer. If no - // NtSetInformationFile pointer has been obtained yet, one is obtained using - // GetProcAddress and the pointer is cached. Returns a null pointer if - // NtSetInformationFile is not available. - ASIO_DECL nt_set_info_fn get_nt_set_info(); - - // Helper function to emulate InterlockedCompareExchangePointer functionality - // for: - // - very old Platform SDKs; and - // - platform SDKs where MSVC's /Wp64 option causes spurious warnings. - ASIO_DECL void* interlocked_compare_exchange_pointer( - void** dest, void* exch, void* cmp); - - // Helper function to emulate InterlockedExchangePointer functionality for: - // - very old Platform SDKs; and - // - platform SDKs where MSVC's /Wp64 option causes spurious warnings. - ASIO_DECL void* interlocked_exchange_pointer(void** dest, void* val); - - // The io_context used to obtain the reactor, if required. - asio::io_context& io_context_; - - // The IOCP service used for running asynchronous operations and dispatching - // handlers. - win_iocp_io_context& iocp_service_; - - // The reactor used for performing connect operations. This object is created - // only if needed. - select_reactor* reactor_; - - // Pointer to ConnectEx implementation. - void* connect_ex_; - - // Pointer to NtSetInformationFile implementation. - void* nt_set_info_; - - // Mutex to protect access to the linked list of implementations. - asio::detail::mutex mutex_; - - // The head of a linked list of all implementations. - base_implementation_type* impl_list_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_iocp_socket_service_base.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_SERVICE_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_thread_info.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_thread_info.hpp deleted file mode 100644 index 13181e2..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_thread_info.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// detail/win_iocp_thread_info.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_THREAD_INFO_HPP -#define ASIO_DETAIL_WIN_IOCP_THREAD_INFO_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/thread_info_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct win_iocp_thread_info : public thread_info_base -{ -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_WIN_IOCP_THREAD_INFO_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_wait_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_wait_op.hpp deleted file mode 100644 index 472eea3..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_wait_op.hpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// detail/win_iocp_wait_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_IOCP_WAIT_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_WAIT_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_wait_op : public reactor_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_wait_op); - - win_iocp_wait_op(socket_ops::weak_cancel_token_type cancel_token, - Handler& handler) - : reactor_op(&win_iocp_wait_op::do_perform, - &win_iocp_wait_op::do_complete), - cancel_token_(cancel_token), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static status do_perform(reactor_op*) - { - return done; - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t /*bytes_transferred*/) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_wait_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // The reactor may have stored a result in the operation object. - if (o->ec_) - ec = o->ec_; - - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_NETNAME_DELETED) - { - if (o->cancel_token_.expired()) - ec = asio::error::operation_aborted; - else - ec = asio::error::connection_reset; - } - else if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = asio::error::connection_refused; - } - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(o->handler_, ec); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - socket_ops::weak_cancel_token_type cancel_token_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_WAIT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/win_mutex.hpp deleted file mode 100644 index ce52a2f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_mutex.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// detail/win_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_MUTEX_HPP -#define ASIO_DETAIL_WIN_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_lock.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_mutex - : private noncopyable -{ -public: - typedef asio::detail::scoped_lock scoped_lock; - - // Constructor. - ASIO_DECL win_mutex(); - - // Destructor. - ~win_mutex() - { - ::DeleteCriticalSection(&crit_section_); - } - - // Lock the mutex. - void lock() - { - ::EnterCriticalSection(&crit_section_); - } - - // Unlock the mutex. - void unlock() - { - ::LeaveCriticalSection(&crit_section_); - } - -private: - // Initialisation must be performed in a separate function to the constructor - // since the compiler does not support the use of structured exceptions and - // C++ exceptions in the same function. - ASIO_DECL int do_init(); - - ::CRITICAL_SECTION crit_section_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_mutex.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_WIN_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_object_handle_service.hpp b/Sources/Vendor/asio/include/asio/detail/win_object_handle_service.hpp deleted file mode 100644 index 1d8abc9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_object_handle_service.hpp +++ /dev/null @@ -1,184 +0,0 @@ -// -// detail/win_object_handle_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2011 Boris Schaeling (boris@highscore.de) -// -// Distributed under the 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 ASIO_DETAIL_WIN_OBJECT_HANDLE_SERVICE_HPP -#define ASIO_DETAIL_WIN_OBJECT_HANDLE_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/wait_handler.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_object_handle_service : - public service_base -{ -public: - // The native type of an object handle. - typedef HANDLE native_handle_type; - - // The implementation type of the object handle. - class implementation_type - { - public: - // Default constructor. - implementation_type() - : handle_(INVALID_HANDLE_VALUE), - wait_handle_(INVALID_HANDLE_VALUE), - owner_(0), - next_(0), - prev_(0) - { - } - - private: - // Only this service will have access to the internal values. - friend class win_object_handle_service; - - // The native object handle representation. May be accessed or modified - // without locking the mutex. - native_handle_type handle_; - - // The handle used to unregister the wait operation. The mutex must be - // locked when accessing or modifying this member. - HANDLE wait_handle_; - - // The operations waiting on the object handle. If there is a registered - // wait then the mutex must be locked when accessing or modifying this - // member - op_queue op_queue_; - - // The service instance that owns the object handle implementation. - win_object_handle_service* owner_; - - // Pointers to adjacent handle implementations in linked list. The mutex - // must be locked when accessing or modifying these members. - implementation_type* next_; - implementation_type* prev_; - }; - - // Constructor. - ASIO_DECL win_object_handle_service( - asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Construct a new handle implementation. - ASIO_DECL void construct(implementation_type& impl); - - // Move-construct a new handle implementation. - ASIO_DECL void move_construct(implementation_type& impl, - implementation_type& other_impl); - - // Move-assign from another handle implementation. - ASIO_DECL void move_assign(implementation_type& impl, - win_object_handle_service& other_service, - implementation_type& other_impl); - - // Destroy a handle implementation. - ASIO_DECL void destroy(implementation_type& impl); - - // Assign a native handle to a handle implementation. - ASIO_DECL asio::error_code assign(implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec); - - // Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return impl.handle_ != INVALID_HANDLE_VALUE && impl.handle_ != 0; - } - - // Destroy a handle implementation. - ASIO_DECL asio::error_code close(implementation_type& impl, - asio::error_code& ec); - - // Get the native handle representation. - native_handle_type native_handle(const implementation_type& impl) const - { - return impl.handle_; - } - - // Cancel all operations associated with the handle. - ASIO_DECL asio::error_code cancel(implementation_type& impl, - asio::error_code& ec); - - // Perform a synchronous wait for the object to enter a signalled state. - ASIO_DECL void wait(implementation_type& impl, - asio::error_code& ec); - - /// Start an asynchronous wait. - template - void async_wait(implementation_type& impl, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef wait_handler op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((io_context_.context(), *p.p, "object_handle", - &impl, reinterpret_cast(impl.wait_handle_), "async_wait")); - - start_wait_op(impl, p.p); - p.v = p.p = 0; - } - -private: - // Helper function to start an asynchronous wait operation. - ASIO_DECL void start_wait_op(implementation_type& impl, wait_op* op); - - // Helper function to register a wait operation. - ASIO_DECL void register_wait_callback( - implementation_type& impl, mutex::scoped_lock& lock); - - // Callback function invoked when the registered wait completes. - static ASIO_DECL VOID CALLBACK wait_callback( - PVOID param, BOOLEAN timeout); - - // The io_context implementation used to post completions. - io_context_impl& io_context_; - - // Mutex to protect access to internal state. - mutex mutex_; - - // The head of a linked list of all implementations. - implementation_type* impl_list_; - - // Flag to indicate that the dispatcher has been shut down. - bool shutdown_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_object_handle_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - -#endif // ASIO_DETAIL_WIN_OBJECT_HANDLE_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_static_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/win_static_mutex.hpp deleted file mode 100644 index b169688..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_static_mutex.hpp +++ /dev/null @@ -1,74 +0,0 @@ -// -// detail/win_static_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_STATIC_MUTEX_HPP -#define ASIO_DETAIL_WIN_STATIC_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) - -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct win_static_mutex -{ - typedef asio::detail::scoped_lock scoped_lock; - - // Initialise the mutex. - ASIO_DECL void init(); - - // Initialisation must be performed in a separate function to the "public" - // init() function since the compiler does not support the use of structured - // exceptions and C++ exceptions in the same function. - ASIO_DECL int do_init(); - - // Lock the mutex. - void lock() - { - ::EnterCriticalSection(&crit_section_); - } - - // Unlock the mutex. - void unlock() - { - ::LeaveCriticalSection(&crit_section_); - } - - bool initialised_; - ::CRITICAL_SECTION crit_section_; -}; - -#if defined(UNDER_CE) -# define ASIO_WIN_STATIC_MUTEX_INIT { false, { 0, 0, 0, 0, 0 } } -#else // defined(UNDER_CE) -# define ASIO_WIN_STATIC_MUTEX_INIT { false, { 0, 0, 0, 0, 0, 0 } } -#endif // defined(UNDER_CE) - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_static_mutex.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_WIN_STATIC_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_thread.hpp b/Sources/Vendor/asio/include/asio/detail/win_thread.hpp deleted file mode 100644 index 8b28a90..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_thread.hpp +++ /dev/null @@ -1,147 +0,0 @@ -// -// detail/win_thread.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_THREAD_HPP -#define ASIO_DETAIL_WIN_THREAD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_APP) \ - && !defined(UNDER_CE) - -#include -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -ASIO_DECL unsigned int __stdcall win_thread_function(void* arg); - -#if defined(WINVER) && (WINVER < 0x0500) -ASIO_DECL void __stdcall apc_function(ULONG data); -#else -ASIO_DECL void __stdcall apc_function(ULONG_PTR data); -#endif - -template -class win_thread_base -{ -public: - static bool terminate_threads() - { - return ::InterlockedExchangeAdd(&terminate_threads_, 0) != 0; - } - - static void set_terminate_threads(bool b) - { - ::InterlockedExchange(&terminate_threads_, b ? 1 : 0); - } - -private: - static long terminate_threads_; -}; - -template -long win_thread_base::terminate_threads_ = 0; - -class win_thread - : private noncopyable, - public win_thread_base -{ -public: - // Constructor. - template - win_thread(Function f, unsigned int stack_size = 0) - : thread_(0), - exit_event_(0) - { - start_thread(new func(f), stack_size); - } - - // Destructor. - ASIO_DECL ~win_thread(); - - // Wait for the thread to exit. - ASIO_DECL void join(); - - // Get number of CPUs. - ASIO_DECL static std::size_t hardware_concurrency(); - -private: - friend ASIO_DECL unsigned int __stdcall win_thread_function(void* arg); - -#if defined(WINVER) && (WINVER < 0x0500) - friend ASIO_DECL void __stdcall apc_function(ULONG); -#else - friend ASIO_DECL void __stdcall apc_function(ULONG_PTR); -#endif - - class func_base - { - public: - virtual ~func_base() {} - virtual void run() = 0; - ::HANDLE entry_event_; - ::HANDLE exit_event_; - }; - - struct auto_func_base_ptr - { - func_base* ptr; - ~auto_func_base_ptr() { delete ptr; } - }; - - template - class func - : public func_base - { - public: - func(Function f) - : f_(f) - { - } - - virtual void run() - { - f_(); - } - - private: - Function f_; - }; - - ASIO_DECL void start_thread(func_base* arg, unsigned int stack_size); - - ::HANDLE thread_; - ::HANDLE exit_event_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_thread.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_APP) - // && !defined(UNDER_CE) - -#endif // ASIO_DETAIL_WIN_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_tss_ptr.hpp b/Sources/Vendor/asio/include/asio/detail/win_tss_ptr.hpp deleted file mode 100644 index 4207108..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_tss_ptr.hpp +++ /dev/null @@ -1,79 +0,0 @@ -// -// detail/win_tss_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WIN_TSS_PTR_HPP -#define ASIO_DETAIL_WIN_TSS_PTR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Helper function to create thread-specific storage. -ASIO_DECL DWORD win_tss_ptr_create(); - -template -class win_tss_ptr - : private noncopyable -{ -public: - // Constructor. - win_tss_ptr() - : tss_key_(win_tss_ptr_create()) - { - } - - // Destructor. - ~win_tss_ptr() - { - ::TlsFree(tss_key_); - } - - // Get the value. - operator T*() const - { - return static_cast(::TlsGetValue(tss_key_)); - } - - // Set the value. - void operator=(T* value) - { - ::TlsSetValue(tss_key_, value); - } - -private: - // Thread-specific storage to allow unlocked access to determine whether a - // thread is a member of the pool. - DWORD tss_key_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_tss_ptr.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_WIN_TSS_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winapp_thread.hpp b/Sources/Vendor/asio/include/asio/detail/winapp_thread.hpp deleted file mode 100644 index 69dcf08..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winapp_thread.hpp +++ /dev/null @@ -1,124 +0,0 @@ -// -// detail/winapp_thread.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WINAPP_THREAD_HPP -#define ASIO_DETAIL_WINAPP_THREAD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) && defined(ASIO_WINDOWS_APP) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -DWORD WINAPI winapp_thread_function(LPVOID arg); - -class winapp_thread - : private noncopyable -{ -public: - // Constructor. - template - winapp_thread(Function f, unsigned int = 0) - { - scoped_ptr arg(new func(f)); - DWORD thread_id = 0; - thread_ = ::CreateThread(0, 0, winapp_thread_function, - arg.get(), 0, &thread_id); - if (!thread_) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "thread"); - } - arg.release(); - } - - // Destructor. - ~winapp_thread() - { - ::CloseHandle(thread_); - } - - // Wait for the thread to exit. - void join() - { - ::WaitForSingleObjectEx(thread_, INFINITE, false); - } - - // Get number of CPUs. - static std::size_t hardware_concurrency() - { - SYSTEM_INFO system_info; - ::GetNativeSystemInfo(&system_info); - return system_info.dwNumberOfProcessors; - } - -private: - friend DWORD WINAPI winapp_thread_function(LPVOID arg); - - class func_base - { - public: - virtual ~func_base() {} - virtual void run() = 0; - }; - - template - class func - : public func_base - { - public: - func(Function f) - : f_(f) - { - } - - virtual void run() - { - f_(); - } - - private: - Function f_; - }; - - ::HANDLE thread_; -}; - -inline DWORD WINAPI winapp_thread_function(LPVOID arg) -{ - scoped_ptr func( - static_cast(arg)); - func->run(); - return 0; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) && defined(ASIO_WINDOWS_APP) - -#endif // ASIO_DETAIL_WINAPP_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/wince_thread.hpp b/Sources/Vendor/asio/include/asio/detail/wince_thread.hpp deleted file mode 100644 index a2863f6..0000000 --- a/Sources/Vendor/asio/include/asio/detail/wince_thread.hpp +++ /dev/null @@ -1,124 +0,0 @@ -// -// detail/wince_thread.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WINCE_THREAD_HPP -#define ASIO_DETAIL_WINCE_THREAD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) && defined(UNDER_CE) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -DWORD WINAPI wince_thread_function(LPVOID arg); - -class wince_thread - : private noncopyable -{ -public: - // Constructor. - template - wince_thread(Function f, unsigned int = 0) - { - scoped_ptr arg(new func(f)); - DWORD thread_id = 0; - thread_ = ::CreateThread(0, 0, wince_thread_function, - arg.get(), 0, &thread_id); - if (!thread_) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "thread"); - } - arg.release(); - } - - // Destructor. - ~wince_thread() - { - ::CloseHandle(thread_); - } - - // Wait for the thread to exit. - void join() - { - ::WaitForSingleObject(thread_, INFINITE); - } - - // Get number of CPUs. - static std::size_t hardware_concurrency() - { - SYSTEM_INFO system_info; - ::GetSystemInfo(&system_info); - return system_info.dwNumberOfProcessors; - } - -private: - friend DWORD WINAPI wince_thread_function(LPVOID arg); - - class func_base - { - public: - virtual ~func_base() {} - virtual void run() = 0; - }; - - template - class func - : public func_base - { - public: - func(Function f) - : f_(f) - { - } - - virtual void run() - { - f_(); - } - - private: - Function f_; - }; - - ::HANDLE thread_; -}; - -inline DWORD WINAPI wince_thread_function(LPVOID arg) -{ - scoped_ptr func( - static_cast(arg)); - func->run(); - return 0; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) && defined(UNDER_CE) - -#endif // ASIO_DETAIL_WINCE_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_async_manager.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_async_manager.hpp deleted file mode 100644 index e22ad52..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_async_manager.hpp +++ /dev/null @@ -1,294 +0,0 @@ -// -// detail/winrt_async_manager.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WINRT_ASYNC_MANAGER_HPP -#define ASIO_DETAIL_WINRT_ASYNC_MANAGER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include -#include "asio/detail/atomic_count.hpp" -#include "asio/detail/winrt_async_op.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class winrt_async_manager - : public asio::detail::service_base -{ -public: - // Constructor. - winrt_async_manager(asio::io_context& io_context) - : asio::detail::service_base(io_context), - io_context_(use_service(io_context)), - outstanding_ops_(1) - { - } - - // Destructor. - ~winrt_async_manager() - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - if (--outstanding_ops_ > 0) - { - // Block until last operation is complete. - std::future f = promise_.get_future(); - f.wait(); - } - } - - void sync(Windows::Foundation::IAsyncAction^ action, - asio::error_code& ec) - { - using namespace Windows::Foundation; - using Windows::Foundation::AsyncStatus; - - auto promise = std::make_shared>(); - auto future = promise->get_future(); - - action->Completed = ref new AsyncActionCompletedHandler( - [promise](IAsyncAction^ action, AsyncStatus status) - { - switch (status) - { - case AsyncStatus::Canceled: - promise->set_value(asio::error::operation_aborted); - break; - case AsyncStatus::Error: - case AsyncStatus::Completed: - default: - asio::error_code ec( - action->ErrorCode.Value, - asio::system_category()); - promise->set_value(ec); - break; - } - }); - - ec = future.get(); - } - - template - TResult sync(Windows::Foundation::IAsyncOperation^ operation, - asio::error_code& ec) - { - using namespace Windows::Foundation; - using Windows::Foundation::AsyncStatus; - - auto promise = std::make_shared>(); - auto future = promise->get_future(); - - operation->Completed = ref new AsyncOperationCompletedHandler( - [promise](IAsyncOperation^ operation, AsyncStatus status) - { - switch (status) - { - case AsyncStatus::Canceled: - promise->set_value(asio::error::operation_aborted); - break; - case AsyncStatus::Error: - case AsyncStatus::Completed: - default: - asio::error_code ec( - operation->ErrorCode.Value, - asio::system_category()); - promise->set_value(ec); - break; - } - }); - - ec = future.get(); - return operation->GetResults(); - } - - template - TResult sync( - Windows::Foundation::IAsyncOperationWithProgress< - TResult, TProgress>^ operation, - asio::error_code& ec) - { - using namespace Windows::Foundation; - using Windows::Foundation::AsyncStatus; - - auto promise = std::make_shared>(); - auto future = promise->get_future(); - - operation->Completed - = ref new AsyncOperationWithProgressCompletedHandler( - [promise](IAsyncOperationWithProgress^ operation, - AsyncStatus status) - { - switch (status) - { - case AsyncStatus::Canceled: - promise->set_value(asio::error::operation_aborted); - break; - case AsyncStatus::Started: - break; - case AsyncStatus::Error: - case AsyncStatus::Completed: - default: - asio::error_code ec( - operation->ErrorCode.Value, - asio::system_category()); - promise->set_value(ec); - break; - } - }); - - ec = future.get(); - return operation->GetResults(); - } - - void async(Windows::Foundation::IAsyncAction^ action, - winrt_async_op* handler) - { - using namespace Windows::Foundation; - using Windows::Foundation::AsyncStatus; - - auto on_completed = ref new AsyncActionCompletedHandler( - [this, handler](IAsyncAction^ action, AsyncStatus status) - { - switch (status) - { - case AsyncStatus::Canceled: - handler->ec_ = asio::error::operation_aborted; - break; - case AsyncStatus::Started: - return; - case AsyncStatus::Completed: - case AsyncStatus::Error: - default: - handler->ec_ = asio::error_code( - action->ErrorCode.Value, - asio::system_category()); - break; - } - io_context_.post_deferred_completion(handler); - if (--outstanding_ops_ == 0) - promise_.set_value(); - }); - - io_context_.work_started(); - ++outstanding_ops_; - action->Completed = on_completed; - } - - template - void async(Windows::Foundation::IAsyncOperation^ operation, - winrt_async_op* handler) - { - using namespace Windows::Foundation; - using Windows::Foundation::AsyncStatus; - - auto on_completed = ref new AsyncOperationCompletedHandler( - [this, handler](IAsyncOperation^ operation, AsyncStatus status) - { - switch (status) - { - case AsyncStatus::Canceled: - handler->ec_ = asio::error::operation_aborted; - break; - case AsyncStatus::Started: - return; - case AsyncStatus::Completed: - handler->result_ = operation->GetResults(); - // Fall through. - case AsyncStatus::Error: - default: - handler->ec_ = asio::error_code( - operation->ErrorCode.Value, - asio::system_category()); - break; - } - io_context_.post_deferred_completion(handler); - if (--outstanding_ops_ == 0) - promise_.set_value(); - }); - - io_context_.work_started(); - ++outstanding_ops_; - operation->Completed = on_completed; - } - - template - void async( - Windows::Foundation::IAsyncOperationWithProgress< - TResult, TProgress>^ operation, - winrt_async_op* handler) - { - using namespace Windows::Foundation; - using Windows::Foundation::AsyncStatus; - - auto on_completed - = ref new AsyncOperationWithProgressCompletedHandler( - [this, handler](IAsyncOperationWithProgress< - TResult, TProgress>^ operation, AsyncStatus status) - { - switch (status) - { - case AsyncStatus::Canceled: - handler->ec_ = asio::error::operation_aborted; - break; - case AsyncStatus::Started: - return; - case AsyncStatus::Completed: - handler->result_ = operation->GetResults(); - // Fall through. - case AsyncStatus::Error: - default: - handler->ec_ = asio::error_code( - operation->ErrorCode.Value, - asio::system_category()); - break; - } - io_context_.post_deferred_completion(handler); - if (--outstanding_ops_ == 0) - promise_.set_value(); - }); - - io_context_.work_started(); - ++outstanding_ops_; - operation->Completed = on_completed; - } - -private: - // The io_context implementation used to post completed handlers. - io_context_impl& io_context_; - - // Count of outstanding operations. - atomic_count outstanding_ops_; - - // Used to keep wait for outstanding operations to complete. - std::promise promise_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_ASYNC_MANAGER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_async_op.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_async_op.hpp deleted file mode 100644 index 75891a4..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_async_op.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// -// detail/winrt_async_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WINRT_ASYNC_OP_HPP -#define ASIO_DETAIL_WINRT_ASYNC_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class winrt_async_op - : public operation -{ -public: - // The error code to be passed to the completion handler. - asio::error_code ec_; - - // The result of the operation, to be passed to the completion handler. - TResult result_; - -protected: - winrt_async_op(func_type complete_func) - : operation(complete_func), - result_() - { - } -}; - -template <> -class winrt_async_op - : public operation -{ -public: - // The error code to be passed to the completion handler. - asio::error_code ec_; - -protected: - winrt_async_op(func_type complete_func) - : operation(complete_func) - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_WINRT_ASYNC_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_resolve_op.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_resolve_op.hpp deleted file mode 100644 index 07efd29..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_resolve_op.hpp +++ /dev/null @@ -1,118 +0,0 @@ -// -// detail/winrt_resolve_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WINRT_RESOLVE_OP_HPP -#define ASIO_DETAIL_WINRT_RESOLVE_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/winrt_async_op.hpp" -#include "asio/ip/basic_resolver_results.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class winrt_resolve_op : - public winrt_async_op< - Windows::Foundation::Collections::IVectorView< - Windows::Networking::EndpointPair^>^> -{ -public: - ASIO_DEFINE_HANDLER_PTR(winrt_resolve_op); - - typedef typename Protocol::endpoint endpoint_type; - typedef asio::ip::basic_resolver_query query_type; - typedef asio::ip::basic_resolver_results results_type; - - winrt_resolve_op(const query_type& query, Handler& handler) - : winrt_async_op< - Windows::Foundation::Collections::IVectorView< - Windows::Networking::EndpointPair^>^>( - &winrt_resolve_op::do_complete), - query_(query), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code&, std::size_t) - { - // Take ownership of the operation object. - winrt_resolve_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - results_type results = results_type(); - if (!o->ec_) - { - try - { - results = results_type::create(o->result_, o->query_.hints(), - o->query_.host_name(), o->query_.service_name()); - } - catch (Platform::Exception^ e) - { - o->ec_ = asio::error_code(e->HResult, - asio::system_category()); - } - } - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, results); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, "...")); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - query_type query_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_RESOLVE_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_resolver_service.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_resolver_service.hpp deleted file mode 100644 index aeb4448..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_resolver_service.hpp +++ /dev/null @@ -1,198 +0,0 @@ -// -// detail/winrt_resolver_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WINRT_RESOLVER_SERVICE_HPP -#define ASIO_DETAIL_WINRT_RESOLVER_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/basic_resolver_results.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/winrt_async_manager.hpp" -#include "asio/detail/winrt_resolve_op.hpp" -#include "asio/detail/winrt_utils.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class winrt_resolver_service : - public service_base > -{ -public: - // The implementation type of the resolver. A cancellation token is used to - // indicate to the asynchronous operation that the operation has been - // cancelled. - typedef socket_ops::shared_cancel_token_type implementation_type; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // The query type. - typedef asio::ip::basic_resolver_query query_type; - - // The results type. - typedef asio::ip::basic_resolver_results results_type; - - // Constructor. - winrt_resolver_service(asio::io_context& io_context) - : service_base >(io_context), - io_context_(use_service(io_context)), - async_manager_(use_service(io_context)) - { - } - - // Destructor. - ~winrt_resolver_service() - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - } - - // Perform any fork-related housekeeping. - void notify_fork(asio::io_context::fork_event) - { - } - - // Construct a new resolver implementation. - void construct(implementation_type&) - { - } - - // Move-construct a new resolver implementation. - void move_construct(implementation_type&, - implementation_type&) - { - } - - // Move-assign from another resolver implementation. - void move_assign(implementation_type&, - winrt_resolver_service&, implementation_type&) - { - } - - // Destroy a resolver implementation. - void destroy(implementation_type&) - { - } - - // Cancel pending asynchronous operations. - void cancel(implementation_type&) - { - } - - // Resolve a query to a list of entries. - results_type resolve(implementation_type&, - const query_type& query, asio::error_code& ec) - { - try - { - using namespace Windows::Networking::Sockets; - auto endpoint_pairs = async_manager_.sync( - DatagramSocket::GetEndpointPairsAsync( - winrt_utils::host_name(query.host_name()), - winrt_utils::string(query.service_name())), ec); - - if (ec) - return results_type(); - - return results_type::create( - endpoint_pairs, query.hints(), - query.host_name(), query.service_name()); - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - return results_type(); - } - } - - // Asynchronously resolve a query to a list of entries. - template - void async_resolve(implementation_type& impl, - const query_type& query, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef winrt_resolve_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(query, handler); - - ASIO_HANDLER_CREATION((io_context_.context(), - *p.p, "resolver", &impl, 0, "async_resolve")); - (void)impl; - - try - { - using namespace Windows::Networking::Sockets; - async_manager_.async(DatagramSocket::GetEndpointPairsAsync( - winrt_utils::host_name(query.host_name()), - winrt_utils::string(query.service_name())), p.p); - p.v = p.p = 0; - } - catch (Platform::Exception^ e) - { - p.p->ec_ = asio::error_code( - e->HResult, asio::system_category()); - io_context_.post_immediate_completion(p.p, is_continuation); - p.v = p.p = 0; - } - } - - // Resolve an endpoint to a list of entries. - results_type resolve(implementation_type&, - const endpoint_type&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return results_type(); - } - - // Asynchronously resolve an endpoint to a list of entries. - template - void async_resolve(implementation_type&, - const endpoint_type&, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const results_type results; - io_context_.get_io_context().post( - detail::bind_handler(handler, ec, results)); - } - -private: - io_context_impl& io_context_; - winrt_async_manager& async_manager_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_RESOLVER_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_socket_connect_op.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_socket_connect_op.hpp deleted file mode 100644 index f18b445..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_socket_connect_op.hpp +++ /dev/null @@ -1,92 +0,0 @@ -// -// detail/winrt_socket_connect_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WINRT_SOCKET_CONNECT_OP_HPP -#define ASIO_DETAIL_WINRT_SOCKET_CONNECT_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/winrt_async_op.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class winrt_socket_connect_op : - public winrt_async_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(winrt_socket_connect_op); - - winrt_socket_connect_op(Handler& handler) - : winrt_async_op(&winrt_socket_connect_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code&, std::size_t) - { - // Take ownership of the operation object. - winrt_socket_connect_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(o->handler_, o->ec_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_SOCKET_CONNECT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_socket_recv_op.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_socket_recv_op.hpp deleted file mode 100644 index 8f1fcf5..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_socket_recv_op.hpp +++ /dev/null @@ -1,112 +0,0 @@ -// -// detail/winrt_socket_recv_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WINRT_SOCKET_RECV_OP_HPP -#define ASIO_DETAIL_WINRT_SOCKET_RECV_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/winrt_async_op.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class winrt_socket_recv_op : - public winrt_async_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(winrt_socket_recv_op); - - winrt_socket_recv_op(const MutableBufferSequence& buffers, Handler& handler) - : winrt_async_op( - &winrt_socket_recv_op::do_complete), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code&, std::size_t) - { - // Take ownership of the operation object. - winrt_socket_recv_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - if (owner) - { - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - std::size_t bytes_transferred = o->result_ ? o->result_->Length : 0; - if (bytes_transferred == 0 && !o->ec_ && - !buffer_sequence_adapter::all_empty(o->buffers_)) - { - o->ec_ = asio::error::eof; - } - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - MutableBufferSequence buffers_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_SOCKET_RECV_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_socket_send_op.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_socket_send_op.hpp deleted file mode 100644 index 1148c24..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_socket_send_op.hpp +++ /dev/null @@ -1,103 +0,0 @@ -// -// detail/winrt_socket_send_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WINRT_SOCKET_SEND_OP_HPP -#define ASIO_DETAIL_WINRT_SOCKET_SEND_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/winrt_async_op.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class winrt_socket_send_op : - public winrt_async_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(winrt_socket_send_op); - - winrt_socket_send_op(const ConstBufferSequence& buffers, Handler& handler) - : winrt_async_op(&winrt_socket_send_op::do_complete), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code&, std::size_t) - { - // Take ownership of the operation object. - winrt_socket_send_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - if (owner) - { - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->result_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - ConstBufferSequence buffers_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_SOCKET_SEND_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_ssocket_service.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_ssocket_service.hpp deleted file mode 100644 index 603724a..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_ssocket_service.hpp +++ /dev/null @@ -1,241 +0,0 @@ -// -// detail/winrt_ssocket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WINRT_SSOCKET_SERVICE_HPP -#define ASIO_DETAIL_WINRT_SSOCKET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/winrt_socket_connect_op.hpp" -#include "asio/detail/winrt_ssocket_service_base.hpp" -#include "asio/detail/winrt_utils.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class winrt_ssocket_service : - public service_base >, - public winrt_ssocket_service_base -{ -public: - // The protocol type. - typedef Protocol protocol_type; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // The native type of a socket. - typedef Windows::Networking::Sockets::StreamSocket^ native_handle_type; - - // The implementation type of the socket. - struct implementation_type : base_implementation_type - { - // Default constructor. - implementation_type() - : base_implementation_type(), - protocol_(endpoint_type().protocol()) - { - } - - // The protocol associated with the socket. - protocol_type protocol_; - }; - - // Constructor. - winrt_ssocket_service(asio::io_context& io_context) - : service_base >(io_context), - winrt_ssocket_service_base(io_context) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - this->base_shutdown(); - } - - // Move-construct a new socket implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - this->base_move_construct(impl, other_impl); - - impl.protocol_ = other_impl.protocol_; - other_impl.protocol_ = endpoint_type().protocol(); - } - - // Move-assign from another socket implementation. - void move_assign(implementation_type& impl, - winrt_ssocket_service& other_service, - implementation_type& other_impl) - { - this->base_move_assign(impl, other_service, other_impl); - - impl.protocol_ = other_impl.protocol_; - other_impl.protocol_ = endpoint_type().protocol(); - } - - // Move-construct a new socket implementation from another protocol type. - template - void converting_move_construct(implementation_type& impl, - winrt_ssocket_service&, - typename winrt_ssocket_service< - Protocol1>::implementation_type& other_impl) - { - this->base_move_construct(impl, other_impl); - - impl.protocol_ = protocol_type(other_impl.protocol_); - other_impl.protocol_ = typename Protocol1::endpoint().protocol(); - } - - // Open a new socket implementation. - asio::error_code open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - try - { - impl.socket_ = ref new Windows::Networking::Sockets::StreamSocket; - impl.protocol_ = protocol; - ec = asio::error_code(); - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - } - - return ec; - } - - // Assign a native socket to a socket implementation. - asio::error_code assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_socket, - asio::error_code& ec) - { - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - impl.socket_ = native_socket; - impl.protocol_ = protocol; - ec = asio::error_code(); - - return ec; - } - - // Bind the socket to the specified local endpoint. - asio::error_code bind(implementation_type&, - const endpoint_type&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - endpoint_type endpoint; - endpoint.resize(do_get_endpoint(impl, true, - endpoint.data(), endpoint.size(), ec)); - return endpoint; - } - - // Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - endpoint_type endpoint; - endpoint.resize(do_get_endpoint(impl, false, - endpoint.data(), endpoint.size(), ec)); - return endpoint; - } - - // Set a socket option. - template - asio::error_code set_option(implementation_type& impl, - const Option& option, asio::error_code& ec) - { - return do_set_option(impl, option.level(impl.protocol_), - option.name(impl.protocol_), option.data(impl.protocol_), - option.size(impl.protocol_), ec); - } - - // Get a socket option. - template - asio::error_code get_option(const implementation_type& impl, - Option& option, asio::error_code& ec) const - { - std::size_t size = option.size(impl.protocol_); - do_get_option(impl, option.level(impl.protocol_), - option.name(impl.protocol_), - option.data(impl.protocol_), &size, ec); - if (!ec) - option.resize(impl.protocol_, size); - return ec; - } - - // Connect the socket to the specified endpoint. - asio::error_code connect(implementation_type& impl, - const endpoint_type& peer_endpoint, asio::error_code& ec) - { - return do_connect(impl, peer_endpoint.data(), ec); - } - - // Start an asynchronous connect. - template - void async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef winrt_socket_connect_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((io_context_.context(), - *p.p, "socket", &impl, 0, "async_connect")); - - start_connect_op(impl, peer_endpoint.data(), p.p, is_continuation); - p.v = p.p = 0; - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_SSOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_ssocket_service_base.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_ssocket_service_base.hpp deleted file mode 100644 index 61328d0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_ssocket_service_base.hpp +++ /dev/null @@ -1,359 +0,0 @@ -// -// detail/winrt_ssocket_service_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WINRT_SSOCKET_SERVICE_BASE_HPP -#define ASIO_DETAIL_WINRT_SSOCKET_SERVICE_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/buffer.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/socket_base.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/winrt_async_manager.hpp" -#include "asio/detail/winrt_socket_recv_op.hpp" -#include "asio/detail/winrt_socket_send_op.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class winrt_ssocket_service_base -{ -public: - // The native type of a socket. - typedef Windows::Networking::Sockets::StreamSocket^ native_handle_type; - - // The implementation type of the socket. - struct base_implementation_type - { - // Default constructor. - base_implementation_type() - : socket_(nullptr), - next_(0), - prev_(0) - { - } - - // The underlying native socket. - native_handle_type socket_; - - // Pointers to adjacent socket implementations in linked list. - base_implementation_type* next_; - base_implementation_type* prev_; - }; - - // Constructor. - ASIO_DECL winrt_ssocket_service_base( - asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void base_shutdown(); - - // Construct a new socket implementation. - ASIO_DECL void construct(base_implementation_type&); - - // Move-construct a new socket implementation. - ASIO_DECL void base_move_construct(base_implementation_type& impl, - base_implementation_type& other_impl); - - // Move-assign from another socket implementation. - ASIO_DECL void base_move_assign(base_implementation_type& impl, - winrt_ssocket_service_base& other_service, - base_implementation_type& other_impl); - - // Destroy a socket implementation. - ASIO_DECL void destroy(base_implementation_type& impl); - - // Determine whether the socket is open. - bool is_open(const base_implementation_type& impl) const - { - return impl.socket_ != nullptr; - } - - // Destroy a socket implementation. - ASIO_DECL asio::error_code close( - base_implementation_type& impl, asio::error_code& ec); - - // Release ownership of the socket. - ASIO_DECL native_handle_type release( - base_implementation_type& impl, asio::error_code& ec); - - // Get the native socket representation. - native_handle_type native_handle(base_implementation_type& impl) - { - return impl.socket_; - } - - // Cancel all operations associated with the socket. - asio::error_code cancel(base_implementation_type&, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Determine whether the socket is at the out-of-band data mark. - bool at_mark(const base_implementation_type&, - asio::error_code& ec) const - { - ec = asio::error::operation_not_supported; - return false; - } - - // Determine the number of bytes available for reading. - std::size_t available(const base_implementation_type&, - asio::error_code& ec) const - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Perform an IO control command on the socket. - template - asio::error_code io_control(base_implementation_type&, - IO_Control_Command&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Gets the non-blocking mode of the socket. - bool non_blocking(const base_implementation_type&) const - { - return false; - } - - // Sets the non-blocking mode of the socket. - asio::error_code non_blocking(base_implementation_type&, - bool, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const base_implementation_type&) const - { - return false; - } - - // Sets the non-blocking mode of the native socket implementation. - asio::error_code native_non_blocking(base_implementation_type&, - bool, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Disable sends or receives on the socket. - asio::error_code shutdown(base_implementation_type&, - socket_base::shutdown_type, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Send the given data to the peer. - template - std::size_t send(base_implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return do_send(impl, - buffer_sequence_adapter::first(buffers), flags, ec); - } - - // Wait until data can be sent without blocking. - std::size_t send(base_implementation_type&, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send(base_implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef winrt_socket_send_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(buffers, handler); - - ASIO_HANDLER_CREATION((io_context_.context(), - *p.p, "socket", &impl, 0, "async_send")); - - start_send_op(impl, - buffer_sequence_adapter::first(buffers), - flags, p.p, is_continuation); - p.v = p.p = 0; - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send(base_implementation_type&, const null_buffers&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.get_io_context().post( - detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Receive some data from the peer. Returns the number of bytes received. - template - std::size_t receive(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return do_receive(impl, - buffer_sequence_adapter::first(buffers), flags, ec); - } - - // Wait until data can be received without blocking. - std::size_t receive(base_implementation_type&, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef winrt_socket_recv_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(buffers, handler); - - ASIO_HANDLER_CREATION((io_context_.context(), - *p.p, "socket", &impl, 0, "async_receive")); - - start_receive_op(impl, - buffer_sequence_adapter::first(buffers), - flags, p.p, is_continuation); - p.v = p.p = 0; - } - - // Wait until data can be received without blocking. - template - void async_receive(base_implementation_type&, const null_buffers&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.get_io_context().post( - detail::bind_handler(handler, ec, bytes_transferred)); - } - -protected: - // Helper function to obtain endpoints associated with the connection. - ASIO_DECL std::size_t do_get_endpoint( - const base_implementation_type& impl, bool local, - void* addr, std::size_t addr_len, asio::error_code& ec) const; - - // Helper function to set a socket option. - ASIO_DECL asio::error_code do_set_option( - base_implementation_type& impl, - int level, int optname, const void* optval, - std::size_t optlen, asio::error_code& ec); - - // Helper function to get a socket option. - ASIO_DECL void do_get_option( - const base_implementation_type& impl, - int level, int optname, void* optval, - std::size_t* optlen, asio::error_code& ec) const; - - // Helper function to perform a synchronous connect. - ASIO_DECL asio::error_code do_connect( - base_implementation_type& impl, - const void* addr, asio::error_code& ec); - - // Helper function to start an asynchronous connect. - ASIO_DECL void start_connect_op( - base_implementation_type& impl, const void* addr, - winrt_async_op* op, bool is_continuation); - - // Helper function to perform a synchronous send. - ASIO_DECL std::size_t do_send( - base_implementation_type& impl, const asio::const_buffer& data, - socket_base::message_flags flags, asio::error_code& ec); - - // Helper function to start an asynchronous send. - ASIO_DECL void start_send_op(base_implementation_type& impl, - const asio::const_buffer& data, socket_base::message_flags flags, - winrt_async_op* op, bool is_continuation); - - // Helper function to perform a synchronous receive. - ASIO_DECL std::size_t do_receive( - base_implementation_type& impl, const asio::mutable_buffer& data, - socket_base::message_flags flags, asio::error_code& ec); - - // Helper function to start an asynchronous receive. - ASIO_DECL void start_receive_op(base_implementation_type& impl, - const asio::mutable_buffer& data, socket_base::message_flags flags, - winrt_async_op* op, - bool is_continuation); - - // The io_context implementation used for delivering completions. - io_context_impl& io_context_; - - // The manager that keeps track of outstanding operations. - winrt_async_manager& async_manager_; - - // Mutex to protect access to the linked list of implementations. - asio::detail::mutex mutex_; - - // The head of a linked list of all implementations. - base_implementation_type* impl_list_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/winrt_ssocket_service_base.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_SSOCKET_SERVICE_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_timer_scheduler.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_timer_scheduler.hpp deleted file mode 100644 index 5dec7c0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_timer_scheduler.hpp +++ /dev/null @@ -1,137 +0,0 @@ -// -// detail/winrt_timer_scheduler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WINRT_TIMER_SCHEDULER_HPP -#define ASIO_DETAIL_WINRT_TIMER_SCHEDULER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include -#include "asio/detail/event.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/thread.hpp" -#include "asio/detail/timer_queue_base.hpp" -#include "asio/detail/timer_queue_set.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_HAS_IOCP) -# include "asio/detail/thread.hpp" -#endif // defined(ASIO_HAS_IOCP) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class winrt_timer_scheduler - : public asio::detail::service_base -{ -public: - // Constructor. - ASIO_DECL winrt_timer_scheduler(asio::io_context& io_context); - - // Destructor. - ASIO_DECL ~winrt_timer_scheduler(); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Recreate internal descriptors following a fork. - ASIO_DECL void notify_fork( - asio::io_context::fork_event fork_ev); - - // Initialise the task. No effect as this class uses its own thread. - ASIO_DECL void init_task(); - - // Add a new timer queue to the reactor. - template - void add_timer_queue(timer_queue& queue); - - // Remove a timer queue from the reactor. - template - void remove_timer_queue(timer_queue& queue); - - // Schedule a new operation in the given timer queue to expire at the - // specified absolute time. - template - void schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op); - - // Cancel the timer operations associated with the given token. Returns the - // number of operations that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled = (std::numeric_limits::max)()); - - // Move the timer operations associated with the given timer. - template - void move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& to, - typename timer_queue::per_timer_data& from); - -private: - // Run the select loop in the thread. - ASIO_DECL void run_thread(); - - // Entry point for the select loop thread. - ASIO_DECL static void call_run_thread(winrt_timer_scheduler* reactor); - - // Helper function to add a new timer queue. - ASIO_DECL void do_add_timer_queue(timer_queue_base& queue); - - // Helper function to remove a timer queue. - ASIO_DECL void do_remove_timer_queue(timer_queue_base& queue); - - // The io_context implementation used to post completions. - io_context_impl& io_context_; - - // Mutex used to protect internal variables. - asio::detail::mutex mutex_; - - // Event used to wake up background thread. - asio::detail::event event_; - - // The timer queues. - timer_queue_set timer_queues_; - - // The background thread that is waiting for timers to expire. - asio::detail::thread* thread_; - - // Does the background thread need to stop. - bool stop_thread_; - - // Whether the service has been shut down. - bool shutdown_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/winrt_timer_scheduler.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/winrt_timer_scheduler.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_TIMER_SCHEDULER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_utils.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_utils.hpp deleted file mode 100644 index 22a2489..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_utils.hpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// detail/winrt_utils.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WINRT_UTILS_HPP -#define ASIO_DETAIL_WINRT_UTILS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include -#include -#include -#include -#include -#include -#include -#include "asio/buffer.hpp" -#include "asio/error_code.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { -namespace winrt_utils { - -inline Platform::String^ string(const char* from) -{ - std::wstring tmp(from, from + std::strlen(from)); - return ref new Platform::String(tmp.c_str()); -} - -inline Platform::String^ string(const std::string& from) -{ - std::wstring tmp(from.begin(), from.end()); - return ref new Platform::String(tmp.c_str()); -} - -inline std::string string(Platform::String^ from) -{ - std::wstring_convert> converter; - return converter.to_bytes(from->Data()); -} - -inline Platform::String^ string(unsigned short from) -{ - return string(std::to_string(from)); -} - -template -inline Platform::String^ string(const T& from) -{ - return string(from.to_string()); -} - -inline int integer(Platform::String^ from) -{ - return _wtoi(from->Data()); -} - -template -inline Windows::Networking::HostName^ host_name(const T& from) -{ - return ref new Windows::Networking::HostName((string)(from)); -} - -template -inline Windows::Storage::Streams::IBuffer^ buffer_dup( - const ConstBufferSequence& buffers) -{ - using Microsoft::WRL::ComPtr; - using asio::buffer_size; - std::size_t size = buffer_size(buffers); - auto b = ref new Windows::Storage::Streams::Buffer(size); - ComPtr insp = reinterpret_cast(b); - ComPtr bacc; - insp.As(&bacc); - byte* bytes = nullptr; - bacc->Buffer(&bytes); - asio::buffer_copy(asio::buffer(bytes, size), buffers); - b->Length = size; - return b; -} - -} // namespace winrt_utils -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_UTILS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winsock_init.hpp b/Sources/Vendor/asio/include/asio/detail/winsock_init.hpp deleted file mode 100644 index 9094363..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winsock_init.hpp +++ /dev/null @@ -1,128 +0,0 @@ -// -// detail/winsock_init.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WINSOCK_INIT_HPP -#define ASIO_DETAIL_WINSOCK_INIT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class winsock_init_base -{ -protected: - // Structure to track result of initialisation and number of uses. POD is used - // to ensure that the values are zero-initialised prior to any code being run. - struct data - { - long init_count_; - long result_; - }; - - ASIO_DECL static void startup(data& d, - unsigned char major, unsigned char minor); - - ASIO_DECL static void manual_startup(data& d); - - ASIO_DECL static void cleanup(data& d); - - ASIO_DECL static void manual_cleanup(data& d); - - ASIO_DECL static void throw_on_error(data& d); -}; - -template -class winsock_init : private winsock_init_base -{ -public: - winsock_init(bool allow_throw = true) - { - startup(data_, Major, Minor); - if (allow_throw) - throw_on_error(data_); - } - - winsock_init(const winsock_init&) - { - startup(data_, Major, Minor); - throw_on_error(data_); - } - - ~winsock_init() - { - cleanup(data_); - } - - // This class may be used to indicate that user code will manage Winsock - // initialisation and cleanup. This may be required in the case of a DLL, for - // example, where it is not safe to initialise Winsock from global object - // constructors. - // - // To prevent asio from initialising Winsock, the object must be constructed - // before any Asio's own global objects. With MSVC, this may be accomplished - // by adding the following code to the DLL: - // - // #pragma warning(push) - // #pragma warning(disable:4073) - // #pragma init_seg(lib) - // asio::detail::winsock_init<>::manual manual_winsock_init; - // #pragma warning(pop) - class manual - { - public: - manual() - { - manual_startup(data_); - } - - manual(const manual&) - { - manual_startup(data_); - } - - ~manual() - { - manual_cleanup(data_); - } - }; - -private: - friend class manual; - static data data_; -}; - -template -winsock_init_base::data winsock_init::data_; - -// Static variable to ensure that winsock is initialised before main, and -// therefore before any other threads can get started. -static const winsock_init<>& winsock_init_instance = winsock_init<>(false); - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/winsock_init.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#endif // ASIO_DETAIL_WINSOCK_INIT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/work_dispatcher.hpp b/Sources/Vendor/asio/include/asio/detail/work_dispatcher.hpp deleted file mode 100644 index 7abce49..0000000 --- a/Sources/Vendor/asio/include/asio/detail/work_dispatcher.hpp +++ /dev/null @@ -1,72 +0,0 @@ -// -// detail/work_dispatcher.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WORK_DISPATCHER_HPP -#define ASIO_DETAIL_WORK_DISPATCHER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_executor.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/executor_work_guard.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class work_dispatcher -{ -public: - work_dispatcher(Handler& handler) - : work_((get_associated_executor)(handler)), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - work_dispatcher(const work_dispatcher& other) - : work_(other.work_), - handler_(other.handler_) - { - } - - work_dispatcher(work_dispatcher&& other) - : work_(ASIO_MOVE_CAST(executor_work_guard< - typename associated_executor::type>)(other.work_)), - handler_(ASIO_MOVE_CAST(Handler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - typename associated_allocator::type alloc( - (get_associated_allocator)(handler_)); - work_.get_executor().dispatch( - ASIO_MOVE_CAST(Handler)(handler_), alloc); - work_.reset(); - } - -private: - executor_work_guard::type> work_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_WORK_DISPATCHER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/wrapped_handler.hpp b/Sources/Vendor/asio/include/asio/detail/wrapped_handler.hpp deleted file mode 100644 index 751f0ea..0000000 --- a/Sources/Vendor/asio/include/asio/detail/wrapped_handler.hpp +++ /dev/null @@ -1,291 +0,0 @@ -// -// detail/wrapped_handler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DETAIL_WRAPPED_HANDLER_HPP -#define ASIO_DETAIL_WRAPPED_HANDLER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct is_continuation_delegated -{ - template - bool operator()(Dispatcher&, Handler& handler) const - { - return asio_handler_cont_helpers::is_continuation(handler); - } -}; - -struct is_continuation_if_running -{ - template - bool operator()(Dispatcher& dispatcher, Handler&) const - { - return dispatcher.running_in_this_thread(); - } -}; - -template -class wrapped_handler -{ -public: - typedef void result_type; - - wrapped_handler(Dispatcher dispatcher, Handler& handler) - : dispatcher_(dispatcher), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - wrapped_handler(const wrapped_handler& other) - : dispatcher_(other.dispatcher_), - handler_(other.handler_) - { - } - - wrapped_handler(wrapped_handler&& other) - : dispatcher_(other.dispatcher_), - handler_(ASIO_MOVE_CAST(Handler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - dispatcher_.dispatch(ASIO_MOVE_CAST(Handler)(handler_)); - } - - void operator()() const - { - dispatcher_.dispatch(handler_); - } - - template - void operator()(const Arg1& arg1) - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1)); - } - - template - void operator()(const Arg1& arg1) const - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2) - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1, arg2)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2) const - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1, arg2)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3) - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1, arg2, arg3)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3) const - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1, arg2, arg3)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3, - const Arg4& arg4) - { - dispatcher_.dispatch( - detail::bind_handler(handler_, arg1, arg2, arg3, arg4)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3, - const Arg4& arg4) const - { - dispatcher_.dispatch( - detail::bind_handler(handler_, arg1, arg2, arg3, arg4)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3, - const Arg4& arg4, const Arg5& arg5) - { - dispatcher_.dispatch( - detail::bind_handler(handler_, arg1, arg2, arg3, arg4, arg5)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3, - const Arg4& arg4, const Arg5& arg5) const - { - dispatcher_.dispatch( - detail::bind_handler(handler_, arg1, arg2, arg3, arg4, arg5)); - } - -//private: - Dispatcher dispatcher_; - Handler handler_; -}; - -template -class rewrapped_handler -{ -public: - explicit rewrapped_handler(Handler& handler, const Context& context) - : context_(context), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - } - - explicit rewrapped_handler(const Handler& handler, const Context& context) - : context_(context), - handler_(handler) - { - } - -#if defined(ASIO_HAS_MOVE) - rewrapped_handler(const rewrapped_handler& other) - : context_(other.context_), - handler_(other.handler_) - { - } - - rewrapped_handler(rewrapped_handler&& other) - : context_(ASIO_MOVE_CAST(Context)(other.context_)), - handler_(ASIO_MOVE_CAST(Handler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - handler_(); - } - - void operator()() const - { - handler_(); - } - -//private: - Context context_; - Handler handler_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - wrapped_handler* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - wrapped_handler* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - wrapped_handler* this_handler) -{ - return IsContinuation()(this_handler->dispatcher_, this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - wrapped_handler* this_handler) -{ - this_handler->dispatcher_.dispatch( - rewrapped_handler( - function, this_handler->handler_)); -} - -template -inline void asio_handler_invoke(const Function& function, - wrapped_handler* this_handler) -{ - this_handler->dispatcher_.dispatch( - rewrapped_handler( - function, this_handler->handler_)); -} - -template -inline void* asio_handler_allocate(std::size_t size, - rewrapped_handler* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->context_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - rewrapped_handler* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->context_); -} - -template -inline bool asio_handler_is_continuation( - rewrapped_handler* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->context_); -} - -template -inline void asio_handler_invoke(Function& function, - rewrapped_handler* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->context_); -} - -template -inline void asio_handler_invoke(const Function& function, - rewrapped_handler* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->context_); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_WRAPPED_HANDLER_HPP diff --git a/Sources/Vendor/asio/include/asio/dispatch.hpp b/Sources/Vendor/asio/include/asio/dispatch.hpp deleted file mode 100644 index b8dfd69..0000000 --- a/Sources/Vendor/asio/include/asio/dispatch.hpp +++ /dev/null @@ -1,108 +0,0 @@ -// -// dispatch.hpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_DISPATCH_HPP -#define ASIO_DISPATCH_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/execution_context.hpp" -#include "asio/is_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Submits a completion token or function object for execution. -/** - * This function submits an object for execution using the object's associated - * executor. The function object is queued for execution, and is never called - * from the current thread prior to returning from dispatch(). - * - * This function has the following effects: - * - * @li Constructs a function object handler of type @c Handler, initialized - * with handler(forward(token)). - * - * @li Constructs an object @c result of type async_result, - * initializing the object as result(handler). - * - * @li Obtains the handler's associated executor object @c ex by performing - * get_associated_executor(handler). - * - * @li Obtains the handler's associated allocator object @c alloc by performing - * get_associated_allocator(handler). - * - * @li Performs ex.dispatch(std::move(handler), alloc). - * - * @li Returns result.get(). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) dispatch( - ASIO_MOVE_ARG(CompletionToken) token); - -/// Submits a completion token or function object for execution. -/** - * This function submits an object for execution using the specified executor. - * The function object is queued for execution, and is never called from the - * current thread prior to returning from dispatch(). - * - * This function has the following effects: - * - * @li Constructs a function object handler of type @c Handler, initialized - * with handler(forward(token)). - * - * @li Constructs an object @c result of type async_result, - * initializing the object as result(handler). - * - * @li Obtains the handler's associated executor object @c ex1 by performing - * get_associated_executor(handler). - * - * @li Creates a work object @c w by performing make_work(ex1). - * - * @li Obtains the handler's associated allocator object @c alloc by performing - * get_associated_allocator(handler). - * - * @li Constructs a function object @c f with a function call operator that - * performs ex1.dispatch(std::move(handler), alloc) followed by - * w.reset(). - * - * @li Performs Executor(ex).dispatch(std::move(f), alloc). - * - * @li Returns result.get(). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) dispatch( - const Executor& ex, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type* = 0); - -/// Submits a completion token or function object for execution. -/** - * @returns dispatch(ctx.get_executor(), - * forward(token)). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) dispatch( - ExecutionContext& ctx, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type* = 0); - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/dispatch.hpp" - -#endif // ASIO_DISPATCH_HPP diff --git a/Sources/Vendor/asio/include/asio/error.hpp b/Sources/Vendor/asio/include/asio/error.hpp deleted file mode 100644 index 2be9bde..0000000 --- a/Sources/Vendor/asio/include/asio/error.hpp +++ /dev/null @@ -1,356 +0,0 @@ -// -// error.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_ERROR_HPP -#define ASIO_ERROR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/error_code.hpp" -#include "asio/system_error.hpp" -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(ASIO_WINDOWS_RUNTIME) -# include -#else -# include -# include -#endif - -#if defined(GENERATING_DOCUMENTATION) -/// INTERNAL ONLY. -# define ASIO_NATIVE_ERROR(e) implementation_defined -/// INTERNAL ONLY. -# define ASIO_SOCKET_ERROR(e) implementation_defined -/// INTERNAL ONLY. -# define ASIO_NETDB_ERROR(e) implementation_defined -/// INTERNAL ONLY. -# define ASIO_GETADDRINFO_ERROR(e) implementation_defined -/// INTERNAL ONLY. -# define ASIO_WIN_OR_POSIX(e_win, e_posix) implementation_defined -#elif defined(ASIO_WINDOWS_RUNTIME) -# define ASIO_NATIVE_ERROR(e) __HRESULT_FROM_WIN32(e) -# define ASIO_SOCKET_ERROR(e) __HRESULT_FROM_WIN32(WSA ## e) -# define ASIO_NETDB_ERROR(e) __HRESULT_FROM_WIN32(WSA ## e) -# define ASIO_GETADDRINFO_ERROR(e) __HRESULT_FROM_WIN32(WSA ## e) -# define ASIO_WIN_OR_POSIX(e_win, e_posix) e_win -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# define ASIO_NATIVE_ERROR(e) e -# define ASIO_SOCKET_ERROR(e) WSA ## e -# define ASIO_NETDB_ERROR(e) WSA ## e -# define ASIO_GETADDRINFO_ERROR(e) WSA ## e -# define ASIO_WIN_OR_POSIX(e_win, e_posix) e_win -#else -# define ASIO_NATIVE_ERROR(e) e -# define ASIO_SOCKET_ERROR(e) e -# define ASIO_NETDB_ERROR(e) e -# define ASIO_GETADDRINFO_ERROR(e) e -# define ASIO_WIN_OR_POSIX(e_win, e_posix) e_posix -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace error { - -enum basic_errors -{ - /// Permission denied. - access_denied = ASIO_SOCKET_ERROR(EACCES), - - /// Address family not supported by protocol. - address_family_not_supported = ASIO_SOCKET_ERROR(EAFNOSUPPORT), - - /// Address already in use. - address_in_use = ASIO_SOCKET_ERROR(EADDRINUSE), - - /// Transport endpoint is already connected. - already_connected = ASIO_SOCKET_ERROR(EISCONN), - - /// Operation already in progress. - already_started = ASIO_SOCKET_ERROR(EALREADY), - - /// Broken pipe. - broken_pipe = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(ERROR_BROKEN_PIPE), - ASIO_NATIVE_ERROR(EPIPE)), - - /// A connection has been aborted. - connection_aborted = ASIO_SOCKET_ERROR(ECONNABORTED), - - /// Connection refused. - connection_refused = ASIO_SOCKET_ERROR(ECONNREFUSED), - - /// Connection reset by peer. - connection_reset = ASIO_SOCKET_ERROR(ECONNRESET), - - /// Bad file descriptor. - bad_descriptor = ASIO_SOCKET_ERROR(EBADF), - - /// Bad address. - fault = ASIO_SOCKET_ERROR(EFAULT), - - /// No route to host. - host_unreachable = ASIO_SOCKET_ERROR(EHOSTUNREACH), - - /// Operation now in progress. - in_progress = ASIO_SOCKET_ERROR(EINPROGRESS), - - /// Interrupted system call. - interrupted = ASIO_SOCKET_ERROR(EINTR), - - /// Invalid argument. - invalid_argument = ASIO_SOCKET_ERROR(EINVAL), - - /// Message too long. - message_size = ASIO_SOCKET_ERROR(EMSGSIZE), - - /// The name was too long. - name_too_long = ASIO_SOCKET_ERROR(ENAMETOOLONG), - - /// Network is down. - network_down = ASIO_SOCKET_ERROR(ENETDOWN), - - /// Network dropped connection on reset. - network_reset = ASIO_SOCKET_ERROR(ENETRESET), - - /// Network is unreachable. - network_unreachable = ASIO_SOCKET_ERROR(ENETUNREACH), - - /// Too many open files. - no_descriptors = ASIO_SOCKET_ERROR(EMFILE), - - /// No buffer space available. - no_buffer_space = ASIO_SOCKET_ERROR(ENOBUFS), - - /// Cannot allocate memory. - no_memory = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(ERROR_OUTOFMEMORY), - ASIO_NATIVE_ERROR(ENOMEM)), - - /// Operation not permitted. - no_permission = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(ERROR_ACCESS_DENIED), - ASIO_NATIVE_ERROR(EPERM)), - - /// Protocol not available. - no_protocol_option = ASIO_SOCKET_ERROR(ENOPROTOOPT), - - /// No such device. - no_such_device = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(ERROR_BAD_UNIT), - ASIO_NATIVE_ERROR(ENODEV)), - - /// Transport endpoint is not connected. - not_connected = ASIO_SOCKET_ERROR(ENOTCONN), - - /// Socket operation on non-socket. - not_socket = ASIO_SOCKET_ERROR(ENOTSOCK), - - /// Operation cancelled. - operation_aborted = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(ERROR_OPERATION_ABORTED), - ASIO_NATIVE_ERROR(ECANCELED)), - - /// Operation not supported. - operation_not_supported = ASIO_SOCKET_ERROR(EOPNOTSUPP), - - /// Cannot send after transport endpoint shutdown. - shut_down = ASIO_SOCKET_ERROR(ESHUTDOWN), - - /// Connection timed out. - timed_out = ASIO_SOCKET_ERROR(ETIMEDOUT), - - /// Resource temporarily unavailable. - try_again = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(ERROR_RETRY), - ASIO_NATIVE_ERROR(EAGAIN)), - - /// The socket is marked non-blocking and the requested operation would block. - would_block = ASIO_SOCKET_ERROR(EWOULDBLOCK) -}; - -enum netdb_errors -{ - /// Host not found (authoritative). - host_not_found = ASIO_NETDB_ERROR(HOST_NOT_FOUND), - - /// Host not found (non-authoritative). - host_not_found_try_again = ASIO_NETDB_ERROR(TRY_AGAIN), - - /// The query is valid but does not have associated address data. - no_data = ASIO_NETDB_ERROR(NO_DATA), - - /// A non-recoverable error occurred. - no_recovery = ASIO_NETDB_ERROR(NO_RECOVERY) -}; - -enum addrinfo_errors -{ - /// The service is not supported for the given socket type. - service_not_found = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(WSATYPE_NOT_FOUND), - ASIO_GETADDRINFO_ERROR(EAI_SERVICE)), - - /// The socket type is not supported. - socket_type_not_supported = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(WSAESOCKTNOSUPPORT), - ASIO_GETADDRINFO_ERROR(EAI_SOCKTYPE)) -}; - -enum misc_errors -{ - /// Already open. - already_open = 1, - - /// End of file or stream. - eof, - - /// Element not found. - not_found, - - /// The descriptor cannot fit into the select system call's fd_set. - fd_set_failure -}; - -inline const asio::error_category& get_system_category() -{ - return asio::system_category(); -} - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -extern ASIO_DECL -const asio::error_category& get_netdb_category(); - -extern ASIO_DECL -const asio::error_category& get_addrinfo_category(); - -#else // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -inline const asio::error_category& get_netdb_category() -{ - return get_system_category(); -} - -inline const asio::error_category& get_addrinfo_category() -{ - return get_system_category(); -} - -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -extern ASIO_DECL -const asio::error_category& get_misc_category(); - -static const asio::error_category& - system_category ASIO_UNUSED_VARIABLE - = asio::error::get_system_category(); -static const asio::error_category& - netdb_category ASIO_UNUSED_VARIABLE - = asio::error::get_netdb_category(); -static const asio::error_category& - addrinfo_category ASIO_UNUSED_VARIABLE - = asio::error::get_addrinfo_category(); -static const asio::error_category& - misc_category ASIO_UNUSED_VARIABLE - = asio::error::get_misc_category(); - -} // namespace error -} // namespace asio - -#if defined(ASIO_HAS_STD_SYSTEM_ERROR) -namespace std { - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -} // namespace std -#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -namespace asio { -namespace error { - -inline asio::error_code make_error_code(basic_errors e) -{ - return asio::error_code( - static_cast(e), get_system_category()); -} - -inline asio::error_code make_error_code(netdb_errors e) -{ - return asio::error_code( - static_cast(e), get_netdb_category()); -} - -inline asio::error_code make_error_code(addrinfo_errors e) -{ - return asio::error_code( - static_cast(e), get_addrinfo_category()); -} - -inline asio::error_code make_error_code(misc_errors e) -{ - return asio::error_code( - static_cast(e), get_misc_category()); -} - -} // namespace error -namespace stream_errc { - // Simulates the proposed stream_errc scoped enum. - using error::eof; - using error::not_found; -} // namespace stream_errc -namespace socket_errc { - // Simulates the proposed socket_errc scoped enum. - using error::already_open; - using error::not_found; -} // namespace socket_errc -namespace resolver_errc { - // Simulates the proposed resolver_errc scoped enum. - using error::host_not_found; - const error::netdb_errors try_again = error::host_not_found_try_again; - using error::service_not_found; -} // namespace resolver_errc -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#undef ASIO_NATIVE_ERROR -#undef ASIO_SOCKET_ERROR -#undef ASIO_NETDB_ERROR -#undef ASIO_GETADDRINFO_ERROR -#undef ASIO_WIN_OR_POSIX - -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/error.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_ERROR_HPP diff --git a/Sources/Vendor/asio/include/asio/error_code.hpp b/Sources/Vendor/asio/include/asio/error_code.hpp deleted file mode 100644 index 7c239e2..0000000 --- a/Sources/Vendor/asio/include/asio/error_code.hpp +++ /dev/null @@ -1,202 +0,0 @@ -// -// error_code.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_ERROR_CODE_HPP -#define ASIO_ERROR_CODE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_STD_SYSTEM_ERROR) -# include -#else // defined(ASIO_HAS_STD_SYSTEM_ERROR) -# include -# include "asio/detail/noncopyable.hpp" -# if !defined(ASIO_NO_IOSTREAM) -# include -# endif // !defined(ASIO_NO_IOSTREAM) -#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if defined(ASIO_HAS_STD_SYSTEM_ERROR) - -typedef std::error_category error_category; - -#else // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -/// Base class for all error categories. -class error_category : private noncopyable -{ -public: - /// Destructor. - virtual ~error_category() - { - } - - /// Returns a string naming the error gategory. - virtual const char* name() const = 0; - - /// Returns a string describing the error denoted by @c value. - virtual std::string message(int value) const = 0; - - /// Equality operator to compare two error categories. - bool operator==(const error_category& rhs) const - { - return this == &rhs; - } - - /// Inequality operator to compare two error categories. - bool operator!=(const error_category& rhs) const - { - return !(*this == rhs); - } -}; - -#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -/// Returns the error category used for the system errors produced by asio. -extern ASIO_DECL const error_category& system_category(); - -#if defined(ASIO_HAS_STD_SYSTEM_ERROR) - -typedef std::error_code error_code; - -#else // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -/// Class to represent an error code value. -class error_code -{ -public: - /// Default constructor. - error_code() - : value_(0), - category_(&system_category()) - { - } - - /// Construct with specific error code and category. - error_code(int v, const error_category& c) - : value_(v), - category_(&c) - { - } - - /// Construct from an error code enum. - template - error_code(ErrorEnum e) - { - *this = make_error_code(e); - } - - /// Clear the error value to the default. - void clear() - { - value_ = 0; - category_ = &system_category(); - } - - /// Assign a new error value. - void assign(int v, const error_category& c) - { - value_ = v; - category_ = &c; - } - - /// Get the error value. - int value() const - { - return value_; - } - - /// Get the error category. - const error_category& category() const - { - return *category_; - } - - /// Get the message associated with the error. - std::string message() const - { - return category_->message(value_); - } - - struct unspecified_bool_type_t - { - }; - - typedef void (*unspecified_bool_type)(unspecified_bool_type_t); - - static void unspecified_bool_true(unspecified_bool_type_t) {} - - /// Operator returns non-null if there is a non-success error code. - operator unspecified_bool_type() const - { - if (value_ == 0) - return 0; - else - return &error_code::unspecified_bool_true; - } - - /// Operator to test if the error represents success. - bool operator!() const - { - return value_ == 0; - } - - /// Equality operator to compare two error objects. - friend bool operator==(const error_code& e1, const error_code& e2) - { - return e1.value_ == e2.value_ && e1.category_ == e2.category_; - } - - /// Inequality operator to compare two error objects. - friend bool operator!=(const error_code& e1, const error_code& e2) - { - return e1.value_ != e2.value_ || e1.category_ != e2.category_; - } - -private: - // The value associated with the error code. - int value_; - - // The category associated with the error code. - const error_category* category_; -}; - -# if !defined(ASIO_NO_IOSTREAM) - -/// Output an error code. -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const error_code& ec) -{ - os << ec.category().name() << ':' << ec.value(); - return os; -} - -# endif // !defined(ASIO_NO_IOSTREAM) - -#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/error_code.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_ERROR_CODE_HPP diff --git a/Sources/Vendor/asio/include/asio/execution_context.hpp b/Sources/Vendor/asio/include/asio/execution_context.hpp deleted file mode 100644 index 1476d19..0000000 --- a/Sources/Vendor/asio/include/asio/execution_context.hpp +++ /dev/null @@ -1,411 +0,0 @@ -// -// execution_context.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_EXECUTION_CONTEXT_HPP -#define ASIO_EXECUTION_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/variadic_templates.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -class execution_context; -class io_context; - -#if !defined(GENERATING_DOCUMENTATION) -template Service& use_service(execution_context&); -template Service& use_service(io_context&); -template void add_service(execution_context&, Service*); -template bool has_service(execution_context&); -#endif // !defined(GENERATING_DOCUMENTATION) - -namespace detail { class service_registry; } - -/// A context for function object execution. -/** - * An execution context represents a place where function objects will be - * executed. An @c io_context is an example of an execution context. - * - * @par The execution_context class and services - * - * Class execution_context implements an extensible, type-safe, polymorphic set - * of services, indexed by service type. - * - * Services exist to manage the resources that are shared across an execution - * context. For example, timers may be implemented in terms of a single timer - * queue, and this queue would be stored in a service. - * - * Access to the services of an execution_context is via three function - * templates, use_service(), add_service() and has_service(). - * - * In a call to @c use_service(), the type argument chooses a service, - * making available all members of the named type. If @c Service is not present - * in an execution_context, an object of type @c Service is created and added - * to the execution_context. A C++ program can check if an execution_context - * implements a particular service with the function template @c - * has_service(). - * - * Service objects may be explicitly added to an execution_context using the - * function template @c add_service(). If the @c Service is already - * present, the service_already_exists exception is thrown. If the owner of the - * service is not the same object as the execution_context parameter, the - * invalid_service_owner exception is thrown. - * - * Once a service reference is obtained from an execution_context object by - * calling use_service(), that reference remains usable as long as the owning - * execution_context object exists. - * - * All service implementations have execution_context::service as a public base - * class. Custom services may be implemented by deriving from this class and - * then added to an execution_context using the facilities described above. - * - * @par The execution_context as a base class - * - * Class execution_context may be used only as a base class for concrete - * execution context types. The @c io_context is an example of such a derived - * type. - * - * On destruction, a class that is derived from execution_context must perform - * execution_context::shutdown() followed by - * execution_context::destroy(). - * - * This destruction sequence permits programs to simplify their resource - * management by using @c shared_ptr<>. Where an object's lifetime is tied to - * the lifetime of a connection (or some other sequence of asynchronous - * operations), a @c shared_ptr to the object would be bound into the handlers - * for all asynchronous operations associated with it. This works as follows: - * - * @li When a single connection ends, all associated asynchronous operations - * complete. The corresponding handler objects are destroyed, and all @c - * shared_ptr references to the objects are destroyed. - * - * @li To shut down the whole program, the io_context function stop() is called - * to terminate any run() calls as soon as possible. The io_context destructor - * calls @c shutdown() and @c destroy() to destroy all pending handlers, - * causing all @c shared_ptr references to all connection objects to be - * destroyed. - */ -class execution_context - : private noncopyable -{ -public: - class id; - class service; - -protected: - /// Constructor. - ASIO_DECL execution_context(); - - /// Destructor. - ASIO_DECL ~execution_context(); - - /// Shuts down all services in the context. - /** - * This function is implemented as follows: - * - * @li For each service object @c svc in the execution_context set, in - * reverse order of the beginning of service object lifetime, performs @c - * svc->shutdown(). - */ - ASIO_DECL void shutdown(); - - /// Destroys all services in the context. - /** - * This function is implemented as follows: - * - * @li For each service object @c svc in the execution_context set, in - * reverse order * of the beginning of service object lifetime, performs - * delete static_cast(svc). - */ - ASIO_DECL void destroy(); - -public: - /// Fork-related event notifications. - enum fork_event - { - /// Notify the context that the process is about to fork. - fork_prepare, - - /// Notify the context that the process has forked and is the parent. - fork_parent, - - /// Notify the context that the process has forked and is the child. - fork_child - }; - - /// Notify the execution_context of a fork-related event. - /** - * This function is used to inform the execution_context that the process is - * about to fork, or has just forked. This allows the execution_context, and - * the services it contains, to perform any necessary housekeeping to ensure - * correct operation following a fork. - * - * This function must not be called while any other execution_context - * function, or any function associated with the execution_context's derived - * class, is being called in another thread. It is, however, safe to call - * this function from within a completion handler, provided no other thread - * is accessing the execution_context or its derived class. - * - * @param event A fork-related event. - * - * @throws asio::system_error Thrown on failure. If the notification - * fails the execution_context object should no longer be used and should be - * destroyed. - * - * @par Example - * The following code illustrates how to incorporate the notify_fork() - * function: - * @code my_execution_context.notify_fork(execution_context::fork_prepare); - * if (fork() == 0) - * { - * // This is the child process. - * my_execution_context.notify_fork(execution_context::fork_child); - * } - * else - * { - * // This is the parent process. - * my_execution_context.notify_fork(execution_context::fork_parent); - * } @endcode - * - * @note For each service object @c svc in the execution_context set, - * performs svc->notify_fork();. When processing the fork_prepare - * event, services are visited in reverse order of the beginning of service - * object lifetime. Otherwise, services are visited in order of the beginning - * of service object lifetime. - */ - ASIO_DECL void notify_fork(fork_event event); - - /// Obtain the service object corresponding to the given type. - /** - * This function is used to locate a service object that corresponds to the - * given service type. If there is no existing implementation of the service, - * then the execution_context will create a new instance of the service. - * - * @param e The execution_context object that owns the service. - * - * @return The service interface implementing the specified service type. - * Ownership of the service interface is not transferred to the caller. - */ - template - friend Service& use_service(execution_context& e); - - /// Obtain the service object corresponding to the given type. - /** - * This function is used to locate a service object that corresponds to the - * given service type. If there is no existing implementation of the service, - * then the io_context will create a new instance of the service. - * - * @param ioc The io_context object that owns the service. - * - * @return The service interface implementing the specified service type. - * Ownership of the service interface is not transferred to the caller. - * - * @note This overload is preserved for backwards compatibility with services - * that inherit from io_context::service. - */ - template - friend Service& use_service(io_context& ioc); - -#if defined(GENERATING_DOCUMENTATION) - - /// Creates a service object and adds it to the execution_context. - /** - * This function is used to add a service to the execution_context. - * - * @param e The execution_context object that owns the service. - * - * @param args Zero or more arguments to be passed to the service - * constructor. - * - * @throws asio::service_already_exists Thrown if a service of the - * given type is already present in the execution_context. - */ - template - friend Service& make_service(execution_context& e, Args&&... args); - -#elif defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - friend Service& make_service(execution_context& e, - ASIO_MOVE_ARG(Args)... args); - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - friend Service& make_service(execution_context& e); - -#define ASIO_PRIVATE_MAKE_SERVICE_DEF(n) \ - template \ - friend Service& make_service(execution_context& e, \ - ASIO_VARIADIC_MOVE_PARAMS(n)); \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_MAKE_SERVICE_DEF) -#undef ASIO_PRIVATE_MAKE_SERVICE_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - - /// (Deprecated: Use make_service().) Add a service object to the - /// execution_context. - /** - * This function is used to add a service to the execution_context. - * - * @param e The execution_context object that owns the service. - * - * @param svc The service object. On success, ownership of the service object - * is transferred to the execution_context. When the execution_context object - * is destroyed, it will destroy the service object by performing: @code - * delete static_cast(svc) @endcode - * - * @throws asio::service_already_exists Thrown if a service of the - * given type is already present in the execution_context. - * - * @throws asio::invalid_service_owner Thrown if the service's owning - * execution_context is not the execution_context object specified by the - * @c e parameter. - */ - template - friend void add_service(execution_context& e, Service* svc); - - /// Determine if an execution_context contains a specified service type. - /** - * This function is used to determine whether the execution_context contains a - * service object corresponding to the given service type. - * - * @param e The execution_context object that owns the service. - * - * @return A boolean indicating whether the execution_context contains the - * service. - */ - template - friend bool has_service(execution_context& e); - -private: - // The service registry. - asio::detail::service_registry* service_registry_; -}; - -/// Class used to uniquely identify a service. -class execution_context::id - : private noncopyable -{ -public: - /// Constructor. - id() {} -}; - -/// Base class for all io_context services. -class execution_context::service - : private noncopyable -{ -public: - /// Get the context object that owns the service. - execution_context& context(); - -protected: - /// Constructor. - /** - * @param owner The execution_context object that owns the service. - */ - ASIO_DECL service(execution_context& owner); - - /// Destructor. - ASIO_DECL virtual ~service(); - -private: - /// Destroy all user-defined handler objects owned by the service. - virtual void shutdown() = 0; - - /// Handle notification of a fork-related event to perform any necessary - /// housekeeping. - /** - * This function is not a pure virtual so that services only have to - * implement it if necessary. The default implementation does nothing. - */ - ASIO_DECL virtual void notify_fork( - execution_context::fork_event event); - - friend class asio::detail::service_registry; - struct key - { - key() : type_info_(0), id_(0) {} - const std::type_info* type_info_; - const execution_context::id* id_; - } key_; - - execution_context& owner_; - service* next_; -}; - -/// Exception thrown when trying to add a duplicate service to an -/// execution_context. -class service_already_exists - : public std::logic_error -{ -public: - ASIO_DECL service_already_exists(); -}; - -/// Exception thrown when trying to add a service object to an -/// execution_context where the service has a different owner. -class invalid_service_owner - : public std::logic_error -{ -public: - ASIO_DECL invalid_service_owner(); -}; - -namespace detail { - -// Special derived service id type to keep classes header-file only. -template -class service_id - : public execution_context::id -{ -}; - -// Special service base class to keep classes header-file only. -template -class execution_context_service_base - : public execution_context::service -{ -public: - static service_id id; - - // Constructor. - execution_context_service_base(execution_context& e) - : execution_context::service(e) - { - } -}; - -template -service_id execution_context_service_base::id; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/execution_context.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/execution_context.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_EXECUTION_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/executor.hpp b/Sources/Vendor/asio/include/asio/executor.hpp deleted file mode 100644 index e552cfb..0000000 --- a/Sources/Vendor/asio/include/asio/executor.hpp +++ /dev/null @@ -1,341 +0,0 @@ -// -// executor.hpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_EXECUTOR_HPP -#define ASIO_EXECUTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/cstddef.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Exception thrown when trying to access an empty polymorphic executor. -class bad_executor - : public std::exception -{ -public: - /// Constructor. - ASIO_DECL bad_executor() ASIO_NOEXCEPT; - - /// Obtain message associated with exception. - ASIO_DECL virtual const char* what() const - ASIO_NOEXCEPT_OR_NOTHROW; -}; - -/// Polymorphic wrapper for executors. -class executor -{ -public: - /// Default constructor. - executor() ASIO_NOEXCEPT - : impl_(0) - { - } - - /// Construct from nullptr. - executor(nullptr_t) ASIO_NOEXCEPT - : impl_(0) - { - } - - /// Copy constructor. - executor(const executor& other) ASIO_NOEXCEPT - : impl_(other.clone()) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move constructor. - executor(executor&& other) ASIO_NOEXCEPT - : impl_(other.impl_) - { - other.impl_ = 0; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Construct a polymorphic wrapper for the specified executor. - template - executor(Executor e); - - /// Allocator-aware constructor to create a polymorphic wrapper for the - /// specified executor. - template - executor(allocator_arg_t, const Allocator& a, Executor e); - - /// Destructor. - ~executor() - { - destroy(); - } - - /// Assignment operator. - executor& operator=(const executor& other) ASIO_NOEXCEPT - { - destroy(); - impl_ = other.clone(); - return *this; - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - // Move assignment operator. - executor& operator=(executor&& other) ASIO_NOEXCEPT - { - destroy(); - impl_ = other.impl_; - other.impl_ = 0; - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Assignment operator for nullptr_t. - executor& operator=(nullptr_t) ASIO_NOEXCEPT - { - destroy(); - impl_ = 0; - return *this; - } - - /// Assignment operator to create a polymorphic wrapper for the specified - /// executor. - template - executor& operator=(ASIO_MOVE_ARG(Executor) e) ASIO_NOEXCEPT - { - executor tmp(ASIO_MOVE_CAST(Executor)(e)); - destroy(); - impl_ = tmp.impl_; - tmp.impl_ = 0; - return *this; - } - - /// Obtain the underlying execution context. - execution_context& context() const ASIO_NOEXCEPT - { - return get_impl()->context(); - } - - /// Inform the executor that it has some outstanding work to do. - void on_work_started() const ASIO_NOEXCEPT - { - get_impl()->on_work_started(); - } - - /// Inform the executor that some work is no longer outstanding. - void on_work_finished() const ASIO_NOEXCEPT - { - get_impl()->on_work_finished(); - } - - /// Request the executor to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object is executed according to the rules of the - * target executor object. - * - * @param f The function object to be called. The executor will make a copy - * of the handler object as required. The function signature of the function - * object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void dispatch(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the executor to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object is executed according to the rules of the - * target executor object. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void post(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the executor to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object is executed according to the rules of the - * target executor object. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void defer(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - struct unspecified_bool_type_t {}; - typedef void (*unspecified_bool_type)(unspecified_bool_type_t); - static void unspecified_bool_true(unspecified_bool_type_t) {} - - /// Operator to test if the executor contains a valid target. - operator unspecified_bool_type() const ASIO_NOEXCEPT - { - return impl_ ? &executor::unspecified_bool_true : 0; - } - - /// Obtain type information for the target executor object. - /** - * @returns If @c *this has a target type of type @c T, typeid(T); - * otherwise, typeid(void). - */ -#if !defined(ASIO_NO_TYPEID) || defined(GENERATING_DOCUMENTATION) - const std::type_info& target_type() const ASIO_NOEXCEPT - { - return impl_ ? impl_->target_type() : typeid(void); - } -#else // !defined(ASIO_NO_TYPEID) || defined(GENERATING_DOCUMENTATION) - const void* target_type() const ASIO_NOEXCEPT - { - return impl_ ? impl_->target_type() : 0; - } -#endif // !defined(ASIO_NO_TYPEID) || defined(GENERATING_DOCUMENTATION) - - /// Obtain a pointer to the target executor object. - /** - * @returns If target_type() == typeid(T), a pointer to the stored - * executor target; otherwise, a null pointer. - */ - template - Executor* target() ASIO_NOEXCEPT; - - /// Obtain a pointer to the target executor object. - /** - * @returns If target_type() == typeid(T), a pointer to the stored - * executor target; otherwise, a null pointer. - */ - template - const Executor* target() const ASIO_NOEXCEPT; - - /// Compare two executors for equality. - friend bool operator==(const executor& a, - const executor& b) ASIO_NOEXCEPT - { - if (a.impl_ == b.impl_) - return true; - if (!a.impl_ || !b.impl_) - return false; - return a.impl_->equals(b.impl_); - } - - /// Compare two executors for inequality. - friend bool operator!=(const executor& a, - const executor& b) ASIO_NOEXCEPT - { - return !(a == b); - } - -private: -#if !defined(GENERATING_DOCUMENTATION) - class function; - template class impl; - -#if !defined(ASIO_NO_TYPEID) - typedef const std::type_info& type_id_result_type; -#else // !defined(ASIO_NO_TYPEID) - typedef const void* type_id_result_type; -#endif // !defined(ASIO_NO_TYPEID) - - template - static type_id_result_type type_id() - { -#if !defined(ASIO_NO_TYPEID) - return typeid(T); -#else // !defined(ASIO_NO_TYPEID) - static int unique_id; - return &unique_id; -#endif // !defined(ASIO_NO_TYPEID) - } - - // Base class for all polymorphic executor implementations. - class impl_base - { - public: - virtual impl_base* clone() const ASIO_NOEXCEPT = 0; - virtual void destroy() ASIO_NOEXCEPT = 0; - virtual execution_context& context() ASIO_NOEXCEPT = 0; - virtual void on_work_started() ASIO_NOEXCEPT = 0; - virtual void on_work_finished() ASIO_NOEXCEPT = 0; - virtual void dispatch(ASIO_MOVE_ARG(function)) = 0; - virtual void post(ASIO_MOVE_ARG(function)) = 0; - virtual void defer(ASIO_MOVE_ARG(function)) = 0; - virtual type_id_result_type target_type() const ASIO_NOEXCEPT = 0; - virtual void* target() ASIO_NOEXCEPT = 0; - virtual const void* target() const ASIO_NOEXCEPT = 0; - virtual bool equals(const impl_base* e) const ASIO_NOEXCEPT = 0; - - protected: - impl_base(bool fast_dispatch) : fast_dispatch_(fast_dispatch) {} - virtual ~impl_base() {} - - private: - friend class executor; - const bool fast_dispatch_; - }; - - // Helper function to check and return the implementation pointer. - impl_base* get_impl() const - { - if (!impl_) - { - bad_executor ex; - asio::detail::throw_exception(ex); - } - return impl_; - } - - // Helper function to clone another implementation. - impl_base* clone() const ASIO_NOEXCEPT - { - return impl_ ? impl_->clone() : 0; - } - - // Helper function to destroy an implementation. - void destroy() ASIO_NOEXCEPT - { - if (impl_) - impl_->destroy(); - } - - impl_base* impl_; -#endif // !defined(GENERATING_DOCUMENTATION) -}; - -} // namespace asio - -ASIO_USES_ALLOCATOR(asio::executor) - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/executor.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/executor.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/executor_work_guard.hpp b/Sources/Vendor/asio/include/asio/executor_work_guard.hpp deleted file mode 100644 index 1875f54..0000000 --- a/Sources/Vendor/asio/include/asio/executor_work_guard.hpp +++ /dev/null @@ -1,170 +0,0 @@ -// -// executor_work_guard.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_EXECUTOR_WORK_GUARD_HPP -#define ASIO_EXECUTOR_WORK_GUARD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/is_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// An object of type @c executor_work_guard controls ownership of executor work -/// within a scope. -template -class executor_work_guard -{ -public: - /// The underlying executor type. - typedef Executor executor_type; - - /// Constructs a @c executor_work_guard object for the specified executor. - /** - * Stores a copy of @c e and calls on_work_started() on it. - */ - explicit executor_work_guard(const executor_type& e) ASIO_NOEXCEPT - : executor_(e), - owns_(true) - { - executor_.on_work_started(); - } - - /// Copy constructor. - executor_work_guard(const executor_work_guard& other) ASIO_NOEXCEPT - : executor_(other.executor_), - owns_(other.owns_) - { - if (owns_) - executor_.on_work_started(); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move constructor. - executor_work_guard(executor_work_guard&& other) - : executor_(ASIO_MOVE_CAST(Executor)(other.executor_)), - owns_(other.owns_) - { - other.owns_ = false; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destructor. - /** - * Unless the object has already been reset, or is in a moved-from state, - * calls on_work_finished() on the stored executor. - */ - ~executor_work_guard() - { - if (owns_) - executor_.on_work_finished(); - } - - /// Obtain the associated executor. - executor_type get_executor() const ASIO_NOEXCEPT - { - return executor_; - } - - /// Whether the executor_work_guard object owns some outstanding work. - bool owns_work() const ASIO_NOEXCEPT - { - return owns_; - } - - /// Indicate that the work is no longer outstanding. - /* - * Unless the object has already been reset, or is in a moved-from state, - * calls on_work_finished() on the stored executor. - */ - void reset() ASIO_NOEXCEPT - { - if (owns_) - { - executor_.on_work_finished(); - owns_ = false; - } - } - -private: - // Disallow assignment. - executor_work_guard& operator=(const executor_work_guard&); - - executor_type executor_; - bool owns_; -}; - -/// Create an @ref executor_work_guard object. -template -inline executor_work_guard make_work_guard(const Executor& ex, - typename enable_if::value>::type* = 0) -{ - return executor_work_guard(ex); -} - -/// Create an @ref executor_work_guard object. -template -inline executor_work_guard -make_work_guard(ExecutionContext& ctx, - typename enable_if< - is_convertible::value>::type* = 0) -{ - return executor_work_guard( - ctx.get_executor()); -} - -/// Create an @ref executor_work_guard object. -template -inline executor_work_guard::type> -make_work_guard(const T& t, - typename enable_if::value && - !is_convertible::value>::type* = 0) -{ - return executor_work_guard::type>( - associated_executor::get(t)); -} - -/// Create an @ref executor_work_guard object. -template -inline executor_work_guard::type> -make_work_guard(const T& t, const Executor& ex, - typename enable_if::value>::type* = 0) -{ - return executor_work_guard::type>( - associated_executor::get(t, ex)); -} - -/// Create an @ref executor_work_guard object. -template -inline executor_work_guard::type> -make_work_guard(const T& t, ExecutionContext& ctx, - typename enable_if::value && - !is_convertible::value && - is_convertible::value>::type* = 0) -{ - return executor_work_guard::type>( - associated_executor::get( - t, ctx.get_executor())); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_EXECUTOR_WORK_GUARD_HPP diff --git a/Sources/Vendor/asio/include/asio/experimental.hpp b/Sources/Vendor/asio/include/asio/experimental.hpp deleted file mode 100644 index 5765c37..0000000 --- a/Sources/Vendor/asio/include/asio/experimental.hpp +++ /dev/null @@ -1,22 +0,0 @@ -// -// experimental.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_EXPERIMENTAL_HPP -#define ASIO_EXPERIMENTAL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/experimental/co_spawn.hpp" -#include "asio/experimental/detached.hpp" -#include "asio/experimental/redirect_error.hpp" - -#endif // ASIO_EXPERIMENTAL_HPP diff --git a/Sources/Vendor/asio/include/asio/experimental/co_spawn.hpp b/Sources/Vendor/asio/include/asio/experimental/co_spawn.hpp deleted file mode 100644 index cbf5bc5..0000000 --- a/Sources/Vendor/asio/include/asio/experimental/co_spawn.hpp +++ /dev/null @@ -1,226 +0,0 @@ -// -// experimental/co_spawn.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_EXPERIMENTAL_CO_SPAWN_HPP -#define ASIO_EXPERIMENTAL_CO_SPAWN_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_CO_AWAIT) || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/executor.hpp" -#include "asio/strand.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace experimental { -namespace detail { - -using std::experimental::coroutine_handle; - -template class awaiter; -template class awaitee_base; -template class awaitee; -template class await_handler_base; -template -auto co_spawn(const Executor& ex, F&& f, CompletionToken&& token); - -} // namespace detail - -namespace this_coro { - -/// Awaitable type that returns a completion token for the current coroutine. -struct token_t {}; - -/// Awaitable object that returns a completion token for the current coroutine. -constexpr inline token_t token() { return {}; } - -/// Awaitable type that returns the executor of the current coroutine. -struct executor_t {}; - -/// Awaitable object that returns the executor of the current coroutine. -constexpr inline executor_t executor() { return {}; } - -} // namespace this_coro - -/// A completion token that represents the currently executing coroutine. -/** - * The await_token class is used to represent the currently executing - * coroutine. An await_token may be passed as a handler to an asynchronous - * operation. For example: - * - * @code awaitable my_coroutine() - * { - * await_token token = co_await this_coro::token(); - * ... - * std::size_t n = co_await my_socket.async_read_some(buffer, token); - * ... - * } @endcode - * - * 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. - */ -template -class await_token -{ -public: - /// The associated executor type. - typedef Executor executor_type; - - /// Copy constructor. - await_token(const await_token& other) noexcept - : awaiter_(other.awaiter_) - { - } - - /// Move constructor. - await_token(await_token&& other) noexcept - : awaiter_(std::exchange(other.awaiter_, nullptr)) - { - } - - /// Get the associated executor. - executor_type get_executor() const noexcept - { - return awaiter_->get_executor(); - } - -private: - // No assignment allowed. - await_token& operator=(const await_token&) = delete; - - template friend class detail::awaitee_base; - template friend class detail::await_handler_base; - - // Private constructor used by awaitee_base. - explicit await_token(detail::awaiter* a) - : awaiter_(a) - { - } - - detail::awaiter* awaiter_; -}; - -/// The return type of a coroutine or asynchronous operation. -template > -class awaitable -{ -public: - /// The type of the awaited value. - typedef T value_type; - - /// The executor type that will be used for the coroutine. - typedef Executor executor_type; - - /// Move constructor. - awaitable(awaitable&& other) noexcept - : awaitee_(std::exchange(other.awaitee_, nullptr)) - { - } - - /// Destructor - ~awaitable() - { - if (awaitee_) - { - detail::coroutine_handle< - detail::awaitee>::from_promise( - *awaitee_).destroy(); - } - } - -#if !defined(GENERATING_DOCUMENTATION) - - // Support for co_await keyword. - bool await_ready() const noexcept - { - return awaitee_->ready(); - } - - // Support for co_await keyword. - void await_suspend(detail::coroutine_handle> h) - { - awaitee_->attach_caller(h); - } - - // Support for co_await keyword. - template - void await_suspend(detail::coroutine_handle> h) - { - awaitee_->attach_caller(h); - } - - // Support for co_await keyword. - T await_resume() - { - return awaitee_->get(); - } - -#endif // !defined(GENERATING_DOCUMENTATION) - -private: - template friend class detail::awaitee; - template friend class detail::await_handler_base; - - // Not copy constructible or copy assignable. - awaitable(const awaitable&) = delete; - awaitable& operator=(const awaitable&) = delete; - - // Construct the awaitable from a coroutine's promise object. - explicit awaitable(detail::awaitee* a) : awaitee_(a) {} - - detail::awaitee* awaitee_; -}; - -/// Spawn a new thread of execution. -template ::value>::type> -inline auto co_spawn(const Executor& ex, F&& f, CompletionToken&& token) -{ - return detail::co_spawn(ex, std::forward(f), - std::forward(token)); -} - -/// Spawn a new thread of execution. -template ::value>::type> -inline auto co_spawn(ExecutionContext& ctx, F&& f, CompletionToken&& token) -{ - return detail::co_spawn(ctx.get_executor(), std::forward(f), - std::forward(token)); -} - -/// Spawn a new thread of execution. -template -inline auto co_spawn(const await_token& parent, - F&& f, CompletionToken&& token) -{ - return detail::co_spawn(parent.get_executor(), std::forward(f), - std::forward(token)); -} - -} // namespace experimental -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/experimental/impl/co_spawn.hpp" - -#endif // defined(ASIO_HAS_CO_AWAIT) || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_EXPERIMENTAL_CO_SPAWN_HPP diff --git a/Sources/Vendor/asio/include/asio/experimental/detached.hpp b/Sources/Vendor/asio/include/asio/experimental/detached.hpp deleted file mode 100644 index d484f18..0000000 --- a/Sources/Vendor/asio/include/asio/experimental/detached.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// -// experimental/detached.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_EXPERIMENTAL_DETACHED_HPP -#define ASIO_EXPERIMENTAL_DETACHED_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace experimental { - -/// Class used to specify that an asynchronous operation is detached. -/** - - * The detached_t class is used to indicate that an asynchronous operation is - * detached. That is, there is no completion handler waiting for the - * operation's result. A detached_t object may be passed as a handler to an - * asynchronous operation, typically using the special value - * @c asio::experimental::detached. For example: - - * @code my_socket.async_send(my_buffer, asio::experimental::detached); - * @endcode - */ -class detached_t -{ -public: - /// Constructor. - ASIO_CONSTEXPR detached_t() - { - } -}; - -/// A special value, similar to std::nothrow. -/** - * See the documentation for asio::experimental::detached_t for a usage - * example. - */ -#if defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION) -constexpr detached_t detached; -#elif defined(ASIO_MSVC) -__declspec(selectany) detached_t detached; -#endif - -} // namespace experimental -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/experimental/impl/detached.hpp" - -#endif // ASIO_EXPERIMENTAL_DETACHED_HPP diff --git a/Sources/Vendor/asio/include/asio/experimental/impl/co_spawn.hpp b/Sources/Vendor/asio/include/asio/experimental/impl/co_spawn.hpp deleted file mode 100644 index 8263eff..0000000 --- a/Sources/Vendor/asio/include/asio/experimental/impl/co_spawn.hpp +++ /dev/null @@ -1,876 +0,0 @@ -// -// experimental/impl/co_spawn.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_EXPERIMENTAL_IMPL_CO_SPAWN_HPP -#define ASIO_EXPERIMENTAL_IMPL_CO_SPAWN_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include -#include -#include -#include "asio/async_result.hpp" -#include "asio/detail/thread_context.hpp" -#include "asio/detail/thread_info_base.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/dispatch.hpp" -#include "asio/post.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace experimental { -namespace detail { - -// Promise object for coroutine at top of thread-of-execution "stack". -template -class awaiter -{ -public: - struct deleter - { - void operator()(awaiter* a) - { - if (a) - a->release(); - } - }; - - typedef std::unique_ptr ptr; - - typedef Executor executor_type; - - ~awaiter() - { - if (has_executor_) - static_cast(static_cast(executor_))->~Executor(); - } - - void set_executor(const Executor& ex) - { - new (&executor_) Executor(ex); - has_executor_ = true; - } - - executor_type get_executor() const noexcept - { - return *static_cast(static_cast(executor_)); - } - - awaiter* get_return_object() - { - return this; - } - - auto initial_suspend() - { - return std::experimental::suspend_always(); - } - - auto final_suspend() - { - return std::experimental::suspend_always(); - } - - void return_void() - { - } - - awaiter* add_ref() - { - ++ref_count_; - return this; - } - - void release() - { - if (--ref_count_ == 0) - coroutine_handle::from_promise(*this).destroy(); - } - - void unhandled_exception() - { - pending_exception_ = std::current_exception(); - } - - void rethrow_unhandled_exception() - { - if (pending_exception_) - { - std::exception_ptr ex = std::exchange(pending_exception_, nullptr); - std::rethrow_exception(ex); - } - } - -private: - std::size_t ref_count_ = 0; - std::exception_ptr pending_exception_ = nullptr; - alignas(Executor) unsigned char executor_[sizeof(Executor)]; - bool has_executor_ = false; -}; - -// Base promise for coroutines further down the thread-of-execution "stack". -template -class awaitee_base -{ -public: -#if !defined(ASIO_DISABLE_AWAITEE_RECYCLING) - void* operator new(std::size_t size) - { - return asio::detail::thread_info_base::allocate( - asio::detail::thread_info_base::awaitee_tag(), - asio::detail::thread_context::thread_call_stack::top(), - size); - } - - void operator delete(void* pointer, std::size_t size) - { - asio::detail::thread_info_base::deallocate( - asio::detail::thread_info_base::awaitee_tag(), - asio::detail::thread_context::thread_call_stack::top(), - pointer, size); - } -#endif // !defined(ASIO_DISABLE_AWAITEE_RECYCLING) - - auto initial_suspend() - { - return std::experimental::suspend_never(); - } - - struct final_suspender - { - awaitee_base* this_; - - bool await_ready() const noexcept - { - return false; - } - - void await_suspend(coroutine_handle) - { - this_->wake_caller(); - } - - void await_resume() const noexcept - { - } - }; - - auto final_suspend() - { - return final_suspender{this}; - } - - void set_except(std::exception_ptr e) - { - pending_exception_ = e; - } - - void unhandled_exception() - { - set_except(std::current_exception()); - } - - void rethrow_exception() - { - if (pending_exception_) - { - std::exception_ptr ex = std::exchange(pending_exception_, nullptr); - std::rethrow_exception(ex); - } - } - - awaiter* top() - { - return awaiter_; - } - - coroutine_handle caller() - { - return caller_; - } - - bool ready() const - { - return ready_; - } - - void wake_caller() - { - if (caller_) - caller_.resume(); - else - ready_ = true; - } - - class awaitable_executor - { - public: - explicit awaitable_executor(awaitee_base* a) - : this_(a) - { - } - - bool await_ready() const noexcept - { - return this_->awaiter_ != nullptr; - } - - template - void await_suspend(coroutine_handle> h) noexcept - { - this_->resume_on_attach_ = h; - } - - Executor await_resume() - { - return this_->awaiter_->get_executor(); - } - - private: - awaitee_base* this_; - }; - - awaitable_executor await_transform(this_coro::executor_t) noexcept - { - return awaitable_executor(this); - } - - class awaitable_token - { - public: - explicit awaitable_token(awaitee_base* a) - : this_(a) - { - } - - bool await_ready() const noexcept - { - return this_->awaiter_ != nullptr; - } - - template - void await_suspend(coroutine_handle> h) noexcept - { - this_->resume_on_attach_ = h; - } - - await_token await_resume() - { - return await_token(this_->awaiter_); - } - - private: - awaitee_base* this_; - }; - - awaitable_token await_transform(this_coro::token_t) noexcept - { - return awaitable_token(this); - } - - template - awaitable await_transform(awaitable& t) const - { - return std::move(t); - } - - template - awaitable await_transform(awaitable&& t) const - { - return std::move(t); - } - - std::experimental::suspend_always await_transform( - std::experimental::suspend_always) const - { - return std::experimental::suspend_always(); - } - - void attach_caller(coroutine_handle> h) - { - this->caller_ = h; - this->attach_callees(&h.promise()); - } - - template - void attach_caller(coroutine_handle> h) - { - this->caller_ = h; - if (h.promise().awaiter_) - this->attach_callees(h.promise().awaiter_); - else - h.promise().unattached_callee_ = this; - } - - void attach_callees(awaiter* a) - { - for (awaitee_base* curr = this; curr != nullptr; - curr = std::exchange(curr->unattached_callee_, nullptr)) - { - curr->awaiter_ = a; - if (curr->resume_on_attach_) - return std::exchange(curr->resume_on_attach_, nullptr).resume(); - } - } - -protected: - awaiter* awaiter_ = nullptr; - coroutine_handle caller_ = nullptr; - awaitee_base* unattached_callee_ = nullptr; - std::exception_ptr pending_exception_ = nullptr; - coroutine_handle resume_on_attach_ = nullptr; - bool ready_ = false; -}; - -// Promise object for coroutines further down the thread-of-execution "stack". -template -class awaitee - : public awaitee_base -{ -public: - awaitee() - { - } - - awaitee(awaitee&& other) noexcept - : awaitee_base(std::move(other)) - { - } - - ~awaitee() - { - if (has_result_) - static_cast(static_cast(result_))->~T(); - } - - awaitable get_return_object() - { - return awaitable(this); - }; - - template - void return_value(U&& u) - { - new (&result_) T(std::forward(u)); - has_result_ = true; - } - - T get() - { - this->caller_ = nullptr; - this->rethrow_exception(); - return std::move(*static_cast(static_cast(result_))); - } - -private: - alignas(T) unsigned char result_[sizeof(T)]; - bool has_result_ = false; -}; - -// Promise object for coroutines further down the thread-of-execution "stack". -template -class awaitee - : public awaitee_base -{ -public: - awaitable get_return_object() - { - return awaitable(this); - }; - - void return_void() - { - } - - void get() - { - this->caller_ = nullptr; - this->rethrow_exception(); - } -}; - -template -class awaiter_task -{ -public: - typedef Executor executor_type; - - awaiter_task(awaiter* a) - : awaiter_(a->add_ref()) - { - } - - awaiter_task(awaiter_task&& other) noexcept - : awaiter_(std::exchange(other.awaiter_, nullptr)) - { - } - - ~awaiter_task() - { - if (awaiter_) - { - // Coroutine "stack unwinding" must be performed through the executor. - executor_type ex(awaiter_->get_executor()); - (post)(ex, - [a = std::move(awaiter_)]() mutable - { - typename awaiter::ptr(std::move(a)); - }); - } - } - - executor_type get_executor() const noexcept - { - return awaiter_->get_executor(); - } - -protected: - typename awaiter::ptr awaiter_; -}; - -template -class co_spawn_handler : public awaiter_task -{ -public: - using awaiter_task::awaiter_task; - - void operator()() - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - coroutine_handle>::from_promise(*ptr.get()).resume(); - } -}; - -template -class await_handler_base : public awaiter_task -{ -public: - typedef awaitable awaitable_type; - - await_handler_base(await_token token) - : awaiter_task(token.awaiter_), - awaitee_(nullptr) - { - } - - await_handler_base(await_handler_base&& other) noexcept - : awaiter_task(std::move(other)), - awaitee_(std::exchange(other.awaitee_, nullptr)) - { - } - - void attach_awaitee(const awaitable& a) - { - awaitee_ = a.awaitee_; - } - -protected: - awaitee* awaitee_; -}; - -template class await_handler; - -template -class await_handler - : public await_handler_base -{ -public: - using await_handler_base::await_handler_base; - - void operator()() - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - this->awaitee_->return_void(); - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base -{ -public: - typedef void return_type; - - using await_handler_base::await_handler_base; - - void operator()(const asio::error_code& ec) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - if (ec) - { - this->awaitee_->set_except( - std::make_exception_ptr(asio::system_error(ec))); - } - else - this->awaitee_->return_void(); - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base -{ -public: - using await_handler_base::await_handler_base; - - void operator()(std::exception_ptr ex) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - if (ex) - this->awaitee_->set_except(ex); - else - this->awaitee_->return_void(); - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base -{ -public: - using await_handler_base::await_handler_base; - - template - void operator()(Arg&& arg) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - this->awaitee_->return_value(std::forward(arg)); - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base -{ -public: - using await_handler_base::await_handler_base; - - template - void operator()(const asio::error_code& ec, Arg&& arg) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - if (ec) - { - this->awaitee_->set_except( - std::make_exception_ptr(asio::system_error(ec))); - } - else - this->awaitee_->return_value(std::forward(arg)); - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base -{ -public: - using await_handler_base::await_handler_base; - - template - void operator()(std::exception_ptr ex, Arg&& arg) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - if (ex) - this->awaitee_->set_except(ex); - else - this->awaitee_->return_value(std::forward(arg)); - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base> -{ -public: - using await_handler_base>::await_handler_base; - - template - void operator()(Args&&... args) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - this->awaitee_->return_value( - std::forward_as_tuple(std::forward(args)...)); - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base> -{ -public: - using await_handler_base>::await_handler_base; - - template - void operator()(const asio::error_code& ec, Args&&... args) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - if (ec) - { - this->awaitee_->set_except( - std::make_exception_ptr(asio::system_error(ec))); - } - else - { - this->awaitee_->return_value( - std::forward_as_tuple(std::forward(args)...)); - } - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base> -{ -public: - using await_handler_base>::await_handler_base; - - template - void operator()(std::exception_ptr ex, Args&&... args) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - if (ex) - this->awaitee_->set_except(ex); - else - { - this->awaitee_->return_value( - std::forward_as_tuple(std::forward(args)...)); - } - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -struct awaitable_signature; - -template -struct awaitable_signature> -{ - typedef void type(std::exception_ptr, T); -}; - -template -struct awaitable_signature> -{ - typedef void type(std::exception_ptr); -}; - -template -awaiter* co_spawn_entry_point(awaitable*, - executor_work_guard work_guard, F f, Handler handler) -{ - bool done = false; - - try - { - T t = co_await f(); - - done = true; - - (dispatch)(work_guard.get_executor(), - [handler = std::move(handler), t = std::move(t)]() mutable - { - handler(std::exception_ptr(), std::move(t)); - }); - } - catch (...) - { - if (done) - throw; - - (dispatch)(work_guard.get_executor(), - [handler = std::move(handler), e = std::current_exception()]() mutable - { - handler(e, T()); - }); - } -} - -template -awaiter* co_spawn_entry_point(awaitable*, - executor_work_guard work_guard, F f, Handler handler) -{ - std::exception_ptr e = nullptr; - - try - { - co_await f(); - } - catch (...) - { - e = std::current_exception(); - } - - (dispatch)(work_guard.get_executor(), - [handler = std::move(handler), e]() mutable - { - handler(e); - }); -} - -template -auto co_spawn(const Executor& ex, F&& f, CompletionToken&& token) -{ - typedef typename result_of::type awaitable_type; - typedef typename awaitable_type::executor_type executor_type; - typedef typename awaitable_signature::type signature_type; - - async_completion completion(token); - - executor_type ex2(ex); - auto work_guard = make_work_guard(completion.completion_handler, ex2); - - auto* a = (co_spawn_entry_point)( - static_cast(nullptr), std::move(work_guard), - std::forward(f), std::move(completion.completion_handler)); - - a->set_executor(ex2); - (post)(co_spawn_handler(a)); - - return completion.result.get(); -} - -#if defined(_MSC_VER) -# pragma warning(push) -# pragma warning(disable:4033) -#endif // defined(_MSC_VER) - -#if defined(_MSC_VER) -template T dummy_return() -{ - return std::move(*static_cast(nullptr)); -} - -template <> -inline void dummy_return() -{ -} -#endif // defined(_MSC_VER) - -template -inline Awaitable make_dummy_awaitable() -{ - for (;;) co_await std::experimental::suspend_always(); -#if defined(_MSC_VER) - co_return dummy_return(); -#endif // defined(_MSC_VER) -} - -#if defined(_MSC_VER) -# pragma warning(pop) -#endif // defined(_MSC_VER) - -} // namespace detail -} // namespace experimental - -template -class async_result, R(Args...)> -{ -public: - typedef experimental::detail::await_handler< - Executor, typename decay::type...> completion_handler_type; - - typedef typename experimental::detail::await_handler< - Executor, Args...>::awaitable_type return_type; - - async_result(completion_handler_type& h) - : awaitable_(experimental::detail::make_dummy_awaitable()) - { - h.attach_awaitee(awaitable_); - } - - return_type get() - { - return std::move(awaitable_); - } - -private: - return_type awaitable_; -}; - -#if !defined(ASIO_NO_DEPRECATED) - -template -struct handler_type, R(Args...)> -{ - typedef experimental::detail::await_handler< - Executor, typename decay::type...> type; -}; - -template -class async_result> -{ -public: - typedef typename experimental::detail::await_handler< - Executor, Args...>::awaitable_type type; - - async_result(experimental::detail::await_handler& h) - : awaitable_(experimental::detail::make_dummy_awaitable()) - { - h.attach_awaitee(awaitable_); - } - - type get() - { - return std::move(awaitable_); - } - -private: - type awaitable_; -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -} // namespace asio - -namespace std { namespace experimental { - -template -struct coroutine_traits< - asio::experimental::detail::awaiter*, Args...> -{ - typedef asio::experimental::detail::awaiter promise_type; -}; - -template -struct coroutine_traits< - asio::experimental::awaitable, Args...> -{ - typedef asio::experimental::detail::awaitee promise_type; -}; - -}} // namespace std::experimental - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_EXPERIMENTAL_IMPL_CO_SPAWN_HPP diff --git a/Sources/Vendor/asio/include/asio/experimental/impl/detached.hpp b/Sources/Vendor/asio/include/asio/experimental/impl/detached.hpp deleted file mode 100644 index 6ce8887..0000000 --- a/Sources/Vendor/asio/include/asio/experimental/impl/detached.hpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// experimental/impl/detached.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_EXPERIMENTAL_IMPL_DETACHED_HPP -#define ASIO_EXPERIMENTAL_IMPL_DETACHED_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/async_result.hpp" -#include "asio/detail/variadic_templates.hpp" -#include "asio/handler_type.hpp" -#include "asio/system_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace experimental { -namespace detail { - - // Class to adapt a detached_t as a completion handler. - class detached_handler - { - public: - detached_handler(detached_t) - { - } - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - void operator()(Args...) - { - } - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - - void operator()() - { - } - -#define ASIO_PRIVATE_DETACHED_DEF(n) \ - template \ - void operator()(ASIO_VARIADIC_BYVAL_PARAMS(n)) \ - { \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_DETACHED_DEF) -#undef ASIO_PRIVATE_DETACHED_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - }; - -} // namespace detail -} // namespace experimental - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct async_result -{ - typedef asio::experimental::detail::detached_handler - completion_handler_type; - - typedef void return_type; - - explicit async_result(completion_handler_type&) - { - } - - void get() - { - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_EXPERIMENTAL_IMPL_DETACHED_HPP diff --git a/Sources/Vendor/asio/include/asio/experimental/impl/redirect_error.hpp b/Sources/Vendor/asio/include/asio/experimental/impl/redirect_error.hpp deleted file mode 100644 index d3b97fa..0000000 --- a/Sources/Vendor/asio/include/asio/experimental/impl/redirect_error.hpp +++ /dev/null @@ -1,294 +0,0 @@ -// -// experimental/impl/redirect_error.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_EXPERIMENTAL_IMPL_REDIRECT_ERROR_HPP -#define ASIO_EXPERIMENTAL_IMPL_REDIRECT_ERROR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_executor.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/async_result.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/detail/variadic_templates.hpp" -#include "asio/handler_type.hpp" -#include "asio/system_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace experimental { -namespace detail { - -// Class to adapt a redirect_error_t as a completion handler. -template -class redirect_error_handler -{ -public: - template - redirect_error_handler(redirect_error_t e) - : ec_(e.ec_), - handler_(ASIO_MOVE_CAST(CompletionToken)(e.token_)) - { - } - - void operator()() - { - handler_(); - } - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - typename enable_if< - !is_same::type, asio::error_code>::value - >::type - operator()(ASIO_MOVE_ARG(Arg) arg, ASIO_MOVE_ARG(Args)... args) - { - handler_(ASIO_MOVE_CAST(Arg)(arg), - ASIO_MOVE_CAST(Args)(args)...); - } - - template - void operator()(const asio::error_code& ec, - ASIO_MOVE_ARG(Args)... args) - { - ec_ = ec; - handler_(ASIO_MOVE_CAST(Args)(args)...); - } - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - typename enable_if< - !is_same::type, asio::error_code>::value - >::type - operator()(ASIO_MOVE_ARG(Arg) arg) - { - handler_(ASIO_MOVE_CAST(Arg)(arg)); - } - - void operator()(const asio::error_code& ec) - { - ec_ = ec; - handler_(); - } - -#define ASIO_PRIVATE_REDIRECT_ERROR_DEF(n) \ - template \ - typename enable_if< \ - !is_same::type, asio::error_code>::value \ - >::type \ - operator()(ASIO_MOVE_ARG(Arg) arg, ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - handler_(ASIO_MOVE_CAST(Arg)(arg), \ - ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - void operator()(const asio::error_code& ec, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - ec_ = ec; \ - handler_(ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_REDIRECT_ERROR_DEF) -#undef ASIO_PRIVATE_REDIRECT_ERROR_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -//private: - asio::error_code& ec_; - Handler handler_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - redirect_error_handler* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - redirect_error_handler* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - redirect_error_handler* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - redirect_error_handler* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - redirect_error_handler* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -struct redirect_error_signature -{ - typedef Signature type; -}; - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -struct redirect_error_signature -{ - typedef R type(Args...); -}; - -template -struct redirect_error_signature -{ - typedef R type(Args...); -}; - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -struct redirect_error_signature -{ - typedef R type(); -}; - -template -struct redirect_error_signature -{ - typedef R type(); -}; - -#define ASIO_PRIVATE_REDIRECT_ERROR_DEF(n) \ - template \ - struct redirect_error_signature< \ - R(asio::error_code, ASIO_VARIADIC_TARGS(n))> \ - { \ - typedef R type(ASIO_VARIADIC_TARGS(n)); \ - }; \ - \ - template \ - struct redirect_error_signature< \ - R(const asio::error_code&, ASIO_VARIADIC_TARGS(n))> \ - { \ - typedef R type(ASIO_VARIADIC_TARGS(n)); \ - }; \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_REDIRECT_ERROR_DEF) -#undef ASIO_PRIVATE_REDIRECT_ERROR_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -} // namespace detail -} // namespace experimental - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct async_result, Signature> - : async_result::type> -{ - typedef experimental::detail::redirect_error_handler< - typename async_result::type> - ::completion_handler_type> completion_handler_type; - - explicit async_result(completion_handler_type& h) - : async_result::type>(h.handler_) - { - } -}; - -#if !defined(ASIO_NO_DEPRECATED) - -template -struct handler_type, Signature> -{ - typedef experimental::detail::redirect_error_handler< - typename async_result::type> - ::completion_handler_type> type; -}; - -template -struct async_result > - : async_result -{ - explicit async_result( - experimental::detail::redirect_error_handler& h) - : async_result(h.handler_) - { - } -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -struct associated_executor< - experimental::detail::redirect_error_handler, Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const experimental::detail::redirect_error_handler& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -template -struct associated_allocator< - experimental::detail::redirect_error_handler, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const experimental::detail::redirect_error_handler& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_EXPERIMENTAL_IMPL_REDIRECT_ERROR_HPP diff --git a/Sources/Vendor/asio/include/asio/experimental/redirect_error.hpp b/Sources/Vendor/asio/include/asio/experimental/redirect_error.hpp deleted file mode 100644 index 30e81cf..0000000 --- a/Sources/Vendor/asio/include/asio/experimental/redirect_error.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// experimental/redirect_error.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_EXPERIMENTAL_REDIRECT_ERROR_HPP -#define ASIO_EXPERIMENTAL_REDIRECT_ERROR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error_code.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace experimental { - -/// Completion token type used to specify that an error produced by an -/// asynchronous operation is captured to an error_code variable. -/** - * The redirect_error_t class is used to indicate that any error_code produced - * by an asynchronous operation is captured to a specified variable. - */ -template -class redirect_error_t -{ -public: - /// Constructor. - template - redirect_error_t(ASIO_MOVE_ARG(T) completion_token, - asio::error_code& ec) - : token_(ASIO_MOVE_CAST(T)(completion_token)), - ec_(ec) - { - } - -//private: - CompletionToken token_; - asio::error_code& ec_; -}; - -/// Create a completion token to capture error_code values to a variable. -template -inline redirect_error_t::type> redirect_error( - CompletionToken&& completion_token, asio::error_code& ec) -{ - return redirect_error_t::type>( - ASIO_MOVE_CAST(CompletionToken)(completion_token), ec); -} - -} // namespace experimental -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/experimental/impl/redirect_error.hpp" - -#endif // ASIO_EXPERIMENTAL_REDIRECT_ERROR_HPP diff --git a/Sources/Vendor/asio/include/asio/generic/basic_endpoint.hpp b/Sources/Vendor/asio/include/asio/generic/basic_endpoint.hpp deleted file mode 100644 index 73aa151..0000000 --- a/Sources/Vendor/asio/include/asio/generic/basic_endpoint.hpp +++ /dev/null @@ -1,193 +0,0 @@ -// -// generic/basic_endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_GENERIC_BASIC_ENDPOINT_HPP -#define ASIO_GENERIC_BASIC_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/generic/detail/endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace generic { - -/// Describes an endpoint for any socket type. -/** - * The asio::generic::basic_endpoint class template describes an endpoint - * that may be associated with any socket type. - * - * @note The socket types sockaddr type must be able to fit into a - * @c sockaddr_storage structure. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * Endpoint. - */ -template -class basic_endpoint -{ -public: - /// The protocol type associated with the endpoint. - typedef Protocol protocol_type; - - /// The type of the endpoint structure. This type is dependent on the - /// underlying implementation of the socket layer. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined data_type; -#else - typedef asio::detail::socket_addr_type data_type; -#endif - - /// Default constructor. - basic_endpoint() - { - } - - /// Construct an endpoint from the specified socket address. - basic_endpoint(const void* socket_address, - std::size_t socket_address_size, int socket_protocol = 0) - : impl_(socket_address, socket_address_size, socket_protocol) - { - } - - /// Construct an endpoint from the specific endpoint type. - template - basic_endpoint(const Endpoint& endpoint) - : impl_(endpoint.data(), endpoint.size(), endpoint.protocol().protocol()) - { - } - - /// Copy constructor. - basic_endpoint(const basic_endpoint& other) - : impl_(other.impl_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - basic_endpoint(basic_endpoint&& other) - : impl_(other.impl_) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from another endpoint. - basic_endpoint& operator=(const basic_endpoint& other) - { - impl_ = other.impl_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move-assign from another endpoint. - basic_endpoint& operator=(basic_endpoint&& other) - { - impl_ = other.impl_; - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// The protocol associated with the endpoint. - protocol_type protocol() const - { - return protocol_type(impl_.family(), impl_.protocol()); - } - - /// Get the underlying endpoint in the native type. - data_type* data() - { - return impl_.data(); - } - - /// Get the underlying endpoint in the native type. - const data_type* data() const - { - return impl_.data(); - } - - /// Get the underlying size of the endpoint in the native type. - std::size_t size() const - { - return impl_.size(); - } - - /// Set the underlying size of the endpoint in the native type. - void resize(std::size_t new_size) - { - impl_.resize(new_size); - } - - /// Get the capacity of the endpoint in the native type. - std::size_t capacity() const - { - return impl_.capacity(); - } - - /// Compare two endpoints for equality. - friend bool operator==(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.impl_ == e2.impl_; - } - - /// Compare two endpoints for inequality. - friend bool operator!=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e1.impl_ == e2.impl_); - } - - /// Compare endpoints for ordering. - friend bool operator<(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.impl_ < e2.impl_; - } - - /// Compare endpoints for ordering. - friend bool operator>(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e2.impl_ < e1.impl_; - } - - /// Compare endpoints for ordering. - friend bool operator<=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e2 < e1); - } - - /// Compare endpoints for ordering. - friend bool operator>=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e1 < e2); - } - -private: - // The underlying generic endpoint. - asio::generic::detail::endpoint impl_; -}; - -} // namespace generic -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_GENERIC_BASIC_ENDPOINT_HPP diff --git a/Sources/Vendor/asio/include/asio/generic/datagram_protocol.hpp b/Sources/Vendor/asio/include/asio/generic/datagram_protocol.hpp deleted file mode 100644 index 8678ad8..0000000 --- a/Sources/Vendor/asio/include/asio/generic/datagram_protocol.hpp +++ /dev/null @@ -1,123 +0,0 @@ -// -// generic/datagram_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_GENERIC_DATAGRAM_PROTOCOL_HPP -#define ASIO_GENERIC_DATAGRAM_PROTOCOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/basic_datagram_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/generic/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace generic { - -/// Encapsulates the flags needed for a generic datagram-oriented socket. -/** - * The asio::generic::datagram_protocol class contains flags necessary - * for datagram-oriented sockets of any address family and protocol. - * - * @par Examples - * Constructing using a native address family and socket protocol: - * @code datagram_protocol p(AF_INET, IPPROTO_UDP); @endcode - * Constructing from a specific protocol type: - * @code datagram_protocol p(asio::ip::udp::v4()); @endcode - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class datagram_protocol -{ -public: - /// Construct a protocol object for a specific address family and protocol. - datagram_protocol(int address_family, int socket_protocol) - : family_(address_family), - protocol_(socket_protocol) - { - } - - /// Construct a generic protocol object from a specific protocol. - /** - * @throws @c bad_cast Thrown if the source protocol is not datagram-oriented. - */ - template - datagram_protocol(const Protocol& source_protocol) - : family_(source_protocol.family()), - protocol_(source_protocol.protocol()) - { - if (source_protocol.type() != type()) - { - std::bad_cast ex; - asio::detail::throw_exception(ex); - } - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return ASIO_OS_DEF(SOCK_DGRAM); - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return protocol_; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// Compare two protocols for equality. - friend bool operator==(const datagram_protocol& p1, - const datagram_protocol& p2) - { - return p1.family_ == p2.family_ && p1.protocol_ == p2.protocol_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const datagram_protocol& p1, - const datagram_protocol& p2) - { - return !(p1 == p2); - } - - /// The type of an endpoint. - typedef basic_endpoint endpoint; - - /// The generic socket type. - typedef basic_datagram_socket socket; - -private: - int family_; - int protocol_; -}; - -} // namespace generic -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_GENERIC_DATAGRAM_PROTOCOL_HPP diff --git a/Sources/Vendor/asio/include/asio/generic/detail/endpoint.hpp b/Sources/Vendor/asio/include/asio/generic/detail/endpoint.hpp deleted file mode 100644 index 190beb1..0000000 --- a/Sources/Vendor/asio/include/asio/generic/detail/endpoint.hpp +++ /dev/null @@ -1,133 +0,0 @@ -// -// generic/detail/endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_GENERIC_DETAIL_ENDPOINT_HPP -#define ASIO_GENERIC_DETAIL_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace generic { -namespace detail { - -// Helper class for implementing a generic socket endpoint. -class endpoint -{ -public: - // Default constructor. - ASIO_DECL endpoint(); - - // Construct an endpoint from the specified raw bytes. - ASIO_DECL endpoint(const void* sock_addr, - std::size_t sock_addr_size, int sock_protocol); - - // Copy constructor. - endpoint(const endpoint& other) - : data_(other.data_), - size_(other.size_), - protocol_(other.protocol_) - { - } - - // Assign from another endpoint. - endpoint& operator=(const endpoint& other) - { - data_ = other.data_; - size_ = other.size_; - protocol_ = other.protocol_; - return *this; - } - - // Get the address family associated with the endpoint. - int family() const - { - return data_.base.sa_family; - } - - // Get the socket protocol associated with the endpoint. - int protocol() const - { - return protocol_; - } - - // Get the underlying endpoint in the native type. - asio::detail::socket_addr_type* data() - { - return &data_.base; - } - - // Get the underlying endpoint in the native type. - const asio::detail::socket_addr_type* data() const - { - return &data_.base; - } - - // Get the underlying size of the endpoint in the native type. - std::size_t size() const - { - return size_; - } - - // Set the underlying size of the endpoint in the native type. - ASIO_DECL void resize(std::size_t size); - - // Get the capacity of the endpoint in the native type. - std::size_t capacity() const - { - return sizeof(asio::detail::sockaddr_storage_type); - } - - // Compare two endpoints for equality. - ASIO_DECL friend bool operator==( - const endpoint& e1, const endpoint& e2); - - // Compare endpoints for ordering. - ASIO_DECL friend bool operator<( - const endpoint& e1, const endpoint& e2); - -private: - // The underlying socket address. - union data_union - { - asio::detail::socket_addr_type base; - asio::detail::sockaddr_storage_type generic; - } data_; - - // The length of the socket address stored in the endpoint. - std::size_t size_; - - // The socket protocol associated with the endpoint. - int protocol_; - - // Initialise with a specified memory. - ASIO_DECL void init(const void* sock_addr, - std::size_t sock_addr_size, int sock_protocol); -}; - -} // namespace detail -} // namespace generic -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/generic/detail/impl/endpoint.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_GENERIC_DETAIL_ENDPOINT_HPP diff --git a/Sources/Vendor/asio/include/asio/generic/detail/impl/endpoint.ipp b/Sources/Vendor/asio/include/asio/generic/detail/impl/endpoint.ipp deleted file mode 100644 index 227ffe1..0000000 --- a/Sources/Vendor/asio/include/asio/generic/detail/impl/endpoint.ipp +++ /dev/null @@ -1,110 +0,0 @@ -// -// generic/detail/impl/endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_GENERIC_DETAIL_IMPL_ENDPOINT_IPP -#define ASIO_GENERIC_DETAIL_IMPL_ENDPOINT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/error.hpp" -#include "asio/generic/detail/endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace generic { -namespace detail { - -endpoint::endpoint() -{ - init(0, 0, 0); -} - -endpoint::endpoint(const void* sock_addr, - std::size_t sock_addr_size, int sock_protocol) -{ - init(sock_addr, sock_addr_size, sock_protocol); -} - -void endpoint::resize(std::size_t new_size) -{ - if (new_size > sizeof(asio::detail::sockaddr_storage_type)) - { - asio::error_code ec(asio::error::invalid_argument); - asio::detail::throw_error(ec); - } - else - { - size_ = new_size; - protocol_ = 0; - } -} - -bool operator==(const endpoint& e1, const endpoint& e2) -{ - using namespace std; // For memcmp. - return e1.size() == e2.size() && memcmp(e1.data(), e2.data(), e1.size()) == 0; -} - -bool operator<(const endpoint& e1, const endpoint& e2) -{ - if (e1.protocol() < e2.protocol()) - return true; - - if (e1.protocol() > e2.protocol()) - return false; - - using namespace std; // For memcmp. - std::size_t compare_size = e1.size() < e2.size() ? e1.size() : e2.size(); - int compare_result = memcmp(e1.data(), e2.data(), compare_size); - - if (compare_result < 0) - return true; - - if (compare_result > 0) - return false; - - return e1.size() < e2.size(); -} - -void endpoint::init(const void* sock_addr, - std::size_t sock_addr_size, int sock_protocol) -{ - if (sock_addr_size > sizeof(asio::detail::sockaddr_storage_type)) - { - asio::error_code ec(asio::error::invalid_argument); - asio::detail::throw_error(ec); - } - - using namespace std; // For memset and memcpy. - memset(&data_.generic, 0, sizeof(asio::detail::sockaddr_storage_type)); - if (sock_addr_size > 0) - memcpy(&data_.generic, sock_addr, sock_addr_size); - - size_ = sock_addr_size; - protocol_ = sock_protocol; -} - -} // namespace detail -} // namespace generic -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_GENERIC_DETAIL_IMPL_ENDPOINT_IPP diff --git a/Sources/Vendor/asio/include/asio/generic/raw_protocol.hpp b/Sources/Vendor/asio/include/asio/generic/raw_protocol.hpp deleted file mode 100644 index b83dca6..0000000 --- a/Sources/Vendor/asio/include/asio/generic/raw_protocol.hpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// generic/raw_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_GENERIC_RAW_PROTOCOL_HPP -#define ASIO_GENERIC_RAW_PROTOCOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/basic_raw_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/generic/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace generic { - -/// Encapsulates the flags needed for a generic raw socket. -/** - * The asio::generic::raw_protocol class contains flags necessary for - * raw sockets of any address family and protocol. - * - * @par Examples - * Constructing using a native address family and socket protocol: - * @code raw_protocol p(AF_INET, IPPROTO_ICMP); @endcode - * Constructing from a specific protocol type: - * @code raw_protocol p(asio::ip::icmp::v4()); @endcode - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class raw_protocol -{ -public: - /// Construct a protocol object for a specific address family and protocol. - raw_protocol(int address_family, int socket_protocol) - : family_(address_family), - protocol_(socket_protocol) - { - } - - /// Construct a generic protocol object from a specific protocol. - /** - * @throws @c bad_cast Thrown if the source protocol is not raw-oriented. - */ - template - raw_protocol(const Protocol& source_protocol) - : family_(source_protocol.family()), - protocol_(source_protocol.protocol()) - { - if (source_protocol.type() != type()) - { - std::bad_cast ex; - asio::detail::throw_exception(ex); - } - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return ASIO_OS_DEF(SOCK_RAW); - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return protocol_; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// Compare two protocols for equality. - friend bool operator==(const raw_protocol& p1, const raw_protocol& p2) - { - return p1.family_ == p2.family_ && p1.protocol_ == p2.protocol_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const raw_protocol& p1, const raw_protocol& p2) - { - return !(p1 == p2); - } - - /// The type of an endpoint. - typedef basic_endpoint endpoint; - - /// The generic socket type. - typedef basic_raw_socket socket; - -private: - int family_; - int protocol_; -}; - -} // namespace generic -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_GENERIC_RAW_PROTOCOL_HPP diff --git a/Sources/Vendor/asio/include/asio/generic/seq_packet_protocol.hpp b/Sources/Vendor/asio/include/asio/generic/seq_packet_protocol.hpp deleted file mode 100644 index f92a4c8..0000000 --- a/Sources/Vendor/asio/include/asio/generic/seq_packet_protocol.hpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// generic/seq_packet_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_GENERIC_SEQ_PACKET_PROTOCOL_HPP -#define ASIO_GENERIC_SEQ_PACKET_PROTOCOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/basic_seq_packet_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/generic/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace generic { - -/// Encapsulates the flags needed for a generic sequenced packet socket. -/** - * The asio::generic::seq_packet_protocol class contains flags necessary - * for seq_packet-oriented sockets of any address family and protocol. - * - * @par Examples - * Constructing using a native address family and socket protocol: - * @code seq_packet_protocol p(AF_INET, IPPROTO_SCTP); @endcode - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class seq_packet_protocol -{ -public: - /// Construct a protocol object for a specific address family and protocol. - seq_packet_protocol(int address_family, int socket_protocol) - : family_(address_family), - protocol_(socket_protocol) - { - } - - /// Construct a generic protocol object from a specific protocol. - /** - * @throws @c bad_cast Thrown if the source protocol is not based around - * sequenced packets. - */ - template - seq_packet_protocol(const Protocol& source_protocol) - : family_(source_protocol.family()), - protocol_(source_protocol.protocol()) - { - if (source_protocol.type() != type()) - { - std::bad_cast ex; - asio::detail::throw_exception(ex); - } - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return ASIO_OS_DEF(SOCK_SEQPACKET); - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return protocol_; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// Compare two protocols for equality. - friend bool operator==(const seq_packet_protocol& p1, - const seq_packet_protocol& p2) - { - return p1.family_ == p2.family_ && p1.protocol_ == p2.protocol_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const seq_packet_protocol& p1, - const seq_packet_protocol& p2) - { - return !(p1 == p2); - } - - /// The type of an endpoint. - typedef basic_endpoint endpoint; - - /// The generic socket type. - typedef basic_seq_packet_socket socket; - -private: - int family_; - int protocol_; -}; - -} // namespace generic -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_GENERIC_SEQ_PACKET_PROTOCOL_HPP diff --git a/Sources/Vendor/asio/include/asio/generic/stream_protocol.hpp b/Sources/Vendor/asio/include/asio/generic/stream_protocol.hpp deleted file mode 100644 index 8349f25..0000000 --- a/Sources/Vendor/asio/include/asio/generic/stream_protocol.hpp +++ /dev/null @@ -1,127 +0,0 @@ -// -// generic/stream_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_GENERIC_STREAM_PROTOCOL_HPP -#define ASIO_GENERIC_STREAM_PROTOCOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/basic_socket_iostream.hpp" -#include "asio/basic_stream_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/generic/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace generic { - -/// Encapsulates the flags needed for a generic stream-oriented socket. -/** - * The asio::generic::stream_protocol class contains flags necessary for - * stream-oriented sockets of any address family and protocol. - * - * @par Examples - * Constructing using a native address family and socket protocol: - * @code stream_protocol p(AF_INET, IPPROTO_TCP); @endcode - * Constructing from a specific protocol type: - * @code stream_protocol p(asio::ip::tcp::v4()); @endcode - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class stream_protocol -{ -public: - /// Construct a protocol object for a specific address family and protocol. - stream_protocol(int address_family, int socket_protocol) - : family_(address_family), - protocol_(socket_protocol) - { - } - - /// Construct a generic protocol object from a specific protocol. - /** - * @throws @c bad_cast Thrown if the source protocol is not stream-oriented. - */ - template - stream_protocol(const Protocol& source_protocol) - : family_(source_protocol.family()), - protocol_(source_protocol.protocol()) - { - if (source_protocol.type() != type()) - { - std::bad_cast ex; - asio::detail::throw_exception(ex); - } - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return ASIO_OS_DEF(SOCK_STREAM); - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return protocol_; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// Compare two protocols for equality. - friend bool operator==(const stream_protocol& p1, const stream_protocol& p2) - { - return p1.family_ == p2.family_ && p1.protocol_ == p2.protocol_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const stream_protocol& p1, const stream_protocol& p2) - { - return !(p1 == p2); - } - - /// The type of an endpoint. - typedef basic_endpoint endpoint; - - /// The generic socket type. - typedef basic_stream_socket socket; - -#if !defined(ASIO_NO_IOSTREAM) - /// The generic socket iostream type. - typedef basic_socket_iostream iostream; -#endif // !defined(ASIO_NO_IOSTREAM) - -private: - int family_; - int protocol_; -}; - -} // namespace generic -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_GENERIC_STREAM_PROTOCOL_HPP diff --git a/Sources/Vendor/asio/include/asio/handler_alloc_hook.hpp b/Sources/Vendor/asio/include/asio/handler_alloc_hook.hpp deleted file mode 100644 index d7fe2b0..0000000 --- a/Sources/Vendor/asio/include/asio/handler_alloc_hook.hpp +++ /dev/null @@ -1,81 +0,0 @@ -// -// handler_alloc_hook.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_HANDLER_ALLOC_HOOK_HPP -#define ASIO_HANDLER_ALLOC_HOOK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default allocation function for handlers. -/** - * Asynchronous operations may need to allocate temporary objects. Since - * asynchronous operations have a handler function object, these temporary - * objects can be said to be associated with the handler. - * - * Implement asio_handler_allocate and asio_handler_deallocate for your own - * handlers to provide custom allocation for these temporary objects. - * - * The default implementation of these allocation hooks uses ::operator - * new and ::operator delete. - * - * @note All temporary objects associated with a handler will be deallocated - * before the upcall to the handler is performed. This allows the same memory to - * be reused for a subsequent asynchronous operation initiated by the handler. - * - * @par Example - * @code - * class my_handler; - * - * void* asio_handler_allocate(std::size_t size, my_handler* context) - * { - * return ::operator new(size); - * } - * - * void asio_handler_deallocate(void* pointer, std::size_t size, - * my_handler* context) - * { - * ::operator delete(pointer); - * } - * @endcode - */ -ASIO_DECL void* asio_handler_allocate( - std::size_t size, ...); - -/// 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. - * - * The default implementation of these allocation hooks uses ::operator - * new and ::operator delete. - * - * @sa asio_handler_allocate. - */ -ASIO_DECL void asio_handler_deallocate( - void* pointer, std::size_t size, ...); - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/handler_alloc_hook.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_HANDLER_ALLOC_HOOK_HPP diff --git a/Sources/Vendor/asio/include/asio/handler_continuation_hook.hpp b/Sources/Vendor/asio/include/asio/handler_continuation_hook.hpp deleted file mode 100644 index d41d105..0000000 --- a/Sources/Vendor/asio/include/asio/handler_continuation_hook.hpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// handler_continuation_hook.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_HANDLER_CONTINUATION_HOOK_HPP -#define ASIO_HANDLER_CONTINUATION_HOOK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default continuation function for handlers. -/** - * 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. - * - * @par Example - * @code - * class my_handler; - * - * bool asio_handler_is_continuation(my_handler* context) - * { - * return true; - * } - * @endcode - */ -inline bool asio_handler_is_continuation(...) -{ - return false; -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_HANDLER_CONTINUATION_HOOK_HPP diff --git a/Sources/Vendor/asio/include/asio/handler_invoke_hook.hpp b/Sources/Vendor/asio/include/asio/handler_invoke_hook.hpp deleted file mode 100644 index ee618e5..0000000 --- a/Sources/Vendor/asio/include/asio/handler_invoke_hook.hpp +++ /dev/null @@ -1,85 +0,0 @@ -// -// handler_invoke_hook.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_HANDLER_INVOKE_HOOK_HPP -#define ASIO_HANDLER_INVOKE_HOOK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/** @defgroup asio_handler_invoke asio::asio_handler_invoke - * - * @brief Default invoke function for handlers. - * - * Completion handlers for asynchronous operations are invoked by the - * io_context 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 @c run() on the corresponding io_context object. - * Handlers may subsequently be invoked through other objects (such as - * io_context::strand objects) that provide additional guarantees. - * - * When asynchronous operations are composed from other asynchronous - * operations, all intermediate handlers should be invoked using the same - * method as the final handler. This is required to ensure that user-defined - * objects are not accessed in a way that may violate the guarantees. This - * hooking function ensures that the invoked method used for the final handler - * is accessible at each intermediate step. - * - * Implement asio_handler_invoke for your own handlers to specify a custom - * invocation strategy. - * - * This default implementation invokes the function object like so: - * @code function(); @endcode - * If necessary, the default implementation makes a copy of the function object - * so that the non-const operator() can be used. - * - * @par Example - * @code - * class my_handler; - * - * template - * void asio_handler_invoke(Function function, my_handler* context) - * { - * context->strand_.dispatch(function); - * } - * @endcode - */ -/*@{*/ - -/// Default handler invocation hook used for non-const function objects. -template -inline void asio_handler_invoke(Function& function, ...) -{ - function(); -} - -/// Default handler invocation hook used for const function objects. -template -inline void asio_handler_invoke(const Function& function, ...) -{ - Function tmp(function); - tmp(); -} - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_HANDLER_INVOKE_HOOK_HPP diff --git a/Sources/Vendor/asio/include/asio/handler_type.hpp b/Sources/Vendor/asio/include/asio/handler_type.hpp deleted file mode 100644 index bc0d305..0000000 --- a/Sources/Vendor/asio/include/asio/handler_type.hpp +++ /dev/null @@ -1,50 +0,0 @@ -// -// handler_type.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_HANDLER_TYPE_HPP -#define ASIO_HANDLER_TYPE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// (Deprecated: Use two-parameter version of async_result.) Default handler -/// type traits provided for all completion token types. -/** - * The 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 completion token types. - */ -template -struct handler_type -{ - /// The handler type for the specific signature. - typedef typename conditional< - is_same::type>::value, - decay, - handler_type::type, Signature> - >::type::type type; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_HANDLER_TYPE_HPP diff --git a/Sources/Vendor/asio/include/asio/high_resolution_timer.hpp b/Sources/Vendor/asio/include/asio/high_resolution_timer.hpp deleted file mode 100644 index 0549cc2..0000000 --- a/Sources/Vendor/asio/include/asio/high_resolution_timer.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// -// high_resolution_timer.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_HIGH_RESOLUTION_TIMER_HPP -#define ASIO_HIGH_RESOLUTION_TIMER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_waitable_timer.hpp" -#include "asio/detail/chrono.hpp" - -namespace asio { - -/// Typedef for a timer based on the high resolution clock. -/** - * This typedef uses the C++11 @c <chrono> standard library facility, if - * available. Otherwise, it may use the Boost.Chrono library. To explicitly - * utilise Boost.Chrono, use the basic_waitable_timer template directly: - * @code - * typedef basic_waitable_timer timer; - * @endcode - */ -typedef basic_waitable_timer< - chrono::high_resolution_clock> - high_resolution_timer; - -} // namespace asio - -#endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_HIGH_RESOLUTION_TIMER_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/buffered_read_stream.hpp b/Sources/Vendor/asio/include/asio/impl/buffered_read_stream.hpp deleted file mode 100644 index e0ed20e..0000000 --- a/Sources/Vendor/asio/include/asio/impl/buffered_read_stream.hpp +++ /dev/null @@ -1,429 +0,0 @@ -// -// impl/buffered_read_stream.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_BUFFERED_READ_STREAM_HPP -#define ASIO_IMPL_BUFFERED_READ_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -std::size_t buffered_read_stream::fill() -{ - detail::buffer_resize_guard - resize_guard(storage_); - std::size_t previous_size = storage_.size(); - storage_.resize(storage_.capacity()); - storage_.resize(previous_size + next_layer_.read_some(buffer( - storage_.data() + previous_size, - storage_.size() - previous_size))); - resize_guard.commit(); - return storage_.size() - previous_size; -} - -template -std::size_t buffered_read_stream::fill(asio::error_code& ec) -{ - detail::buffer_resize_guard - resize_guard(storage_); - std::size_t previous_size = storage_.size(); - storage_.resize(storage_.capacity()); - storage_.resize(previous_size + next_layer_.read_some(buffer( - storage_.data() + previous_size, - storage_.size() - previous_size), - ec)); - resize_guard.commit(); - return storage_.size() - previous_size; -} - -namespace detail -{ - template - class buffered_fill_handler - { - public: - buffered_fill_handler(detail::buffered_stream_storage& storage, - std::size_t previous_size, ReadHandler& handler) - : storage_(storage), - previous_size_(previous_size), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - buffered_fill_handler(const buffered_fill_handler& other) - : storage_(other.storage_), - previous_size_(other.previous_size_), - handler_(other.handler_) - { - } - - buffered_fill_handler(buffered_fill_handler&& other) - : storage_(other.storage_), - previous_size_(other.previous_size_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - const std::size_t bytes_transferred) - { - storage_.resize(previous_size_ + bytes_transferred); - handler_(ec, bytes_transferred); - } - - //private: - detail::buffered_stream_storage& storage_; - std::size_t previous_size_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - buffered_fill_handler* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - buffered_fill_handler* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - buffered_fill_handler* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - buffered_fill_handler* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - buffered_fill_handler* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::buffered_fill_handler, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const detail::buffered_fill_handler& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::buffered_fill_handler, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const detail::buffered_fill_handler& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -buffered_read_stream::async_fill( - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - std::size_t previous_size = storage_.size(); - storage_.resize(storage_.capacity()); - next_layer_.async_read_some( - buffer( - storage_.data() + previous_size, - storage_.size() - previous_size), - detail::buffered_fill_handler( - storage_, previous_size, init.completion_handler)); - - return init.result.get(); -} - -template -template -std::size_t buffered_read_stream::read_some( - const MutableBufferSequence& buffers) -{ - using asio::buffer_size; - if (buffer_size(buffers) == 0) - return 0; - - if (storage_.empty()) - this->fill(); - - return this->copy(buffers); -} - -template -template -std::size_t buffered_read_stream::read_some( - const MutableBufferSequence& buffers, asio::error_code& ec) -{ - ec = asio::error_code(); - - using asio::buffer_size; - if (buffer_size(buffers) == 0) - return 0; - - if (storage_.empty() && !this->fill(ec)) - return 0; - - return this->copy(buffers); -} - -namespace detail -{ - template - class buffered_read_some_handler - { - public: - buffered_read_some_handler(detail::buffered_stream_storage& storage, - const MutableBufferSequence& buffers, ReadHandler& handler) - : storage_(storage), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - buffered_read_some_handler(const buffered_read_some_handler& other) - : storage_(other.storage_), - buffers_(other.buffers_), - handler_(other.handler_) - { - } - - buffered_read_some_handler(buffered_read_some_handler&& other) - : storage_(other.storage_), - buffers_(other.buffers_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, std::size_t) - { - if (ec || storage_.empty()) - { - const std::size_t length = 0; - handler_(ec, length); - } - else - { - const std::size_t bytes_copied = asio::buffer_copy( - buffers_, storage_.data(), storage_.size()); - storage_.consume(bytes_copied); - handler_(ec, bytes_copied); - } - } - - //private: - detail::buffered_stream_storage& storage_; - MutableBufferSequence buffers_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - buffered_read_some_handler< - MutableBufferSequence, ReadHandler>* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - buffered_read_some_handler< - MutableBufferSequence, ReadHandler>* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - buffered_read_some_handler< - MutableBufferSequence, ReadHandler>* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - buffered_read_some_handler< - MutableBufferSequence, ReadHandler>* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - buffered_read_some_handler< - MutableBufferSequence, ReadHandler>* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::buffered_read_some_handler, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::buffered_read_some_handler< - MutableBufferSequence, ReadHandler>& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::buffered_read_some_handler, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::buffered_read_some_handler< - MutableBufferSequence, ReadHandler>& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -buffered_read_stream::async_read_some( - const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - using asio::buffer_size; - if (buffer_size(buffers) == 0 || !storage_.empty()) - { - next_layer_.async_read_some(ASIO_MUTABLE_BUFFER(0, 0), - detail::buffered_read_some_handler< - MutableBufferSequence, ASIO_HANDLER_TYPE( - ReadHandler, void (asio::error_code, std::size_t))>( - storage_, buffers, init.completion_handler)); - } - else - { - this->async_fill(detail::buffered_read_some_handler< - MutableBufferSequence, ASIO_HANDLER_TYPE( - ReadHandler, void (asio::error_code, std::size_t))>( - storage_, buffers, init.completion_handler)); - } - - return init.result.get(); -} - -template -template -std::size_t buffered_read_stream::peek( - const MutableBufferSequence& buffers) -{ - if (storage_.empty()) - this->fill(); - return this->peek_copy(buffers); -} - -template -template -std::size_t buffered_read_stream::peek( - const MutableBufferSequence& buffers, asio::error_code& ec) -{ - ec = asio::error_code(); - if (storage_.empty() && !this->fill(ec)) - return 0; - return this->peek_copy(buffers); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_BUFFERED_READ_STREAM_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/buffered_write_stream.hpp b/Sources/Vendor/asio/include/asio/impl/buffered_write_stream.hpp deleted file mode 100644 index bc2d823..0000000 --- a/Sources/Vendor/asio/include/asio/impl/buffered_write_stream.hpp +++ /dev/null @@ -1,411 +0,0 @@ -// -// impl/buffered_write_stream.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_BUFFERED_WRITE_STREAM_HPP -#define ASIO_IMPL_BUFFERED_WRITE_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -std::size_t buffered_write_stream::flush() -{ - std::size_t bytes_written = write(next_layer_, - buffer(storage_.data(), storage_.size())); - storage_.consume(bytes_written); - return bytes_written; -} - -template -std::size_t buffered_write_stream::flush(asio::error_code& ec) -{ - std::size_t bytes_written = write(next_layer_, - buffer(storage_.data(), storage_.size()), - transfer_all(), ec); - storage_.consume(bytes_written); - return bytes_written; -} - -namespace detail -{ - template - class buffered_flush_handler - { - public: - buffered_flush_handler(detail::buffered_stream_storage& storage, - WriteHandler& handler) - : storage_(storage), - handler_(ASIO_MOVE_CAST(WriteHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - buffered_flush_handler(const buffered_flush_handler& other) - : storage_(other.storage_), - handler_(other.handler_) - { - } - - buffered_flush_handler(buffered_flush_handler&& other) - : storage_(other.storage_), - handler_(ASIO_MOVE_CAST(WriteHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - const std::size_t bytes_written) - { - storage_.consume(bytes_written); - handler_(ec, bytes_written); - } - - //private: - detail::buffered_stream_storage& storage_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - buffered_flush_handler* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - buffered_flush_handler* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - buffered_flush_handler* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - buffered_flush_handler* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - buffered_flush_handler* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::buffered_flush_handler, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const detail::buffered_flush_handler& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::buffered_flush_handler, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const detail::buffered_flush_handler& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -buffered_write_stream::async_flush( - ASIO_MOVE_ARG(WriteHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - async_write(next_layer_, buffer(storage_.data(), storage_.size()), - detail::buffered_flush_handler( - storage_, init.completion_handler)); - - return init.result.get(); -} - -template -template -std::size_t buffered_write_stream::write_some( - const ConstBufferSequence& buffers) -{ - using asio::buffer_size; - if (buffer_size(buffers) == 0) - return 0; - - if (storage_.size() == storage_.capacity()) - this->flush(); - - return this->copy(buffers); -} - -template -template -std::size_t buffered_write_stream::write_some( - const ConstBufferSequence& buffers, asio::error_code& ec) -{ - ec = asio::error_code(); - - using asio::buffer_size; - if (buffer_size(buffers) == 0) - return 0; - - if (storage_.size() == storage_.capacity() && !flush(ec)) - return 0; - - return this->copy(buffers); -} - -namespace detail -{ - template - class buffered_write_some_handler - { - public: - buffered_write_some_handler(detail::buffered_stream_storage& storage, - const ConstBufferSequence& buffers, WriteHandler& handler) - : storage_(storage), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(WriteHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - buffered_write_some_handler(const buffered_write_some_handler& other) - : storage_(other.storage_), - buffers_(other.buffers_), - handler_(other.handler_) - { - } - - buffered_write_some_handler(buffered_write_some_handler&& other) - : storage_(other.storage_), - buffers_(other.buffers_), - handler_(ASIO_MOVE_CAST(WriteHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, std::size_t) - { - if (ec) - { - const std::size_t length = 0; - handler_(ec, length); - } - else - { - using asio::buffer_size; - std::size_t orig_size = storage_.size(); - std::size_t space_avail = storage_.capacity() - orig_size; - std::size_t bytes_avail = buffer_size(buffers_); - std::size_t length = bytes_avail < space_avail - ? bytes_avail : space_avail; - storage_.resize(orig_size + length); - const std::size_t bytes_copied = asio::buffer_copy( - storage_.data() + orig_size, buffers_, length); - handler_(ec, bytes_copied); - } - } - - //private: - detail::buffered_stream_storage& storage_; - ConstBufferSequence buffers_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - buffered_write_some_handler< - ConstBufferSequence, WriteHandler>* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - buffered_write_some_handler< - ConstBufferSequence, WriteHandler>* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - buffered_write_some_handler< - ConstBufferSequence, WriteHandler>* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - buffered_write_some_handler< - ConstBufferSequence, WriteHandler>* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - buffered_write_some_handler< - ConstBufferSequence, WriteHandler>* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::buffered_write_some_handler, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::buffered_write_some_handler< - ConstBufferSequence, WriteHandler>& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::buffered_write_some_handler, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::buffered_write_some_handler< - ConstBufferSequence, WriteHandler>& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -buffered_write_stream::async_write_some( - const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - using asio::buffer_size; - if (buffer_size(buffers) == 0 - || storage_.size() < storage_.capacity()) - { - next_layer_.async_write_some(ASIO_CONST_BUFFER(0, 0), - detail::buffered_write_some_handler< - ConstBufferSequence, ASIO_HANDLER_TYPE( - WriteHandler, void (asio::error_code, std::size_t))>( - storage_, buffers, init.completion_handler)); - } - else - { - this->async_flush(detail::buffered_write_some_handler< - ConstBufferSequence, ASIO_HANDLER_TYPE( - WriteHandler, void (asio::error_code, std::size_t))>( - storage_, buffers, init.completion_handler)); - } - - return init.result.get(); -} - -template -template -std::size_t buffered_write_stream::copy( - const ConstBufferSequence& buffers) -{ - using asio::buffer_size; - std::size_t orig_size = storage_.size(); - std::size_t space_avail = storage_.capacity() - orig_size; - std::size_t bytes_avail = buffer_size(buffers); - std::size_t length = bytes_avail < space_avail ? bytes_avail : space_avail; - storage_.resize(orig_size + length); - return asio::buffer_copy( - storage_.data() + orig_size, buffers, length); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_BUFFERED_WRITE_STREAM_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/connect.hpp b/Sources/Vendor/asio/include/asio/impl/connect.hpp deleted file mode 100644 index bff1913..0000000 --- a/Sources/Vendor/asio/include/asio/impl/connect.hpp +++ /dev/null @@ -1,860 +0,0 @@ -// -// impl/connect.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_CONNECT_HPP -#define ASIO_IMPL_CONNECT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/post.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - struct default_connect_condition - { - template - bool operator()(const asio::error_code&, const Endpoint&) - { - return true; - } - }; - - template - inline typename Protocol::endpoint deref_connect_result( - Iterator iter, asio::error_code& ec) - { - return ec ? typename Protocol::endpoint() : *iter; - } - - template - struct legacy_connect_condition_helper : T - { - typedef char (*fallback_func_type)(...); - operator fallback_func_type() const; - }; - - template - struct legacy_connect_condition_helper - { - R operator()(Arg1, Arg2) const; - char operator()(...) const; - }; - - template - struct is_legacy_connect_condition - { - static char asio_connect_condition_check(char); - static char (&asio_connect_condition_check(Iterator))[2]; - - static const bool value = - sizeof(asio_connect_condition_check( - (*static_cast*>(0))( - *static_cast(0), - *static_cast(0)))) != 1; - }; - - template - inline Iterator call_connect_condition(ConnectCondition& connect_condition, - const asio::error_code& ec, Iterator next, Iterator end, - typename enable_if::value>::type* = 0) - { - if (next != end) - return connect_condition(ec, next); - return end; - } - - template - inline Iterator call_connect_condition(ConnectCondition& connect_condition, - const asio::error_code& ec, Iterator next, Iterator end, - typename enable_if::value>::type* = 0) - { - for (;next != end; ++next) - if (connect_condition(ec, *next)) - return next; - return end; - } -} - -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, - typename enable_if::value>::type*) -{ - asio::error_code ec; - typename Protocol::endpoint result = connect(s, endpoints, ec); - asio::detail::throw_error(ec, "connect"); - return result; -} - -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, asio::error_code& ec, - typename enable_if::value>::type*) -{ - return detail::deref_connect_result( - connect(s, endpoints.begin(), endpoints.end(), - detail::default_connect_condition(), ec), ec); -} - -#if !defined(ASIO_NO_DEPRECATED) -template -Iterator connect(basic_socket& s, Iterator begin, - typename enable_if::value>::type*) -{ - asio::error_code ec; - Iterator result = connect(s, begin, ec); - asio::detail::throw_error(ec, "connect"); - return result; -} - -template -inline Iterator connect(basic_socket& s, - Iterator begin, asio::error_code& ec, - typename enable_if::value>::type*) -{ - return connect(s, begin, Iterator(), detail::default_connect_condition(), ec); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -template -Iterator connect(basic_socket& s, - Iterator begin, Iterator end) -{ - asio::error_code ec; - Iterator result = connect(s, begin, end, ec); - asio::detail::throw_error(ec, "connect"); - return result; -} - -template -inline Iterator connect(basic_socket& s, - Iterator begin, Iterator end, asio::error_code& ec) -{ - return connect(s, begin, end, detail::default_connect_condition(), ec); -} - -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, ConnectCondition connect_condition, - typename enable_if::value>::type*) -{ - asio::error_code ec; - typename Protocol::endpoint result = connect( - s, endpoints, connect_condition, ec); - asio::detail::throw_error(ec, "connect"); - return result; -} - -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, ConnectCondition connect_condition, - asio::error_code& ec, - typename enable_if::value>::type*) -{ - return detail::deref_connect_result( - connect(s, endpoints.begin(), endpoints.end(), - connect_condition, ec), ec); -} - -#if !defined(ASIO_NO_DEPRECATED) -template -Iterator connect(basic_socket& s, - Iterator begin, ConnectCondition connect_condition, - typename enable_if::value>::type*) -{ - asio::error_code ec; - Iterator result = connect(s, begin, connect_condition, ec); - asio::detail::throw_error(ec, "connect"); - return result; -} - -template -inline Iterator connect(basic_socket& s, - Iterator begin, ConnectCondition connect_condition, - asio::error_code& ec, - typename enable_if::value>::type*) -{ - return connect(s, begin, Iterator(), connect_condition, ec); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -template -Iterator connect(basic_socket& s, - Iterator begin, Iterator end, ConnectCondition connect_condition) -{ - asio::error_code ec; - Iterator result = connect(s, begin, end, connect_condition, ec); - asio::detail::throw_error(ec, "connect"); - return result; -} - -template -Iterator connect(basic_socket& s, - Iterator begin, Iterator end, ConnectCondition connect_condition, - asio::error_code& ec) -{ - ec = asio::error_code(); - - for (Iterator iter = begin; iter != end; ++iter) - { - iter = (detail::call_connect_condition(connect_condition, ec, iter, end)); - if (iter != end) - { - s.close(ec); - s.connect(*iter, ec); - if (!ec) - return iter; - } - else - break; - } - - if (!ec) - ec = asio::error::not_found; - - return end; -} - -namespace detail -{ - // Enable the empty base class optimisation for the connect condition. - template - class base_from_connect_condition - { - protected: - explicit base_from_connect_condition( - const ConnectCondition& connect_condition) - : connect_condition_(connect_condition) - { - } - - template - void check_condition(const asio::error_code& ec, - Iterator& iter, Iterator& end) - { - iter = detail::call_connect_condition(connect_condition_, ec, iter, end); - } - - private: - ConnectCondition connect_condition_; - }; - - // The default_connect_condition implementation is essentially a no-op. This - // template specialisation lets us eliminate all costs associated with it. - template <> - class base_from_connect_condition - { - protected: - explicit base_from_connect_condition(const default_connect_condition&) - { - } - - template - void check_condition(const asio::error_code&, Iterator&, Iterator&) - { - } - }; - - template - class range_connect_op : base_from_connect_condition - { - public: - range_connect_op(basic_socket& sock, - const EndpointSequence& endpoints, - const ConnectCondition& connect_condition, - RangeConnectHandler& handler) - : base_from_connect_condition(connect_condition), - socket_(sock), - endpoints_(endpoints), - index_(0), - start_(0), - handler_(ASIO_MOVE_CAST(RangeConnectHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - range_connect_op(const range_connect_op& other) - : base_from_connect_condition(other), - socket_(other.socket_), - endpoints_(other.endpoints_), - index_(other.index_), - start_(other.start_), - handler_(other.handler_) - { - } - - range_connect_op(range_connect_op&& other) - : base_from_connect_condition(other), - socket_(other.socket_), - endpoints_(other.endpoints_), - index_(other.index_), - start_(other.start_), - handler_(ASIO_MOVE_CAST(RangeConnectHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(asio::error_code ec, int start = 0) - { - typename EndpointSequence::const_iterator begin = endpoints_.begin(); - typename EndpointSequence::const_iterator iter = begin; - std::advance(iter, index_); - typename EndpointSequence::const_iterator end = endpoints_.end(); - - switch (start_ = start) - { - case 1: - for (;;) - { - this->check_condition(ec, iter, end); - index_ = std::distance(begin, iter); - - if (iter != end) - { - socket_.close(ec); - socket_.async_connect(*iter, - ASIO_MOVE_CAST(range_connect_op)(*this)); - return; - } - - if (start) - { - ec = asio::error::not_found; - asio::post(socket_.get_executor(), - detail::bind_handler( - ASIO_MOVE_CAST(range_connect_op)(*this), ec)); - return; - } - - default: - - if (iter == end) - break; - - if (!socket_.is_open()) - { - ec = asio::error::operation_aborted; - break; - } - - if (!ec) - break; - - ++iter; - ++index_; - } - - handler_(static_cast(ec), - static_cast( - ec || iter == end ? typename Protocol::endpoint() : *iter)); - } - } - - //private: - basic_socket& socket_; - EndpointSequence endpoints_; - std::size_t index_; - int start_; - RangeConnectHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - range_connect_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - range_connect_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - range_connect_op* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - range_connect_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - range_connect_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - class iterator_connect_op : base_from_connect_condition - { - public: - iterator_connect_op(basic_socket& sock, - const Iterator& begin, const Iterator& end, - const ConnectCondition& connect_condition, - IteratorConnectHandler& handler) - : base_from_connect_condition(connect_condition), - socket_(sock), - iter_(begin), - end_(end), - start_(0), - handler_(ASIO_MOVE_CAST(IteratorConnectHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - iterator_connect_op(const iterator_connect_op& other) - : base_from_connect_condition(other), - socket_(other.socket_), - iter_(other.iter_), - end_(other.end_), - start_(other.start_), - handler_(other.handler_) - { - } - - iterator_connect_op(iterator_connect_op&& other) - : base_from_connect_condition(other), - socket_(other.socket_), - iter_(other.iter_), - end_(other.end_), - start_(other.start_), - handler_(ASIO_MOVE_CAST(IteratorConnectHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(asio::error_code ec, int start = 0) - { - switch (start_ = start) - { - case 1: - for (;;) - { - this->check_condition(ec, iter_, end_); - - if (iter_ != end_) - { - socket_.close(ec); - socket_.async_connect(*iter_, - ASIO_MOVE_CAST(iterator_connect_op)(*this)); - return; - } - - if (start) - { - ec = asio::error::not_found; - asio::post(socket_.get_executor(), - detail::bind_handler( - ASIO_MOVE_CAST(iterator_connect_op)(*this), ec)); - return; - } - - default: - - if (iter_ == end_) - break; - - if (!socket_.is_open()) - { - ec = asio::error::operation_aborted; - break; - } - - if (!ec) - break; - - ++iter_; - } - - handler_(static_cast(ec), - static_cast(iter_)); - } - } - - //private: - basic_socket& socket_; - Iterator iter_; - Iterator end_; - int start_; - IteratorConnectHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - iterator_connect_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - iterator_connect_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - iterator_connect_op* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - iterator_connect_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - iterator_connect_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::range_connect_op, - Allocator> -{ - typedef typename associated_allocator< - RangeConnectHandler, Allocator>::type type; - - static type get( - const detail::range_connect_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::range_connect_op, - Executor> -{ - typedef typename associated_executor< - RangeConnectHandler, Executor>::type type; - - static type get( - const detail::range_connect_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -template -struct associated_allocator< - detail::iterator_connect_op, - Allocator> -{ - typedef typename associated_allocator< - IteratorConnectHandler, Allocator>::type type; - - static type get( - const detail::iterator_connect_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::iterator_connect_op, - Executor> -{ - typedef typename associated_executor< - IteratorConnectHandler, Executor>::type type; - - static type get( - const detail::iterator_connect_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(RangeConnectHandler, - void (asio::error_code, typename Protocol::endpoint)) -async_connect(basic_socket& s, - const EndpointSequence& endpoints, - ASIO_MOVE_ARG(RangeConnectHandler) handler, - typename enable_if::value>::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a RangeConnectHandler. - ASIO_RANGE_CONNECT_HANDLER_CHECK( - RangeConnectHandler, handler, typename Protocol::endpoint) type_check; - - async_completion - init(handler); - - detail::range_connect_op(s, - endpoints, detail::default_connect_condition(), - init.completion_handler)(asio::error_code(), 1); - - return init.result.get(); -} - -#if !defined(ASIO_NO_DEPRECATED) -template -inline ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, - Iterator begin, ASIO_MOVE_ARG(IteratorConnectHandler) handler, - typename enable_if::value>::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a IteratorConnectHandler. - ASIO_ITERATOR_CONNECT_HANDLER_CHECK( - IteratorConnectHandler, handler, Iterator) type_check; - - async_completion init(handler); - - detail::iterator_connect_op(s, - begin, Iterator(), detail::default_connect_condition(), - init.completion_handler)(asio::error_code(), 1); - - return init.result.get(); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -template -inline ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, - Iterator begin, Iterator end, - ASIO_MOVE_ARG(IteratorConnectHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a IteratorConnectHandler. - ASIO_ITERATOR_CONNECT_HANDLER_CHECK( - IteratorConnectHandler, handler, Iterator) type_check; - - async_completion init(handler); - - detail::iterator_connect_op(s, - begin, end, detail::default_connect_condition(), - init.completion_handler)(asio::error_code(), 1); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(RangeConnectHandler, - void (asio::error_code, typename Protocol::endpoint)) -async_connect(basic_socket& s, - const EndpointSequence& endpoints, ConnectCondition connect_condition, - ASIO_MOVE_ARG(RangeConnectHandler) handler, - typename enable_if::value>::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a RangeConnectHandler. - ASIO_RANGE_CONNECT_HANDLER_CHECK( - RangeConnectHandler, handler, typename Protocol::endpoint) type_check; - - async_completion - init(handler); - - detail::range_connect_op(s, - endpoints, connect_condition, init.completion_handler)( - asio::error_code(), 1); - - return init.result.get(); -} - -#if !defined(ASIO_NO_DEPRECATED) -template -inline ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, - Iterator begin, ConnectCondition connect_condition, - ASIO_MOVE_ARG(IteratorConnectHandler) handler, - typename enable_if::value>::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a IteratorConnectHandler. - ASIO_ITERATOR_CONNECT_HANDLER_CHECK( - IteratorConnectHandler, handler, Iterator) type_check; - - async_completion init(handler); - - detail::iterator_connect_op(s, - begin, Iterator(), connect_condition, init.completion_handler)( - asio::error_code(), 1); - - return init.result.get(); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -template -inline ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, - Iterator begin, Iterator end, ConnectCondition connect_condition, - ASIO_MOVE_ARG(IteratorConnectHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a IteratorConnectHandler. - ASIO_ITERATOR_CONNECT_HANDLER_CHECK( - IteratorConnectHandler, handler, Iterator) type_check; - - async_completion init(handler); - - detail::iterator_connect_op(s, - begin, end, connect_condition, init.completion_handler)( - asio::error_code(), 1); - - return init.result.get(); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_CONNECT_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/defer.hpp b/Sources/Vendor/asio/include/asio/impl/defer.hpp deleted file mode 100644 index a27df0f..0000000 --- a/Sources/Vendor/asio/include/asio/impl/defer.hpp +++ /dev/null @@ -1,77 +0,0 @@ -// -// impl/defer.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_DEFER_HPP -#define ASIO_IMPL_DEFER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/work_dispatcher.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) defer( - ASIO_MOVE_ARG(CompletionToken) token) -{ - typedef ASIO_HANDLER_TYPE(CompletionToken, void()) handler; - - async_completion init(token); - - typename associated_executor::type ex( - (get_associated_executor)(init.completion_handler)); - - typename associated_allocator::type alloc( - (get_associated_allocator)(init.completion_handler)); - - ex.defer(ASIO_MOVE_CAST(handler)(init.completion_handler), alloc); - - return init.result.get(); -} - -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) defer( - const Executor& ex, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type*) -{ - typedef ASIO_HANDLER_TYPE(CompletionToken, void()) handler; - - async_completion init(token); - - typename associated_allocator::type alloc( - (get_associated_allocator)(init.completion_handler)); - - ex.defer(detail::work_dispatcher(init.completion_handler), alloc); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) defer( - ExecutionContext& ctx, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type*) -{ - return (defer)(ctx.get_executor(), - ASIO_MOVE_CAST(CompletionToken)(token)); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_DEFER_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/dispatch.hpp b/Sources/Vendor/asio/include/asio/impl/dispatch.hpp deleted file mode 100644 index 4e11c6b..0000000 --- a/Sources/Vendor/asio/include/asio/impl/dispatch.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// impl/dispatch.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_DISPATCH_HPP -#define ASIO_IMPL_DISPATCH_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/work_dispatcher.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) dispatch( - ASIO_MOVE_ARG(CompletionToken) token) -{ - typedef ASIO_HANDLER_TYPE(CompletionToken, void()) handler; - - async_completion init(token); - - typename associated_executor::type ex( - (get_associated_executor)(init.completion_handler)); - - typename associated_allocator::type alloc( - (get_associated_allocator)(init.completion_handler)); - - ex.dispatch(ASIO_MOVE_CAST(handler)(init.completion_handler), alloc); - - return init.result.get(); -} - -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) dispatch( - const Executor& ex, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type*) -{ - typedef ASIO_HANDLER_TYPE(CompletionToken, void()) handler; - - async_completion init(token); - - typename associated_allocator::type alloc( - (get_associated_allocator)(init.completion_handler)); - - ex.dispatch(detail::work_dispatcher( - init.completion_handler), alloc); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) dispatch( - ExecutionContext& ctx, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type*) -{ - return (dispatch)(ctx.get_executor(), - ASIO_MOVE_CAST(CompletionToken)(token)); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_DISPATCH_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/error.ipp b/Sources/Vendor/asio/include/asio/impl/error.ipp deleted file mode 100644 index 6b1f33a..0000000 --- a/Sources/Vendor/asio/include/asio/impl/error.ipp +++ /dev/null @@ -1,128 +0,0 @@ -// -// impl/error.ipp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_ERROR_IPP -#define ASIO_IMPL_ERROR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace error { - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -namespace detail { - -class netdb_category : public asio::error_category -{ -public: - const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT - { - return "asio.netdb"; - } - - std::string message(int value) const - { - if (value == error::host_not_found) - return "Host not found (authoritative)"; - if (value == error::host_not_found_try_again) - return "Host not found (non-authoritative), try again later"; - if (value == error::no_data) - return "The query is valid, but it does not have associated data"; - if (value == error::no_recovery) - return "A non-recoverable error occurred during database lookup"; - return "asio.netdb error"; - } -}; - -} // namespace detail - -const asio::error_category& get_netdb_category() -{ - static detail::netdb_category instance; - return instance; -} - -namespace detail { - -class addrinfo_category : public asio::error_category -{ -public: - const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT - { - return "asio.addrinfo"; - } - - std::string message(int value) const - { - if (value == error::service_not_found) - return "Service not found"; - if (value == error::socket_type_not_supported) - return "Socket type not supported"; - return "asio.addrinfo error"; - } -}; - -} // namespace detail - -const asio::error_category& get_addrinfo_category() -{ - static detail::addrinfo_category instance; - return instance; -} - -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -namespace detail { - -class misc_category : public asio::error_category -{ -public: - const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT - { - return "asio.misc"; - } - - std::string message(int value) const - { - if (value == error::already_open) - return "Already open"; - if (value == error::eof) - return "End of file"; - if (value == error::not_found) - return "Element not found"; - if (value == error::fd_set_failure) - return "The descriptor does not fit into the select call's fd_set"; - return "asio.misc error"; - } -}; - -} // namespace detail - -const asio::error_category& get_misc_category() -{ - static detail::misc_category instance; - return instance; -} - -} // namespace error -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_ERROR_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/error_code.ipp b/Sources/Vendor/asio/include/asio/impl/error_code.ipp deleted file mode 100644 index 0c8a827..0000000 --- a/Sources/Vendor/asio/include/asio/impl/error_code.ipp +++ /dev/null @@ -1,206 +0,0 @@ -// -// impl/error_code.ipp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_ERROR_CODE_IPP -#define ASIO_IMPL_ERROR_CODE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# include -#elif defined(ASIO_WINDOWS_RUNTIME) -# include -#else -# include -# include -# include -#endif -#include "asio/detail/local_free_on_block_exit.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/error_code.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class system_category : public error_category -{ -public: - const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT - { - return "asio.system"; - } - - std::string message(int value) const - { -#if defined(ASIO_WINDOWS_RUNTIME) || defined(ASIO_WINDOWS_APP) - std::wstring wmsg(128, wchar_t()); - for (;;) - { - DWORD wlength = ::FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM - | FORMAT_MESSAGE_IGNORE_INSERTS, 0, value, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - &wmsg[0], static_cast(wmsg.size()), 0); - if (wlength == 0 && ::GetLastError() == ERROR_INSUFFICIENT_BUFFER) - { - wmsg.resize(wmsg.size() + wmsg.size() / 2); - continue; - } - if (wlength && wmsg[wlength - 1] == '\n') - --wlength; - if (wlength && wmsg[wlength - 1] == '\r') - --wlength; - if (wlength) - { - std::string msg(wlength * 2, char()); - int length = ::WideCharToMultiByte(CP_ACP, 0, - wmsg.c_str(), static_cast(wlength), - &msg[0], static_cast(wlength * 2), 0, 0); - if (length <= 0) - return "asio.system error"; - msg.resize(static_cast(length)); - return msg; - } - else - return "asio.system error"; - } -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) - char* msg = 0; - DWORD length = ::FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER - | FORMAT_MESSAGE_FROM_SYSTEM - | FORMAT_MESSAGE_IGNORE_INSERTS, 0, value, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (char*)&msg, 0, 0); - detail::local_free_on_block_exit local_free_obj(msg); - if (length && msg[length - 1] == '\n') - msg[--length] = '\0'; - if (length && msg[length - 1] == '\r') - msg[--length] = '\0'; - if (length) - return msg; - else - return "asio.system error"; -#else // defined(ASIO_WINDOWS_DESKTOP) || defined(__CYGWIN__) -#if !defined(__sun) - if (value == ECANCELED) - return "Operation aborted."; -#endif // !defined(__sun) -#if defined(__sun) || defined(__QNX__) || defined(__SYMBIAN32__) - using namespace std; - return strerror(value); -#else - char buf[256] = ""; - using namespace std; - return strerror_result(strerror_r(value, buf, sizeof(buf)), buf); -#endif -#endif // defined(ASIO_WINDOWS_DESKTOP) || defined(__CYGWIN__) - } - -#if defined(ASIO_HAS_STD_ERROR_CODE) - std::error_condition default_error_condition( - int ev) const ASIO_ERROR_CATEGORY_NOEXCEPT - { - switch (ev) - { - case access_denied: - return std::errc::permission_denied; - case address_family_not_supported: - return std::errc::address_family_not_supported; - case address_in_use: - return std::errc::address_in_use; - case already_connected: - return std::errc::already_connected; - case already_started: - return std::errc::connection_already_in_progress; - case broken_pipe: - return std::errc::broken_pipe; - case connection_aborted: - return std::errc::connection_aborted; - case connection_refused: - return std::errc::connection_refused; - case connection_reset: - return std::errc::connection_reset; - case bad_descriptor: - return std::errc::bad_file_descriptor; - case fault: - return std::errc::bad_address; - case host_unreachable: - return std::errc::host_unreachable; - case in_progress: - return std::errc::operation_in_progress; - case interrupted: - return std::errc::interrupted; - case invalid_argument: - return std::errc::invalid_argument; - case message_size: - return std::errc::message_size; - case name_too_long: - return std::errc::filename_too_long; - case network_down: - return std::errc::network_down; - case network_reset: - return std::errc::network_reset; - case network_unreachable: - return std::errc::network_unreachable; - case no_descriptors: - return std::errc::too_many_files_open; - case no_buffer_space: - return std::errc::no_buffer_space; - case no_memory: - return std::errc::not_enough_memory; - case no_permission: - return std::errc::operation_not_permitted; - case no_protocol_option: - return std::errc::no_protocol_option; - case no_such_device: - return std::errc::no_such_device; - case not_connected: - return std::errc::not_connected; - case not_socket: - return std::errc::not_a_socket; - case operation_aborted: - return std::errc::operation_canceled; - case operation_not_supported: - return std::errc::operation_not_supported; - case shut_down: - return std::make_error_condition(ev, *this); - case timed_out: - return std::errc::timed_out; - case try_again: - return std::errc::resource_unavailable_try_again; - case would_block: - return std::errc::operation_would_block; - default: - return std::make_error_condition(ev, *this); - } -#endif // defined(ASIO_HAS_STD_ERROR_CODE) - -private: - // Helper function to adapt the result from glibc's variant of strerror_r. - static const char* strerror_result(int, const char* s) { return s; } - static const char* strerror_result(const char* s, const char*) { return s; } -}; - -} // namespace detail - -const error_category& system_category() -{ - static detail::system_category instance; - return instance; -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_ERROR_CODE_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/execution_context.hpp b/Sources/Vendor/asio/include/asio/impl/execution_context.hpp deleted file mode 100644 index 3d1e457..0000000 --- a/Sources/Vendor/asio/include/asio/impl/execution_context.hpp +++ /dev/null @@ -1,107 +0,0 @@ -// -// impl/execution_context.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_EXECUTION_CONTEXT_HPP -#define ASIO_IMPL_EXECUTION_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/detail/service_registry.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -inline Service& use_service(execution_context& e) -{ - // Check that Service meets the necessary type requirements. - (void)static_cast(static_cast(0)); - - return e.service_registry_->template use_service(); -} - -#if !defined(GENERATING_DOCUMENTATION) -# if defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -Service& make_service(execution_context& e, ASIO_MOVE_ARG(Args)... args) -{ - detail::scoped_ptr svc( - new Service(e, ASIO_MOVE_CAST(Args)(args)...)); - e.service_registry_->template add_service(svc.get()); - Service& result = *svc; - svc.release(); - return result; -} - -# else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -Service& make_service(execution_context& e) -{ - detail::scoped_ptr svc(new Service(e)); - e.service_registry_->template add_service(svc.get()); - Service& result = *svc; - svc.release(); - return result; -} - -#define ASIO_PRIVATE_MAKE_SERVICE_DEF(n) \ - template \ - Service& make_service(execution_context& e, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - detail::scoped_ptr svc( \ - new Service(e, ASIO_VARIADIC_MOVE_ARGS(n))); \ - e.service_registry_->template add_service(svc.get()); \ - Service& result = *svc; \ - svc.release(); \ - return result; \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_MAKE_SERVICE_DEF) -#undef ASIO_PRIVATE_MAKE_SERVICE_DEF - -# endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline void add_service(execution_context& e, Service* svc) -{ - // Check that Service meets the necessary type requirements. - (void)static_cast(static_cast(0)); - - e.service_registry_->template add_service(svc); -} - -template -inline bool has_service(execution_context& e) -{ - // Check that Service meets the necessary type requirements. - (void)static_cast(static_cast(0)); - - return e.service_registry_->template has_service(); -} - -inline execution_context& execution_context::service::context() -{ - return owner_; -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_EXECUTION_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/execution_context.ipp b/Sources/Vendor/asio/include/asio/impl/execution_context.ipp deleted file mode 100644 index c2b3b21..0000000 --- a/Sources/Vendor/asio/include/asio/impl/execution_context.ipp +++ /dev/null @@ -1,82 +0,0 @@ -// -// impl/execution_context.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_EXECUTION_CONTEXT_IPP -#define ASIO_IMPL_EXECUTION_CONTEXT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/execution_context.hpp" -#include "asio/detail/service_registry.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -execution_context::execution_context() - : service_registry_(new asio::detail::service_registry(*this)) -{ -} - -execution_context::~execution_context() -{ - shutdown(); - destroy(); - delete service_registry_; -} - -void execution_context::shutdown() -{ - service_registry_->shutdown_services(); -} - -void execution_context::destroy() -{ - service_registry_->destroy_services(); -} - -void execution_context::notify_fork( - asio::execution_context::fork_event event) -{ - service_registry_->notify_fork(event); -} - -execution_context::service::service(execution_context& owner) - : owner_(owner), - next_(0) -{ -} - -execution_context::service::~service() -{ -} - -void execution_context::service::notify_fork(execution_context::fork_event) -{ -} - -service_already_exists::service_already_exists() - : std::logic_error("Service already exists.") -{ -} - -invalid_service_owner::invalid_service_owner() - : std::logic_error("Invalid service owner.") -{ -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_EXECUTION_CONTEXT_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/executor.hpp b/Sources/Vendor/asio/include/asio/impl/executor.hpp deleted file mode 100644 index 0fcf5f5..0000000 --- a/Sources/Vendor/asio/include/asio/impl/executor.hpp +++ /dev/null @@ -1,386 +0,0 @@ -// -// impl/executor.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_EXECUTOR_HPP -#define ASIO_IMPL_EXECUTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/atomic_count.hpp" -#include "asio/detail/executor_op.hpp" -#include "asio/detail/global.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/recycling_allocator.hpp" -#include "asio/executor.hpp" -#include "asio/system_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if !defined(GENERATING_DOCUMENTATION) - -#if defined(ASIO_HAS_MOVE) - -// Lightweight, move-only function object wrapper. -class executor::function -{ -public: - template - explicit function(F f, const Alloc& a) - { - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - op_ = new (p.v) op(ASIO_MOVE_CAST(F)(f), a); - p.v = 0; - } - - function(function&& other) - : op_(other.op_) - { - other.op_ = 0; - } - - ~function() - { - if (op_) - op_->destroy(); - } - - void operator()() - { - if (op_) - { - detail::scheduler_operation* op = op_; - op_ = 0; - op->complete(this, asio::error_code(), 0); - } - } - -private: - detail::scheduler_operation* op_; -}; - -#else // defined(ASIO_HAS_MOVE) - -// Not so lightweight, copyable function object wrapper. -class executor::function -{ -public: - template - explicit function(const F& f, const Alloc&) - : impl_(new impl(f)) - { - } - - void operator()() - { - impl_->invoke_(impl_.get()); - } - -private: - // Base class for polymorphic function implementations. - struct impl_base - { - void (*invoke_)(impl_base*); - }; - - // Polymorphic function implementation. - template - struct impl : impl_base - { - impl(const F& f) - : function_(f) - { - invoke_ = &function::invoke; - } - - F function_; - }; - - // Helper to invoke a function. - template - static void invoke(impl_base* i) - { - static_cast*>(i)->function_(); - } - - detail::shared_ptr impl_; -}; - -#endif // defined(ASIO_HAS_MOVE) - -// Default polymorphic allocator implementation. -template -class executor::impl - : public executor::impl_base -{ -public: - typedef ASIO_REBIND_ALLOC(Allocator, impl) allocator_type; - - static impl_base* create(const Executor& e, Allocator a = Allocator()) - { - raw_mem mem(a); - impl* p = new (mem.ptr_) impl(e, a); - mem.ptr_ = 0; - return p; - } - - impl(const Executor& e, const Allocator& a) ASIO_NOEXCEPT - : impl_base(false), - ref_count_(1), - executor_(e), - allocator_(a) - { - } - - impl_base* clone() const ASIO_NOEXCEPT - { - ++ref_count_; - return const_cast(static_cast(this)); - } - - void destroy() ASIO_NOEXCEPT - { - if (--ref_count_ == 0) - { - allocator_type alloc(allocator_); - impl* p = this; - p->~impl(); - alloc.deallocate(p, 1); - } - } - - void on_work_started() ASIO_NOEXCEPT - { - executor_.on_work_started(); - } - - void on_work_finished() ASIO_NOEXCEPT - { - executor_.on_work_finished(); - } - - execution_context& context() ASIO_NOEXCEPT - { - return executor_.context(); - } - - void dispatch(ASIO_MOVE_ARG(function) f) - { - executor_.dispatch(ASIO_MOVE_CAST(function)(f), allocator_); - } - - void post(ASIO_MOVE_ARG(function) f) - { - executor_.post(ASIO_MOVE_CAST(function)(f), allocator_); - } - - void defer(ASIO_MOVE_ARG(function) f) - { - executor_.defer(ASIO_MOVE_CAST(function)(f), allocator_); - } - - type_id_result_type target_type() const ASIO_NOEXCEPT - { - return type_id(); - } - - void* target() ASIO_NOEXCEPT - { - return &executor_; - } - - const void* target() const ASIO_NOEXCEPT - { - return &executor_; - } - - bool equals(const impl_base* e) const ASIO_NOEXCEPT - { - if (this == e) - return true; - if (target_type() != e->target_type()) - return false; - return executor_ == *static_cast(e->target()); - } - -private: - mutable detail::atomic_count ref_count_; - Executor executor_; - Allocator allocator_; - - struct raw_mem - { - allocator_type allocator_; - impl* ptr_; - - explicit raw_mem(const Allocator& a) - : allocator_(a), - ptr_(allocator_.allocate(1)) - { - } - - ~raw_mem() - { - if (ptr_) - allocator_.deallocate(ptr_, 1); - } - - private: - // Disallow copying and assignment. - raw_mem(const raw_mem&); - raw_mem operator=(const raw_mem&); - }; -}; - -// Polymorphic allocator specialisation for system_executor. -template -class executor::impl - : public executor::impl_base -{ -public: - static impl_base* create(const system_executor&, - const Allocator& = Allocator()) - { - return &detail::global > >(); - } - - impl() - : impl_base(true) - { - } - - impl_base* clone() const ASIO_NOEXCEPT - { - return const_cast(static_cast(this)); - } - - void destroy() ASIO_NOEXCEPT - { - } - - void on_work_started() ASIO_NOEXCEPT - { - executor_.on_work_started(); - } - - void on_work_finished() ASIO_NOEXCEPT - { - executor_.on_work_finished(); - } - - execution_context& context() ASIO_NOEXCEPT - { - return executor_.context(); - } - - void dispatch(ASIO_MOVE_ARG(function) f) - { - executor_.dispatch(ASIO_MOVE_CAST(function)(f), allocator_); - } - - void post(ASIO_MOVE_ARG(function) f) - { - executor_.post(ASIO_MOVE_CAST(function)(f), allocator_); - } - - void defer(ASIO_MOVE_ARG(function) f) - { - executor_.defer(ASIO_MOVE_CAST(function)(f), allocator_); - } - - type_id_result_type target_type() const ASIO_NOEXCEPT - { - return type_id(); - } - - void* target() ASIO_NOEXCEPT - { - return &executor_; - } - - const void* target() const ASIO_NOEXCEPT - { - return &executor_; - } - - bool equals(const impl_base* e) const ASIO_NOEXCEPT - { - return this == e; - } - -private: - system_executor executor_; - Allocator allocator_; -}; - -template -executor::executor(Executor e) - : impl_(impl >::create(e)) -{ -} - -template -executor::executor(allocator_arg_t, const Allocator& a, Executor e) - : impl_(impl::create(e, a)) -{ -} - -template -void executor::dispatch(ASIO_MOVE_ARG(Function) f, - const Allocator& a) const -{ - impl_base* i = get_impl(); - if (i->fast_dispatch_) - system_executor().dispatch(ASIO_MOVE_CAST(Function)(f), a); - else - i->dispatch(function(ASIO_MOVE_CAST(Function)(f), a)); -} - -template -void executor::post(ASIO_MOVE_ARG(Function) f, - const Allocator& a) const -{ - get_impl()->post(function(ASIO_MOVE_CAST(Function)(f), a)); -} - -template -void executor::defer(ASIO_MOVE_ARG(Function) f, - const Allocator& a) const -{ - get_impl()->defer(function(ASIO_MOVE_CAST(Function)(f), a)); -} - -template -Executor* executor::target() ASIO_NOEXCEPT -{ - return impl_ && impl_->target_type() == type_id() - ? static_cast(impl_->target()) : 0; -} - -template -const Executor* executor::target() const ASIO_NOEXCEPT -{ - return impl_ && impl_->target_type() == type_id() - ? static_cast(impl_->target()) : 0; -} - -#endif // !defined(GENERATING_DOCUMENTATION) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/executor.ipp b/Sources/Vendor/asio/include/asio/impl/executor.ipp deleted file mode 100644 index 4bd0dc5..0000000 --- a/Sources/Vendor/asio/include/asio/impl/executor.ipp +++ /dev/null @@ -1,38 +0,0 @@ -// -// impl/executor.ipp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_EXECUTOR_IPP -#define ASIO_IMPL_EXECUTOR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -bad_executor::bad_executor() ASIO_NOEXCEPT -{ -} - -const char* bad_executor::what() const ASIO_NOEXCEPT_OR_NOTHROW -{ - return "bad executor"; -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_EXECUTOR_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/handler_alloc_hook.ipp b/Sources/Vendor/asio/include/asio/impl/handler_alloc_hook.ipp deleted file mode 100644 index 909ddac..0000000 --- a/Sources/Vendor/asio/include/asio/impl/handler_alloc_hook.ipp +++ /dev/null @@ -1,52 +0,0 @@ -// -// impl/handler_alloc_hook.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_HANDLER_ALLOC_HOOK_IPP -#define ASIO_IMPL_HANDLER_ALLOC_HOOK_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/thread_context.hpp" -#include "asio/detail/thread_info_base.hpp" -#include "asio/handler_alloc_hook.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -void* asio_handler_allocate(std::size_t size, ...) -{ -#if !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING) - return detail::thread_info_base::allocate( - detail::thread_context::thread_call_stack::top(), size); -#else // !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING) - return ::operator new(size); -#endif // !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING) -} - -void asio_handler_deallocate(void* pointer, std::size_t size, ...) -{ -#if !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING) - detail::thread_info_base::deallocate( - detail::thread_context::thread_call_stack::top(), pointer, size); -#else // !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING) - (void)size; - ::operator delete(pointer); -#endif // !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING) -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_HANDLER_ALLOC_HOOK_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/io_context.hpp b/Sources/Vendor/asio/include/asio/impl/io_context.hpp deleted file mode 100644 index 5b6300f..0000000 --- a/Sources/Vendor/asio/include/asio/impl/io_context.hpp +++ /dev/null @@ -1,343 +0,0 @@ -// -// impl/io_context.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_IO_CONTEXT_HPP -#define ASIO_IMPL_IO_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/completion_handler.hpp" -#include "asio/detail/executor_op.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/recycling_allocator.hpp" -#include "asio/detail/service_registry.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -inline Service& use_service(io_context& ioc) -{ - // Check that Service meets the necessary type requirements. - (void)static_cast(static_cast(0)); - (void)static_cast(&Service::id); - - return ioc.service_registry_->template use_service(ioc); -} - -template <> -inline detail::io_context_impl& use_service( - io_context& ioc) -{ - return ioc.impl_; -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_io_context.hpp" -#else -# include "asio/detail/scheduler.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -inline io_context::executor_type -io_context::get_executor() ASIO_NOEXCEPT -{ - return executor_type(*this); -} - -#if defined(ASIO_HAS_CHRONO) - -template -std::size_t io_context::run_for( - const chrono::duration& rel_time) -{ - return this->run_until(chrono::steady_clock::now() + rel_time); -} - -template -std::size_t io_context::run_until( - const chrono::time_point& abs_time) -{ - std::size_t n = 0; - while (this->run_one_until(abs_time)) - if (n != (std::numeric_limits::max)()) - ++n; - return n; -} - -template -std::size_t io_context::run_one_for( - const chrono::duration& rel_time) -{ - return this->run_one_until(chrono::steady_clock::now() + rel_time); -} - -template -std::size_t io_context::run_one_until( - const chrono::time_point& abs_time) -{ - typename Clock::time_point now = Clock::now(); - while (now < abs_time) - { - typename Clock::duration rel_time = abs_time - now; - if (rel_time > chrono::seconds(1)) - rel_time = chrono::seconds(1); - - asio::error_code ec; - std::size_t s = impl_.wait_one( - static_cast(chrono::duration_cast< - chrono::microseconds>(rel_time).count()), ec); - asio::detail::throw_error(ec); - - if (s || impl_.stopped()) - return s; - - now = Clock::now(); - } - - return 0; -} - -#endif // defined(ASIO_HAS_CHRONO) - -#if !defined(ASIO_NO_DEPRECATED) - -inline void io_context::reset() -{ - restart(); -} - -template -ASIO_INITFN_RESULT_TYPE(LegacyCompletionHandler, void ()) -io_context::dispatch(ASIO_MOVE_ARG(LegacyCompletionHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a LegacyCompletionHandler. - ASIO_LEGACY_COMPLETION_HANDLER_CHECK( - LegacyCompletionHandler, handler) type_check; - - async_completion init(handler); - - if (impl_.can_dispatch()) - { - detail::fenced_block b(detail::fenced_block::full); - asio_handler_invoke_helpers::invoke( - init.completion_handler, init.completion_handler); - } - else - { - // Allocate and construct an operation to wrap the handler. - typedef detail::completion_handler< - typename handler_type::type> op; - typename op::ptr p = { detail::addressof(init.completion_handler), - op::ptr::allocate(init.completion_handler), 0 }; - p.p = new (p.v) op(init.completion_handler); - - ASIO_HANDLER_CREATION((*this, *p.p, - "io_context", this, 0, "dispatch")); - - impl_.do_dispatch(p.p); - p.v = p.p = 0; - } - - return init.result.get(); -} - -template -ASIO_INITFN_RESULT_TYPE(LegacyCompletionHandler, void ()) -io_context::post(ASIO_MOVE_ARG(LegacyCompletionHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a LegacyCompletionHandler. - ASIO_LEGACY_COMPLETION_HANDLER_CHECK( - LegacyCompletionHandler, handler) type_check; - - async_completion init(handler); - - bool is_continuation = - asio_handler_cont_helpers::is_continuation(init.completion_handler); - - // Allocate and construct an operation to wrap the handler. - typedef detail::completion_handler< - typename handler_type::type> op; - typename op::ptr p = { detail::addressof(init.completion_handler), - op::ptr::allocate(init.completion_handler), 0 }; - p.p = new (p.v) op(init.completion_handler); - - ASIO_HANDLER_CREATION((*this, *p.p, - "io_context", this, 0, "post")); - - impl_.post_immediate_completion(p.p, is_continuation); - p.v = p.p = 0; - - return init.result.get(); -} - -template -#if defined(GENERATING_DOCUMENTATION) -unspecified -#else -inline detail::wrapped_handler -#endif -io_context::wrap(Handler handler) -{ - return detail::wrapped_handler(*this, handler); -} - -#endif // !defined(ASIO_NO_DEPRECATED) - -inline io_context& -io_context::executor_type::context() const ASIO_NOEXCEPT -{ - return io_context_; -} - -inline void -io_context::executor_type::on_work_started() const ASIO_NOEXCEPT -{ - io_context_.impl_.work_started(); -} - -inline void -io_context::executor_type::on_work_finished() const ASIO_NOEXCEPT -{ - io_context_.impl_.work_finished(); -} - -template -void io_context::executor_type::dispatch( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - // Invoke immediately if we are already inside the thread pool. - if (io_context_.impl_.can_dispatch()) - { - // Make a local, non-const copy of the function. - function_type tmp(ASIO_MOVE_CAST(Function)(f)); - - detail::fenced_block b(detail::fenced_block::full); - asio_handler_invoke_helpers::invoke(tmp, tmp); - return; - } - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((this->context(), *p.p, - "io_context", &this->context(), 0, "dispatch")); - - io_context_.impl_.post_immediate_completion(p.p, false); - p.v = p.p = 0; -} - -template -void io_context::executor_type::post( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((this->context(), *p.p, - "io_context", &this->context(), 0, "post")); - - io_context_.impl_.post_immediate_completion(p.p, false); - p.v = p.p = 0; -} - -template -void io_context::executor_type::defer( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((this->context(), *p.p, - "io_context", &this->context(), 0, "defer")); - - io_context_.impl_.post_immediate_completion(p.p, true); - p.v = p.p = 0; -} - -inline bool -io_context::executor_type::running_in_this_thread() const ASIO_NOEXCEPT -{ - return io_context_.impl_.can_dispatch(); -} - -#if !defined(ASIO_NO_DEPRECATED) -inline io_context::work::work(asio::io_context& io_context) - : io_context_impl_(io_context.impl_) -{ - io_context_impl_.work_started(); -} - -inline io_context::work::work(const work& other) - : io_context_impl_(other.io_context_impl_) -{ - io_context_impl_.work_started(); -} - -inline io_context::work::~work() -{ - io_context_impl_.work_finished(); -} - -inline asio::io_context& io_context::work::get_io_context() -{ - return static_cast(io_context_impl_.context()); -} - -inline asio::io_context& io_context::work::get_io_service() -{ - return static_cast(io_context_impl_.context()); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -inline asio::io_context& io_context::service::get_io_context() -{ - return static_cast(context()); -} - -#if !defined(ASIO_NO_DEPRECATED) -inline asio::io_context& io_context::service::get_io_service() -{ - return static_cast(context()); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_IO_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/io_context.ipp b/Sources/Vendor/asio/include/asio/impl/io_context.ipp deleted file mode 100644 index 7eb467d..0000000 --- a/Sources/Vendor/asio/include/asio/impl/io_context.ipp +++ /dev/null @@ -1,174 +0,0 @@ -// -// impl/io_context.ipp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_IO_CONTEXT_IPP -#define ASIO_IMPL_IO_CONTEXT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/concurrency_hint.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/detail/service_registry.hpp" -#include "asio/detail/throw_error.hpp" - -#if defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_io_context.hpp" -#else -# include "asio/detail/scheduler.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -io_context::io_context() - : impl_(add_impl(new impl_type(*this, ASIO_CONCURRENCY_HINT_DEFAULT))) -{ -} - -io_context::io_context(int concurrency_hint) - : impl_(add_impl(new impl_type(*this, concurrency_hint == 1 - ? ASIO_CONCURRENCY_HINT_1 : concurrency_hint))) -{ -} - -io_context::impl_type& io_context::add_impl(io_context::impl_type* impl) -{ - asio::detail::scoped_ptr scoped_impl(impl); - asio::add_service(*this, scoped_impl.get()); - return *scoped_impl.release(); -} - -io_context::~io_context() -{ -} - -io_context::count_type io_context::run() -{ - asio::error_code ec; - count_type s = impl_.run(ec); - asio::detail::throw_error(ec); - return s; -} - -#if !defined(ASIO_NO_DEPRECATED) -io_context::count_type io_context::run(asio::error_code& ec) -{ - return impl_.run(ec); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -io_context::count_type io_context::run_one() -{ - asio::error_code ec; - count_type s = impl_.run_one(ec); - asio::detail::throw_error(ec); - return s; -} - -#if !defined(ASIO_NO_DEPRECATED) -io_context::count_type io_context::run_one(asio::error_code& ec) -{ - return impl_.run_one(ec); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -io_context::count_type io_context::poll() -{ - asio::error_code ec; - count_type s = impl_.poll(ec); - asio::detail::throw_error(ec); - return s; -} - -#if !defined(ASIO_NO_DEPRECATED) -io_context::count_type io_context::poll(asio::error_code& ec) -{ - return impl_.poll(ec); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -io_context::count_type io_context::poll_one() -{ - asio::error_code ec; - count_type s = impl_.poll_one(ec); - asio::detail::throw_error(ec); - return s; -} - -#if !defined(ASIO_NO_DEPRECATED) -io_context::count_type io_context::poll_one(asio::error_code& ec) -{ - return impl_.poll_one(ec); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -void io_context::stop() -{ - impl_.stop(); -} - -bool io_context::stopped() const -{ - return impl_.stopped(); -} - -void io_context::restart() -{ - impl_.restart(); -} - -io_context::service::service(asio::io_context& owner) - : execution_context::service(owner) -{ -} - -io_context::service::~service() -{ -} - -void io_context::service::shutdown() -{ -#if !defined(ASIO_NO_DEPRECATED) - shutdown_service(); -#endif // !defined(ASIO_NO_DEPRECATED) -} - -#if !defined(ASIO_NO_DEPRECATED) -void io_context::service::shutdown_service() -{ -} -#endif // !defined(ASIO_NO_DEPRECATED) - -void io_context::service::notify_fork(io_context::fork_event ev) -{ -#if !defined(ASIO_NO_DEPRECATED) - fork_service(ev); -#else // !defined(ASIO_NO_DEPRECATED) - (void)ev; -#endif // !defined(ASIO_NO_DEPRECATED) -} - -#if !defined(ASIO_NO_DEPRECATED) -void io_context::service::fork_service(io_context::fork_event) -{ -} -#endif // !defined(ASIO_NO_DEPRECATED) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_IO_CONTEXT_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/post.hpp b/Sources/Vendor/asio/include/asio/impl/post.hpp deleted file mode 100644 index 5538953..0000000 --- a/Sources/Vendor/asio/include/asio/impl/post.hpp +++ /dev/null @@ -1,77 +0,0 @@ -// -// impl/post.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_POST_HPP -#define ASIO_IMPL_POST_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/work_dispatcher.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) post( - ASIO_MOVE_ARG(CompletionToken) token) -{ - typedef ASIO_HANDLER_TYPE(CompletionToken, void()) handler; - - async_completion init(token); - - typename associated_executor::type ex( - (get_associated_executor)(init.completion_handler)); - - typename associated_allocator::type alloc( - (get_associated_allocator)(init.completion_handler)); - - ex.post(ASIO_MOVE_CAST(handler)(init.completion_handler), alloc); - - return init.result.get(); -} - -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) post( - const Executor& ex, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type*) -{ - typedef ASIO_HANDLER_TYPE(CompletionToken, void()) handler; - - async_completion init(token); - - typename associated_allocator::type alloc( - (get_associated_allocator)(init.completion_handler)); - - ex.post(detail::work_dispatcher(init.completion_handler), alloc); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) post( - ExecutionContext& ctx, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type*) -{ - return (post)(ctx.get_executor(), - ASIO_MOVE_CAST(CompletionToken)(token)); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_POST_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/read.hpp b/Sources/Vendor/asio/include/asio/impl/read.hpp deleted file mode 100644 index 603a7a9..0000000 --- a/Sources/Vendor/asio/include/asio/impl/read.hpp +++ /dev/null @@ -1,715 +0,0 @@ -// -// impl/read.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_READ_HPP -#define ASIO_IMPL_READ_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/buffer.hpp" -#include "asio/completion_condition.hpp" -#include "asio/detail/array_fwd.hpp" -#include "asio/detail/base_from_completion_cond.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/consuming_buffers.hpp" -#include "asio/detail/dependent_type.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - template - std::size_t read_buffer_sequence(SyncReadStream& s, - const MutableBufferSequence& buffers, const MutableBufferIterator&, - CompletionCondition completion_condition, asio::error_code& ec) - { - ec = asio::error_code(); - asio::detail::consuming_buffers tmp(buffers); - while (!tmp.empty()) - { - if (std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, tmp.total_consumed()))) - tmp.consume(s.read_some(tmp.prepare(max_size), ec)); - else - break; - } - return tmp.total_consumed();; - } -} // namespace detail - -template -std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_mutable_buffer_sequence::value - >::type*) -{ - return detail::read_buffer_sequence(s, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, ec); -} - -template -inline std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - typename enable_if< - is_mutable_buffer_sequence::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = read(s, buffers, transfer_all(), ec); - asio::detail::throw_error(ec, "read"); - return bytes_transferred; -} - -template -inline std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - asio::error_code& ec, - typename enable_if< - is_mutable_buffer_sequence::value - >::type*) -{ - return read(s, buffers, transfer_all(), ec); -} - -template -inline std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, - typename enable_if< - is_mutable_buffer_sequence::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = read(s, buffers, completion_condition, ec); - asio::detail::throw_error(ec, "read"); - return bytes_transferred; -} - -template -std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - typename decay::type b( - ASIO_MOVE_CAST(DynamicBuffer)(buffers)); - - ec = asio::error_code(); - std::size_t total_transferred = 0; - std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred)); - std::size_t bytes_available = std::min( - std::max(512, b.capacity() - b.size()), - std::min(max_size, b.max_size() - b.size())); - while (bytes_available > 0) - { - std::size_t bytes_transferred = s.read_some(b.prepare(bytes_available), ec); - b.commit(bytes_transferred); - total_transferred += bytes_transferred; - max_size = detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred)); - bytes_available = std::min( - std::max(512, b.capacity() - b.size()), - std::min(max_size, b.max_size() - b.size())); - } - return total_transferred; -} - -template -inline std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = read(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), transfer_all(), ec); - asio::detail::throw_error(ec, "read"); - return bytes_transferred; -} - -template -inline std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - return read(s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - transfer_all(), ec); -} - -template -inline std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = read(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), - completion_condition, ec); - asio::detail::throw_error(ec, "read"); - return bytes_transferred; -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -template -inline std::size_t read(SyncReadStream& s, - asio::basic_streambuf& b, - CompletionCondition completion_condition, asio::error_code& ec) -{ - return read(s, basic_streambuf_ref(b), completion_condition, ec); -} - -template -inline std::size_t read(SyncReadStream& s, - asio::basic_streambuf& b) -{ - return read(s, basic_streambuf_ref(b)); -} - -template -inline std::size_t read(SyncReadStream& s, - asio::basic_streambuf& b, - asio::error_code& ec) -{ - return read(s, basic_streambuf_ref(b), ec); -} - -template -inline std::size_t read(SyncReadStream& s, - asio::basic_streambuf& b, - CompletionCondition completion_condition) -{ - return read(s, basic_streambuf_ref(b), completion_condition); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -namespace detail -{ - template - class read_op - : detail::base_from_completion_cond - { - public: - read_op(AsyncReadStream& stream, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, ReadHandler& handler) - : detail::base_from_completion_cond< - CompletionCondition>(completion_condition), - stream_(stream), - buffers_(buffers), - start_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_op(const read_op& other) - : detail::base_from_completion_cond(other), - stream_(other.stream_), - buffers_(other.buffers_), - start_(other.start_), - handler_(other.handler_) - { - } - - read_op(read_op&& other) - : detail::base_from_completion_cond(other), - stream_(other.stream_), - buffers_(other.buffers_), - start_(other.start_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - std::size_t max_size; - switch (start_ = start) - { - case 1: - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - do - { - stream_.async_read_some(buffers_.prepare(max_size), - ASIO_MOVE_CAST(read_op)(*this)); - return; default: - buffers_.consume(bytes_transferred); - if ((!ec && bytes_transferred == 0) || buffers_.empty()) - break; - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - } while (max_size > 0); - - handler_(ec, buffers_.total_consumed()); - } - } - - //private: - AsyncReadStream& stream_; - asio::detail::consuming_buffers buffers_; - int start_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void start_read_buffer_sequence_op(AsyncReadStream& stream, - const MutableBufferSequence& buffers, const MutableBufferIterator&, - CompletionCondition completion_condition, ReadHandler& handler) - { - detail::read_op( - stream, buffers, completion_condition, handler)( - asio::error_code(), 0, 1); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_mutable_buffer_sequence::value - >::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::start_read_buffer_sequence_op(s, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, - init.completion_handler); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_mutable_buffer_sequence::value - >::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::start_read_buffer_sequence_op(s, buffers, - asio::buffer_sequence_begin(buffers), transfer_all(), - init.completion_handler); - - return init.result.get(); -} - -namespace detail -{ - template - class read_dynbuf_op - : detail::base_from_completion_cond - { - public: - template - read_dynbuf_op(AsyncReadStream& stream, - ASIO_MOVE_ARG(BufferSequence) buffers, - CompletionCondition completion_condition, ReadHandler& handler) - : detail::base_from_completion_cond< - CompletionCondition>(completion_condition), - stream_(stream), - buffers_(ASIO_MOVE_CAST(BufferSequence)(buffers)), - start_(0), - total_transferred_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_dynbuf_op(const read_dynbuf_op& other) - : detail::base_from_completion_cond(other), - stream_(other.stream_), - buffers_(other.buffers_), - start_(other.start_), - total_transferred_(other.total_transferred_), - handler_(other.handler_) - { - } - - read_dynbuf_op(read_dynbuf_op&& other) - : detail::base_from_completion_cond(other), - stream_(other.stream_), - buffers_(ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)), - start_(other.start_), - total_transferred_(other.total_transferred_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - std::size_t max_size, bytes_available; - switch (start_ = start) - { - case 1: - max_size = this->check_for_completion(ec, total_transferred_); - bytes_available = std::min( - std::max(512, - buffers_.capacity() - buffers_.size()), - std::min(max_size, - buffers_.max_size() - buffers_.size())); - for (;;) - { - stream_.async_read_some(buffers_.prepare(bytes_available), - ASIO_MOVE_CAST(read_dynbuf_op)(*this)); - return; default: - total_transferred_ += bytes_transferred; - buffers_.commit(bytes_transferred); - max_size = this->check_for_completion(ec, total_transferred_); - bytes_available = std::min( - std::max(512, - buffers_.capacity() - buffers_.size()), - std::min(max_size, - buffers_.max_size() - buffers_.size())); - if ((!ec && bytes_transferred == 0) || bytes_available == 0) - break; - } - - handler_(ec, static_cast(total_transferred_)); - } - } - - //private: - AsyncReadStream& stream_; - DynamicBuffer buffers_; - int start_; - std::size_t total_transferred_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_dynbuf_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_dynbuf_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_dynbuf_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_dynbuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_dynbuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_dynbuf_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_dynbuf_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_dynbuf_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_dynbuf_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - return async_read(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), - transfer_all(), ASIO_MOVE_CAST(ReadHandler)(handler)); -} - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::read_dynbuf_op::type, - CompletionCondition, ASIO_HANDLER_TYPE( - ReadHandler, void (asio::error_code, std::size_t))>( - s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - completion_condition, init.completion_handler)( - asio::error_code(), 0, 1); - - return init.result.get(); -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, basic_streambuf& b, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - return async_read(s, basic_streambuf_ref(b), - ASIO_MOVE_CAST(ReadHandler)(handler)); -} - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, basic_streambuf& b, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - return async_read(s, basic_streambuf_ref(b), - completion_condition, ASIO_MOVE_CAST(ReadHandler)(handler)); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_READ_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/read_at.hpp b/Sources/Vendor/asio/include/asio/impl/read_at.hpp deleted file mode 100644 index d736d4d..0000000 --- a/Sources/Vendor/asio/include/asio/impl/read_at.hpp +++ /dev/null @@ -1,640 +0,0 @@ -// -// impl/read_at.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_READ_AT_HPP -#define ASIO_IMPL_READ_AT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/buffer.hpp" -#include "asio/completion_condition.hpp" -#include "asio/detail/array_fwd.hpp" -#include "asio/detail/base_from_completion_cond.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/consuming_buffers.hpp" -#include "asio/detail/dependent_type.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - template - std::size_t read_at_buffer_sequence(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - const MutableBufferIterator&, CompletionCondition completion_condition, - asio::error_code& ec) - { - ec = asio::error_code(); - asio::detail::consuming_buffers tmp(buffers); - while (!tmp.empty()) - { - if (std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, tmp.total_consumed()))) - { - tmp.consume(d.read_some_at(offset + tmp.total_consumed(), - tmp.prepare(max_size), ec)); - } - else - break; - } - return tmp.total_consumed();; - } -} // namespace detail - -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec) -{ - return detail::read_at_buffer_sequence(d, offset, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, ec); -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_at( - d, offset, buffers, transfer_all(), ec); - asio::detail::throw_error(ec, "read_at"); - return bytes_transferred; -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - asio::error_code& ec) -{ - return read_at(d, offset, buffers, transfer_all(), ec); -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_at( - d, offset, buffers, completion_condition, ec); - asio::detail::throw_error(ec, "read_at"); - return bytes_transferred; -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, asio::basic_streambuf& b, - CompletionCondition completion_condition, asio::error_code& ec) -{ - ec = asio::error_code(); - std::size_t total_transferred = 0; - std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred)); - std::size_t bytes_available = read_size_helper(b, max_size); - while (bytes_available > 0) - { - std::size_t bytes_transferred = d.read_some_at( - offset + total_transferred, b.prepare(bytes_available), ec); - b.commit(bytes_transferred); - total_transferred += bytes_transferred; - max_size = detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred)); - bytes_available = read_size_helper(b, max_size); - } - return total_transferred; -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, asio::basic_streambuf& b) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_at( - d, offset, b, transfer_all(), ec); - asio::detail::throw_error(ec, "read_at"); - return bytes_transferred; -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, asio::basic_streambuf& b, - asio::error_code& ec) -{ - return read_at(d, offset, b, transfer_all(), ec); -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, asio::basic_streambuf& b, - CompletionCondition completion_condition) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_at( - d, offset, b, completion_condition, ec); - asio::detail::throw_error(ec, "read_at"); - return bytes_transferred; -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -namespace detail -{ - template - class read_at_op - : detail::base_from_completion_cond - { - public: - read_at_op(AsyncRandomAccessReadDevice& device, - uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, ReadHandler& handler) - : detail::base_from_completion_cond< - CompletionCondition>(completion_condition), - device_(device), - offset_(offset), - buffers_(buffers), - start_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_at_op(const read_at_op& other) - : detail::base_from_completion_cond(other), - device_(other.device_), - offset_(other.offset_), - buffers_(other.buffers_), - start_(other.start_), - handler_(other.handler_) - { - } - - read_at_op(read_at_op&& other) - : detail::base_from_completion_cond(other), - device_(other.device_), - offset_(other.offset_), - buffers_(other.buffers_), - start_(other.start_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - std::size_t max_size; - switch (start_ = start) - { - case 1: - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - do - { - device_.async_read_some_at( - offset_ + buffers_.total_consumed(), buffers_.prepare(max_size), - ASIO_MOVE_CAST(read_at_op)(*this)); - return; default: - buffers_.consume(bytes_transferred); - if ((!ec && bytes_transferred == 0) || buffers_.empty()) - break; - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - } while (max_size > 0); - - handler_(ec, buffers_.total_consumed()); - } - } - - //private: - AsyncRandomAccessReadDevice& device_; - uint64_t offset_; - asio::detail::consuming_buffers buffers_; - int start_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_at_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_at_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_at_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_at_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_at_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void start_read_at_buffer_sequence_op(AsyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - const MutableBufferIterator&, CompletionCondition completion_condition, - ReadHandler& handler) - { - detail::read_at_op( - d, offset, buffers, completion_condition, handler)( - asio::error_code(), 0, 1); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_at_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_at_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_at_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_at_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::start_read_at_buffer_sequence_op(d, offset, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, - init.completion_handler); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::start_read_at_buffer_sequence_op(d, offset, buffers, - asio::buffer_sequence_begin(buffers), transfer_all(), - init.completion_handler); - - return init.result.get(); -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -namespace detail -{ - template - class read_at_streambuf_op - : detail::base_from_completion_cond - { - public: - read_at_streambuf_op(AsyncRandomAccessReadDevice& device, - uint64_t offset, basic_streambuf& streambuf, - CompletionCondition completion_condition, ReadHandler& handler) - : detail::base_from_completion_cond< - CompletionCondition>(completion_condition), - device_(device), - offset_(offset), - streambuf_(streambuf), - start_(0), - total_transferred_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_at_streambuf_op(const read_at_streambuf_op& other) - : detail::base_from_completion_cond(other), - device_(other.device_), - offset_(other.offset_), - streambuf_(other.streambuf_), - start_(other.start_), - total_transferred_(other.total_transferred_), - handler_(other.handler_) - { - } - - read_at_streambuf_op(read_at_streambuf_op&& other) - : detail::base_from_completion_cond(other), - device_(other.device_), - offset_(other.offset_), - streambuf_(other.streambuf_), - start_(other.start_), - total_transferred_(other.total_transferred_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - std::size_t max_size, bytes_available; - switch (start_ = start) - { - case 1: - max_size = this->check_for_completion(ec, total_transferred_); - bytes_available = read_size_helper(streambuf_, max_size); - for (;;) - { - device_.async_read_some_at(offset_ + total_transferred_, - streambuf_.prepare(bytes_available), - ASIO_MOVE_CAST(read_at_streambuf_op)(*this)); - return; default: - total_transferred_ += bytes_transferred; - streambuf_.commit(bytes_transferred); - max_size = this->check_for_completion(ec, total_transferred_); - bytes_available = read_size_helper(streambuf_, max_size); - if ((!ec && bytes_transferred == 0) || bytes_available == 0) - break; - } - - handler_(ec, static_cast(total_transferred_)); - } - } - - //private: - AsyncRandomAccessReadDevice& device_; - uint64_t offset_; - asio::basic_streambuf& streambuf_; - int start_; - std::size_t total_transferred_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_at_streambuf_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_at_streambuf_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_at_streambuf_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_at_streambuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_at_streambuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_at_streambuf_op, - Allocator1> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_at_streambuf_op& h, - const Allocator1& a = Allocator1()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_at_streambuf_op, - Executor1> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_at_streambuf_op& h, - const Executor1& ex = Executor1()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, - uint64_t offset, asio::basic_streambuf& b, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::read_at_streambuf_op( - d, offset, b, completion_condition, init.completion_handler)( - asio::error_code(), 0, 1); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, - uint64_t offset, asio::basic_streambuf& b, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::read_at_streambuf_op( - d, offset, b, transfer_all(), init.completion_handler)( - asio::error_code(), 0, 1); - - return init.result.get(); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_READ_AT_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/read_until.hpp b/Sources/Vendor/asio/include/asio/impl/read_until.hpp deleted file mode 100644 index 1a093cf..0000000 --- a/Sources/Vendor/asio/include/asio/impl/read_until.hpp +++ /dev/null @@ -1,1502 +0,0 @@ -// -// impl/read_until.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_READ_UNTIL_HPP -#define ASIO_IMPL_READ_UNTIL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include -#include -#include -#include -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/buffer.hpp" -#include "asio/buffers_iterator.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -inline std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, char delim) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_until(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), delim, ec); - asio::detail::throw_error(ec, "read_until"); - return bytes_transferred; -} - -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - char delim, asio::error_code& ec) -{ - typename decay::type b( - ASIO_MOVE_CAST(DynamicBuffer)(buffers)); - - std::size_t search_position = 0; - for (;;) - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = b.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position; - iterator end = iterator::end(data_buffers); - - // Look for a match. - iterator iter = std::find(start_pos, end, delim); - if (iter != end) - { - // Found a match. We're done. - ec = asio::error_code(); - return iter - begin + 1; - } - else - { - // No match. Next search can start with the new data. - search_position = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - ec = error::not_found; - return 0; - } - - // Need more data. - std::size_t bytes_to_read = std::min( - std::max(512, b.capacity() - b.size()), - std::min(65536, b.max_size() - b.size())); - b.commit(s.read_some(b.prepare(bytes_to_read), ec)); - if (ec) - return 0; - } -} - -template -inline std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_STRING_VIEW_PARAM delim) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_until(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), delim, ec); - asio::detail::throw_error(ec, "read_until"); - return bytes_transferred; -} - -namespace detail -{ - // Algorithm that finds a subsequence of equal values in a sequence. Returns - // (iterator,true) if a full match was found, in which case the iterator - // points to the beginning of the match. Returns (iterator,false) if a - // partial match was found at the end of the first sequence, in which case - // the iterator points to the beginning of the partial match. Returns - // (last1,false) if no full or partial match was found. - template - std::pair partial_search( - Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2) - { - for (Iterator1 iter1 = first1; iter1 != last1; ++iter1) - { - Iterator1 test_iter1 = iter1; - Iterator2 test_iter2 = first2; - for (;; ++test_iter1, ++test_iter2) - { - if (test_iter2 == last2) - return std::make_pair(iter1, true); - if (test_iter1 == last1) - { - if (test_iter2 != first2) - return std::make_pair(iter1, false); - else - break; - } - if (*test_iter1 != *test_iter2) - break; - } - } - return std::make_pair(last1, false); - } -} // namespace detail - -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_STRING_VIEW_PARAM delim, asio::error_code& ec) -{ - typename decay::type b( - ASIO_MOVE_CAST(DynamicBuffer)(buffers)); - - std::size_t search_position = 0; - for (;;) - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = b.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position; - iterator end = iterator::end(data_buffers); - - // Look for a match. - std::pair result = detail::partial_search( - start_pos, end, delim.begin(), delim.end()); - if (result.first != end) - { - if (result.second) - { - // Full match. We're done. - ec = asio::error_code(); - return result.first - begin + delim.length(); - } - else - { - // Partial match. Next search needs to start from beginning of match. - search_position = result.first - begin; - } - } - else - { - // No match. Next search can start with the new data. - search_position = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - ec = error::not_found; - return 0; - } - - // Need more data. - std::size_t bytes_to_read = std::min( - std::max(512, b.capacity() - b.size()), - std::min(65536, b.max_size() - b.size())); - b.commit(s.read_some(b.prepare(bytes_to_read), ec)); - if (ec) - return 0; - } -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if defined(ASIO_HAS_BOOST_REGEX) - -template -inline std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - const boost::regex& expr) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_until(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), expr, ec); - asio::detail::throw_error(ec, "read_until"); - return bytes_transferred; -} - -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - const boost::regex& expr, asio::error_code& ec) -{ - typename decay::type b( - ASIO_MOVE_CAST(DynamicBuffer)(buffers)); - - std::size_t search_position = 0; - for (;;) - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = b.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position; - iterator end = iterator::end(data_buffers); - - // Look for a match. - boost::match_results >::allocator_type> - match_results; - if (regex_search(start_pos, end, match_results, expr, - boost::match_default | boost::match_partial)) - { - if (match_results[0].matched) - { - // Full match. We're done. - ec = asio::error_code(); - return match_results[0].second - begin; - } - else - { - // Partial match. Next search needs to start from beginning of match. - search_position = match_results[0].first - begin; - } - } - else - { - // No match. Next search can start with the new data. - search_position = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - ec = error::not_found; - return 0; - } - - // Need more data. - std::size_t bytes_to_read = std::min( - std::max(512, b.capacity() - b.size()), - std::min(65536, b.max_size() - b.size())); - b.commit(s.read_some(b.prepare(bytes_to_read), ec)); - if (ec) - return 0; - } -} - -#endif // defined(ASIO_HAS_BOOST_REGEX) - -template -inline std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - MatchCondition match_condition, - typename enable_if::value>::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_until(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), - match_condition, ec); - asio::detail::throw_error(ec, "read_until"); - return bytes_transferred; -} - -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - MatchCondition match_condition, asio::error_code& ec, - typename enable_if::value>::type*) -{ - typename decay::type b( - ASIO_MOVE_CAST(DynamicBuffer)(buffers)); - - std::size_t search_position = 0; - for (;;) - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = b.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position; - iterator end = iterator::end(data_buffers); - - // Look for a match. - std::pair result = match_condition(start_pos, end); - if (result.second) - { - // Full match. We're done. - ec = asio::error_code(); - return result.first - begin; - } - else if (result.first != end) - { - // Partial match. Next search needs to start from beginning of match. - search_position = result.first - begin; - } - else - { - // No match. Next search can start with the new data. - search_position = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - ec = error::not_found; - return 0; - } - - // Need more data. - std::size_t bytes_to_read = std::min( - std::max(512, b.capacity() - b.size()), - std::min(65536, b.max_size() - b.size())); - b.commit(s.read_some(b.prepare(bytes_to_read), ec)); - if (ec) - return 0; - } -} - -#if !defined(ASIO_NO_IOSTREAM) - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, char delim) -{ - return read_until(s, basic_streambuf_ref(b), delim); -} - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, char delim, - asio::error_code& ec) -{ - return read_until(s, basic_streambuf_ref(b), delim, ec); -} - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, - ASIO_STRING_VIEW_PARAM delim) -{ - return read_until(s, basic_streambuf_ref(b), delim); -} - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, - ASIO_STRING_VIEW_PARAM delim, asio::error_code& ec) -{ - return read_until(s, basic_streambuf_ref(b), delim, ec); -} - -#if defined(ASIO_HAS_BOOST_REGEX) - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, const boost::regex& expr) -{ - return read_until(s, basic_streambuf_ref(b), expr); -} - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, const boost::regex& expr, - asio::error_code& ec) -{ - return read_until(s, basic_streambuf_ref(b), expr, ec); -} - -#endif // defined(ASIO_HAS_BOOST_REGEX) - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, MatchCondition match_condition, - typename enable_if::value>::type*) -{ - return read_until(s, basic_streambuf_ref(b), match_condition); -} - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, - MatchCondition match_condition, asio::error_code& ec, - typename enable_if::value>::type*) -{ - return read_until(s, basic_streambuf_ref(b), match_condition, ec); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -namespace detail -{ - template - class read_until_delim_op - { - public: - template - read_until_delim_op(AsyncReadStream& stream, - ASIO_MOVE_ARG(BufferSequence) buffers, - char delim, ReadHandler& handler) - : stream_(stream), - buffers_(ASIO_MOVE_CAST(BufferSequence)(buffers)), - delim_(delim), - start_(0), - search_position_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_until_delim_op(const read_until_delim_op& other) - : stream_(other.stream_), - buffers_(other.buffers_), - delim_(other.delim_), - start_(other.start_), - search_position_(other.search_position_), - handler_(other.handler_) - { - } - - read_until_delim_op(read_until_delim_op&& other) - : stream_(other.stream_), - buffers_(ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)), - delim_(other.delim_), - start_(other.start_), - search_position_(other.search_position_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - const std::size_t not_found = (std::numeric_limits::max)(); - std::size_t bytes_to_read; - switch (start_ = start) - { - case 1: - for (;;) - { - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type - buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = buffers_.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position_; - iterator end = iterator::end(data_buffers); - - // Look for a match. - iterator iter = std::find(start_pos, end, delim_); - if (iter != end) - { - // Found a match. We're done. - search_position_ = iter - begin + 1; - bytes_to_read = 0; - } - - // No match yet. Check if buffer is full. - else if (buffers_.size() == buffers_.max_size()) - { - search_position_ = not_found; - bytes_to_read = 0; - } - - // Need to read some more data. - else - { - // Next search can start with the new data. - search_position_ = end - begin; - bytes_to_read = std::min( - std::max(512, - buffers_.capacity() - buffers_.size()), - std::min(65536, - buffers_.max_size() - buffers_.size())); - } - } - - // Check if we're done. - if (!start && bytes_to_read == 0) - break; - - // Start a new asynchronous read operation to obtain more data. - stream_.async_read_some(buffers_.prepare(bytes_to_read), - ASIO_MOVE_CAST(read_until_delim_op)(*this)); - return; default: - buffers_.commit(bytes_transferred); - if (ec || bytes_transferred == 0) - break; - } - - const asio::error_code result_ec = - (search_position_ == not_found) - ? error::not_found : ec; - - const std::size_t result_n = - (ec || search_position_ == not_found) - ? 0 : search_position_; - - handler_(result_ec, result_n); - } - } - - //private: - AsyncReadStream& stream_; - DynamicBuffer buffers_; - char delim_; - int start_; - std::size_t search_position_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_until_delim_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_until_delim_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_until_delim_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_until_delim_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_until_delim_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_until_delim_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_until_delim_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_until_delim_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_until_delim_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - char delim, ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::read_until_delim_op::type, - ASIO_HANDLER_TYPE(ReadHandler, - void (asio::error_code, std::size_t))>( - s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - delim, init.completion_handler)(asio::error_code(), 0, 1); - - return init.result.get(); -} - -namespace detail -{ - template - class read_until_delim_string_op - { - public: - template - read_until_delim_string_op(AsyncReadStream& stream, - ASIO_MOVE_ARG(BufferSequence) buffers, - const std::string& delim, ReadHandler& handler) - : stream_(stream), - buffers_(ASIO_MOVE_CAST(BufferSequence)(buffers)), - delim_(delim), - start_(0), - search_position_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_until_delim_string_op(const read_until_delim_string_op& other) - : stream_(other.stream_), - buffers_(other.buffers_), - delim_(other.delim_), - start_(other.start_), - search_position_(other.search_position_), - handler_(other.handler_) - { - } - - read_until_delim_string_op(read_until_delim_string_op&& other) - : stream_(other.stream_), - buffers_(ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)), - delim_(ASIO_MOVE_CAST(std::string)(other.delim_)), - start_(other.start_), - search_position_(other.search_position_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - const std::size_t not_found = (std::numeric_limits::max)(); - std::size_t bytes_to_read; - switch (start_ = start) - { - case 1: - for (;;) - { - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type - buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = buffers_.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position_; - iterator end = iterator::end(data_buffers); - - // Look for a match. - std::pair result = detail::partial_search( - start_pos, end, delim_.begin(), delim_.end()); - if (result.first != end && result.second) - { - // Full match. We're done. - search_position_ = result.first - begin + delim_.length(); - bytes_to_read = 0; - } - - // No match yet. Check if buffer is full. - else if (buffers_.size() == buffers_.max_size()) - { - search_position_ = not_found; - bytes_to_read = 0; - } - - // Need to read some more data. - else - { - if (result.first != end) - { - // Partial match. Next search needs to start from beginning of - // match. - search_position_ = result.first - begin; - } - else - { - // Next search can start with the new data. - search_position_ = end - begin; - } - - bytes_to_read = std::min( - std::max(512, - buffers_.capacity() - buffers_.size()), - std::min(65536, - buffers_.max_size() - buffers_.size())); - } - } - - // Check if we're done. - if (!start && bytes_to_read == 0) - break; - - // Start a new asynchronous read operation to obtain more data. - stream_.async_read_some(buffers_.prepare(bytes_to_read), - ASIO_MOVE_CAST(read_until_delim_string_op)(*this)); - return; default: - buffers_.commit(bytes_transferred); - if (ec || bytes_transferred == 0) - break; - } - - const asio::error_code result_ec = - (search_position_ == not_found) - ? error::not_found : ec; - - const std::size_t result_n = - (ec || search_position_ == not_found) - ? 0 : search_position_; - - handler_(result_ec, result_n); - } - } - - //private: - AsyncReadStream& stream_; - DynamicBuffer buffers_; - std::string delim_; - int start_; - std::size_t search_position_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_until_delim_string_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_until_delim_string_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_until_delim_string_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_until_delim_string_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_until_delim_string_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_until_delim_string_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_until_delim_string_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_until_delim_string_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_until_delim_string_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_STRING_VIEW_PARAM delim, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::read_until_delim_string_op::type, - ASIO_HANDLER_TYPE(ReadHandler, - void (asio::error_code, std::size_t))>( - s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - static_cast(delim), - init.completion_handler)(asio::error_code(), 0, 1); - - return init.result.get(); -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if defined(ASIO_HAS_BOOST_REGEX) - -namespace detail -{ - template - class read_until_expr_op - { - public: - template - read_until_expr_op(AsyncReadStream& stream, - ASIO_MOVE_ARG(BufferSequence) buffers, - const boost::regex& expr, ReadHandler& handler) - : stream_(stream), - buffers_(ASIO_MOVE_CAST(BufferSequence)(buffers)), - expr_(expr), - start_(0), - search_position_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_until_expr_op(const read_until_expr_op& other) - : stream_(other.stream_), - buffers_(other.buffers_), - expr_(other.expr_), - start_(other.start_), - search_position_(other.search_position_), - handler_(other.handler_) - { - } - - read_until_expr_op(read_until_expr_op&& other) - : stream_(other.stream_), - buffers_(ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)), - expr_(other.expr_), - start_(other.start_), - search_position_(other.search_position_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - const std::size_t not_found = (std::numeric_limits::max)(); - std::size_t bytes_to_read; - switch (start_ = start) - { - case 1: - for (;;) - { - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type - buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = buffers_.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position_; - iterator end = iterator::end(data_buffers); - - // Look for a match. - boost::match_results >::allocator_type> - match_results; - bool match = regex_search(start_pos, end, match_results, expr_, - boost::match_default | boost::match_partial); - if (match && match_results[0].matched) - { - // Full match. We're done. - search_position_ = match_results[0].second - begin; - bytes_to_read = 0; - } - - // No match yet. Check if buffer is full. - else if (buffers_.size() == buffers_.max_size()) - { - search_position_ = not_found; - bytes_to_read = 0; - } - - // Need to read some more data. - else - { - if (match) - { - // Partial match. Next search needs to start from beginning of - // match. - search_position_ = match_results[0].first - begin; - } - else - { - // Next search can start with the new data. - search_position_ = end - begin; - } - - bytes_to_read = std::min( - std::max(512, - buffers_.capacity() - buffers_.size()), - std::min(65536, - buffers_.max_size() - buffers_.size())); - } - } - - // Check if we're done. - if (!start && bytes_to_read == 0) - break; - - // Start a new asynchronous read operation to obtain more data. - stream_.async_read_some(buffers_.prepare(bytes_to_read), - ASIO_MOVE_CAST(read_until_expr_op)(*this)); - return; default: - buffers_.commit(bytes_transferred); - if (ec || bytes_transferred == 0) - break; - } - - const asio::error_code result_ec = - (search_position_ == not_found) - ? error::not_found : ec; - - const std::size_t result_n = - (ec || search_position_ == not_found) - ? 0 : search_position_; - - handler_(result_ec, result_n); - } - } - - //private: - AsyncReadStream& stream_; - DynamicBuffer buffers_; - RegEx expr_; - int start_; - std::size_t search_position_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_until_expr_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_until_expr_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_until_expr_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_until_expr_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_until_expr_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_until_expr_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_until_expr_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_until_expr_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_until_expr_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - const boost::regex& expr, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::read_until_expr_op::type, - boost::regex, ASIO_HANDLER_TYPE(ReadHandler, - void (asio::error_code, std::size_t))>( - s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - expr, init.completion_handler)(asio::error_code(), 0, 1); - - return init.result.get(); -} - -#endif // defined(ASIO_HAS_BOOST_REGEX) - -namespace detail -{ - template - class read_until_match_op - { - public: - template - read_until_match_op(AsyncReadStream& stream, - ASIO_MOVE_ARG(BufferSequence) buffers, - MatchCondition match_condition, ReadHandler& handler) - : stream_(stream), - buffers_(ASIO_MOVE_CAST(BufferSequence)(buffers)), - match_condition_(match_condition), - start_(0), - search_position_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_until_match_op(const read_until_match_op& other) - : stream_(other.stream_), - buffers_(other.buffers_), - match_condition_(other.match_condition_), - start_(other.start_), - search_position_(other.search_position_), - handler_(other.handler_) - { - } - - read_until_match_op(read_until_match_op&& other) - : stream_(other.stream_), - buffers_(ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)), - match_condition_(other.match_condition_), - start_(other.start_), - search_position_(other.search_position_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - const std::size_t not_found = (std::numeric_limits::max)(); - std::size_t bytes_to_read; - switch (start_ = start) - { - case 1: - for (;;) - { - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type - buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = buffers_.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position_; - iterator end = iterator::end(data_buffers); - - // Look for a match. - std::pair result = match_condition_(start_pos, end); - if (result.second) - { - // Full match. We're done. - search_position_ = result.first - begin; - bytes_to_read = 0; - } - - // No match yet. Check if buffer is full. - else if (buffers_.size() == buffers_.max_size()) - { - search_position_ = not_found; - bytes_to_read = 0; - } - - // Need to read some more data. - else - { - if (result.first != end) - { - // Partial match. Next search needs to start from beginning of - // match. - search_position_ = result.first - begin; - } - else - { - // Next search can start with the new data. - search_position_ = end - begin; - } - - bytes_to_read = std::min( - std::max(512, - buffers_.capacity() - buffers_.size()), - std::min(65536, - buffers_.max_size() - buffers_.size())); - } - } - - // Check if we're done. - if (!start && bytes_to_read == 0) - break; - - // Start a new asynchronous read operation to obtain more data. - stream_.async_read_some(buffers_.prepare(bytes_to_read), - ASIO_MOVE_CAST(read_until_match_op)(*this)); - return; default: - buffers_.commit(bytes_transferred); - if (ec || bytes_transferred == 0) - break; - } - - const asio::error_code result_ec = - (search_position_ == not_found) - ? error::not_found : ec; - - const std::size_t result_n = - (ec || search_position_ == not_found) - ? 0 : search_position_; - - handler_(result_ec, result_n); - } - } - - //private: - AsyncReadStream& stream_; - DynamicBuffer buffers_; - MatchCondition match_condition_; - int start_; - std::size_t search_position_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_until_match_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_until_match_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_until_match_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_until_match_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_until_match_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_until_match_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_until_match_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_until_match_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_until_match_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - MatchCondition match_condition, ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if::value>::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::read_until_match_op::type, - MatchCondition, ASIO_HANDLER_TYPE(ReadHandler, - void (asio::error_code, std::size_t))>( - s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - match_condition, init.completion_handler)( - asio::error_code(), 0, 1); - - return init.result.get(); -} - -#if !defined(ASIO_NO_IOSTREAM) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, - char delim, ASIO_MOVE_ARG(ReadHandler) handler) -{ - return async_read_until(s, basic_streambuf_ref(b), - delim, ASIO_MOVE_CAST(ReadHandler)(handler)); -} - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, - ASIO_STRING_VIEW_PARAM delim, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - return async_read_until(s, basic_streambuf_ref(b), - delim, ASIO_MOVE_CAST(ReadHandler)(handler)); -} - -#if defined(ASIO_HAS_BOOST_REGEX) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, const boost::regex& expr, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - return async_read_until(s, basic_streambuf_ref(b), - expr, ASIO_MOVE_CAST(ReadHandler)(handler)); -} - -#endif // defined(ASIO_HAS_BOOST_REGEX) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, - MatchCondition match_condition, ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if::value>::type*) -{ - return async_read_until(s, basic_streambuf_ref(b), - match_condition, ASIO_MOVE_CAST(ReadHandler)(handler)); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_READ_UNTIL_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/serial_port_base.hpp b/Sources/Vendor/asio/include/asio/impl/serial_port_base.hpp deleted file mode 100644 index cdc201d..0000000 --- a/Sources/Vendor/asio/include/asio/impl/serial_port_base.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// impl/serial_port_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_IMPL_SERIAL_PORT_BASE_HPP -#define ASIO_IMPL_SERIAL_PORT_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -inline serial_port_base::baud_rate::baud_rate(unsigned int rate) - : value_(rate) -{ -} - -inline unsigned int serial_port_base::baud_rate::value() const -{ - return value_; -} - -inline serial_port_base::flow_control::type -serial_port_base::flow_control::value() const -{ - return value_; -} - -inline serial_port_base::parity::type serial_port_base::parity::value() const -{ - return value_; -} - -inline serial_port_base::stop_bits::type -serial_port_base::stop_bits::value() const -{ - return value_; -} - -inline unsigned int serial_port_base::character_size::value() const -{ - return value_; -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_SERIAL_PORT_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/serial_port_base.ipp b/Sources/Vendor/asio/include/asio/impl/serial_port_base.ipp deleted file mode 100644 index 5d52ed5..0000000 --- a/Sources/Vendor/asio/include/asio/impl/serial_port_base.ipp +++ /dev/null @@ -1,554 +0,0 @@ -// -// impl/serial_port_base.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_IMPL_SERIAL_PORT_BASE_IPP -#define ASIO_IMPL_SERIAL_PORT_BASE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_SERIAL_PORT) - -#include -#include "asio/error.hpp" -#include "asio/serial_port_base.hpp" -#include "asio/detail/throw_exception.hpp" - -#if defined(GENERATING_DOCUMENTATION) -# define ASIO_OPTION_STORAGE implementation_defined -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# define ASIO_OPTION_STORAGE DCB -#else -# define ASIO_OPTION_STORAGE termios -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -ASIO_SYNC_OP_VOID serial_port_base::baud_rate::store( - ASIO_OPTION_STORAGE& storage, asio::error_code& ec) const -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - storage.BaudRate = value_; -#else - speed_t baud; - switch (value_) - { - // Do POSIX-specified rates first. - case 0: baud = B0; break; - case 50: baud = B50; break; - case 75: baud = B75; break; - case 110: baud = B110; break; - case 134: baud = B134; break; - case 150: baud = B150; break; - case 200: baud = B200; break; - case 300: baud = B300; break; - case 600: baud = B600; break; - case 1200: baud = B1200; break; - case 1800: baud = B1800; break; - case 2400: baud = B2400; break; - case 4800: baud = B4800; break; - case 9600: baud = B9600; break; - case 19200: baud = B19200; break; - case 38400: baud = B38400; break; - // And now the extended ones conditionally. -# ifdef B7200 - case 7200: baud = B7200; break; -# endif -# ifdef B14400 - case 14400: baud = B14400; break; -# endif -# ifdef B57600 - case 57600: baud = B57600; break; -# endif -# ifdef B115200 - case 115200: baud = B115200; break; -# endif -# ifdef B230400 - case 230400: baud = B230400; break; -# endif -# ifdef B460800 - case 460800: baud = B460800; break; -# endif -# ifdef B500000 - case 500000: baud = B500000; break; -# endif -# ifdef B576000 - case 576000: baud = B576000; break; -# endif -# ifdef B921600 - case 921600: baud = B921600; break; -# endif -# ifdef B1000000 - case 1000000: baud = B1000000; break; -# endif -# ifdef B1152000 - case 1152000: baud = B1152000; break; -# endif -# ifdef B2000000 - case 2000000: baud = B2000000; break; -# endif -# ifdef B3000000 - case 3000000: baud = B3000000; break; -# endif -# ifdef B3500000 - case 3500000: baud = B3500000; break; -# endif -# ifdef B4000000 - case 4000000: baud = B4000000; break; -# endif - default: - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } -# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) - ::cfsetspeed(&storage, baud); -# else - ::cfsetispeed(&storage, baud); - ::cfsetospeed(&storage, baud); -# endif -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID serial_port_base::baud_rate::load( - const ASIO_OPTION_STORAGE& storage, asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - value_ = storage.BaudRate; -#else - speed_t baud = ::cfgetospeed(&storage); - switch (baud) - { - // First do those specified by POSIX. - case B0: value_ = 0; break; - case B50: value_ = 50; break; - case B75: value_ = 75; break; - case B110: value_ = 110; break; - case B134: value_ = 134; break; - case B150: value_ = 150; break; - case B200: value_ = 200; break; - case B300: value_ = 300; break; - case B600: value_ = 600; break; - case B1200: value_ = 1200; break; - case B1800: value_ = 1800; break; - case B2400: value_ = 2400; break; - case B4800: value_ = 4800; break; - case B9600: value_ = 9600; break; - case B19200: value_ = 19200; break; - case B38400: value_ = 38400; break; - // Now conditionally handle a bunch of extended rates. -# ifdef B7200 - case B7200: value_ = 7200; break; -# endif -# ifdef B14400 - case B14400: value_ = 14400; break; -# endif -# ifdef B57600 - case B57600: value_ = 57600; break; -# endif -# ifdef B115200 - case B115200: value_ = 115200; break; -# endif -# ifdef B230400 - case B230400: value_ = 230400; break; -# endif -# ifdef B460800 - case B460800: value_ = 460800; break; -# endif -# ifdef B500000 - case B500000: value_ = 500000; break; -# endif -# ifdef B576000 - case B576000: value_ = 576000; break; -# endif -# ifdef B921600 - case B921600: value_ = 921600; break; -# endif -# ifdef B1000000 - case B1000000: value_ = 1000000; break; -# endif -# ifdef B1152000 - case B1152000: value_ = 1152000; break; -# endif -# ifdef B2000000 - case B2000000: value_ = 2000000; break; -# endif -# ifdef B3000000 - case B3000000: value_ = 3000000; break; -# endif -# ifdef B3500000 - case B3500000: value_ = 3500000; break; -# endif -# ifdef B4000000 - case B4000000: value_ = 4000000; break; -# endif - default: - value_ = 0; - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -serial_port_base::flow_control::flow_control( - serial_port_base::flow_control::type t) - : value_(t) -{ - if (t != none && t != software && t != hardware) - { - std::out_of_range ex("invalid flow_control value"); - asio::detail::throw_exception(ex); - } -} - -ASIO_SYNC_OP_VOID serial_port_base::flow_control::store( - ASIO_OPTION_STORAGE& storage, asio::error_code& ec) const -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - storage.fOutxCtsFlow = FALSE; - storage.fOutxDsrFlow = FALSE; - storage.fTXContinueOnXoff = TRUE; - storage.fDtrControl = DTR_CONTROL_ENABLE; - storage.fDsrSensitivity = FALSE; - storage.fOutX = FALSE; - storage.fInX = FALSE; - storage.fRtsControl = RTS_CONTROL_ENABLE; - switch (value_) - { - case none: - break; - case software: - storage.fOutX = TRUE; - storage.fInX = TRUE; - break; - case hardware: - storage.fOutxCtsFlow = TRUE; - storage.fRtsControl = RTS_CONTROL_HANDSHAKE; - break; - default: - break; - } -#else - switch (value_) - { - case none: - storage.c_iflag &= ~(IXOFF | IXON); -# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) - storage.c_cflag &= ~CRTSCTS; -# elif defined(__QNXNTO__) - storage.c_cflag &= ~(IHFLOW | OHFLOW); -# endif - break; - case software: - storage.c_iflag |= IXOFF | IXON; -# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) - storage.c_cflag &= ~CRTSCTS; -# elif defined(__QNXNTO__) - storage.c_cflag &= ~(IHFLOW | OHFLOW); -# endif - break; - case hardware: -# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) - storage.c_iflag &= ~(IXOFF | IXON); - storage.c_cflag |= CRTSCTS; - break; -# elif defined(__QNXNTO__) - storage.c_iflag &= ~(IXOFF | IXON); - storage.c_cflag |= (IHFLOW | OHFLOW); - break; -# else - ec = asio::error::operation_not_supported; - ASIO_SYNC_OP_VOID_RETURN(ec); -# endif - default: - break; - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID serial_port_base::flow_control::load( - const ASIO_OPTION_STORAGE& storage, asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - if (storage.fOutX && storage.fInX) - { - value_ = software; - } - else if (storage.fOutxCtsFlow && storage.fRtsControl == RTS_CONTROL_HANDSHAKE) - { - value_ = hardware; - } - else - { - value_ = none; - } -#else - if (storage.c_iflag & (IXOFF | IXON)) - { - value_ = software; - } -# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) - else if (storage.c_cflag & CRTSCTS) - { - value_ = hardware; - } -# elif defined(__QNXNTO__) - else if (storage.c_cflag & IHFLOW && storage.c_cflag & OHFLOW) - { - value_ = hardware; - } -# endif - else - { - value_ = none; - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -serial_port_base::parity::parity(serial_port_base::parity::type t) - : value_(t) -{ - if (t != none && t != odd && t != even) - { - std::out_of_range ex("invalid parity value"); - asio::detail::throw_exception(ex); - } -} - -ASIO_SYNC_OP_VOID serial_port_base::parity::store( - ASIO_OPTION_STORAGE& storage, asio::error_code& ec) const -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - switch (value_) - { - case none: - storage.fParity = FALSE; - storage.Parity = NOPARITY; - break; - case odd: - storage.fParity = TRUE; - storage.Parity = ODDPARITY; - break; - case even: - storage.fParity = TRUE; - storage.Parity = EVENPARITY; - break; - default: - break; - } -#else - switch (value_) - { - case none: - storage.c_iflag |= IGNPAR; - storage.c_cflag &= ~(PARENB | PARODD); - break; - case even: - storage.c_iflag &= ~(IGNPAR | PARMRK); - storage.c_iflag |= INPCK; - storage.c_cflag |= PARENB; - storage.c_cflag &= ~PARODD; - break; - case odd: - storage.c_iflag &= ~(IGNPAR | PARMRK); - storage.c_iflag |= INPCK; - storage.c_cflag |= (PARENB | PARODD); - break; - default: - break; - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID serial_port_base::parity::load( - const ASIO_OPTION_STORAGE& storage, asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - if (storage.Parity == EVENPARITY) - { - value_ = even; - } - else if (storage.Parity == ODDPARITY) - { - value_ = odd; - } - else - { - value_ = none; - } -#else - if (storage.c_cflag & PARENB) - { - if (storage.c_cflag & PARODD) - { - value_ = odd; - } - else - { - value_ = even; - } - } - else - { - value_ = none; - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -serial_port_base::stop_bits::stop_bits( - serial_port_base::stop_bits::type t) - : value_(t) -{ - if (t != one && t != onepointfive && t != two) - { - std::out_of_range ex("invalid stop_bits value"); - asio::detail::throw_exception(ex); - } -} - -ASIO_SYNC_OP_VOID serial_port_base::stop_bits::store( - ASIO_OPTION_STORAGE& storage, asio::error_code& ec) const -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - switch (value_) - { - case one: - storage.StopBits = ONESTOPBIT; - break; - case onepointfive: - storage.StopBits = ONE5STOPBITS; - break; - case two: - storage.StopBits = TWOSTOPBITS; - break; - default: - break; - } -#else - switch (value_) - { - case one: - storage.c_cflag &= ~CSTOPB; - break; - case two: - storage.c_cflag |= CSTOPB; - break; - default: - ec = asio::error::operation_not_supported; - ASIO_SYNC_OP_VOID_RETURN(ec); - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID serial_port_base::stop_bits::load( - const ASIO_OPTION_STORAGE& storage, asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - if (storage.StopBits == ONESTOPBIT) - { - value_ = one; - } - else if (storage.StopBits == ONE5STOPBITS) - { - value_ = onepointfive; - } - else if (storage.StopBits == TWOSTOPBITS) - { - value_ = two; - } - else - { - value_ = one; - } -#else - value_ = (storage.c_cflag & CSTOPB) ? two : one; -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -serial_port_base::character_size::character_size(unsigned int t) - : value_(t) -{ - if (t < 5 || t > 8) - { - std::out_of_range ex("invalid character_size value"); - asio::detail::throw_exception(ex); - } -} - -ASIO_SYNC_OP_VOID serial_port_base::character_size::store( - ASIO_OPTION_STORAGE& storage, asio::error_code& ec) const -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - storage.ByteSize = value_; -#else - storage.c_cflag &= ~CSIZE; - switch (value_) - { - case 5: storage.c_cflag |= CS5; break; - case 6: storage.c_cflag |= CS6; break; - case 7: storage.c_cflag |= CS7; break; - case 8: storage.c_cflag |= CS8; break; - default: break; - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID serial_port_base::character_size::load( - const ASIO_OPTION_STORAGE& storage, asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - value_ = storage.ByteSize; -#else - if ((storage.c_cflag & CSIZE) == CS5) { value_ = 5; } - else if ((storage.c_cflag & CSIZE) == CS6) { value_ = 6; } - else if ((storage.c_cflag & CSIZE) == CS7) { value_ = 7; } - else if ((storage.c_cflag & CSIZE) == CS8) { value_ = 8; } - else - { - // Hmmm, use 8 for now. - value_ = 8; - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#undef ASIO_OPTION_STORAGE - -#endif // defined(ASIO_HAS_SERIAL_PORT) - -#endif // ASIO_IMPL_SERIAL_PORT_BASE_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/spawn.hpp b/Sources/Vendor/asio/include/asio/impl/spawn.hpp deleted file mode 100644 index 5594ad9..0000000 --- a/Sources/Vendor/asio/include/asio/impl/spawn.hpp +++ /dev/null @@ -1,535 +0,0 @@ -// -// impl/spawn.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_SPAWN_HPP -#define ASIO_IMPL_SPAWN_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/async_result.hpp" -#include "asio/bind_executor.hpp" -#include "asio/detail/atomic_count.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/system_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - - template - class coro_handler - { - public: - coro_handler(basic_yield_context ctx) - : coro_(ctx.coro_.lock()), - ca_(ctx.ca_), - handler_(ctx.handler_), - ready_(0), - ec_(ctx.ec_), - value_(0) - { - } - - void operator()(T value) - { - *ec_ = asio::error_code(); - *value_ = ASIO_MOVE_CAST(T)(value); - if (--*ready_ == 0) - (*coro_)(); - } - - void operator()(asio::error_code ec, T value) - { - *ec_ = ec; - *value_ = ASIO_MOVE_CAST(T)(value); - if (--*ready_ == 0) - (*coro_)(); - } - - //private: - shared_ptr::callee_type> coro_; - typename basic_yield_context::caller_type& ca_; - Handler handler_; - atomic_count* ready_; - asio::error_code* ec_; - T* value_; - }; - - template - class coro_handler - { - public: - coro_handler(basic_yield_context ctx) - : coro_(ctx.coro_.lock()), - ca_(ctx.ca_), - handler_(ctx.handler_), - ready_(0), - ec_(ctx.ec_) - { - } - - void operator()() - { - *ec_ = asio::error_code(); - if (--*ready_ == 0) - (*coro_)(); - } - - void operator()(asio::error_code ec) - { - *ec_ = ec; - if (--*ready_ == 0) - (*coro_)(); - } - - //private: - shared_ptr::callee_type> coro_; - typename basic_yield_context::caller_type& ca_; - Handler handler_; - atomic_count* ready_; - asio::error_code* ec_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - coro_handler* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - coro_handler* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation(coro_handler*) - { - return true; - } - - template - inline void asio_handler_invoke(Function& function, - coro_handler* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - coro_handler* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - class coro_async_result - { - public: - typedef coro_handler completion_handler_type; - typedef T return_type; - - explicit coro_async_result(completion_handler_type& h) - : handler_(h), - ca_(h.ca_), - ready_(2) - { - h.ready_ = &ready_; - out_ec_ = h.ec_; - if (!out_ec_) h.ec_ = &ec_; - h.value_ = &value_; - } - - return_type get() - { - // Must not hold shared_ptr to coro while suspended. - handler_.coro_.reset(); - - if (--ready_ != 0) - ca_(); - if (!out_ec_ && ec_) throw asio::system_error(ec_); - return ASIO_MOVE_CAST(return_type)(value_); - } - - private: - completion_handler_type& handler_; - typename basic_yield_context::caller_type& ca_; - atomic_count ready_; - asio::error_code* out_ec_; - asio::error_code ec_; - return_type value_; - }; - - template - class coro_async_result - { - public: - typedef coro_handler completion_handler_type; - typedef void return_type; - - explicit coro_async_result(completion_handler_type& h) - : handler_(h), - ca_(h.ca_), - ready_(2) - { - h.ready_ = &ready_; - out_ec_ = h.ec_; - if (!out_ec_) h.ec_ = &ec_; - } - - void get() - { - // Must not hold shared_ptr to coro while suspended. - handler_.coro_.reset(); - - if (--ready_ != 0) - ca_(); - if (!out_ec_ && ec_) throw asio::system_error(ec_); - } - - private: - completion_handler_type& handler_; - typename basic_yield_context::caller_type& ca_; - atomic_count ready_; - asio::error_code* out_ec_; - asio::error_code ec_; - }; - -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -class async_result, ReturnType()> - : public detail::coro_async_result -{ -public: - explicit async_result( - typename detail::coro_async_result::completion_handler_type& h) - : detail::coro_async_result(h) - { - } -}; - -template -class async_result, ReturnType(Arg1)> - : public detail::coro_async_result::type> -{ -public: - explicit async_result( - typename detail::coro_async_result::type>::completion_handler_type& h) - : detail::coro_async_result::type>(h) - { - } -}; - -template -class async_result, - ReturnType(asio::error_code)> - : public detail::coro_async_result -{ -public: - explicit async_result( - typename detail::coro_async_result::completion_handler_type& h) - : detail::coro_async_result(h) - { - } -}; - -template -class async_result, - ReturnType(asio::error_code, Arg2)> - : public detail::coro_async_result::type> -{ -public: - explicit async_result( - typename detail::coro_async_result::type>::completion_handler_type& h) - : detail::coro_async_result::type>(h) - { - } -}; - -#if !defined(ASIO_NO_DEPRECATED) - -template -struct handler_type, ReturnType()> -{ - typedef detail::coro_handler type; -}; - -template -struct handler_type, ReturnType(Arg1)> -{ - typedef detail::coro_handler::type> type; -}; - -template -struct handler_type, - ReturnType(asio::error_code)> -{ - typedef detail::coro_handler type; -}; - -template -struct handler_type, - ReturnType(asio::error_code, Arg2)> -{ - typedef detail::coro_handler::type> type; -}; - -template -class async_result > - : public detail::coro_async_result -{ -public: - typedef typename detail::coro_async_result::return_type type; - - explicit async_result( - typename detail::coro_async_result::completion_handler_type& h) - : detail::coro_async_result(h) - { - } -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -struct associated_allocator, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const detail::coro_handler& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const detail::coro_handler& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -namespace detail { - - template - struct spawn_data : private noncopyable - { - template - spawn_data(ASIO_MOVE_ARG(Hand) handler, - bool call_handler, ASIO_MOVE_ARG(Func) function) - : handler_(ASIO_MOVE_CAST(Hand)(handler)), - call_handler_(call_handler), - function_(ASIO_MOVE_CAST(Func)(function)) - { - } - - weak_ptr::callee_type> coro_; - Handler handler_; - bool call_handler_; - Function function_; - }; - - template - struct coro_entry_point - { - void operator()(typename basic_yield_context::caller_type& ca) - { - shared_ptr > data(data_); -#if !defined(BOOST_COROUTINES_UNIDIRECT) && !defined(BOOST_COROUTINES_V2) - ca(); // Yield until coroutine pointer has been initialised. -#endif // !defined(BOOST_COROUTINES_UNIDIRECT) && !defined(BOOST_COROUTINES_V2) - const basic_yield_context yield( - data->coro_, ca, data->handler_); - - (data->function_)(yield); - if (data->call_handler_) - (data->handler_)(); - } - - shared_ptr > data_; - }; - - template - struct spawn_helper - { - void operator()() - { - typedef typename basic_yield_context::callee_type callee_type; - coro_entry_point entry_point = { data_ }; - shared_ptr coro(new callee_type(entry_point, attributes_)); - data_->coro_ = coro; - (*coro)(); - } - - shared_ptr > data_; - boost::coroutines::attributes attributes_; - }; - - template - inline void asio_handler_invoke(Function& function, - spawn_helper* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->data_->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - spawn_helper* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->data_->handler_); - } - - inline void default_spawn_handler() {} - -} // namespace detail - -template -inline void spawn(ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes) -{ - typedef typename decay::type function_type; - - typename associated_executor::type ex( - (get_associated_executor)(function)); - - asio::spawn(ex, ASIO_MOVE_CAST(Function)(function), attributes); -} - -template -void spawn(ASIO_MOVE_ARG(Handler) handler, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes, - typename enable_if::type>::value && - !is_convertible::value>::type*) -{ - typedef typename decay::type handler_type; - typedef typename decay::type function_type; - - typename associated_executor::type ex( - (get_associated_executor)(handler)); - - typename associated_allocator::type a( - (get_associated_allocator)(handler)); - - detail::spawn_helper helper; - helper.data_.reset( - new detail::spawn_data( - ASIO_MOVE_CAST(Handler)(handler), true, - ASIO_MOVE_CAST(Function)(function))); - helper.attributes_ = attributes; - - ex.dispatch(helper, a); -} - -template -void spawn(basic_yield_context ctx, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes) -{ - typedef typename decay::type function_type; - - Handler handler(ctx.handler_); // Explicit copy that might be moved from. - - typename associated_executor::type ex( - (get_associated_executor)(handler)); - - typename associated_allocator::type a( - (get_associated_allocator)(handler)); - - detail::spawn_helper helper; - helper.data_.reset( - new detail::spawn_data( - ASIO_MOVE_CAST(Handler)(handler), false, - ASIO_MOVE_CAST(Function)(function))); - helper.attributes_ = attributes; - - ex.dispatch(helper, a); -} - -template -inline void spawn(const Executor& ex, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes, - typename enable_if::value>::type*) -{ - asio::spawn(asio::strand(ex), - ASIO_MOVE_CAST(Function)(function), attributes); -} - -template -inline void spawn(const strand& ex, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes) -{ - asio::spawn(asio::bind_executor( - ex, &detail::default_spawn_handler), - ASIO_MOVE_CAST(Function)(function), attributes); -} - -template -inline void spawn(const asio::io_context::strand& s, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes) -{ - asio::spawn(asio::bind_executor( - s, &detail::default_spawn_handler), - ASIO_MOVE_CAST(Function)(function), attributes); -} - -template -inline void spawn(ExecutionContext& ctx, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes, - typename enable_if::value>::type*) -{ - asio::spawn(ctx.get_executor(), - ASIO_MOVE_CAST(Function)(function), attributes); -} - -#endif // !defined(GENERATING_DOCUMENTATION) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_SPAWN_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/src.cpp b/Sources/Vendor/asio/include/asio/impl/src.cpp deleted file mode 100644 index e8a5953..0000000 --- a/Sources/Vendor/asio/include/asio/impl/src.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// impl/src.cpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#if defined(_MSC_VER) \ - || defined(__BORLANDC__) \ - || defined(__DMC__) -# pragma message ( \ - "This file is deprecated. " \ - "Please #include instead.") -#elif defined(__GNUC__) \ - || defined(__HP_aCC) \ - || defined(__SUNPRO_CC) \ - || defined(__IBMCPP__) -# warning "This file is deprecated." -# warning "Please #include instead." -#endif - -#include "asio/impl/src.hpp" diff --git a/Sources/Vendor/asio/include/asio/impl/src.hpp b/Sources/Vendor/asio/include/asio/impl/src.hpp deleted file mode 100644 index a72637b..0000000 --- a/Sources/Vendor/asio/include/asio/impl/src.hpp +++ /dev/null @@ -1,82 +0,0 @@ -// -// impl/src.hpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_SRC_HPP -#define ASIO_IMPL_SRC_HPP - -#define ASIO_SOURCE - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HEADER_ONLY) -# error Do not compile Asio library source with ASIO_HEADER_ONLY defined -#endif - -#include "asio/impl/error.ipp" -#include "asio/impl/error_code.ipp" -#include "asio/impl/execution_context.ipp" -#include "asio/impl/executor.ipp" -#include "asio/impl/handler_alloc_hook.ipp" -#include "asio/impl/io_context.ipp" -#include "asio/impl/serial_port_base.ipp" -#include "asio/impl/system_context.ipp" -#include "asio/impl/thread_pool.ipp" -#include "asio/detail/impl/buffer_sequence_adapter.ipp" -#include "asio/detail/impl/descriptor_ops.ipp" -#include "asio/detail/impl/dev_poll_reactor.ipp" -#include "asio/detail/impl/epoll_reactor.ipp" -#include "asio/detail/impl/eventfd_select_interrupter.ipp" -#include "asio/detail/impl/handler_tracking.ipp" -#include "asio/detail/impl/kqueue_reactor.ipp" -#include "asio/detail/impl/null_event.ipp" -#include "asio/detail/impl/pipe_select_interrupter.ipp" -#include "asio/detail/impl/posix_event.ipp" -#include "asio/detail/impl/posix_mutex.ipp" -#include "asio/detail/impl/posix_thread.ipp" -#include "asio/detail/impl/posix_tss_ptr.ipp" -#include "asio/detail/impl/reactive_descriptor_service.ipp" -#include "asio/detail/impl/reactive_serial_port_service.ipp" -#include "asio/detail/impl/reactive_socket_service_base.ipp" -#include "asio/detail/impl/resolver_service_base.ipp" -#include "asio/detail/impl/scheduler.ipp" -#include "asio/detail/impl/select_reactor.ipp" -#include "asio/detail/impl/service_registry.ipp" -#include "asio/detail/impl/signal_set_service.ipp" -#include "asio/detail/impl/socket_ops.ipp" -#include "asio/detail/impl/socket_select_interrupter.ipp" -#include "asio/detail/impl/strand_executor_service.ipp" -#include "asio/detail/impl/strand_service.ipp" -#include "asio/detail/impl/throw_error.ipp" -#include "asio/detail/impl/timer_queue_ptime.ipp" -#include "asio/detail/impl/timer_queue_set.ipp" -#include "asio/detail/impl/win_iocp_handle_service.ipp" -#include "asio/detail/impl/win_iocp_io_context.ipp" -#include "asio/detail/impl/win_iocp_serial_port_service.ipp" -#include "asio/detail/impl/win_iocp_socket_service_base.ipp" -#include "asio/detail/impl/win_event.ipp" -#include "asio/detail/impl/win_mutex.ipp" -#include "asio/detail/impl/win_object_handle_service.ipp" -#include "asio/detail/impl/win_static_mutex.ipp" -#include "asio/detail/impl/win_thread.ipp" -#include "asio/detail/impl/win_tss_ptr.ipp" -#include "asio/detail/impl/winrt_ssocket_service_base.ipp" -#include "asio/detail/impl/winrt_timer_scheduler.ipp" -#include "asio/detail/impl/winsock_init.ipp" -#include "asio/generic/detail/impl/endpoint.ipp" -#include "asio/ip/impl/address.ipp" -#include "asio/ip/impl/address_v4.ipp" -#include "asio/ip/impl/address_v6.ipp" -#include "asio/ip/impl/host_name.ipp" -#include "asio/ip/impl/network_v4.ipp" -#include "asio/ip/impl/network_v6.ipp" -#include "asio/ip/detail/impl/endpoint.ipp" -#include "asio/local/detail/impl/endpoint.ipp" - -#endif // ASIO_IMPL_SRC_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/system_context.hpp b/Sources/Vendor/asio/include/asio/impl/system_context.hpp deleted file mode 100644 index 87ffe76..0000000 --- a/Sources/Vendor/asio/include/asio/impl/system_context.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// impl/system_context.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_SYSTEM_CONTEXT_HPP -#define ASIO_IMPL_SYSTEM_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/system_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -inline system_context::executor_type -system_context::get_executor() ASIO_NOEXCEPT -{ - return system_executor(); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_SYSTEM_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/system_context.ipp b/Sources/Vendor/asio/include/asio/impl/system_context.ipp deleted file mode 100644 index 8ad5e41..0000000 --- a/Sources/Vendor/asio/include/asio/impl/system_context.ipp +++ /dev/null @@ -1,73 +0,0 @@ -// -// impl/system_context.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_SYSTEM_CONTEXT_IPP -#define ASIO_IMPL_SYSTEM_CONTEXT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/system_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -struct system_context::thread_function -{ - detail::scheduler* scheduler_; - - void operator()() - { - asio::error_code ec; - scheduler_->run(ec); - } -}; - -system_context::system_context() - : scheduler_(use_service(*this)) -{ - scheduler_.work_started(); - - thread_function f = { &scheduler_ }; - std::size_t num_threads = detail::thread::hardware_concurrency() * 2; - threads_.create_threads(f, num_threads ? num_threads : 2); -} - -system_context::~system_context() -{ - scheduler_.work_finished(); - scheduler_.stop(); - threads_.join(); -} - -void system_context::stop() -{ - scheduler_.stop(); -} - -bool system_context::stopped() const ASIO_NOEXCEPT -{ - return scheduler_.stopped(); -} - -void system_context::join() -{ - scheduler_.work_finished(); - threads_.join(); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_SYSTEM_CONTEXT_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/system_executor.hpp b/Sources/Vendor/asio/include/asio/impl/system_executor.hpp deleted file mode 100644 index ac4861f..0000000 --- a/Sources/Vendor/asio/include/asio/impl/system_executor.hpp +++ /dev/null @@ -1,85 +0,0 @@ -// -// impl/system_executor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_SYSTEM_EXECUTOR_HPP -#define ASIO_IMPL_SYSTEM_EXECUTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/executor_op.hpp" -#include "asio/detail/global.hpp" -#include "asio/detail/recycling_allocator.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/system_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -inline system_context& system_executor::context() const ASIO_NOEXCEPT -{ - return detail::global(); -} - -template -void system_executor::dispatch( - ASIO_MOVE_ARG(Function) f, const Allocator&) const -{ - typename decay::type tmp(ASIO_MOVE_CAST(Function)(f)); - asio_handler_invoke_helpers::invoke(tmp, tmp); -} - -template -void system_executor::post( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - system_context& ctx = detail::global(); - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((ctx, *p.p, - "system_executor", &this->context(), 0, "post")); - - ctx.scheduler_.post_immediate_completion(p.p, false); - p.v = p.p = 0; -} - -template -void system_executor::defer( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - system_context& ctx = detail::global(); - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((ctx, *p.p, - "system_executor", &this->context(), 0, "defer")); - - ctx.scheduler_.post_immediate_completion(p.p, true); - p.v = p.p = 0; -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_SYSTEM_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/thread_pool.hpp b/Sources/Vendor/asio/include/asio/impl/thread_pool.hpp deleted file mode 100644 index 058e377..0000000 --- a/Sources/Vendor/asio/include/asio/impl/thread_pool.hpp +++ /dev/null @@ -1,127 +0,0 @@ -// -// impl/thread_pool.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_THREAD_POOL_HPP -#define ASIO_IMPL_THREAD_POOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/executor_op.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/recycling_allocator.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -inline thread_pool::executor_type -thread_pool::get_executor() ASIO_NOEXCEPT -{ - return executor_type(*this); -} - -inline thread_pool& -thread_pool::executor_type::context() const ASIO_NOEXCEPT -{ - return pool_; -} - -inline void -thread_pool::executor_type::on_work_started() const ASIO_NOEXCEPT -{ - pool_.scheduler_.work_started(); -} - -inline void thread_pool::executor_type::on_work_finished() -const ASIO_NOEXCEPT -{ - pool_.scheduler_.work_finished(); -} - -template -void thread_pool::executor_type::dispatch( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - // Invoke immediately if we are already inside the thread pool. - if (pool_.scheduler_.can_dispatch()) - { - // Make a local, non-const copy of the function. - function_type tmp(ASIO_MOVE_CAST(Function)(f)); - - detail::fenced_block b(detail::fenced_block::full); - asio_handler_invoke_helpers::invoke(tmp, tmp); - return; - } - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((pool_, *p.p, - "thread_pool", &this->context(), 0, "dispatch")); - - pool_.scheduler_.post_immediate_completion(p.p, false); - p.v = p.p = 0; -} - -template -void thread_pool::executor_type::post( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((pool_, *p.p, - "thread_pool", &this->context(), 0, "post")); - - pool_.scheduler_.post_immediate_completion(p.p, false); - p.v = p.p = 0; -} - -template -void thread_pool::executor_type::defer( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((pool_, *p.p, - "thread_pool", &this->context(), 0, "defer")); - - pool_.scheduler_.post_immediate_completion(p.p, true); - p.v = p.p = 0; -} - -inline bool -thread_pool::executor_type::running_in_this_thread() const ASIO_NOEXCEPT -{ - return pool_.scheduler_.can_dispatch(); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_THREAD_POOL_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/thread_pool.ipp b/Sources/Vendor/asio/include/asio/impl/thread_pool.ipp deleted file mode 100644 index 89583c1..0000000 --- a/Sources/Vendor/asio/include/asio/impl/thread_pool.ipp +++ /dev/null @@ -1,76 +0,0 @@ -// -// impl/thread_pool.ipp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_THREAD_POOL_IPP -#define ASIO_IMPL_THREAD_POOL_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/thread_pool.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -struct thread_pool::thread_function -{ - detail::scheduler* scheduler_; - - void operator()() - { - asio::error_code ec; - scheduler_->run(ec); - } -}; - -thread_pool::thread_pool() - : scheduler_(use_service(*this)) -{ - scheduler_.work_started(); - - thread_function f = { &scheduler_ }; - std::size_t num_threads = detail::thread::hardware_concurrency() * 2; - threads_.create_threads(f, num_threads ? num_threads : 2); -} - -thread_pool::thread_pool(std::size_t num_threads) - : scheduler_(use_service(*this)) -{ - scheduler_.work_started(); - - thread_function f = { &scheduler_ }; - threads_.create_threads(f, num_threads); -} - -thread_pool::~thread_pool() -{ - stop(); - join(); -} - -void thread_pool::stop() -{ - scheduler_.stop(); -} - -void thread_pool::join() -{ - scheduler_.work_finished(); - threads_.join(); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_THREAD_POOL_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/use_future.hpp b/Sources/Vendor/asio/include/asio/impl/use_future.hpp deleted file mode 100644 index 40bf7a4..0000000 --- a/Sources/Vendor/asio/include/asio/impl/use_future.hpp +++ /dev/null @@ -1,937 +0,0 @@ -// -// impl/use_future.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_USE_FUTURE_HPP -#define ASIO_IMPL_USE_FUTURE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/detail/memory.hpp" -#include "asio/error_code.hpp" -#include "asio/packaged_task.hpp" -#include "asio/system_error.hpp" -#include "asio/system_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -inline void promise_invoke_and_set(std::promise& p, - F& f, ASIO_MOVE_ARG(Args)... args) -{ -#if !defined(ASIO_NO_EXCEPTIONS) - try -#endif // !defined(ASIO_NO_EXCEPTIONS) - { - p.set_value(f(ASIO_MOVE_CAST(Args)(args)...)); - } -#if !defined(ASIO_NO_EXCEPTIONS) - catch (...) - { - p.set_exception(std::current_exception()); - } -#endif // !defined(ASIO_NO_EXCEPTIONS) -} - -template -inline void promise_invoke_and_set(std::promise& p, - F& f, ASIO_MOVE_ARG(Args)... args) -{ -#if !defined(ASIO_NO_EXCEPTIONS) - try -#endif // !defined(ASIO_NO_EXCEPTIONS) - { - f(ASIO_MOVE_CAST(Args)(args)...); - p.set_value(); - } -#if !defined(ASIO_NO_EXCEPTIONS) - catch (...) - { - p.set_exception(std::current_exception()); - } -#endif // !defined(ASIO_NO_EXCEPTIONS) -} - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -inline void promise_invoke_and_set(std::promise& p, F& f) -{ -#if !defined(ASIO_NO_EXCEPTIONS) - try -#endif // !defined(ASIO_NO_EXCEPTIONS) - { - p.set_value(f()); - } -#if !defined(ASIO_NO_EXCEPTIONS) - catch (...) - { - p.set_exception(std::current_exception()); - } -#endif // !defined(ASIO_NO_EXCEPTIONS) -} - -template -inline void promise_invoke_and_set(std::promise& p, F& f) -{ -#if !defined(ASIO_NO_EXCEPTIONS) - try -#endif // !defined(ASIO_NO_EXCEPTIONS) - { - f(); - p.set_value(); -#if !defined(ASIO_NO_EXCEPTIONS) - } - catch (...) - { - p.set_exception(std::current_exception()); - } -#endif // !defined(ASIO_NO_EXCEPTIONS) -} - -#if defined(ASIO_NO_EXCEPTIONS) - -#define ASIO_PRIVATE_PROMISE_INVOKE_DEF(n) \ - template \ - inline void promise_invoke_and_set(std::promise& p, \ - F& f, ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - p.set_value(f(ASIO_VARIADIC_MOVE_ARGS(n))); \ - } \ - \ - template \ - inline void promise_invoke_and_set(std::promise& p, \ - F& f, ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - f(ASIO_VARIADIC_MOVE_ARGS(n)); \ - p.set_value(); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_PROMISE_INVOKE_DEF) -#undef ASIO_PRIVATE_PROMISE_INVOKE_DEF - -#else // defined(ASIO_NO_EXCEPTIONS) - -#define ASIO_PRIVATE_PROMISE_INVOKE_DEF(n) \ - template \ - inline void promise_invoke_and_set(std::promise& p, \ - F& f, ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - try \ - { \ - p.set_value(f(ASIO_VARIADIC_MOVE_ARGS(n))); \ - } \ - catch (...) \ - { \ - p.set_exception(std::current_exception()); \ - } \ - } \ - \ - template \ - inline void promise_invoke_and_set(std::promise& p, \ - F& f, ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - try \ - { \ - f(ASIO_VARIADIC_MOVE_ARGS(n)); \ - p.set_value(); \ - } \ - catch (...) \ - { \ - p.set_exception(std::current_exception()); \ - } \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_PROMISE_INVOKE_DEF) -#undef ASIO_PRIVATE_PROMISE_INVOKE_DEF - -#endif // defined(ASIO_NO_EXCEPTIONS) - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -// A function object adapter to invoke a nullary function object and capture -// any exception thrown into a promise. -template -class promise_invoker -{ -public: - promise_invoker(const shared_ptr >& p, - ASIO_MOVE_ARG(F) f) - : p_(p), f_(ASIO_MOVE_CAST(F)(f)) - { - } - - void operator()() - { -#if !defined(ASIO_NO_EXCEPTIONS) - try -#endif // !defined(ASIO_NO_EXCEPTIONS) - { - f_(); - } -#if !defined(ASIO_NO_EXCEPTIONS) - catch (...) - { - p_->set_exception(std::current_exception()); - } -#endif // !defined(ASIO_NO_EXCEPTIONS) - } - -private: - shared_ptr > p_; - typename decay::type f_; -}; - -// An executor that adapts the system_executor to capture any exeption thrown -// by a submitted function object and save it into a promise. -template -class promise_executor -{ -public: - explicit promise_executor(const shared_ptr >& p) - : p_(p) - { - } - - execution_context& context() const ASIO_NOEXCEPT - { - return system_executor().context(); - } - - void on_work_started() const ASIO_NOEXCEPT {} - void on_work_finished() const ASIO_NOEXCEPT {} - - template - void dispatch(ASIO_MOVE_ARG(F) f, const A&) const - { - promise_invoker(p_, ASIO_MOVE_CAST(F)(f))(); - } - - template - void post(ASIO_MOVE_ARG(F) f, const A& a) const - { - system_executor().post( - promise_invoker(p_, ASIO_MOVE_CAST(F)(f)), a); - } - - template - void defer(ASIO_MOVE_ARG(F) f, const A& a) const - { - system_executor().defer( - promise_invoker(p_, ASIO_MOVE_CAST(F)(f)), a); - } - - friend bool operator==(const promise_executor& a, - const promise_executor& b) ASIO_NOEXCEPT - { - return a.p_ == b.p_; - } - - friend bool operator!=(const promise_executor& a, - const promise_executor& b) ASIO_NOEXCEPT - { - return a.p_ != b.p_; - } - -private: - shared_ptr > p_; -}; - -// The base class for all completion handlers that create promises. -template -class promise_creator -{ -public: - typedef promise_executor executor_type; - - executor_type get_executor() const ASIO_NOEXCEPT - { - return executor_type(p_); - } - - typedef std::future future_type; - - future_type get_future() - { - return p_->get_future(); - } - -protected: - template - void create_promise(const Allocator& a) - { - ASIO_REBIND_ALLOC(Allocator, char) b(a); - p_ = std::allocate_shared>(b, std::allocator_arg, b); - } - - shared_ptr > p_; -}; - -// For completion signature void(). -class promise_handler_0 - : public promise_creator -{ -public: - void operator()() - { - this->p_->set_value(); - } -}; - -// For completion signature void(error_code). -class promise_handler_ec_0 - : public promise_creator -{ -public: - void operator()(const asio::error_code& ec) - { - if (ec) - { - this->p_->set_exception( - std::make_exception_ptr( - asio::system_error(ec))); - } - else - { - this->p_->set_value(); - } - } -}; - -// For completion signature void(exception_ptr). -class promise_handler_ex_0 - : public promise_creator -{ -public: - void operator()(const std::exception_ptr& ex) - { - if (ex) - { - this->p_->set_exception(ex); - } - else - { - this->p_->set_value(); - } - } -}; - -// For completion signature void(T). -template -class promise_handler_1 - : public promise_creator -{ -public: - template - void operator()(ASIO_MOVE_ARG(Arg) arg) - { - this->p_->set_value(ASIO_MOVE_CAST(Arg)(arg)); - } -}; - -// For completion signature void(error_code, T). -template -class promise_handler_ec_1 - : public promise_creator -{ -public: - template - void operator()(const asio::error_code& ec, - ASIO_MOVE_ARG(Arg) arg) - { - if (ec) - { - this->p_->set_exception( - std::make_exception_ptr( - asio::system_error(ec))); - } - else - this->p_->set_value(ASIO_MOVE_CAST(Arg)(arg)); - } -}; - -// For completion signature void(exception_ptr, T). -template -class promise_handler_ex_1 - : public promise_creator -{ -public: - template - void operator()(const std::exception_ptr& ex, - ASIO_MOVE_ARG(Arg) arg) - { - if (ex) - this->p_->set_exception(ex); - else - this->p_->set_value(ASIO_MOVE_CAST(Arg)(arg)); - } -}; - -// For completion signature void(T1, ..., Tn); -template -class promise_handler_n - : public promise_creator -{ -public: -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - void operator()(ASIO_MOVE_ARG(Args)... args) - { - this->p_->set_value( - std::forward_as_tuple( - ASIO_MOVE_CAST(Args)(args)...)); - } - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#define ASIO_PRIVATE_CALL_OP_DEF(n) \ - template \ - void operator()(ASIO_VARIADIC_MOVE_PARAMS(n)) \ - {\ - this->p_->set_value( \ - std::forward_as_tuple( \ - ASIO_VARIADIC_MOVE_ARGS(n))); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_CALL_OP_DEF) -#undef ASIO_PRIVATE_CALL_OP_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) -}; - -// For completion signature void(error_code, T1, ..., Tn); -template -class promise_handler_ec_n - : public promise_creator -{ -public: -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - void operator()(const asio::error_code& ec, - ASIO_MOVE_ARG(Args)... args) - { - if (ec) - { - this->p_->set_exception( - std::make_exception_ptr( - asio::system_error(ec))); - } - else - { - this->p_->set_value( - std::forward_as_tuple( - ASIO_MOVE_CAST(Args)(args)...)); - } - } - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#define ASIO_PRIVATE_CALL_OP_DEF(n) \ - template \ - void operator()(const asio::error_code& ec, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - {\ - if (ec) \ - { \ - this->p_->set_exception( \ - std::make_exception_ptr( \ - asio::system_error(ec))); \ - } \ - else \ - { \ - this->p_->set_value( \ - std::forward_as_tuple( \ - ASIO_VARIADIC_MOVE_ARGS(n))); \ - } \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_CALL_OP_DEF) -#undef ASIO_PRIVATE_CALL_OP_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) -}; - -// For completion signature void(exception_ptr, T1, ..., Tn); -template -class promise_handler_ex_n - : public promise_creator -{ -public: -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - void operator()(const std::exception_ptr& ex, - ASIO_MOVE_ARG(Args)... args) - { - if (ex) - this->p_->set_exception(ex); - else - { - this->p_->set_value( - std::forward_as_tuple( - ASIO_MOVE_CAST(Args)(args)...)); - } - } - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#define ASIO_PRIVATE_CALL_OP_DEF(n) \ - template \ - void operator()(const std::exception_ptr& ex, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - {\ - if (ex) \ - this->p_->set_exception(ex); \ - else \ - { \ - this->p_->set_value( \ - std::forward_as_tuple( \ - ASIO_VARIADIC_MOVE_ARGS(n))); \ - } \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_CALL_OP_DEF) -#undef ASIO_PRIVATE_CALL_OP_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) -}; - -// Helper template to choose the appropriate concrete promise handler -// implementation based on the supplied completion signature. -template class promise_handler_selector; - -template <> -class promise_handler_selector - : public promise_handler_0 {}; - -template <> -class promise_handler_selector - : public promise_handler_ec_0 {}; - -template <> -class promise_handler_selector - : public promise_handler_ex_0 {}; - -template -class promise_handler_selector - : public promise_handler_1 {}; - -template -class promise_handler_selector - : public promise_handler_ec_1 {}; - -template -class promise_handler_selector - : public promise_handler_ex_1 {}; - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -class promise_handler_selector - : public promise_handler_n > {}; - -template -class promise_handler_selector - : public promise_handler_ec_n > {}; - -template -class promise_handler_selector - : public promise_handler_ex_n > {}; - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#define ASIO_PRIVATE_PROMISE_SELECTOR_DEF(n) \ - template \ - class promise_handler_selector< \ - void(Arg, ASIO_VARIADIC_TARGS(n))> \ - : public promise_handler_n< \ - std::tuple > {}; \ - \ - template \ - class promise_handler_selector< \ - void(asio::error_code, Arg, ASIO_VARIADIC_TARGS(n))> \ - : public promise_handler_ec_n< \ - std::tuple > {}; \ - \ - template \ - class promise_handler_selector< \ - void(std::exception_ptr, Arg, ASIO_VARIADIC_TARGS(n))> \ - : public promise_handler_ex_n< \ - std::tuple > {}; \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_PROMISE_SELECTOR_DEF) -#undef ASIO_PRIVATE_PROMISE_SELECTOR_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -// Completion handlers produced from the use_future completion token, when not -// using use_future::operator(). -template -class promise_handler - : public promise_handler_selector -{ -public: - typedef Allocator allocator_type; - typedef void result_type; - - promise_handler(use_future_t u) - : allocator_(u.get_allocator()) - { - this->create_promise(allocator_); - } - - allocator_type get_allocator() const ASIO_NOEXCEPT - { - return allocator_; - } - -private: - Allocator allocator_; -}; - -template -inline void asio_handler_invoke(Function& f, - promise_handler* h) -{ - typename promise_handler::executor_type - ex(h->get_executor()); - ex.dispatch(ASIO_MOVE_CAST(Function)(f), std::allocator()); -} - -template -inline void asio_handler_invoke(const Function& f, - promise_handler* h) -{ - typename promise_handler::executor_type - ex(h->get_executor()); - ex.dispatch(f, std::allocator()); -} - -// Helper base class for async_result specialisation. -template -class promise_async_result -{ -public: - typedef promise_handler completion_handler_type; - typedef typename completion_handler_type::future_type return_type; - - explicit promise_async_result(completion_handler_type& h) - : future_(h.get_future()) - { - } - - return_type get() - { - return ASIO_MOVE_CAST(return_type)(future_); - } - -private: - return_type future_; -}; - -// Return value from use_future::operator(). -template -class packaged_token -{ -public: - packaged_token(Function f, const Allocator& a) - : function_(ASIO_MOVE_CAST(Function)(f)), - allocator_(a) - { - } - -//private: - Function function_; - Allocator allocator_; -}; - -// Completion handlers produced from the use_future completion token, when -// using use_future::operator(). -template -class packaged_handler - : public promise_creator -{ -public: - typedef Allocator allocator_type; - typedef void result_type; - - packaged_handler(packaged_token t) - : function_(ASIO_MOVE_CAST(Function)(t.function_)), - allocator_(t.allocator_) - { - this->create_promise(allocator_); - } - - allocator_type get_allocator() const ASIO_NOEXCEPT - { - return allocator_; - } - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - void operator()(ASIO_MOVE_ARG(Args)... args) - { - (promise_invoke_and_set)(*this->p_, - function_, ASIO_MOVE_CAST(Args)(args)...); - } - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - - void operator()() - { - (promise_invoke_and_set)(*this->p_, function_); - } - -#define ASIO_PRIVATE_CALL_OP_DEF(n) \ - template \ - void operator()(ASIO_VARIADIC_MOVE_PARAMS(n)) \ - {\ - (promise_invoke_and_set)(*this->p_, \ - function_, ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_CALL_OP_DEF) -#undef ASIO_PRIVATE_CALL_OP_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -private: - Function function_; - Allocator allocator_; -}; - -template -inline void asio_handler_invoke(Function& f, - packaged_handler* h) -{ - typename packaged_handler::executor_type - ex(h->get_executor()); - ex.dispatch(ASIO_MOVE_CAST(Function)(f), std::allocator()); -} - -template -inline void asio_handler_invoke(const Function& f, - packaged_handler* h) -{ - typename packaged_handler::executor_type - ex(h->get_executor()); - ex.dispatch(f, std::allocator()); -} - -// Helper base class for async_result specialisation. -template -class packaged_async_result -{ -public: - typedef packaged_handler completion_handler_type; - typedef typename completion_handler_type::future_type return_type; - - explicit packaged_async_result(completion_handler_type& h) - : future_(h.get_future()) - { - } - - return_type get() - { - return ASIO_MOVE_CAST(return_type)(future_); - } - -private: - return_type future_; -}; - -} // namespace detail - -template template -inline detail::packaged_token::type, Allocator> -use_future_t::operator()(ASIO_MOVE_ARG(Function) f) const -{ - return detail::packaged_token::type, Allocator>( - ASIO_MOVE_CAST(Function)(f), allocator_); -} - -#if !defined(GENERATING_DOCUMENTATION) - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -class async_result, Result(Args...)> - : public detail::promise_async_result< - void(typename decay::type...), Allocator> -{ -public: - explicit async_result( - typename detail::promise_async_result::type...), - Allocator>::completion_handler_type& h) - : detail::promise_async_result< - void(typename decay::type...), Allocator>(h) - { - } -}; - -template -class async_result, Result(Args...)> - : public detail::packaged_async_result::type> -{ -public: - explicit async_result( - typename detail::packaged_async_result::type>::completion_handler_type& h) - : detail::packaged_async_result::type>(h) - { - } -}; - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -class async_result, Result()> - : public detail::promise_async_result -{ -public: - explicit async_result( - typename detail::promise_async_result< - void(), Allocator>::completion_handler_type& h) - : detail::promise_async_result(h) - { - } -}; - -template -class async_result, Result()> - : public detail::packaged_async_result::type> -{ -public: - explicit async_result( - typename detail::packaged_async_result::type>::completion_handler_type& h) - : detail::packaged_async_result::type>(h) - { - } -}; - -#define ASIO_PRIVATE_ASYNC_RESULT_DEF(n) \ - template \ - class async_result, \ - Result(ASIO_VARIADIC_TARGS(n))> \ - : public detail::promise_async_result< \ - void(ASIO_VARIADIC_DECAY(n)), Allocator> \ - { \ - public: \ - explicit async_result( \ - typename detail::promise_async_result< \ - void(ASIO_VARIADIC_DECAY(n)), \ - Allocator>::completion_handler_type& h) \ - : detail::promise_async_result< \ - void(ASIO_VARIADIC_DECAY(n)), Allocator>(h) \ - { \ - } \ - }; \ - \ - template \ - class async_result, \ - Result(ASIO_VARIADIC_TARGS(n))> \ - : public detail::packaged_async_result::type> \ - { \ - public: \ - explicit async_result( \ - typename detail::packaged_async_result::type \ - >::completion_handler_type& h) \ - : detail::packaged_async_result::type>(h) \ - { \ - } \ - }; \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_ASYNC_RESULT_DEF) -#undef ASIO_PRIVATE_ASYNC_RESULT_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#if !defined(ASIO_NO_DEPRECATED) - -template -struct handler_type, Signature> -{ - typedef typename async_result, - Signature>::completion_handler_type type; -}; - -template -class async_result > - : public detail::promise_async_result -{ -public: - typedef typename detail::promise_async_result< - Signature, Allocator>::return_type type; - - explicit async_result( - typename detail::promise_async_result< - Signature, Allocator>::completion_handler_type& h) - : detail::promise_async_result(h) - { - } -}; - -template -struct handler_type, Signature> -{ - typedef typename async_result, - Signature>::completion_handler_type type; -}; - -template -class async_result > - : public detail::packaged_async_result -{ -public: - typedef typename detail::packaged_async_result< - Function, Allocator, Result>::return_type type; - - explicit async_result( - typename detail::packaged_async_result< - Function, Allocator, Result>::completion_handler_type& h) - : detail::packaged_async_result(h) - { - } -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -#endif // !defined(GENERATING_DOCUMENTATION) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_USE_FUTURE_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/write.hpp b/Sources/Vendor/asio/include/asio/impl/write.hpp deleted file mode 100644 index d07e8d3..0000000 --- a/Sources/Vendor/asio/include/asio/impl/write.hpp +++ /dev/null @@ -1,674 +0,0 @@ -// -// impl/write.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_WRITE_HPP -#define ASIO_IMPL_WRITE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/buffer.hpp" -#include "asio/completion_condition.hpp" -#include "asio/detail/array_fwd.hpp" -#include "asio/detail/base_from_completion_cond.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/consuming_buffers.hpp" -#include "asio/detail/dependent_type.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - template - std::size_t write_buffer_sequence(SyncWriteStream& s, - const ConstBufferSequence& buffers, const ConstBufferIterator&, - CompletionCondition completion_condition, asio::error_code& ec) - { - ec = asio::error_code(); - asio::detail::consuming_buffers tmp(buffers); - while (!tmp.empty()) - { - if (std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, tmp.total_consumed()))) - tmp.consume(s.write_some(tmp.prepare(max_size), ec)); - else - break; - } - return tmp.total_consumed();; - } -} // namespace detail - -template -inline std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_const_buffer_sequence::value - >::type*) -{ - return detail::write_buffer_sequence(s, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, ec); -} - -template -inline std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - typename enable_if< - is_const_buffer_sequence::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = write(s, buffers, transfer_all(), ec); - asio::detail::throw_error(ec, "write"); - return bytes_transferred; -} - -template -inline std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - asio::error_code& ec, - typename enable_if< - is_const_buffer_sequence::value - >::type*) -{ - return write(s, buffers, transfer_all(), ec); -} - -template -inline std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, - typename enable_if< - is_const_buffer_sequence::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = write(s, buffers, completion_condition, ec); - asio::detail::throw_error(ec, "write"); - return bytes_transferred; -} - -template -std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - typename decay::type b( - ASIO_MOVE_CAST(DynamicBuffer)(buffers)); - - std::size_t bytes_transferred = write(s, b.data(), completion_condition, ec); - b.consume(bytes_transferred); - return bytes_transferred; -} - -template -inline std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = write(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), - transfer_all(), ec); - asio::detail::throw_error(ec, "write"); - return bytes_transferred; -} - -template -inline std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - return write(s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - transfer_all(), ec); -} - -template -inline std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = write(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), - completion_condition, ec); - asio::detail::throw_error(ec, "write"); - return bytes_transferred; -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -template -inline std::size_t write(SyncWriteStream& s, - asio::basic_streambuf& b, - CompletionCondition completion_condition, asio::error_code& ec) -{ - return write(s, basic_streambuf_ref(b), completion_condition, ec); -} - -template -inline std::size_t write(SyncWriteStream& s, - asio::basic_streambuf& b) -{ - return write(s, basic_streambuf_ref(b)); -} - -template -inline std::size_t write(SyncWriteStream& s, - asio::basic_streambuf& b, - asio::error_code& ec) -{ - return write(s, basic_streambuf_ref(b), ec); -} - -template -inline std::size_t write(SyncWriteStream& s, - asio::basic_streambuf& b, - CompletionCondition completion_condition) -{ - return write(s, basic_streambuf_ref(b), completion_condition); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -namespace detail -{ - template - class write_op - : detail::base_from_completion_cond - { - public: - write_op(AsyncWriteStream& stream, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, WriteHandler& handler) - : detail::base_from_completion_cond< - CompletionCondition>(completion_condition), - stream_(stream), - buffers_(buffers), - start_(0), - handler_(ASIO_MOVE_CAST(WriteHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - write_op(const write_op& other) - : detail::base_from_completion_cond(other), - stream_(other.stream_), - buffers_(other.buffers_), - start_(other.start_), - handler_(other.handler_) - { - } - - write_op(write_op&& other) - : detail::base_from_completion_cond(other), - stream_(other.stream_), - buffers_(other.buffers_), - start_(other.start_), - handler_(ASIO_MOVE_CAST(WriteHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - std::size_t max_size; - switch (start_ = start) - { - case 1: - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - do - { - stream_.async_write_some(buffers_.prepare(max_size), - ASIO_MOVE_CAST(write_op)(*this)); - return; default: - buffers_.consume(bytes_transferred); - if ((!ec && bytes_transferred == 0) || buffers_.empty()) - break; - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - } while (max_size > 0); - - handler_(ec, buffers_.total_consumed()); - } - } - - //private: - AsyncWriteStream& stream_; - asio::detail::consuming_buffers buffers_; - int start_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - write_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - write_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - write_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - write_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - write_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void start_write_buffer_sequence_op(AsyncWriteStream& stream, - const ConstBufferSequence& buffers, const ConstBufferIterator&, - CompletionCondition completion_condition, WriteHandler& handler) - { - detail::write_op( - stream, buffers, completion_condition, handler)( - asio::error_code(), 0, 1); - } - -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::write_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::write_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::write_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::write_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_const_buffer_sequence::value - >::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - detail::start_write_buffer_sequence_op(s, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, - init.completion_handler); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_const_buffer_sequence::value - >::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - detail::start_write_buffer_sequence_op(s, buffers, - asio::buffer_sequence_begin(buffers), transfer_all(), - init.completion_handler); - - return init.result.get(); -} - -namespace detail -{ - template - class write_dynbuf_op - { - public: - template - write_dynbuf_op(AsyncWriteStream& stream, - ASIO_MOVE_ARG(BufferSequence) buffers, - CompletionCondition completion_condition, WriteHandler& handler) - : stream_(stream), - buffers_(ASIO_MOVE_CAST(BufferSequence)(buffers)), - completion_condition_( - ASIO_MOVE_CAST(CompletionCondition)(completion_condition)), - handler_(ASIO_MOVE_CAST(WriteHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - write_dynbuf_op(const write_dynbuf_op& other) - : stream_(other.stream_), - buffers_(other.buffers_), - completion_condition_(other.completion_condition_), - handler_(other.handler_) - { - } - - write_dynbuf_op(write_dynbuf_op&& other) - : stream_(other.stream_), - buffers_(ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)), - completion_condition_( - ASIO_MOVE_CAST(CompletionCondition)( - other.completion_condition_)), - handler_(ASIO_MOVE_CAST(WriteHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - switch (start) - { - case 1: - async_write(stream_, buffers_.data(), completion_condition_, - ASIO_MOVE_CAST(write_dynbuf_op)(*this)); - return; default: - buffers_.consume(bytes_transferred); - handler_(ec, static_cast(bytes_transferred)); - } - } - - //private: - AsyncWriteStream& stream_; - DynamicBuffer buffers_; - CompletionCondition completion_condition_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - write_dynbuf_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - write_dynbuf_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - write_dynbuf_op* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - write_dynbuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - write_dynbuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::write_dynbuf_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::write_dynbuf_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::write_dynbuf_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::write_dynbuf_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - return async_write(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), - transfer_all(), ASIO_MOVE_CAST(WriteHandler)(handler)); -} - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - detail::write_dynbuf_op::type, - CompletionCondition, ASIO_HANDLER_TYPE( - WriteHandler, void (asio::error_code, std::size_t))>( - s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - completion_condition, init.completion_handler)( - asio::error_code(), 0, 1); - - return init.result.get(); -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, - asio::basic_streambuf& b, - ASIO_MOVE_ARG(WriteHandler) handler) -{ - return async_write(s, basic_streambuf_ref(b), - ASIO_MOVE_CAST(WriteHandler)(handler)); -} - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, - asio::basic_streambuf& b, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler) -{ - return async_write(s, basic_streambuf_ref(b), - completion_condition, ASIO_MOVE_CAST(WriteHandler)(handler)); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_WRITE_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/write_at.hpp b/Sources/Vendor/asio/include/asio/impl/write_at.hpp deleted file mode 100644 index cc6f336..0000000 --- a/Sources/Vendor/asio/include/asio/impl/write_at.hpp +++ /dev/null @@ -1,572 +0,0 @@ -// -// impl/write_at.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IMPL_WRITE_AT_HPP -#define ASIO_IMPL_WRITE_AT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/buffer.hpp" -#include "asio/completion_condition.hpp" -#include "asio/detail/array_fwd.hpp" -#include "asio/detail/base_from_completion_cond.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/consuming_buffers.hpp" -#include "asio/detail/dependent_type.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - template - std::size_t write_at_buffer_sequence(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - const ConstBufferIterator&, CompletionCondition completion_condition, - asio::error_code& ec) - { - ec = asio::error_code(); - asio::detail::consuming_buffers tmp(buffers); - while (!tmp.empty()) - { - if (std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, tmp.total_consumed()))) - { - tmp.consume(d.write_some_at(offset + tmp.total_consumed(), - tmp.prepare(max_size), ec)); - } - else - break; - } - return tmp.total_consumed();; - } -} // namespace detail - -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec) -{ - return detail::write_at_buffer_sequence(d, offset, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, ec); -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers) -{ - asio::error_code ec; - std::size_t bytes_transferred = write_at( - d, offset, buffers, transfer_all(), ec); - asio::detail::throw_error(ec, "write_at"); - return bytes_transferred; -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - asio::error_code& ec) -{ - return write_at(d, offset, buffers, transfer_all(), ec); -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition) -{ - asio::error_code ec; - std::size_t bytes_transferred = write_at( - d, offset, buffers, completion_condition, ec); - asio::detail::throw_error(ec, "write_at"); - return bytes_transferred; -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, asio::basic_streambuf& b, - CompletionCondition completion_condition, asio::error_code& ec) -{ - std::size_t bytes_transferred = write_at( - d, offset, b.data(), completion_condition, ec); - b.consume(bytes_transferred); - return bytes_transferred; -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, asio::basic_streambuf& b) -{ - asio::error_code ec; - std::size_t bytes_transferred = write_at(d, offset, b, transfer_all(), ec); - asio::detail::throw_error(ec, "write_at"); - return bytes_transferred; -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, asio::basic_streambuf& b, - asio::error_code& ec) -{ - return write_at(d, offset, b, transfer_all(), ec); -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, asio::basic_streambuf& b, - CompletionCondition completion_condition) -{ - asio::error_code ec; - std::size_t bytes_transferred = write_at( - d, offset, b, completion_condition, ec); - asio::detail::throw_error(ec, "write_at"); - return bytes_transferred; -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -namespace detail -{ - template - class write_at_op - : detail::base_from_completion_cond - { - public: - write_at_op(AsyncRandomAccessWriteDevice& device, - uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, WriteHandler& handler) - : detail::base_from_completion_cond< - CompletionCondition>(completion_condition), - device_(device), - offset_(offset), - buffers_(buffers), - start_(0), - handler_(ASIO_MOVE_CAST(WriteHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - write_at_op(const write_at_op& other) - : detail::base_from_completion_cond(other), - device_(other.device_), - offset_(other.offset_), - buffers_(other.buffers_), - start_(other.start_), - handler_(other.handler_) - { - } - - write_at_op(write_at_op&& other) - : detail::base_from_completion_cond(other), - device_(other.device_), - offset_(other.offset_), - buffers_(other.buffers_), - start_(other.start_), - handler_(ASIO_MOVE_CAST(WriteHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - std::size_t max_size; - switch (start_ = start) - { - case 1: - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - do - { - device_.async_write_some_at( - offset_ + buffers_.total_consumed(), buffers_.prepare(max_size), - ASIO_MOVE_CAST(write_at_op)(*this)); - return; default: - buffers_.consume(bytes_transferred); - if ((!ec && bytes_transferred == 0) || buffers_.empty()) - break; - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - } while (max_size > 0); - - handler_(ec, buffers_.total_consumed()); - } - } - - //private: - AsyncRandomAccessWriteDevice& device_; - uint64_t offset_; - asio::detail::consuming_buffers buffers_; - int start_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - write_at_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - write_at_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - write_at_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - write_at_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - write_at_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void start_write_at_buffer_sequence_op(AsyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - const ConstBufferIterator&, CompletionCondition completion_condition, - WriteHandler& handler) - { - detail::write_at_op( - d, offset, buffers, completion_condition, handler)( - asio::error_code(), 0, 1); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::write_at_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::write_at_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::write_at_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::write_at_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - detail::start_write_at_buffer_sequence_op(d, offset, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, - init.completion_handler); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - detail::start_write_at_buffer_sequence_op(d, offset, buffers, - asio::buffer_sequence_begin(buffers), transfer_all(), - init.completion_handler); - - return init.result.get(); -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -namespace detail -{ - template - class write_at_streambuf_op - { - public: - write_at_streambuf_op( - asio::basic_streambuf& streambuf, - WriteHandler& handler) - : streambuf_(streambuf), - handler_(ASIO_MOVE_CAST(WriteHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - write_at_streambuf_op(const write_at_streambuf_op& other) - : streambuf_(other.streambuf_), - handler_(other.handler_) - { - } - - write_at_streambuf_op(write_at_streambuf_op&& other) - : streambuf_(other.streambuf_), - handler_(ASIO_MOVE_CAST(WriteHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - const std::size_t bytes_transferred) - { - streambuf_.consume(bytes_transferred); - handler_(ec, bytes_transferred); - } - - //private: - asio::basic_streambuf& streambuf_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - write_at_streambuf_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - write_at_streambuf_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - write_at_streambuf_op* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - write_at_streambuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - write_at_streambuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline write_at_streambuf_op - make_write_at_streambuf_op( - asio::basic_streambuf& b, WriteHandler handler) - { - return write_at_streambuf_op(b, handler); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::write_at_streambuf_op, - Allocator1> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::write_at_streambuf_op& h, - const Allocator1& a = Allocator1()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::write_at_streambuf_op, - Executor1> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::write_at_streambuf_op& h, - const Executor1& ex = Executor1()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, - uint64_t offset, asio::basic_streambuf& b, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - async_write_at(d, offset, b.data(), completion_condition, - detail::write_at_streambuf_op( - b, init.completion_handler)); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, - uint64_t offset, asio::basic_streambuf& b, - ASIO_MOVE_ARG(WriteHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - async_write_at(d, offset, b.data(), transfer_all(), - detail::write_at_streambuf_op( - b, init.completion_handler)); - - return init.result.get(); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_WRITE_AT_HPP diff --git a/Sources/Vendor/asio/include/asio/io_context.hpp b/Sources/Vendor/asio/include/asio/io_context.hpp deleted file mode 100644 index 4d93be4..0000000 --- a/Sources/Vendor/asio/include/asio/io_context.hpp +++ /dev/null @@ -1,876 +0,0 @@ -// -// io_context.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IO_CONTEXT_HPP -#define ASIO_IO_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include "asio/async_result.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/wrapped_handler.hpp" -#include "asio/error_code.hpp" -#include "asio/execution_context.hpp" - -#if defined(ASIO_HAS_CHRONO) -# include "asio/detail/chrono.hpp" -#endif // defined(ASIO_HAS_CHRONO) - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# include "asio/detail/winsock_init.hpp" -#elif defined(__sun) || defined(__QNX__) || defined(__hpux) || defined(_AIX) \ - || defined(__osf__) -# include "asio/detail/signal_init.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail { -#if defined(ASIO_HAS_IOCP) - typedef class win_iocp_io_context io_context_impl; - class win_iocp_overlapped_ptr; -#else - typedef class scheduler io_context_impl; -#endif -} // namespace detail - -/// Provides core I/O functionality. -/** - * The io_context class provides the core I/O functionality for users of the - * asynchronous I/O objects, including: - * - * @li asio::ip::tcp::socket - * @li asio::ip::tcp::acceptor - * @li asio::ip::udp::socket - * @li asio::deadline_timer. - * - * The io_context class also includes facilities intended for developers of - * custom asynchronous services. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe, with the specific exceptions of the restart() - * and notify_fork() functions. Calling restart() while there are unfinished - * run(), run_one(), run_for(), run_until(), poll() or poll_one() calls results - * in undefined behaviour. The notify_fork() function should not be called - * while any io_context function, or any function on an I/O object that is - * associated with the io_context, is being called in another thread. - * - * @par Concepts: - * Dispatcher. - * - * @par Synchronous and asynchronous operations - * - * Synchronous operations on I/O objects implicitly run the io_context object - * for an individual operation. The io_context functions run(), run_one(), - * run_for(), run_until(), poll() or poll_one() must be called for the - * io_context to perform asynchronous operations on behalf of a C++ program. - * Notification that an asynchronous operation has completed is delivered by - * invocation of the associated handler. Handlers are invoked only by a thread - * that is currently calling any overload of run(), run_one(), run_for(), - * run_until(), poll() or poll_one() for the io_context. - * - * @par Effect of exceptions thrown from handlers - * - * If an exception is thrown from a handler, the exception is allowed to - * propagate through the throwing thread's invocation of run(), run_one(), - * run_for(), run_until(), 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(), run_for(), - * run_until(), poll() or poll_one() call may be restarted @em without the need - * for an intervening call to restart(). This allows the thread to rejoin the - * io_context object's thread pool without impacting any other threads in the - * pool. - * - * For example: - * - * @code - * asio::io_context io_context; - * ... - * for (;;) - * { - * try - * { - * io_context.run(); - * break; // run() exited normally - * } - * catch (my_exception& e) - * { - * // Deal with exception as appropriate. - * } - * } - * @endcode - * - * @par Submitting arbitrary tasks to the io_context - * - * To submit functions to the io_context, use the @ref asio::dispatch, - * @ref asio::post or @ref asio::defer free functions. - * - * For example: - * - * @code void my_task() - * { - * ... - * } - * - * ... - * - * asio::io_context io_context; - * - * // Submit a function to the io_context. - * asio::post(io_context, my_task); - * - * // Submit a lambda object to the io_context. - * asio::post(io_context, - * []() - * { - * ... - * }); - * - * // Run the io_context until it runs out of work. - * io_context.run(); @endcode - * - * @par Stopping the io_context from running out of work - * - * Some applications may need to prevent an io_context object's run() call from - * returning when there is no more work to do. For example, the io_context may - * be being run in a background thread that is launched prior to the - * application's asynchronous operations. The run() call may be kept running by - * creating an object of type - * asio::executor_work_guard: - * - * @code asio::io_context io_context; - * asio::executor_work_guard - * = asio::make_work_guard(io_context); - * ... @endcode - * - * To effect a shutdown, the application will then need to call the io_context - * object's stop() member function. This will cause the io_context run() call - * to return as soon as possible, abandoning unfinished operations and without - * permitting ready handlers to be dispatched. - * - * Alternatively, if the application requires that all operations and handlers - * be allowed to finish normally, the work object may be explicitly reset. - * - * @code asio::io_context io_context; - * asio::executor_work_guard - * = asio::make_work_guard(io_context); - * ... - * work.reset(); // Allow run() to exit. @endcode - */ -class io_context - : public execution_context -{ -private: - typedef detail::io_context_impl impl_type; -#if defined(ASIO_HAS_IOCP) - friend class detail::win_iocp_overlapped_ptr; -#endif - -public: - class executor_type; - friend class executor_type; - -#if !defined(ASIO_NO_DEPRECATED) - class work; - friend class work; -#endif // !defined(ASIO_NO_DEPRECATED) - - class service; - -#if !defined(ASIO_NO_EXTENSIONS) - class strand; -#endif // !defined(ASIO_NO_EXTENSIONS) - - /// The type used to count the number of handlers executed by the context. - typedef std::size_t count_type; - - /// Constructor. - ASIO_DECL io_context(); - - /// Constructor. - /** - * Construct with a hint about the required level of concurrency. - * - * @param concurrency_hint A suggestion to the implementation on how many - * threads it should allow to run simultaneously. - */ - ASIO_DECL explicit io_context(int concurrency_hint); - - /// Destructor. - /** - * On destruction, the io_context performs the following sequence of - * operations: - * - * @li For each service object @c svc in the io_context set, in reverse order - * of the beginning of service object lifetime, performs - * @c svc->shutdown(). - * - * @li Uninvoked handler objects that were scheduled for deferred invocation - * on the io_context, or any associated strand, are destroyed. - * - * @li For each service object @c svc in the io_context set, in reverse order - * of the beginning of service object lifetime, performs - * delete static_cast(svc). - * - * @note The destruction sequence described above permits programs to - * simplify their resource management by using @c shared_ptr<>. Where an - * object's lifetime is tied to the lifetime of a connection (or some other - * sequence of asynchronous operations), a @c shared_ptr to the object would - * be bound into the handlers for all asynchronous operations associated with - * it. This works as follows: - * - * @li When a single connection ends, all associated asynchronous operations - * complete. The corresponding handler objects are destroyed, and all - * @c shared_ptr references to the objects are destroyed. - * - * @li To shut down the whole program, the io_context function stop() is - * called to terminate any run() calls as soon as possible. The io_context - * destructor defined above destroys all handlers, causing all @c shared_ptr - * references to all connection objects to be destroyed. - */ - ASIO_DECL ~io_context(); - - /// Obtains the executor associated with the io_context. - executor_type get_executor() ASIO_NOEXCEPT; - - /// Run the io_context object's event processing loop. - /** - * The run() function blocks until all work has finished and there are no - * more handlers to be dispatched, or until the io_context has been stopped. - * - * Multiple threads may call the run() function to set up a pool of threads - * from which the io_context may execute handlers. All threads that are - * waiting in the pool are equivalent and the io_context may choose any one - * of them to invoke a handler. - * - * A normal exit from the run() function implies that the io_context object - * is stopped (the stopped() function returns @c true). Subsequent calls to - * run(), run_one(), poll() or poll_one() will return immediately unless there - * is a prior call to restart(). - * - * @return The number of handlers that were executed. - * - * @note Calling the run() function from a thread that is currently calling - * one of run(), run_one(), run_for(), run_until(), poll() or poll_one() on - * the same io_context object may introduce the potential for deadlock. It is - * the caller's reponsibility to avoid this. - * - * The poll() function may also be used to dispatch ready handlers, but - * without blocking. - */ - ASIO_DECL count_type run(); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use non-error_code overload.) Run the io_context object's - /// event processing loop. - /** - * The run() function blocks until all work has finished and there are no - * more handlers to be dispatched, or until the io_context has been stopped. - * - * Multiple threads may call the run() function to set up a pool of threads - * from which the io_context may execute handlers. All threads that are - * waiting in the pool are equivalent and the io_context may choose any one - * of them to invoke a handler. - * - * A normal exit from the run() function implies that the io_context object - * is stopped (the stopped() function returns @c true). Subsequent calls to - * run(), run_one(), poll() or poll_one() will return immediately unless there - * is a prior call to restart(). - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of handlers that were executed. - * - * @note Calling the run() function from a thread that is currently calling - * one of run(), run_one(), run_for(), run_until(), poll() or poll_one() on - * the same io_context object may introduce the potential for deadlock. It is - * the caller's reponsibility to avoid this. - * - * The poll() function may also be used to dispatch ready handlers, but - * without blocking. - */ - ASIO_DECL count_type run(asio::error_code& ec); -#endif // !defined(ASIO_NO_DEPRECATED) - -#if defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - /// Run the io_context object's event processing loop for a specified - /// duration. - /** - * The run_for() function blocks until all work has finished and there are no - * more handlers to be dispatched, until the io_context has been stopped, or - * until the specified duration has elapsed. - * - * @param rel_time The duration for which the call may block. - * - * @return The number of handlers that were executed. - */ - template - std::size_t run_for(const chrono::duration& rel_time); - - /// Run the io_context object's event processing loop until a specified time. - /** - * The run_until() function blocks until all work has finished and there are - * no more handlers to be dispatched, until the io_context has been stopped, - * or until the specified time has been reached. - * - * @param abs_time The time point until which the call may block. - * - * @return The number of handlers that were executed. - */ - template - std::size_t run_until(const chrono::time_point& abs_time); -#endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - - /// Run the io_context object's event processing loop to execute at most one - /// handler. - /** - * The run_one() function blocks until one handler has been dispatched, or - * until the io_context has been stopped. - * - * @return The number of handlers that were executed. A zero return value - * implies that the io_context object is stopped (the stopped() function - * returns @c true). Subsequent calls to run(), run_one(), poll() or - * poll_one() will return immediately unless there is a prior call to - * restart(). - * - * @note Calling the run_one() function from a thread that is currently - * calling one of run(), run_one(), run_for(), run_until(), poll() or - * poll_one() on the same io_context object may introduce the potential for - * deadlock. It is the caller's reponsibility to avoid this. - */ - ASIO_DECL count_type run_one(); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use non-error_code overlaod.) Run the io_context object's - /// event processing loop to execute at most one handler. - /** - * The run_one() function blocks until one handler has been dispatched, or - * until the io_context has been stopped. - * - * @return The number of handlers that were executed. A zero return value - * implies that the io_context object is stopped (the stopped() function - * returns @c true). Subsequent calls to run(), run_one(), poll() or - * poll_one() will return immediately unless there is a prior call to - * restart(). - * - * @return The number of handlers that were executed. - * - * @note Calling the run_one() function from a thread that is currently - * calling one of run(), run_one(), run_for(), run_until(), poll() or - * poll_one() on the same io_context object may introduce the potential for - * deadlock. It is the caller's reponsibility to avoid this. - */ - ASIO_DECL count_type run_one(asio::error_code& ec); -#endif // !defined(ASIO_NO_DEPRECATED) - -#if defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - /// Run the io_context object's event processing loop for a specified duration - /// to execute at most one handler. - /** - * The run_one_for() function blocks until one handler has been dispatched, - * until the io_context has been stopped, or until the specified duration has - * elapsed. - * - * @param rel_time The duration for which the call may block. - * - * @return The number of handlers that were executed. - */ - template - std::size_t run_one_for(const chrono::duration& rel_time); - - /// Run the io_context object's event processing loop until a specified time - /// to execute at most one handler. - /** - * The run_one_until() function blocks until one handler has been dispatched, - * until the io_context has been stopped, or until the specified time has - * been reached. - * - * @param abs_time The time point until which the call may block. - * - * @return The number of handlers that were executed. - */ - template - std::size_t run_one_until( - const chrono::time_point& abs_time); -#endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - - /// Run the io_context object's event processing loop to execute ready - /// handlers. - /** - * The poll() function runs handlers that are ready to run, without blocking, - * until the io_context has been stopped or there are no more ready handlers. - * - * @return The number of handlers that were executed. - */ - ASIO_DECL count_type poll(); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use non-error_code overload.) Run the io_context object's - /// event processing loop to execute ready handlers. - /** - * The poll() function runs handlers that are ready to run, without blocking, - * until the io_context has been stopped or there are no more ready handlers. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of handlers that were executed. - */ - ASIO_DECL count_type poll(asio::error_code& ec); -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Run the io_context object's event processing loop to execute one ready - /// handler. - /** - * The poll_one() function runs at most one handler that is ready to run, - * without blocking. - * - * @return The number of handlers that were executed. - */ - ASIO_DECL count_type poll_one(); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use non-error_code overload.) Run the io_context object's - /// event processing loop to execute one ready handler. - /** - * The poll_one() function runs at most one handler that is ready to run, - * without blocking. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of handlers that were executed. - */ - ASIO_DECL count_type poll_one(asio::error_code& ec); -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Stop the io_context object's event processing loop. - /** - * This function does not block, but instead simply signals the io_context to - * stop. All invocations of its run() or run_one() member functions should - * return as soon as possible. Subsequent calls to run(), run_one(), poll() - * or poll_one() will return immediately until restart() is called. - */ - ASIO_DECL void stop(); - - /// Determine whether the io_context object has been stopped. - /** - * This function is used to determine whether an io_context object has been - * stopped, either through an explicit call to stop(), or due to running out - * of work. When an io_context object is stopped, calls to run(), run_one(), - * poll() or poll_one() will return immediately without invoking any - * handlers. - * - * @return @c true if the io_context object is stopped, otherwise @c false. - */ - ASIO_DECL bool stopped() const; - - /// Restart the io_context in preparation for a subsequent run() invocation. - /** - * This function must be called prior to any second or later set of - * invocations of the run(), run_one(), poll() or poll_one() functions when a - * previous invocation of these functions returned due to the io_context - * being stopped or running out of work. After a call to restart(), the - * io_context object's stopped() function will return @c false. - * - * This function must not be called while there are any unfinished calls to - * the run(), run_one(), poll() or poll_one() functions. - */ - ASIO_DECL void restart(); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use restart().) Reset the io_context in preparation for a - /// subsequent run() invocation. - /** - * This function must be called prior to any second or later set of - * invocations of the run(), run_one(), poll() or poll_one() functions when a - * previous invocation of these functions returned due to the io_context - * being stopped or running out of work. After a call to restart(), the - * io_context object's stopped() function will return @c false. - * - * This function must not be called while there are any unfinished calls to - * the run(), run_one(), poll() or poll_one() functions. - */ - void reset(); - - /// (Deprecated: Use asio::dispatch().) Request the io_context to - /// invoke the given handler. - /** - * This function is used to ask the io_context to execute the given handler. - * - * The io_context guarantees that the handler will only be called in a thread - * in which the run(), run_one(), poll() or poll_one() member functions is - * currently being invoked. The handler may be executed inside this function - * if the guarantee can be met. - * - * @param handler The handler to be called. The io_context will make - * a copy of the handler object as required. The function signature of the - * handler must be: @code void handler(); @endcode - * - * @note This function throws an exception only if: - * - * @li the handler's @c asio_handler_allocate function; or - * - * @li the handler's copy constructor - * - * throws an exception. - */ - template - ASIO_INITFN_RESULT_TYPE(LegacyCompletionHandler, void ()) - dispatch(ASIO_MOVE_ARG(LegacyCompletionHandler) handler); - - /// (Deprecated: Use asio::post().) Request the io_context to invoke - /// the given handler and return immediately. - /** - * This function is used to ask the io_context to execute the given handler, - * but without allowing the io_context to call the handler from inside this - * function. - * - * The io_context guarantees that the handler will only be called in a thread - * in which the run(), run_one(), poll() or poll_one() member functions is - * currently being invoked. - * - * @param handler The handler to be called. The io_context will make - * a copy of the handler object as required. The function signature of the - * handler must be: @code void handler(); @endcode - * - * @note This function throws an exception only if: - * - * @li the handler's @c asio_handler_allocate function; or - * - * @li the handler's copy constructor - * - * throws an exception. - */ - template - ASIO_INITFN_RESULT_TYPE(LegacyCompletionHandler, void ()) - post(ASIO_MOVE_ARG(LegacyCompletionHandler) handler); - - /// (Deprecated: Use asio::bind_executor().) Create a new handler that - /// automatically dispatches the wrapped handler on the io_context. - /** - * This function is used to create a new handler function object that, when - * invoked, will automatically pass the wrapped handler to the io_context - * object's dispatch function. - * - * @param handler The handler to be wrapped. The io_context will make a copy - * of the handler object as required. The function signature of the handler - * must be: @code void handler(A1 a1, ... An an); @endcode - * - * @return A function object that, when invoked, passes the wrapped handler to - * the io_context object's dispatch function. Given a function object with the - * signature: - * @code R f(A1 a1, ... An an); @endcode - * If this function object is passed to the wrap function like so: - * @code io_context.wrap(f); @endcode - * then the return value is a function object with the signature - * @code void g(A1 a1, ... An an); @endcode - * that, when invoked, executes code equivalent to: - * @code io_context.dispatch(boost::bind(f, a1, ... an)); @endcode - */ - template -#if defined(GENERATING_DOCUMENTATION) - unspecified -#else - detail::wrapped_handler -#endif - wrap(Handler handler); -#endif // !defined(ASIO_NO_DEPRECATED) - -private: - // Helper function to add the implementation. - ASIO_DECL impl_type& add_impl(impl_type* impl); - - // Backwards compatible overload for use with services derived from - // io_context::service. - template - friend Service& use_service(io_context& ioc); - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - detail::winsock_init<> init_; -#elif defined(__sun) || defined(__QNX__) || defined(__hpux) || defined(_AIX) \ - || defined(__osf__) - detail::signal_init<> init_; -#endif - - // The implementation. - impl_type& impl_; -}; - -/// Executor used to submit functions to an io_context. -class io_context::executor_type -{ -public: - /// Obtain the underlying execution context. - io_context& context() const ASIO_NOEXCEPT; - - /// Inform the io_context that it has some outstanding work to do. - /** - * This function is used to inform the io_context that some work has begun. - * This ensures that the io_context's run() and run_one() functions do not - * exit while the work is underway. - */ - void on_work_started() const ASIO_NOEXCEPT; - - /// Inform the io_context that some work is no longer outstanding. - /** - * This function is used to inform the io_context that some work has - * finished. Once the count of unfinished work reaches zero, the io_context - * is stopped and the run() and run_one() functions may exit. - */ - void on_work_finished() const ASIO_NOEXCEPT; - - /// Request the io_context to invoke the given function object. - /** - * This function is used to ask the io_context to execute the given function - * object. If the current thread is running the io_context, @c dispatch() - * executes the function before returning. Otherwise, the function will be - * scheduled to run on the io_context. - * - * @param f The function object to be called. The executor will make a copy - * of the handler object as required. The function signature of the function - * object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void dispatch(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the io_context to invoke the given function object. - /** - * This function is used to ask the io_context to execute the given function - * object. The function object will never be executed inside @c post(). - * Instead, it will be scheduled to run on the io_context. - * - * @param f The function object to be called. The executor will make a copy - * of the handler object as required. The function signature of the function - * object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void post(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the io_context to invoke the given function object. - /** - * This function is used to ask the io_context to execute the given function - * object. The function object will never be executed inside @c defer(). - * Instead, it will be scheduled to run on the io_context. - * - * If the current thread belongs to the io_context, @c defer() will delay - * scheduling the function object until the current thread returns control to - * the pool. - * - * @param f The function object to be called. The executor will make a copy - * of the handler object as required. The function signature of the function - * object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void defer(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Determine whether the io_context is running in the current thread. - /** - * @return @c true if the current thread is running the io_context. Otherwise - * returns @c false. - */ - bool running_in_this_thread() const ASIO_NOEXCEPT; - - /// Compare two executors for equality. - /** - * Two executors are equal if they refer to the same underlying io_context. - */ - friend bool operator==(const executor_type& a, - const executor_type& b) ASIO_NOEXCEPT - { - return &a.io_context_ == &b.io_context_; - } - - /// Compare two executors for inequality. - /** - * Two executors are equal if they refer to the same underlying io_context. - */ - friend bool operator!=(const executor_type& a, - const executor_type& b) ASIO_NOEXCEPT - { - return &a.io_context_ != &b.io_context_; - } - -private: - friend class io_context; - - // Constructor. - explicit executor_type(io_context& i) : io_context_(i) {} - - // The underlying io_context. - io_context& io_context_; -}; - -#if !defined(ASIO_NO_DEPRECATED) -/// (Deprecated: Use executor_work_guard.) Class to inform the io_context when -/// it has work to do. -/** - * The work class is used to inform the io_context when work starts and - * finishes. This ensures that the io_context object's run() function will not - * exit while work is underway, and that it does exit when there is no - * unfinished work remaining. - * - * The work class is copy-constructible so that it may be used as a data member - * in a handler class. It is not assignable. - */ -class io_context::work -{ -public: - /// Constructor notifies the io_context that work is starting. - /** - * The constructor is used to inform the io_context that some work has begun. - * This ensures that the io_context object's run() function will not exit - * while the work is underway. - */ - explicit work(asio::io_context& io_context); - - /// Copy constructor notifies the io_context that work is starting. - /** - * The constructor is used to inform the io_context that some work has begun. - * This ensures that the io_context object's run() function will not exit - * while the work is underway. - */ - work(const work& other); - - /// Destructor notifies the io_context that the work is complete. - /** - * The destructor is used to inform the io_context that some work has - * finished. Once the count of unfinished work reaches zero, the io_context - * object's run() function is permitted to exit. - */ - ~work(); - - /// Get the io_context associated with the work. - asio::io_context& get_io_context(); - - /// (Deprecated: Use get_io_context().) Get the io_context associated with the - /// work. - asio::io_context& get_io_service(); - -private: - // Prevent assignment. - void operator=(const work& other); - - // The io_context implementation. - detail::io_context_impl& io_context_impl_; -}; -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Base class for all io_context services. -class io_context::service - : public execution_context::service -{ -public: - /// Get the io_context object that owns the service. - asio::io_context& get_io_context(); - -#if !defined(ASIO_NO_DEPRECATED) - /// Get the io_context object that owns the service. - asio::io_context& get_io_service(); -#endif // !defined(ASIO_NO_DEPRECATED) - -private: - /// Destroy all user-defined handler objects owned by the service. - ASIO_DECL virtual void shutdown(); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use shutdown().) Destroy all user-defined handler objects - /// owned by the service. - ASIO_DECL virtual void shutdown_service(); -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Handle notification of a fork-related event to perform any necessary - /// housekeeping. - /** - * This function is not a pure virtual so that services only have to - * implement it if necessary. The default implementation does nothing. - */ - ASIO_DECL virtual void notify_fork( - execution_context::fork_event event); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use notify_fork().) Handle notification of a fork-related - /// event to perform any necessary housekeeping. - /** - * This function is not a pure virtual so that services only have to - * implement it if necessary. The default implementation does nothing. - */ - ASIO_DECL virtual void fork_service( - execution_context::fork_event event); -#endif // !defined(ASIO_NO_DEPRECATED) - -protected: - /// Constructor. - /** - * @param owner The io_context object that owns the service. - */ - ASIO_DECL service(asio::io_context& owner); - - /// Destructor. - ASIO_DECL virtual ~service(); -}; - -namespace detail { - -// Special service base class to keep classes header-file only. -template -class service_base - : public asio::io_context::service -{ -public: - static asio::detail::service_id id; - - // Constructor. - service_base(asio::io_context& io_context) - : asio::io_context::service(io_context) - { - } -}; - -template -asio::detail::service_id service_base::id; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/io_context.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/io_context.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -// If both io_context.hpp and strand.hpp have been included, automatically -// include the header file needed for the io_context::strand class. -#if !defined(ASIO_NO_EXTENSIONS) -# if defined(ASIO_STRAND_HPP) -# include "asio/io_context_strand.hpp" -# endif // defined(ASIO_STRAND_HPP) -#endif // !defined(ASIO_NO_EXTENSIONS) - -#endif // ASIO_IO_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/io_context_strand.hpp b/Sources/Vendor/asio/include/asio/io_context_strand.hpp deleted file mode 100644 index 3c596f1..0000000 --- a/Sources/Vendor/asio/include/asio/io_context_strand.hpp +++ /dev/null @@ -1,384 +0,0 @@ -// -// io_context_strand.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IO_CONTEXT_STRAND_HPP -#define ASIO_IO_CONTEXT_STRAND_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_NO_EXTENSIONS) - -#include "asio/async_result.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/strand_service.hpp" -#include "asio/detail/wrapped_handler.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides serialised handler execution. -/** - * The io_context::strand class provides the ability to post and dispatch - * handlers with the guarantee that none of those handlers will execute - * concurrently. - * - * @par Order of handler invocation - * Given: - * - * @li a strand object @c s - * - * @li an object @c a meeting completion handler requirements - * - * @li an object @c a1 which is an arbitrary copy of @c a made by the - * implementation - * - * @li an object @c b meeting completion handler requirements - * - * @li an object @c b1 which is an arbitrary copy of @c b made by the - * implementation - * - * if any of the following conditions are true: - * - * @li @c s.post(a) happens-before @c s.post(b) - * - * @li @c s.post(a) happens-before @c s.dispatch(b), where the latter is - * performed outside the strand - * - * @li @c s.dispatch(a) happens-before @c s.post(b), where the former is - * performed outside the strand - * - * @li @c s.dispatch(a) happens-before @c s.dispatch(b), where both are - * performed outside the strand - * - * then @c asio_handler_invoke(a1, &a1) happens-before - * @c asio_handler_invoke(b1, &b1). - * - * Note that in the following case: - * @code async_op_1(..., s.wrap(a)); - * async_op_2(..., s.wrap(b)); @endcode - * the completion of the first async operation will perform @c s.dispatch(a), - * and the second will perform @c 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. - * - * @note The implementation makes no guarantee that handlers posted or - * dispatched through different @c strand objects will be invoked concurrently. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Dispatcher. - */ -class io_context::strand -{ -public: - /// Constructor. - /** - * Constructs the strand. - * - * @param io_context The io_context object that the strand will use to - * dispatch handlers that are ready to be run. - */ - explicit strand(asio::io_context& io_context) - : service_(asio::use_service< - asio::detail::strand_service>(io_context)) - { - service_.construct(impl_); - } - - /// Destructor. - /** - * Destroys a strand. - * - * Handlers posted through the strand that have not yet been invoked will - * still be dispatched in a way that meets the guarantee of non-concurrency. - */ - ~strand() - { - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use context().) Get the io_context associated with the - /// strand. - /** - * This function may be used to obtain the io_context object that the strand - * uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the strand will use to - * dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return service_.get_io_context(); - } - - /// (Deprecated: Use context().) Get the io_context associated with the - /// strand. - /** - * This function may be used to obtain the io_context object that the strand - * uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the strand will use to - * dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return service_.get_io_context(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Obtain the underlying execution context. - asio::io_context& context() const ASIO_NOEXCEPT - { - return service_.get_io_context(); - } - - /// Inform the strand that it has some outstanding work to do. - /** - * The strand delegates this call to its underlying io_context. - */ - void on_work_started() const ASIO_NOEXCEPT - { - context().get_executor().on_work_started(); - } - - /// Inform the strand that some work is no longer outstanding. - /** - * The strand delegates this call to its underlying io_context. - */ - void on_work_finished() const ASIO_NOEXCEPT - { - context().get_executor().on_work_finished(); - } - - /// Request the strand to invoke the given function object. - /** - * This function is used to ask the strand to execute the given function - * object on its underlying io_context. The function object will be executed - * inside this function if the strand is not otherwise busy and if the - * underlying io_context's executor's @c dispatch() function is also able to - * execute the function before returning. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void dispatch(ASIO_MOVE_ARG(Function) f, const Allocator& a) const - { - typename decay::type tmp(ASIO_MOVE_CAST(Function)(f)); - service_.dispatch(impl_, tmp); - (void)a; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use asio::dispatch().) Request the strand to invoke - /// the given handler. - /** - * This function is used to ask the strand to execute the given handler. - * - * The strand object guarantees that handlers posted or dispatched through - * the strand will not be executed concurrently. The handler may be executed - * inside this function if the guarantee can be met. If this function is - * called from within a handler that was posted or dispatched through the same - * strand, then the new handler will be executed immediately. - * - * The strand's guarantee is in addition to the guarantee provided by the - * underlying io_context. The io_context guarantees that the handler will only - * be called in a thread in which the io_context's run member function is - * currently being invoked. - * - * @param handler The handler to be called. The strand will make a copy of the - * handler object as required. The function signature of the handler must be: - * @code void handler(); @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(LegacyCompletionHandler, void ()) - dispatch(ASIO_MOVE_ARG(LegacyCompletionHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a LegacyCompletionHandler. - ASIO_LEGACY_COMPLETION_HANDLER_CHECK( - LegacyCompletionHandler, handler) type_check; - - async_completion init(handler); - - service_.dispatch(impl_, init.completion_handler); - - return init.result.get(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Request the strand to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object will never be executed inside this function. - * Instead, it will be scheduled to run by the underlying io_context. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void post(ASIO_MOVE_ARG(Function) f, const Allocator& a) const - { - typename decay::type tmp(ASIO_MOVE_CAST(Function)(f)); - service_.post(impl_, tmp); - (void)a; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use asio::post().) Request the strand to invoke the - /// given handler and return immediately. - /** - * This function is used to ask the strand to execute the given handler, but - * without allowing the strand to call the handler from inside this function. - * - * The strand object guarantees that handlers posted or dispatched through - * the strand will not be executed concurrently. The strand's guarantee is in - * addition to the guarantee provided by the underlying io_context. The - * io_context guarantees that the handler will only be called in a thread in - * which the io_context's run member function is currently being invoked. - * - * @param handler The handler to be called. The strand will make a copy of the - * handler object as required. The function signature of the handler must be: - * @code void handler(); @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(LegacyCompletionHandler, void ()) - post(ASIO_MOVE_ARG(LegacyCompletionHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a LegacyCompletionHandler. - ASIO_LEGACY_COMPLETION_HANDLER_CHECK( - LegacyCompletionHandler, handler) type_check; - - async_completion init(handler); - - service_.post(impl_, init.completion_handler); - - return init.result.get(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Request the strand to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object will never be executed inside this function. - * Instead, it will be scheduled to run by the underlying io_context. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void defer(ASIO_MOVE_ARG(Function) f, const Allocator& a) const - { - typename decay::type tmp(ASIO_MOVE_CAST(Function)(f)); - service_.post(impl_, tmp); - (void)a; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use asio::bind_executor().) Create a new handler that - /// automatically dispatches the wrapped handler on the strand. - /** - * This function is used to create a new handler function object that, when - * invoked, will automatically pass the wrapped handler to the strand's - * dispatch function. - * - * @param handler The handler to be wrapped. The strand will make a copy of - * the handler object as required. The function signature of the handler must - * be: @code void handler(A1 a1, ... An an); @endcode - * - * @return A function object that, when invoked, passes the wrapped handler to - * the strand's dispatch function. Given a function object with the signature: - * @code R f(A1 a1, ... An an); @endcode - * If this function object is passed to the wrap function like so: - * @code strand.wrap(f); @endcode - * then the return value is a function object with the signature - * @code void g(A1 a1, ... An an); @endcode - * that, when invoked, executes code equivalent to: - * @code strand.dispatch(boost::bind(f, a1, ... an)); @endcode - */ - template -#if defined(GENERATING_DOCUMENTATION) - unspecified -#else - detail::wrapped_handler -#endif - wrap(Handler handler) - { - return detail::wrapped_handler(*this, handler); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Determine whether the strand is running in the current thread. - /** - * @return @c true if the current thread is executing a handler that was - * submitted to the strand using post(), dispatch() or wrap(). Otherwise - * returns @c false. - */ - bool running_in_this_thread() const ASIO_NOEXCEPT - { - return service_.running_in_this_thread(impl_); - } - - /// Compare two strands for equality. - /** - * Two strands are equal if they refer to the same ordered, non-concurrent - * state. - */ - friend bool operator==(const strand& a, const strand& b) ASIO_NOEXCEPT - { - return a.impl_ == b.impl_; - } - - /// Compare two strands for inequality. - /** - * Two strands are equal if they refer to the same ordered, non-concurrent - * state. - */ - friend bool operator!=(const strand& a, const strand& b) ASIO_NOEXCEPT - { - return a.impl_ != b.impl_; - } - -private: - asio::detail::strand_service& service_; - mutable asio::detail::strand_service::implementation_type impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_EXTENSIONS) - -#endif // ASIO_IO_CONTEXT_STRAND_HPP diff --git a/Sources/Vendor/asio/include/asio/io_service.hpp b/Sources/Vendor/asio/include/asio/io_service.hpp deleted file mode 100644 index ed05c83..0000000 --- a/Sources/Vendor/asio/include/asio/io_service.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// io_service.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IO_SERVICE_HPP -#define ASIO_IO_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if !defined(ASIO_NO_DEPRECATED) -/// Typedef for backwards compatibility. -typedef io_context io_service; -#endif // !defined(ASIO_NO_DEPRECATED) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IO_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/io_service_strand.hpp b/Sources/Vendor/asio/include/asio/io_service_strand.hpp deleted file mode 100644 index 7093f0e..0000000 --- a/Sources/Vendor/asio/include/asio/io_service_strand.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// -// io_service_strand.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IO_SERVICE_STRAND_HPP -#define ASIO_IO_SERVICE_STRAND_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/io_context_strand.hpp" - -#endif // ASIO_IO_SERVICE_STRAND_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/address.hpp b/Sources/Vendor/asio/include/asio/ip/address.hpp deleted file mode 100644 index cf852a6..0000000 --- a/Sources/Vendor/asio/include/asio/ip/address.hpp +++ /dev/null @@ -1,260 +0,0 @@ -// -// ip/address.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_ADDRESS_HPP -#define ASIO_IP_ADDRESS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/throw_exception.hpp" -#include "asio/detail/string_view.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error_code.hpp" -#include "asio/ip/address_v4.hpp" -#include "asio/ip/address_v6.hpp" -#include "asio/ip/bad_address_cast.hpp" - -#if !defined(ASIO_NO_IOSTREAM) -# include -#endif // !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Implements version-independent IP addresses. -/** - * The asio::ip::address class provides the ability to use either IP - * version 4 or version 6 addresses. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class address -{ -public: - /// Default constructor. - ASIO_DECL address(); - - /// Construct an address from an IPv4 address. - ASIO_DECL address(const asio::ip::address_v4& ipv4_address); - - /// Construct an address from an IPv6 address. - ASIO_DECL address(const asio::ip::address_v6& ipv6_address); - - /// Copy constructor. - ASIO_DECL address(const address& other); - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - ASIO_DECL address(address&& other); -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from another address. - ASIO_DECL address& operator=(const address& other); - -#if defined(ASIO_HAS_MOVE) - /// Move-assign from another address. - ASIO_DECL address& operator=(address&& other); -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from an IPv4 address. - ASIO_DECL address& operator=( - const asio::ip::address_v4& ipv4_address); - - /// Assign from an IPv6 address. - ASIO_DECL address& operator=( - const asio::ip::address_v6& ipv6_address); - - /// Get whether the address is an IP version 4 address. - bool is_v4() const - { - return type_ == ipv4; - } - - /// Get whether the address is an IP version 6 address. - bool is_v6() const - { - return type_ == ipv6; - } - - /// Get the address as an IP version 4 address. - ASIO_DECL asio::ip::address_v4 to_v4() const; - - /// Get the address as an IP version 6 address. - ASIO_DECL asio::ip::address_v6 to_v6() const; - - /// Get the address as a string. - ASIO_DECL std::string to_string() const; - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use other overload.) Get the address as a string. - ASIO_DECL std::string to_string(asio::error_code& ec) const; - - /// (Deprecated: Use make_address().) Create an address from an IPv4 address - /// string in dotted decimal form, or from an IPv6 address in hexadecimal - /// notation. - static address from_string(const char* str); - - /// (Deprecated: Use make_address().) Create an address from an IPv4 address - /// string in dotted decimal form, or from an IPv6 address in hexadecimal - /// notation. - static address from_string(const char* str, asio::error_code& ec); - - /// (Deprecated: Use make_address().) Create an address from an IPv4 address - /// string in dotted decimal form, or from an IPv6 address in hexadecimal - /// notation. - static address from_string(const std::string& str); - - /// (Deprecated: Use make_address().) Create an address from an IPv4 address - /// string in dotted decimal form, or from an IPv6 address in hexadecimal - /// notation. - static address from_string( - const std::string& str, asio::error_code& ec); -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Determine whether the address is a loopback address. - ASIO_DECL bool is_loopback() const; - - /// Determine whether the address is unspecified. - ASIO_DECL bool is_unspecified() const; - - /// Determine whether the address is a multicast address. - ASIO_DECL bool is_multicast() const; - - /// Compare two addresses for equality. - ASIO_DECL friend bool operator==(const address& a1, const address& a2); - - /// Compare two addresses for inequality. - friend bool operator!=(const address& a1, const address& a2) - { - return !(a1 == a2); - } - - /// Compare addresses for ordering. - ASIO_DECL friend bool operator<(const address& a1, const address& a2); - - /// Compare addresses for ordering. - friend bool operator>(const address& a1, const address& a2) - { - return a2 < a1; - } - - /// Compare addresses for ordering. - friend bool operator<=(const address& a1, const address& a2) - { - return !(a2 < a1); - } - - /// Compare addresses for ordering. - friend bool operator>=(const address& a1, const address& a2) - { - return !(a1 < a2); - } - -private: - // The type of the address. - enum { ipv4, ipv6 } type_; - - // The underlying IPv4 address. - asio::ip::address_v4 ipv4_address_; - - // The underlying IPv6 address. - asio::ip::address_v6 ipv6_address_; -}; - -/// Create an address from an IPv4 address string in dotted decimal form, -/// or from an IPv6 address in hexadecimal notation. -/** - * @relates address - */ -ASIO_DECL address make_address(const char* str); - -/// Create an address from an IPv4 address string in dotted decimal form, -/// or from an IPv6 address in hexadecimal notation. -/** - * @relates address - */ -ASIO_DECL address make_address( - const char* str, asio::error_code& ec); - -/// Create an address from an IPv4 address string in dotted decimal form, -/// or from an IPv6 address in hexadecimal notation. -/** - * @relates address - */ -ASIO_DECL address make_address(const std::string& str); - -/// Create an address from an IPv4 address string in dotted decimal form, -/// or from an IPv6 address in hexadecimal notation. -/** - * @relates address - */ -ASIO_DECL address make_address( - const std::string& str, asio::error_code& ec); - -#if defined(ASIO_HAS_STRING_VIEW) \ - || defined(GENERATING_DOCUMENTATION) - -/// Create an address from an IPv4 address string in dotted decimal form, -/// or from an IPv6 address in hexadecimal notation. -/** - * @relates address - */ -ASIO_DECL address make_address(string_view str); - -/// Create an address from an IPv4 address string in dotted decimal form, -/// or from an IPv6 address in hexadecimal notation. -/** - * @relates address - */ -ASIO_DECL address make_address( - string_view str, asio::error_code& ec); - -#endif // defined(ASIO_HAS_STRING_VIEW) - // || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_NO_IOSTREAM) - -/// Output an address as a string. -/** - * Used to output a human-readable string for a specified address. - * - * @param os The output stream to which the string will be written. - * - * @param addr The address to be written. - * - * @return The output stream. - * - * @relates asio::ip::address - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address& addr); - -#endif // !defined(ASIO_NO_IOSTREAM) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/ip/impl/address.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/ip/impl/address.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_IP_ADDRESS_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/address_v4.hpp b/Sources/Vendor/asio/include/asio/ip/address_v4.hpp deleted file mode 100644 index 4e1cc9a..0000000 --- a/Sources/Vendor/asio/include/asio/ip/address_v4.hpp +++ /dev/null @@ -1,329 +0,0 @@ -// -// ip/address_v4.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_ADDRESS_V4_HPP -#define ASIO_IP_ADDRESS_V4_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/array.hpp" -#include "asio/detail/cstdint.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/string_view.hpp" -#include "asio/detail/winsock_init.hpp" -#include "asio/error_code.hpp" - -#if !defined(ASIO_NO_IOSTREAM) -# include -#endif // !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Implements IP version 4 style addresses. -/** - * The asio::ip::address_v4 class provides the ability to use and - * manipulate IP version 4 addresses. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class address_v4 -{ -public: - /// The type used to represent an address as an unsigned integer. - typedef uint_least32_t uint_type; - - /// The type used to represent an address as an array of bytes. - /** - * @note This type is defined in terms of the C++0x template @c std::array - * when it is available. Otherwise, it uses @c boost:array. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef array bytes_type; -#else - typedef asio::detail::array bytes_type; -#endif - - /// Default constructor. - address_v4() - { - addr_.s_addr = 0; - } - - /// Construct an address from raw bytes. - ASIO_DECL explicit address_v4(const bytes_type& bytes); - - /// Construct an address from an unsigned integer in host byte order. - ASIO_DECL explicit address_v4(uint_type addr); - - /// Copy constructor. - address_v4(const address_v4& other) - : addr_(other.addr_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - address_v4(address_v4&& other) - : addr_(other.addr_) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from another address. - address_v4& operator=(const address_v4& other) - { - addr_ = other.addr_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move-assign from another address. - address_v4& operator=(address_v4&& other) - { - addr_ = other.addr_; - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// Get the address in bytes, in network byte order. - ASIO_DECL bytes_type to_bytes() const; - - /// Get the address as an unsigned integer in host byte order - ASIO_DECL uint_type to_uint() const; - -#if !defined(ASIO_NO_DEPRECATED) - /// Get the address as an unsigned long in host byte order - ASIO_DECL unsigned long to_ulong() const; -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the address as a string in dotted decimal format. - ASIO_DECL std::string to_string() const; - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use other overload.) Get the address as a string in dotted - /// decimal format. - ASIO_DECL std::string to_string(asio::error_code& ec) const; - - /// (Deprecated: Use make_address_v4().) Create an address from an IP address - /// string in dotted decimal form. - static address_v4 from_string(const char* str); - - /// (Deprecated: Use make_address_v4().) Create an address from an IP address - /// string in dotted decimal form. - static address_v4 from_string( - const char* str, asio::error_code& ec); - - /// (Deprecated: Use make_address_v4().) Create an address from an IP address - /// string in dotted decimal form. - static address_v4 from_string(const std::string& str); - - /// (Deprecated: Use make_address_v4().) Create an address from an IP address - /// string in dotted decimal form. - static address_v4 from_string( - const std::string& str, asio::error_code& ec); -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Determine whether the address is a loopback address. - ASIO_DECL bool is_loopback() const; - - /// Determine whether the address is unspecified. - ASIO_DECL bool is_unspecified() const; - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use network_v4 class.) Determine whether the address is a - /// class A address. - ASIO_DECL bool is_class_a() const; - - /// (Deprecated: Use network_v4 class.) Determine whether the address is a - /// class B address. - ASIO_DECL bool is_class_b() const; - - /// (Deprecated: Use network_v4 class.) Determine whether the address is a - /// class C address. - ASIO_DECL bool is_class_c() const; -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Determine whether the address is a multicast address. - ASIO_DECL bool is_multicast() const; - - /// Compare two addresses for equality. - friend bool operator==(const address_v4& a1, const address_v4& a2) - { - return a1.addr_.s_addr == a2.addr_.s_addr; - } - - /// Compare two addresses for inequality. - friend bool operator!=(const address_v4& a1, const address_v4& a2) - { - return a1.addr_.s_addr != a2.addr_.s_addr; - } - - /// Compare addresses for ordering. - friend bool operator<(const address_v4& a1, const address_v4& a2) - { - return a1.to_uint() < a2.to_uint(); - } - - /// Compare addresses for ordering. - friend bool operator>(const address_v4& a1, const address_v4& a2) - { - return a1.to_uint() > a2.to_uint(); - } - - /// Compare addresses for ordering. - friend bool operator<=(const address_v4& a1, const address_v4& a2) - { - return a1.to_uint() <= a2.to_uint(); - } - - /// Compare addresses for ordering. - friend bool operator>=(const address_v4& a1, const address_v4& a2) - { - return a1.to_uint() >= a2.to_uint(); - } - - /// Obtain an address object that represents any address. - static address_v4 any() - { - return address_v4(); - } - - /// Obtain an address object that represents the loopback address. - static address_v4 loopback() - { - return address_v4(0x7F000001); - } - - /// Obtain an address object that represents the broadcast address. - static address_v4 broadcast() - { - return address_v4(0xFFFFFFFF); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use network_v4 class.) Obtain an address object that - /// represents the broadcast address that corresponds to the specified - /// address and netmask. - ASIO_DECL static address_v4 broadcast( - const address_v4& addr, const address_v4& mask); - - /// (Deprecated: Use network_v4 class.) Obtain the netmask that corresponds - /// to the address, based on its address class. - ASIO_DECL static address_v4 netmask(const address_v4& addr); -#endif // !defined(ASIO_NO_DEPRECATED) - -private: - // The underlying IPv4 address. - asio::detail::in4_addr_type addr_; -}; - -/// Create an IPv4 address from raw bytes in network order. -/** - * @relates address_v4 - */ -inline address_v4 make_address_v4(const address_v4::bytes_type& bytes) -{ - return address_v4(bytes); -} - -/// Create an IPv4 address from an unsigned integer in host byte order. -/** - * @relates address_v4 - */ -inline address_v4 make_address_v4(address_v4::uint_type addr) -{ - return address_v4(addr); -} - -/// Create an IPv4 address from an IP address string in dotted decimal form. -/** - * @relates address_v4 - */ -ASIO_DECL address_v4 make_address_v4(const char* str); - -/// Create an IPv4 address from an IP address string in dotted decimal form. -/** - * @relates address_v4 - */ -ASIO_DECL address_v4 make_address_v4( - const char* str, asio::error_code& ec); - -/// Create an IPv4 address from an IP address string in dotted decimal form. -/** - * @relates address_v4 - */ -ASIO_DECL address_v4 make_address_v4(const std::string& str); - -/// Create an IPv4 address from an IP address string in dotted decimal form. -/** - * @relates address_v4 - */ -ASIO_DECL address_v4 make_address_v4( - const std::string& str, asio::error_code& ec); - -#if defined(ASIO_HAS_STRING_VIEW) \ - || defined(GENERATING_DOCUMENTATION) - -/// Create an IPv4 address from an IP address string in dotted decimal form. -/** - * @relates address_v4 - */ -ASIO_DECL address_v4 make_address_v4(string_view str); - -/// Create an IPv4 address from an IP address string in dotted decimal form. -/** - * @relates address_v4 - */ -ASIO_DECL address_v4 make_address_v4( - string_view str, asio::error_code& ec); - -#endif // defined(ASIO_HAS_STRING_VIEW) - // || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_NO_IOSTREAM) - -/// Output an address as a string. -/** - * Used to output a human-readable string for a specified address. - * - * @param os The output stream to which the string will be written. - * - * @param addr The address to be written. - * - * @return The output stream. - * - * @relates asio::ip::address_v4 - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address_v4& addr); - -#endif // !defined(ASIO_NO_IOSTREAM) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/ip/impl/address_v4.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/ip/impl/address_v4.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_IP_ADDRESS_V4_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/address_v4_iterator.hpp b/Sources/Vendor/asio/include/asio/ip/address_v4_iterator.hpp deleted file mode 100644 index e2ef393..0000000 --- a/Sources/Vendor/asio/include/asio/ip/address_v4_iterator.hpp +++ /dev/null @@ -1,162 +0,0 @@ -// -// ip/address_v4_iterator.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_ADDRESS_V4_ITERATOR_HPP -#define ASIO_IP_ADDRESS_V4_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ip/address_v4.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template class basic_address_iterator; - -/// An input iterator that can be used for traversing IPv4 addresses. -/** - * In addition to satisfying the input iterator requirements, this iterator - * also supports decrement. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template <> class basic_address_iterator -{ -public: - /// The type of the elements pointed to by the iterator. - typedef address_v4 value_type; - - /// Distance between two iterators. - typedef std::ptrdiff_t difference_type; - - /// The type of a pointer to an element pointed to by the iterator. - typedef const address_v4* pointer; - - /// The type of a reference to an element pointed to by the iterator. - typedef const address_v4& reference; - - /// Denotes that the iterator satisfies the input iterator requirements. - typedef std::input_iterator_tag iterator_category; - - /// Construct an iterator that points to the specified address. - basic_address_iterator(const address_v4& addr) ASIO_NOEXCEPT - : address_(addr) - { - } - - /// Copy constructor. - basic_address_iterator( - const basic_address_iterator& other) ASIO_NOEXCEPT - : address_(other.address_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - basic_address_iterator(basic_address_iterator&& other) ASIO_NOEXCEPT - : address_(ASIO_MOVE_CAST(address_v4)(other.address_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assignment operator. - basic_address_iterator& operator=( - const basic_address_iterator& other) ASIO_NOEXCEPT - { - address_ = other.address_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move assignment operator. - basic_address_iterator& operator=( - basic_address_iterator&& other) ASIO_NOEXCEPT - { - address_ = ASIO_MOVE_CAST(address_v4)(other.address_); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// Dereference the iterator. - const address_v4& operator*() const ASIO_NOEXCEPT - { - return address_; - } - - /// Dereference the iterator. - const address_v4* operator->() const ASIO_NOEXCEPT - { - return &address_; - } - - /// Pre-increment operator. - basic_address_iterator& operator++() ASIO_NOEXCEPT - { - address_ = address_v4((address_.to_uint() + 1) & 0xFFFFFFFF); - return *this; - } - - /// Post-increment operator. - basic_address_iterator operator++(int) ASIO_NOEXCEPT - { - basic_address_iterator tmp(*this); - ++*this; - return tmp; - } - - /// Pre-decrement operator. - basic_address_iterator& operator--() ASIO_NOEXCEPT - { - address_ = address_v4((address_.to_uint() - 1) & 0xFFFFFFFF); - return *this; - } - - /// Post-decrement operator. - basic_address_iterator operator--(int) - { - basic_address_iterator tmp(*this); - --*this; - return tmp; - } - - /// Compare two addresses for equality. - friend bool operator==(const basic_address_iterator& a, - const basic_address_iterator& b) - { - return a.address_ == b.address_; - } - - /// Compare two addresses for inequality. - friend bool operator!=(const basic_address_iterator& a, - const basic_address_iterator& b) - { - return a.address_ != b.address_; - } - -private: - address_v4 address_; -}; - -/// An input iterator that can be used for traversing IPv4 addresses. -typedef basic_address_iterator address_v4_iterator; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_ADDRESS_V4_ITERATOR_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/address_v4_range.hpp b/Sources/Vendor/asio/include/asio/ip/address_v4_range.hpp deleted file mode 100644 index a402842..0000000 --- a/Sources/Vendor/asio/include/asio/ip/address_v4_range.hpp +++ /dev/null @@ -1,134 +0,0 @@ -// -// ip/address_v4_range.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_ADDRESS_V4_RANGE_HPP -#define ASIO_IP_ADDRESS_V4_RANGE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ip/address_v4_iterator.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template class basic_address_range; - -/// Represents a range of IPv4 addresses. -/** - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template <> class basic_address_range -{ -public: - /// The type of an iterator that points into the range. - typedef basic_address_iterator iterator; - - /// Construct an empty range. - basic_address_range() ASIO_NOEXCEPT - : begin_(address_v4()), - end_(address_v4()) - { - } - - /// Construct an range that represents the given range of addresses. - explicit basic_address_range(const iterator& first, - const iterator& last) ASIO_NOEXCEPT - : begin_(first), - end_(last) - { - } - - /// Copy constructor. - basic_address_range(const basic_address_range& other) ASIO_NOEXCEPT - : begin_(other.begin_), - end_(other.end_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - basic_address_range(basic_address_range&& other) ASIO_NOEXCEPT - : begin_(ASIO_MOVE_CAST(iterator)(other.begin_)), - end_(ASIO_MOVE_CAST(iterator)(other.end_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assignment operator. - basic_address_range& operator=( - const basic_address_range& other) ASIO_NOEXCEPT - { - begin_ = other.begin_; - end_ = other.end_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move assignment operator. - basic_address_range& operator=( - basic_address_range&& other) ASIO_NOEXCEPT - { - begin_ = ASIO_MOVE_CAST(iterator)(other.begin_); - end_ = ASIO_MOVE_CAST(iterator)(other.end_); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// Obtain an iterator that points to the start of the range. - iterator begin() const ASIO_NOEXCEPT - { - return begin_; - } - - /// Obtain an iterator that points to the end of the range. - iterator end() const ASIO_NOEXCEPT - { - return end_; - } - - /// Determine whether the range is empty. - bool empty() const ASIO_NOEXCEPT - { - return size() == 0; - } - - /// Return the size of the range. - std::size_t size() const ASIO_NOEXCEPT - { - return end_->to_uint() - begin_->to_uint(); - } - - /// Find an address in the range. - iterator find(const address_v4& addr) const ASIO_NOEXCEPT - { - return addr >= *begin_ && addr < *end_ ? iterator(addr) : end_; - } - -private: - iterator begin_; - iterator end_; -}; - -/// Represents a range of IPv4 addresses. -typedef basic_address_range address_v4_range; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_ADDRESS_V4_RANGE_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/address_v6.hpp b/Sources/Vendor/asio/include/asio/ip/address_v6.hpp deleted file mode 100644 index fece332..0000000 --- a/Sources/Vendor/asio/include/asio/ip/address_v6.hpp +++ /dev/null @@ -1,336 +0,0 @@ -// -// ip/address_v6.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_ADDRESS_V6_HPP -#define ASIO_IP_ADDRESS_V6_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/array.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/string_view.hpp" -#include "asio/detail/winsock_init.hpp" -#include "asio/error_code.hpp" -#include "asio/ip/address_v4.hpp" - -#if !defined(ASIO_NO_IOSTREAM) -# include -#endif // !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template class basic_address_iterator; - -/// Implements IP version 6 style addresses. -/** - * The asio::ip::address_v6 class provides the ability to use and - * manipulate IP version 6 addresses. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class address_v6 -{ -public: - /// The type used to represent an address as an array of bytes. - /** - * @note This type is defined in terms of the C++0x template @c std::array - * when it is available. Otherwise, it uses @c boost:array. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef array bytes_type; -#else - typedef asio::detail::array bytes_type; -#endif - - /// Default constructor. - ASIO_DECL address_v6(); - - /// Construct an address from raw bytes and scope ID. - ASIO_DECL explicit address_v6(const bytes_type& bytes, - unsigned long scope_id = 0); - - /// Copy constructor. - ASIO_DECL address_v6(const address_v6& other); - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - ASIO_DECL address_v6(address_v6&& other); -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from another address. - ASIO_DECL address_v6& operator=(const address_v6& other); - -#if defined(ASIO_HAS_MOVE) - /// Move-assign from another address. - ASIO_DECL address_v6& operator=(address_v6&& other); -#endif // defined(ASIO_HAS_MOVE) - - /// The scope ID of the address. - /** - * Returns the scope ID associated with the IPv6 address. - */ - unsigned long scope_id() const - { - return scope_id_; - } - - /// The scope ID of the address. - /** - * Modifies the scope ID associated with the IPv6 address. - */ - void scope_id(unsigned long id) - { - scope_id_ = id; - } - - /// Get the address in bytes, in network byte order. - ASIO_DECL bytes_type to_bytes() const; - - /// Get the address as a string. - ASIO_DECL std::string to_string() const; - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use other overload.) Get the address as a string. - ASIO_DECL std::string to_string(asio::error_code& ec) const; - - /// (Deprecated: Use make_address_v6().) Create an IPv6 address from an IP - /// address string. - static address_v6 from_string(const char* str); - - /// (Deprecated: Use make_address_v6().) Create an IPv6 address from an IP - /// address string. - static address_v6 from_string( - const char* str, asio::error_code& ec); - - /// (Deprecated: Use make_address_v6().) Create an IPv6 address from an IP - /// address string. - static address_v6 from_string(const std::string& str); - - /// (Deprecated: Use make_address_v6().) Create an IPv6 address from an IP - /// address string. - static address_v6 from_string( - const std::string& str, asio::error_code& ec); - - /// (Deprecated: Use make_address_v4().) Converts an IPv4-mapped or - /// IPv4-compatible address to an IPv4 address. - ASIO_DECL address_v4 to_v4() const; -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Determine whether the address is a loopback address. - ASIO_DECL bool is_loopback() const; - - /// Determine whether the address is unspecified. - ASIO_DECL bool is_unspecified() const; - - /// Determine whether the address is link local. - ASIO_DECL bool is_link_local() const; - - /// Determine whether the address is site local. - ASIO_DECL bool is_site_local() const; - - /// Determine whether the address is a mapped IPv4 address. - ASIO_DECL bool is_v4_mapped() const; - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: No replacement.) Determine whether the address is an - /// IPv4-compatible address. - ASIO_DECL bool is_v4_compatible() const; -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Determine whether the address is a multicast address. - ASIO_DECL bool is_multicast() const; - - /// Determine whether the address is a global multicast address. - ASIO_DECL bool is_multicast_global() const; - - /// Determine whether the address is a link-local multicast address. - ASIO_DECL bool is_multicast_link_local() const; - - /// Determine whether the address is a node-local multicast address. - ASIO_DECL bool is_multicast_node_local() const; - - /// Determine whether the address is a org-local multicast address. - ASIO_DECL bool is_multicast_org_local() const; - - /// Determine whether the address is a site-local multicast address. - ASIO_DECL bool is_multicast_site_local() const; - - /// Compare two addresses for equality. - ASIO_DECL friend bool operator==( - const address_v6& a1, const address_v6& a2); - - /// Compare two addresses for inequality. - friend bool operator!=(const address_v6& a1, const address_v6& a2) - { - return !(a1 == a2); - } - - /// Compare addresses for ordering. - ASIO_DECL friend bool operator<( - const address_v6& a1, const address_v6& a2); - - /// Compare addresses for ordering. - friend bool operator>(const address_v6& a1, const address_v6& a2) - { - return a2 < a1; - } - - /// Compare addresses for ordering. - friend bool operator<=(const address_v6& a1, const address_v6& a2) - { - return !(a2 < a1); - } - - /// Compare addresses for ordering. - friend bool operator>=(const address_v6& a1, const address_v6& a2) - { - return !(a1 < a2); - } - - /// Obtain an address object that represents any address. - static address_v6 any() - { - return address_v6(); - } - - /// Obtain an address object that represents the loopback address. - ASIO_DECL static address_v6 loopback(); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use make_address_v6().) Create an IPv4-mapped IPv6 address. - ASIO_DECL static address_v6 v4_mapped(const address_v4& addr); - - /// (Deprecated: No replacement.) Create an IPv4-compatible IPv6 address. - ASIO_DECL static address_v6 v4_compatible(const address_v4& addr); -#endif // !defined(ASIO_NO_DEPRECATED) - -private: - friend class basic_address_iterator; - - // The underlying IPv6 address. - asio::detail::in6_addr_type addr_; - - // The scope ID associated with the address. - unsigned long scope_id_; -}; - -/// Create an IPv6 address from raw bytes and scope ID. -/** - * @relates address_v6 - */ -inline address_v6 make_address_v6(const address_v6::bytes_type& bytes, - unsigned long scope_id = 0) -{ - return address_v6(bytes, scope_id); -} - -/// Create an IPv6 address from an IP address string. -/** - * @relates address_v6 - */ -ASIO_DECL address_v6 make_address_v6(const char* str); - -/// Create an IPv6 address from an IP address string. -/** - * @relates address_v6 - */ -ASIO_DECL address_v6 make_address_v6( - const char* str, asio::error_code& ec); - -/// Createan IPv6 address from an IP address string. -/** - * @relates address_v6 - */ -ASIO_DECL address_v6 make_address_v6(const std::string& str); - -/// Create an IPv6 address from an IP address string. -/** - * @relates address_v6 - */ -ASIO_DECL address_v6 make_address_v6( - const std::string& str, asio::error_code& ec); - -#if defined(ASIO_HAS_STRING_VIEW) \ - || defined(GENERATING_DOCUMENTATION) - -/// Create an IPv6 address from an IP address string. -/** - * @relates address_v6 - */ -ASIO_DECL address_v6 make_address_v6(string_view str); - -/// Create an IPv6 address from an IP address string. -/** - * @relates address_v6 - */ -ASIO_DECL address_v6 make_address_v6( - string_view str, asio::error_code& ec); - -#endif // defined(ASIO_HAS_STRING_VIEW) - // || defined(GENERATING_DOCUMENTATION) - -/// Tag type used for distinguishing overloads that deal in IPv4-mapped IPv6 -/// addresses. -enum v4_mapped_t { v4_mapped }; - -/// Create an IPv4 address from a IPv4-mapped IPv6 address. -/** - * @relates address_v4 - */ -ASIO_DECL address_v4 make_address_v4( - v4_mapped_t, const address_v6& v6_addr); - -/// Create an IPv4-mapped IPv6 address from an IPv4 address. -/** - * @relates address_v6 - */ -ASIO_DECL address_v6 make_address_v6( - v4_mapped_t, const address_v4& v4_addr); - -#if !defined(ASIO_NO_IOSTREAM) - -/// Output an address as a string. -/** - * Used to output a human-readable string for a specified address. - * - * @param os The output stream to which the string will be written. - * - * @param addr The address to be written. - * - * @return The output stream. - * - * @relates asio::ip::address_v6 - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address_v6& addr); - -#endif // !defined(ASIO_NO_IOSTREAM) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/ip/impl/address_v6.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/ip/impl/address_v6.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_IP_ADDRESS_V6_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/address_v6_iterator.hpp b/Sources/Vendor/asio/include/asio/ip/address_v6_iterator.hpp deleted file mode 100644 index 0a1fb3f..0000000 --- a/Sources/Vendor/asio/include/asio/ip/address_v6_iterator.hpp +++ /dev/null @@ -1,183 +0,0 @@ -// -// ip/address_v6_iterator.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Oliver Kowalke (oliver dot kowalke at gmail dot com) -// -// Distributed under the 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 ASIO_IP_ADDRESS_V6_ITERATOR_HPP -#define ASIO_IP_ADDRESS_V6_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ip/address_v6.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template class basic_address_iterator; - -/// An input iterator that can be used for traversing IPv6 addresses. -/** - * In addition to satisfying the input iterator requirements, this iterator - * also supports decrement. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template <> class basic_address_iterator -{ -public: - /// The type of the elements pointed to by the iterator. - typedef address_v6 value_type; - - /// Distance between two iterators. - typedef std::ptrdiff_t difference_type; - - /// The type of a pointer to an element pointed to by the iterator. - typedef const address_v6* pointer; - - /// The type of a reference to an element pointed to by the iterator. - typedef const address_v6& reference; - - /// Denotes that the iterator satisfies the input iterator requirements. - typedef std::input_iterator_tag iterator_category; - - /// Construct an iterator that points to the specified address. - basic_address_iterator(const address_v6& addr) ASIO_NOEXCEPT - : address_(addr) - { - } - - /// Copy constructor. - basic_address_iterator( - const basic_address_iterator& other) ASIO_NOEXCEPT - : address_(other.address_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - basic_address_iterator(basic_address_iterator&& other) ASIO_NOEXCEPT - : address_(ASIO_MOVE_CAST(address_v6)(other.address_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assignment operator. - basic_address_iterator& operator=( - const basic_address_iterator& other) ASIO_NOEXCEPT - { - address_ = other.address_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move assignment operator. - basic_address_iterator& operator=( - basic_address_iterator&& other) ASIO_NOEXCEPT - { - address_ = ASIO_MOVE_CAST(address_v6)(other.address_); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// Dereference the iterator. - const address_v6& operator*() const ASIO_NOEXCEPT - { - return address_; - } - - /// Dereference the iterator. - const address_v6* operator->() const ASIO_NOEXCEPT - { - return &address_; - } - - /// Pre-increment operator. - basic_address_iterator& operator++() ASIO_NOEXCEPT - { - for (int i = 15; i >= 0; --i) - { - if (address_.addr_.s6_addr[i] < 0xFF) - { - ++address_.addr_.s6_addr[i]; - break; - } - - address_.addr_.s6_addr[i] = 0; - } - - return *this; - } - - /// Post-increment operator. - basic_address_iterator operator++(int) ASIO_NOEXCEPT - { - basic_address_iterator tmp(*this); - ++*this; - return tmp; - } - - /// Pre-decrement operator. - basic_address_iterator& operator--() ASIO_NOEXCEPT - { - for (int i = 15; i >= 0; --i) - { - if (address_.addr_.s6_addr[i] > 0) - { - --address_.addr_.s6_addr[i]; - break; - } - - address_.addr_.s6_addr[i] = 0xFF; - } - - return *this; - } - - /// Post-decrement operator. - basic_address_iterator operator--(int) - { - basic_address_iterator tmp(*this); - --*this; - return tmp; - } - - /// Compare two addresses for equality. - friend bool operator==(const basic_address_iterator& a, - const basic_address_iterator& b) - { - return a.address_ == b.address_; - } - - /// Compare two addresses for inequality. - friend bool operator!=(const basic_address_iterator& a, - const basic_address_iterator& b) - { - return a.address_ != b.address_; - } - -private: - address_v6 address_; -}; - -/// An input iterator that can be used for traversing IPv6 addresses. -typedef basic_address_iterator address_v6_iterator; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_ADDRESS_V6_ITERATOR_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/address_v6_range.hpp b/Sources/Vendor/asio/include/asio/ip/address_v6_range.hpp deleted file mode 100644 index 9d7062e..0000000 --- a/Sources/Vendor/asio/include/asio/ip/address_v6_range.hpp +++ /dev/null @@ -1,129 +0,0 @@ -// -// ip/address_v6_range.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Oliver Kowalke (oliver dot kowalke at gmail dot com) -// -// Distributed under the 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 ASIO_IP_ADDRESS_V6_RANGE_HPP -#define ASIO_IP_ADDRESS_V6_RANGE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ip/address_v6_iterator.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template class basic_address_range; - -/// Represents a range of IPv6 addresses. -/** - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template <> class basic_address_range -{ -public: - /// The type of an iterator that points into the range. - typedef basic_address_iterator iterator; - - /// Construct an empty range. - basic_address_range() ASIO_NOEXCEPT - : begin_(address_v6()), - end_(address_v6()) - { - } - - /// Construct an range that represents the given range of addresses. - explicit basic_address_range(const iterator& first, - const iterator& last) ASIO_NOEXCEPT - : begin_(first), - end_(last) - { - } - - /// Copy constructor. - basic_address_range(const basic_address_range& other) ASIO_NOEXCEPT - : begin_(other.begin_), - end_(other.end_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - basic_address_range(basic_address_range&& other) ASIO_NOEXCEPT - : begin_(ASIO_MOVE_CAST(iterator)(other.begin_)), - end_(ASIO_MOVE_CAST(iterator)(other.end_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assignment operator. - basic_address_range& operator=( - const basic_address_range& other) ASIO_NOEXCEPT - { - begin_ = other.begin_; - end_ = other.end_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move assignment operator. - basic_address_range& operator=( - basic_address_range&& other) ASIO_NOEXCEPT - { - begin_ = ASIO_MOVE_CAST(iterator)(other.begin_); - end_ = ASIO_MOVE_CAST(iterator)(other.end_); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// Obtain an iterator that points to the start of the range. - iterator begin() const ASIO_NOEXCEPT - { - return begin_; - } - - /// Obtain an iterator that points to the end of the range. - iterator end() const ASIO_NOEXCEPT - { - return end_; - } - - /// Determine whether the range is empty. - bool empty() const ASIO_NOEXCEPT - { - return begin_ == end_; - } - - /// Find an address in the range. - iterator find(const address_v6& addr) const ASIO_NOEXCEPT - { - return addr >= *begin_ && addr < *end_ ? iterator(addr) : end_; - } - -private: - iterator begin_; - iterator end_; -}; - -/// Represents a range of IPv6 addresses. -typedef basic_address_range address_v6_range; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_ADDRESS_V6_RANGE_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/bad_address_cast.hpp b/Sources/Vendor/asio/include/asio/ip/bad_address_cast.hpp deleted file mode 100644 index 0838d4a..0000000 --- a/Sources/Vendor/asio/include/asio/ip/bad_address_cast.hpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// ip/bad_address_cast.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_BAD_ADDRESS_CAST_HPP -#define ASIO_IP_BAD_ADDRESS_CAST_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Thrown to indicate a failed address conversion. -class bad_address_cast : -#if defined(ASIO_MSVC) && defined(_HAS_EXCEPTIONS) && !_HAS_EXCEPTIONS - public std::exception -#else - public std::bad_cast -#endif -{ -public: - /// Default constructor. - bad_address_cast() {} - - /// Destructor. - virtual ~bad_address_cast() ASIO_NOEXCEPT_OR_NOTHROW {} - - /// Get the message associated with the exception. - virtual const char* what() const ASIO_NOEXCEPT_OR_NOTHROW - { - return "bad address cast"; - } -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_ADDRESS_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/basic_endpoint.hpp b/Sources/Vendor/asio/include/asio/ip/basic_endpoint.hpp deleted file mode 100644 index 4418ee7..0000000 --- a/Sources/Vendor/asio/include/asio/ip/basic_endpoint.hpp +++ /dev/null @@ -1,263 +0,0 @@ -// -// ip/basic_endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_BASIC_ENDPOINT_HPP -#define ASIO_IP_BASIC_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ip/address.hpp" -#include "asio/ip/detail/endpoint.hpp" - -#if !defined(ASIO_NO_IOSTREAM) -# include -#endif // !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Describes an endpoint for a version-independent IP socket. -/** - * The asio::ip::basic_endpoint class template describes an endpoint that - * may be associated with a particular socket. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * Endpoint. - */ -template -class basic_endpoint -{ -public: - /// The protocol type associated with the endpoint. - typedef InternetProtocol protocol_type; - - /// The type of the endpoint structure. This type is dependent on the - /// underlying implementation of the socket layer. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined data_type; -#else - typedef asio::detail::socket_addr_type data_type; -#endif - - /// Default constructor. - basic_endpoint() - : impl_() - { - } - - /// Construct an endpoint using a port number, specified in the host's byte - /// order. The IP address will be the any address (i.e. INADDR_ANY or - /// in6addr_any). This constructor would typically be used for accepting new - /// connections. - /** - * @par Examples - * To initialise an IPv4 TCP endpoint for port 1234, use: - * @code - * asio::ip::tcp::endpoint ep(asio::ip::tcp::v4(), 1234); - * @endcode - * - * To specify an IPv6 UDP endpoint for port 9876, use: - * @code - * asio::ip::udp::endpoint ep(asio::ip::udp::v6(), 9876); - * @endcode - */ - basic_endpoint(const InternetProtocol& internet_protocol, - unsigned short port_num) - : impl_(internet_protocol.family(), port_num) - { - } - - /// Construct an endpoint using a port number and an IP address. This - /// constructor may be used for accepting connections on a specific interface - /// or for making a connection to a remote endpoint. - basic_endpoint(const asio::ip::address& addr, unsigned short port_num) - : impl_(addr, port_num) - { - } - - /// Copy constructor. - basic_endpoint(const basic_endpoint& other) - : impl_(other.impl_) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move constructor. - basic_endpoint(basic_endpoint&& other) - : impl_(other.impl_) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Assign from another endpoint. - basic_endpoint& operator=(const basic_endpoint& other) - { - impl_ = other.impl_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-assign from another endpoint. - basic_endpoint& operator=(basic_endpoint&& other) - { - impl_ = other.impl_; - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// The protocol associated with the endpoint. - protocol_type protocol() const - { - if (impl_.is_v4()) - return InternetProtocol::v4(); - return InternetProtocol::v6(); - } - - /// Get the underlying endpoint in the native type. - data_type* data() - { - return impl_.data(); - } - - /// Get the underlying endpoint in the native type. - const data_type* data() const - { - return impl_.data(); - } - - /// Get the underlying size of the endpoint in the native type. - std::size_t size() const - { - return impl_.size(); - } - - /// Set the underlying size of the endpoint in the native type. - void resize(std::size_t new_size) - { - impl_.resize(new_size); - } - - /// Get the capacity of the endpoint in the native type. - std::size_t capacity() const - { - return impl_.capacity(); - } - - /// Get the port associated with the endpoint. The port number is always in - /// the host's byte order. - unsigned short port() const - { - return impl_.port(); - } - - /// Set the port associated with the endpoint. The port number is always in - /// the host's byte order. - void port(unsigned short port_num) - { - impl_.port(port_num); - } - - /// Get the IP address associated with the endpoint. - asio::ip::address address() const - { - return impl_.address(); - } - - /// Set the IP address associated with the endpoint. - void address(const asio::ip::address& addr) - { - impl_.address(addr); - } - - /// Compare two endpoints for equality. - friend bool operator==(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.impl_ == e2.impl_; - } - - /// Compare two endpoints for inequality. - friend bool operator!=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e1 == e2); - } - - /// Compare endpoints for ordering. - friend bool operator<(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.impl_ < e2.impl_; - } - - /// Compare endpoints for ordering. - friend bool operator>(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e2.impl_ < e1.impl_; - } - - /// Compare endpoints for ordering. - friend bool operator<=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e2 < e1); - } - - /// Compare endpoints for ordering. - friend bool operator>=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e1 < e2); - } - -private: - // The underlying IP endpoint. - asio::ip::detail::endpoint impl_; -}; - -#if !defined(ASIO_NO_IOSTREAM) - -/// Output an endpoint as a string. -/** - * Used to output a human-readable string for a specified endpoint. - * - * @param os The output stream to which the string will be written. - * - * @param endpoint The endpoint to be written. - * - * @return The output stream. - * - * @relates asio::ip::basic_endpoint - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, - const basic_endpoint& endpoint); - -#endif // !defined(ASIO_NO_IOSTREAM) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/ip/impl/basic_endpoint.hpp" - -#endif // ASIO_IP_BASIC_ENDPOINT_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/basic_resolver.hpp b/Sources/Vendor/asio/include/asio/ip/basic_resolver.hpp deleted file mode 100644 index 9f40895..0000000 --- a/Sources/Vendor/asio/include/asio/ip/basic_resolver.hpp +++ /dev/null @@ -1,1020 +0,0 @@ -// -// ip/basic_resolver.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_BASIC_RESOLVER_HPP -#define ASIO_IP_BASIC_RESOLVER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/string_view.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/basic_resolver_results.hpp" -#include "asio/ip/resolver_base.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/ip/resolver_service.hpp" -#else // defined(ASIO_ENABLE_OLD_SERVICES) -# if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/winrt_resolver_service.hpp" -# define ASIO_SVC_T \ - asio::detail::winrt_resolver_service -# else -# include "asio/detail/resolver_service.hpp" -# define ASIO_SVC_T \ - asio::detail::resolver_service -# endif -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Provides endpoint resolution functionality. -/** - * The basic_resolver class template provides the ability to resolve a query - * to a list of endpoints. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template )> -class basic_resolver - : ASIO_SVC_ACCESS basic_io_object, - public resolver_base -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The protocol type. - typedef InternetProtocol protocol_type; - - /// The endpoint type. - typedef typename InternetProtocol::endpoint endpoint_type; - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated.) The query type. - typedef basic_resolver_query query; - - /// (Deprecated.) The iterator type. - typedef basic_resolver_iterator iterator; -#endif // !defined(ASIO_NO_DEPRECATED) - - /// The results type. - typedef basic_resolver_results results_type; - - /// Constructor. - /** - * This constructor creates a basic_resolver. - * - * @param io_context The io_context object that the resolver will use to - * dispatch handlers for any asynchronous operations performed on the - * resolver. - */ - explicit basic_resolver(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_resolver from another. - /** - * This constructor moves a resolver from one object to another. - * - * @param other The other basic_resolver object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_resolver(io_context&) constructor. - */ - basic_resolver(basic_resolver&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign a basic_resolver from another. - /** - * This assignment operator moves a resolver from one object to another. - * Cancels any outstanding asynchronous operations associated with the target - * object. - * - * @param other The other basic_resolver object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_resolver(io_context&) constructor. - */ - basic_resolver& operator=(basic_resolver&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the resolver. - /** - * This function destroys the resolver, cancelling any outstanding - * asynchronous wait operations associated with the resolver as if by calling - * @c cancel. - */ - ~basic_resolver() - { - } - -#if defined(ASIO_ENABLE_OLD_SERVICES) - // These functions are provided by basic_io_object<>. -#else // defined(ASIO_ENABLE_OLD_SERVICES) -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - - /// Cancel any asynchronous operations that are waiting on the resolver. - /** - * This function forces the completion of any pending asynchronous - * operations on the host resolver. The handler for each cancelled operation - * will be invoked with the asio::error::operation_aborted error code. - */ - void cancel() - { - return this->get_service().cancel(this->get_implementation()); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use overload with separate host and service parameters.) - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve a query into a list of endpoint entries. - * - * @param q A query object that determines what endpoints will be returned. - * - * @returns A range object representing the list of endpoint entries. A - * successful call to this function is guaranteed to return a non-empty - * range. - * - * @throws asio::system_error Thrown on failure. - */ - results_type resolve(const query& q) - { - asio::error_code ec; - results_type r = this->get_service().resolve( - this->get_implementation(), q, ec); - asio::detail::throw_error(ec, "resolve"); - return r; - } - - /// (Deprecated: Use overload with separate host and service parameters.) - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve a query into a list of endpoint entries. - * - * @param q A query object that determines what endpoints will be returned. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns A range object representing the list of endpoint entries. An - * empty range is returned if an error occurs. A successful call to this - * function is guaranteed to return a non-empty range. - */ - results_type resolve(const query& q, asio::error_code& ec) - { - return this->get_service().resolve(this->get_implementation(), q, ec); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @returns A range object representing the list of endpoint entries. A - * successful call to this function is guaranteed to return a non-empty - * range. - * - * @throws asio::system_error Thrown on failure. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(ASIO_STRING_VIEW_PARAM host, - ASIO_STRING_VIEW_PARAM service) - { - return resolve(host, service, resolver_base::flags()); - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns A range object representing the list of endpoint entries. An - * empty range is returned if an error occurs. A successful call to this - * function is guaranteed to return a non-empty range. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(ASIO_STRING_VIEW_PARAM host, - ASIO_STRING_VIEW_PARAM service, asio::error_code& ec) - { - return resolve(host, service, resolver_base::flags(), ec); - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @returns A range object representing the list of endpoint entries. A - * successful call to this function is guaranteed to return a non-empty - * range. - * - * @throws asio::system_error Thrown on failure. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(ASIO_STRING_VIEW_PARAM host, - ASIO_STRING_VIEW_PARAM service, resolver_base::flags resolve_flags) - { - asio::error_code ec; - basic_resolver_query q(static_cast(host), - static_cast(service), resolve_flags); - results_type r = this->get_service().resolve( - this->get_implementation(), q, ec); - asio::detail::throw_error(ec, "resolve"); - return r; - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns A range object representing the list of endpoint entries. An - * empty range is returned if an error occurs. A successful call to this - * function is guaranteed to return a non-empty range. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(ASIO_STRING_VIEW_PARAM host, - ASIO_STRING_VIEW_PARAM service, resolver_base::flags resolve_flags, - asio::error_code& ec) - { - basic_resolver_query q(static_cast(host), - static_cast(service), resolve_flags); - return this->get_service().resolve(this->get_implementation(), q, ec); - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @returns A range object representing the list of endpoint entries. A - * successful call to this function is guaranteed to return a non-empty - * range. - * - * @throws asio::system_error Thrown on failure. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(const protocol_type& protocol, - ASIO_STRING_VIEW_PARAM host, ASIO_STRING_VIEW_PARAM service) - { - return resolve(protocol, host, service, resolver_base::flags()); - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns A range object representing the list of endpoint entries. An - * empty range is returned if an error occurs. A successful call to this - * function is guaranteed to return a non-empty range. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(const protocol_type& protocol, - ASIO_STRING_VIEW_PARAM host, ASIO_STRING_VIEW_PARAM service, - asio::error_code& ec) - { - return resolve(protocol, host, service, resolver_base::flags(), ec); - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @returns A range object representing the list of endpoint entries. A - * successful call to this function is guaranteed to return a non-empty - * range. - * - * @throws asio::system_error Thrown on failure. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(const protocol_type& protocol, - ASIO_STRING_VIEW_PARAM host, ASIO_STRING_VIEW_PARAM service, - resolver_base::flags resolve_flags) - { - asio::error_code ec; - basic_resolver_query q( - protocol, static_cast(host), - static_cast(service), resolve_flags); - results_type r = this->get_service().resolve( - this->get_implementation(), q, ec); - asio::detail::throw_error(ec, "resolve"); - return r; - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns A range object representing the list of endpoint entries. An - * empty range is returned if an error occurs. A successful call to this - * function is guaranteed to return a non-empty range. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(const protocol_type& protocol, - ASIO_STRING_VIEW_PARAM host, ASIO_STRING_VIEW_PARAM service, - resolver_base::flags resolve_flags, asio::error_code& ec) - { - basic_resolver_query q( - protocol, static_cast(host), - static_cast(service), resolve_flags); - return this->get_service().resolve(this->get_implementation(), q, ec); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use overload with separate host and service parameters.) - /// Asynchronously perform forward resolution of a query to a list of entries. - /** - * This function is used to asynchronously resolve a query into a list of - * endpoint entries. - * - * @param q A query object that determines what endpoints will be returned. - * - * @param handler The handler to be called when the resolve operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * resolver::results_type results // Resolved endpoints as a range. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * A successful resolve operation is guaranteed to pass a non-empty range to - * the handler. - */ - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(const query& q, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ResolveHandler. - ASIO_RESOLVE_HANDLER_CHECK( - ResolveHandler, handler, results_type) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_resolve(this->get_implementation(), q, - ASIO_MOVE_CAST(ResolveHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - asio::async_completion init(handler); - - this->get_service().async_resolve( - this->get_implementation(), q, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Asynchronously perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param handler The handler to be called when the resolve operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * resolver::results_type results // Resolved endpoints as a range. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * A successful resolve operation is guaranteed to pass a non-empty range to - * the handler. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(ASIO_STRING_VIEW_PARAM host, - ASIO_STRING_VIEW_PARAM service, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - return async_resolve(host, service, resolver_base::flags(), - ASIO_MOVE_CAST(ResolveHandler)(handler)); - } - - /// Asynchronously perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @param handler The handler to be called when the resolve operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * resolver::results_type results // Resolved endpoints as a range. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * A successful resolve operation is guaranteed to pass a non-empty range to - * the handler. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(ASIO_STRING_VIEW_PARAM host, - ASIO_STRING_VIEW_PARAM service, - resolver_base::flags resolve_flags, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ResolveHandler. - ASIO_RESOLVE_HANDLER_CHECK( - ResolveHandler, handler, results_type) type_check; - - basic_resolver_query q(static_cast(host), - static_cast(service), resolve_flags); - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_resolve(this->get_implementation(), q, - ASIO_MOVE_CAST(ResolveHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - asio::async_completion init(handler); - - this->get_service().async_resolve( - this->get_implementation(), q, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Asynchronously perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param handler The handler to be called when the resolve operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * resolver::results_type results // Resolved endpoints as a range. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * A successful resolve operation is guaranteed to pass a non-empty range to - * the handler. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(const protocol_type& protocol, - ASIO_STRING_VIEW_PARAM host, ASIO_STRING_VIEW_PARAM service, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - return async_resolve(protocol, host, service, resolver_base::flags(), - ASIO_MOVE_CAST(ResolveHandler)(handler)); - } - - /// Asynchronously perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @param handler The handler to be called when the resolve operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * resolver::results_type results // Resolved endpoints as a range. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * A successful resolve operation is guaranteed to pass a non-empty range to - * the handler. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(const protocol_type& protocol, - ASIO_STRING_VIEW_PARAM host, ASIO_STRING_VIEW_PARAM service, - resolver_base::flags resolve_flags, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ResolveHandler. - ASIO_RESOLVE_HANDLER_CHECK( - ResolveHandler, handler, results_type) type_check; - - basic_resolver_query q( - protocol, static_cast(host), - static_cast(service), resolve_flags); - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_resolve(this->get_implementation(), q, - ASIO_MOVE_CAST(ResolveHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - asio::async_completion init(handler); - - this->get_service().async_resolve( - this->get_implementation(), q, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Perform reverse resolution of an endpoint to a list of entries. - /** - * This function is used to resolve an endpoint into a list of endpoint - * entries. - * - * @param e An endpoint object that determines what endpoints will be - * returned. - * - * @returns A range object representing the list of endpoint entries. A - * successful call to this function is guaranteed to return a non-empty - * range. - * - * @throws asio::system_error Thrown on failure. - */ - results_type resolve(const endpoint_type& e) - { - asio::error_code ec; - results_type i = this->get_service().resolve( - this->get_implementation(), e, ec); - asio::detail::throw_error(ec, "resolve"); - return i; - } - - /// Perform reverse resolution of an endpoint to a list of entries. - /** - * This function is used to resolve an endpoint into a list of endpoint - * entries. - * - * @param e An endpoint object that determines what endpoints will be - * returned. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns A range object representing the list of endpoint entries. An - * empty range is returned if an error occurs. A successful call to this - * function is guaranteed to return a non-empty range. - */ - results_type resolve(const endpoint_type& e, asio::error_code& ec) - { - return this->get_service().resolve(this->get_implementation(), e, ec); - } - - /// Asynchronously perform reverse resolution of an endpoint to a list of - /// entries. - /** - * This function is used to asynchronously resolve an endpoint into a list of - * endpoint entries. - * - * @param e An endpoint object that determines what endpoints will be - * returned. - * - * @param handler The handler to be called when the resolve operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * resolver::results_type results // Resolved endpoints as a range. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * A successful resolve operation is guaranteed to pass a non-empty range to - * the handler. - */ - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(const endpoint_type& e, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ResolveHandler. - ASIO_RESOLVE_HANDLER_CHECK( - ResolveHandler, handler, results_type) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_resolve(this->get_implementation(), e, - ASIO_MOVE_CAST(ResolveHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - asio::async_completion init(handler); - - this->get_service().async_resolve( - this->get_implementation(), e, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# undef ASIO_SVC_T -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_IP_BASIC_RESOLVER_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/basic_resolver_entry.hpp b/Sources/Vendor/asio/include/asio/ip/basic_resolver_entry.hpp deleted file mode 100644 index 99bcbd2..0000000 --- a/Sources/Vendor/asio/include/asio/ip/basic_resolver_entry.hpp +++ /dev/null @@ -1,113 +0,0 @@ -// -// ip/basic_resolver_entry.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_BASIC_RESOLVER_ENTRY_HPP -#define ASIO_IP_BASIC_RESOLVER_ENTRY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/string_view.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// An entry produced by a resolver. -/** - * The asio::ip::basic_resolver_entry class template describes an entry - * as returned by a resolver. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_resolver_entry -{ -public: - /// The protocol type associated with the endpoint entry. - typedef InternetProtocol protocol_type; - - /// The endpoint type associated with the endpoint entry. - typedef typename InternetProtocol::endpoint endpoint_type; - - /// Default constructor. - basic_resolver_entry() - { - } - - /// Construct with specified endpoint, host name and service name. - basic_resolver_entry(const endpoint_type& ep, - ASIO_STRING_VIEW_PARAM host, ASIO_STRING_VIEW_PARAM service) - : endpoint_(ep), - host_name_(static_cast(host)), - service_name_(static_cast(service)) - { - } - - /// Get the endpoint associated with the entry. - endpoint_type endpoint() const - { - return endpoint_; - } - - /// Convert to the endpoint associated with the entry. - operator endpoint_type() const - { - return endpoint_; - } - - /// Get the host name associated with the entry. - std::string host_name() const - { - return host_name_; - } - - /// Get the host name associated with the entry. - template - std::basic_string, Allocator> host_name( - const Allocator& alloc = Allocator()) const - { - return std::basic_string, Allocator>( - host_name_.c_str(), alloc); - } - - /// Get the service name associated with the entry. - std::string service_name() const - { - return service_name_; - } - - /// Get the service name associated with the entry. - template - std::basic_string, Allocator> service_name( - const Allocator& alloc = Allocator()) const - { - return std::basic_string, Allocator>( - service_name_.c_str(), alloc); - } - -private: - endpoint_type endpoint_; - std::string host_name_; - std::string service_name_; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_BASIC_RESOLVER_ENTRY_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/basic_resolver_iterator.hpp b/Sources/Vendor/asio/include/asio/ip/basic_resolver_iterator.hpp deleted file mode 100644 index ec5412c..0000000 --- a/Sources/Vendor/asio/include/asio/ip/basic_resolver_iterator.hpp +++ /dev/null @@ -1,192 +0,0 @@ -// -// ip/basic_resolver_iterator.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_BASIC_RESOLVER_ITERATOR_HPP -#define ASIO_IP_BASIC_RESOLVER_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include -#include -#include "asio/detail/memory.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/ip/basic_resolver_entry.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/winrt_utils.hpp" -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// An iterator over the entries produced by a resolver. -/** - * The asio::ip::basic_resolver_iterator class template is used to define - * iterators over the results returned by a resolver. - * - * The iterator's value_type, obtained when the iterator is dereferenced, is: - * @code const basic_resolver_entry @endcode - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_resolver_iterator -{ -public: - /// The type used for the distance between two iterators. - typedef std::ptrdiff_t difference_type; - - /// The type of the value pointed to by the iterator. - typedef basic_resolver_entry value_type; - - /// The type of the result of applying operator->() to the iterator. - typedef const basic_resolver_entry* pointer; - - /// The type of the result of applying operator*() to the iterator. - typedef const basic_resolver_entry& reference; - - /// The iterator category. - typedef std::forward_iterator_tag iterator_category; - - /// Default constructor creates an end iterator. - basic_resolver_iterator() - : index_(0) - { - } - - /// Copy constructor. - basic_resolver_iterator(const basic_resolver_iterator& other) - : values_(other.values_), - index_(other.index_) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move constructor. - basic_resolver_iterator(basic_resolver_iterator&& other) - : values_(ASIO_MOVE_CAST(values_ptr_type)(other.values_)), - index_(other.index_) - { - other.index_ = 0; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Assignment operator. - basic_resolver_iterator& operator=(const basic_resolver_iterator& other) - { - values_ = other.values_; - index_ = other.index_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-assignment operator. - basic_resolver_iterator& operator=(basic_resolver_iterator&& other) - { - if (this != &other) - { - values_ = ASIO_MOVE_CAST(values_ptr_type)(other.values_); - index_ = other.index_; - other.index_ = 0; - } - - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Dereference an iterator. - const basic_resolver_entry& operator*() const - { - return dereference(); - } - - /// Dereference an iterator. - const basic_resolver_entry* operator->() const - { - return &dereference(); - } - - /// Increment operator (prefix). - basic_resolver_iterator& operator++() - { - increment(); - return *this; - } - - /// Increment operator (postfix). - basic_resolver_iterator operator++(int) - { - basic_resolver_iterator tmp(*this); - ++*this; - return tmp; - } - - /// Test two iterators for equality. - friend bool operator==(const basic_resolver_iterator& a, - const basic_resolver_iterator& b) - { - return a.equal(b); - } - - /// Test two iterators for inequality. - friend bool operator!=(const basic_resolver_iterator& a, - const basic_resolver_iterator& b) - { - return !a.equal(b); - } - -protected: - void increment() - { - if (++index_ == values_->size()) - { - // Reset state to match a default constructed end iterator. - values_.reset(); - index_ = 0; - } - } - - bool equal(const basic_resolver_iterator& other) const - { - if (!values_ && !other.values_) - return true; - if (values_ != other.values_) - return false; - return index_ == other.index_; - } - - const basic_resolver_entry& dereference() const - { - return (*values_)[index_]; - } - - typedef std::vector > values_type; - typedef asio::detail::shared_ptr values_ptr_type; - values_ptr_type values_; - std::size_t index_; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_BASIC_RESOLVER_ITERATOR_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/basic_resolver_query.hpp b/Sources/Vendor/asio/include/asio/ip/basic_resolver_query.hpp deleted file mode 100644 index 84cd98d..0000000 --- a/Sources/Vendor/asio/include/asio/ip/basic_resolver_query.hpp +++ /dev/null @@ -1,244 +0,0 @@ -// -// ip/basic_resolver_query.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_BASIC_RESOLVER_QUERY_HPP -#define ASIO_IP_BASIC_RESOLVER_QUERY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/socket_ops.hpp" -#include "asio/ip/resolver_query_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// An query to be passed to a resolver. -/** - * The asio::ip::basic_resolver_query class template describes a query - * that can be passed to a resolver. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_resolver_query - : public resolver_query_base -{ -public: - /// The protocol type associated with the endpoint query. - typedef InternetProtocol protocol_type; - - /// Construct with specified service name for any protocol. - /** - * This constructor is typically used to perform name resolution for local - * service binding. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for local service - * binding. - * - * @note On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - basic_resolver_query(const std::string& service, - resolver_query_base::flags resolve_flags = passive | address_configured) - : hints_(), - host_name_(), - service_name_(service) - { - typename InternetProtocol::endpoint endpoint; - hints_.ai_flags = static_cast(resolve_flags); - hints_.ai_family = PF_UNSPEC; - hints_.ai_socktype = endpoint.protocol().type(); - hints_.ai_protocol = endpoint.protocol().protocol(); - hints_.ai_addrlen = 0; - hints_.ai_canonname = 0; - hints_.ai_addr = 0; - hints_.ai_next = 0; - } - - /// Construct with specified service name for a given protocol. - /** - * This constructor is typically used to perform name resolution for local - * service binding with a specific protocol version. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for local service - * binding. - * - * @note On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - basic_resolver_query(const protocol_type& protocol, - const std::string& service, - resolver_query_base::flags resolve_flags = passive | address_configured) - : hints_(), - host_name_(), - service_name_(service) - { - hints_.ai_flags = static_cast(resolve_flags); - hints_.ai_family = protocol.family(); - hints_.ai_socktype = protocol.type(); - hints_.ai_protocol = protocol.protocol(); - hints_.ai_addrlen = 0; - hints_.ai_canonname = 0; - hints_.ai_addr = 0; - hints_.ai_next = 0; - } - - /// Construct with specified host name and service name for any protocol. - /** - * This constructor is typically used to perform name resolution for - * communication with remote hosts. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - basic_resolver_query(const std::string& host, const std::string& service, - resolver_query_base::flags resolve_flags = address_configured) - : hints_(), - host_name_(host), - service_name_(service) - { - typename InternetProtocol::endpoint endpoint; - hints_.ai_flags = static_cast(resolve_flags); - hints_.ai_family = ASIO_OS_DEF(AF_UNSPEC); - hints_.ai_socktype = endpoint.protocol().type(); - hints_.ai_protocol = endpoint.protocol().protocol(); - hints_.ai_addrlen = 0; - hints_.ai_canonname = 0; - hints_.ai_addr = 0; - hints_.ai_next = 0; - } - - /// Construct with specified host name and service name for a given protocol. - /** - * This constructor is typically used to perform name resolution for - * communication with remote hosts. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - basic_resolver_query(const protocol_type& protocol, - const std::string& host, const std::string& service, - resolver_query_base::flags resolve_flags = address_configured) - : hints_(), - host_name_(host), - service_name_(service) - { - hints_.ai_flags = static_cast(resolve_flags); - hints_.ai_family = protocol.family(); - hints_.ai_socktype = protocol.type(); - hints_.ai_protocol = protocol.protocol(); - hints_.ai_addrlen = 0; - hints_.ai_canonname = 0; - hints_.ai_addr = 0; - hints_.ai_next = 0; - } - - /// Get the hints associated with the query. - const asio::detail::addrinfo_type& hints() const - { - return hints_; - } - - /// Get the host name associated with the query. - std::string host_name() const - { - return host_name_; - } - - /// Get the service name associated with the query. - std::string service_name() const - { - return service_name_; - } - -private: - asio::detail::addrinfo_type hints_; - std::string host_name_; - std::string service_name_; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_BASIC_RESOLVER_QUERY_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/basic_resolver_results.hpp b/Sources/Vendor/asio/include/asio/ip/basic_resolver_results.hpp deleted file mode 100644 index b87e336..0000000 --- a/Sources/Vendor/asio/include/asio/ip/basic_resolver_results.hpp +++ /dev/null @@ -1,311 +0,0 @@ -// -// ip/basic_resolver_results.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_BASIC_RESOLVER_RESULTS_HPP -#define ASIO_IP_BASIC_RESOLVER_RESULTS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/winrt_utils.hpp" -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// A range of entries produced by a resolver. -/** - * The asio::ip::basic_resolver_results class template is used to define - * a range over the results returned by a resolver. - * - * The iterator's value_type, obtained when a results iterator is dereferenced, - * is: @code const basic_resolver_entry @endcode - * - * @note For backward compatibility, basic_resolver_results is derived from - * basic_resolver_iterator. This derivation is deprecated. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_resolver_results -#if !defined(ASIO_NO_DEPRECATED) - : public basic_resolver_iterator -#else // !defined(ASIO_NO_DEPRECATED) - : private basic_resolver_iterator -#endif // !defined(ASIO_NO_DEPRECATED) -{ -public: - /// The protocol type associated with the results. - typedef InternetProtocol protocol_type; - - /// The endpoint type associated with the results. - typedef typename protocol_type::endpoint endpoint_type; - - /// The type of a value in the results range. - typedef basic_resolver_entry value_type; - - /// The type of a const reference to a value in the range. - typedef const value_type& const_reference; - - /// The type of a non-const reference to a value in the range. - typedef value_type& reference; - - /// The type of an iterator into the range. - typedef basic_resolver_iterator const_iterator; - - /// The type of an iterator into the range. - typedef const_iterator iterator; - - /// Type used to represent the distance between two iterators in the range. - typedef std::ptrdiff_t difference_type; - - /// Type used to represent a count of the elements in the range. - typedef std::size_t size_type; - - /// Default constructor creates an empty range. - basic_resolver_results() - { - } - - /// Copy constructor. - basic_resolver_results(const basic_resolver_results& other) - : basic_resolver_iterator(other) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move constructor. - basic_resolver_results(basic_resolver_results&& other) - : basic_resolver_iterator( - ASIO_MOVE_CAST(basic_resolver_results)(other)) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Assignment operator. - basic_resolver_results& operator=(const basic_resolver_results& other) - { - basic_resolver_iterator::operator=(other); - return *this; - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-assignment operator. - basic_resolver_results& operator=(basic_resolver_results&& other) - { - basic_resolver_iterator::operator=( - ASIO_MOVE_CAST(basic_resolver_results)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - -#if !defined(GENERATING_DOCUMENTATION) - // Create results from an addrinfo list returned by getaddrinfo. - static basic_resolver_results create( - asio::detail::addrinfo_type* address_info, - const std::string& host_name, const std::string& service_name) - { - basic_resolver_results results; - if (!address_info) - return results; - - std::string actual_host_name = host_name; - if (address_info->ai_canonname) - actual_host_name = address_info->ai_canonname; - - results.values_.reset(new values_type); - - while (address_info) - { - if (address_info->ai_family == ASIO_OS_DEF(AF_INET) - || address_info->ai_family == ASIO_OS_DEF(AF_INET6)) - { - using namespace std; // For memcpy. - typename InternetProtocol::endpoint endpoint; - endpoint.resize(static_cast(address_info->ai_addrlen)); - memcpy(endpoint.data(), address_info->ai_addr, - address_info->ai_addrlen); - results.values_->push_back( - basic_resolver_entry(endpoint, - actual_host_name, service_name)); - } - address_info = address_info->ai_next; - } - - return results; - } - - // Create results from an endpoint, host name and service name. - static basic_resolver_results create(const endpoint_type& endpoint, - const std::string& host_name, const std::string& service_name) - { - basic_resolver_results results; - results.values_.reset(new values_type); - results.values_->push_back( - basic_resolver_entry( - endpoint, host_name, service_name)); - return results; - } - - // Create results from a sequence of endpoints, host and service name. - template - static basic_resolver_results create( - EndpointIterator begin, EndpointIterator end, - const std::string& host_name, const std::string& service_name) - { - basic_resolver_results results; - if (begin != end) - { - results.values_.reset(new values_type); - for (EndpointIterator ep_iter = begin; ep_iter != end; ++ep_iter) - { - results.values_->push_back( - basic_resolver_entry( - *ep_iter, host_name, service_name)); - } - } - return results; - } - -# if defined(ASIO_WINDOWS_RUNTIME) - // Create results from a Windows Runtime list of EndpointPair objects. - static basic_resolver_results create( - Windows::Foundation::Collections::IVectorView< - Windows::Networking::EndpointPair^>^ endpoints, - const asio::detail::addrinfo_type& hints, - const std::string& host_name, const std::string& service_name) - { - basic_resolver_results results; - if (endpoints->Size) - { - results.values_.reset(new values_type); - for (unsigned int i = 0; i < endpoints->Size; ++i) - { - auto pair = endpoints->GetAt(i); - - if (hints.ai_family == ASIO_OS_DEF(AF_INET) - && pair->RemoteHostName->Type - != Windows::Networking::HostNameType::Ipv4) - continue; - - if (hints.ai_family == ASIO_OS_DEF(AF_INET6) - && pair->RemoteHostName->Type - != Windows::Networking::HostNameType::Ipv6) - continue; - - results.values_->push_back( - basic_resolver_entry( - typename InternetProtocol::endpoint( - ip::make_address( - asio::detail::winrt_utils::string( - pair->RemoteHostName->CanonicalName)), - asio::detail::winrt_utils::integer( - pair->RemoteServiceName)), - host_name, service_name)); - } - } - return results; - } -# endif // defined(ASIO_WINDOWS_RUNTIME) -#endif // !defined(GENERATING_DOCUMENTATION) - - /// Get the number of entries in the results range. - size_type size() const ASIO_NOEXCEPT - { - return this->values_ ? this->values_->size() : 0; - } - - /// Get the maximum number of entries permitted in a results range. - size_type max_size() const ASIO_NOEXCEPT - { - return this->values_ ? this->values_->max_size() : values_type().max_size(); - } - - /// Determine whether the results range is empty. - bool empty() const ASIO_NOEXCEPT - { - return this->values_ ? this->values_->empty() : true; - } - - /// Obtain a begin iterator for the results range. - const_iterator begin() const - { - basic_resolver_results tmp(*this); - tmp.index_ = 0; - return ASIO_MOVE_CAST(basic_resolver_results)(tmp); - } - - /// Obtain an end iterator for the results range. - const_iterator end() const - { - return const_iterator(); - } - - /// Obtain a begin iterator for the results range. - const_iterator cbegin() const - { - return begin(); - } - - /// Obtain an end iterator for the results range. - const_iterator cend() const - { - return end(); - } - - /// Swap the results range with another. - void swap(basic_resolver_results& that) ASIO_NOEXCEPT - { - if (this != &that) - { - this->values_.swap(that.values_); - std::size_t index = this->index_; - this->index_ = that.index_; - that.index_ = index; - } - } - - /// Test two iterators for equality. - friend bool operator==(const basic_resolver_results& a, - const basic_resolver_results& b) - { - return a.equal(b); - } - - /// Test two iterators for inequality. - friend bool operator!=(const basic_resolver_results& a, - const basic_resolver_results& b) - { - return !a.equal(b); - } - -private: - typedef std::vector > values_type; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_BASIC_RESOLVER_RESULTS_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/detail/endpoint.hpp b/Sources/Vendor/asio/include/asio/ip/detail/endpoint.hpp deleted file mode 100644 index 9acefe5..0000000 --- a/Sources/Vendor/asio/include/asio/ip/detail/endpoint.hpp +++ /dev/null @@ -1,139 +0,0 @@ -// -// ip/detail/endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_DETAIL_ENDPOINT_HPP -#define ASIO_IP_DETAIL_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/socket_types.hpp" -#include "asio/detail/winsock_init.hpp" -#include "asio/error_code.hpp" -#include "asio/ip/address.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { -namespace detail { - -// Helper class for implementating an IP endpoint. -class endpoint -{ -public: - // Default constructor. - ASIO_DECL endpoint(); - - // Construct an endpoint using a family and port number. - ASIO_DECL endpoint(int family, unsigned short port_num); - - // Construct an endpoint using an address and port number. - ASIO_DECL endpoint(const asio::ip::address& addr, - unsigned short port_num); - - // Copy constructor. - endpoint(const endpoint& other) - : data_(other.data_) - { - } - - // Assign from another endpoint. - endpoint& operator=(const endpoint& other) - { - data_ = other.data_; - return *this; - } - - // Get the underlying endpoint in the native type. - asio::detail::socket_addr_type* data() - { - return &data_.base; - } - - // Get the underlying endpoint in the native type. - const asio::detail::socket_addr_type* data() const - { - return &data_.base; - } - - // Get the underlying size of the endpoint in the native type. - std::size_t size() const - { - if (is_v4()) - return sizeof(asio::detail::sockaddr_in4_type); - else - return sizeof(asio::detail::sockaddr_in6_type); - } - - // Set the underlying size of the endpoint in the native type. - ASIO_DECL void resize(std::size_t new_size); - - // Get the capacity of the endpoint in the native type. - std::size_t capacity() const - { - return sizeof(data_); - } - - // Get the port associated with the endpoint. - ASIO_DECL unsigned short port() const; - - // Set the port associated with the endpoint. - ASIO_DECL void port(unsigned short port_num); - - // Get the IP address associated with the endpoint. - ASIO_DECL asio::ip::address address() const; - - // Set the IP address associated with the endpoint. - ASIO_DECL void address(const asio::ip::address& addr); - - // Compare two endpoints for equality. - ASIO_DECL friend bool operator==( - const endpoint& e1, const endpoint& e2); - - // Compare endpoints for ordering. - ASIO_DECL friend bool operator<( - const endpoint& e1, const endpoint& e2); - - // Determine whether the endpoint is IPv4. - bool is_v4() const - { - return data_.base.sa_family == ASIO_OS_DEF(AF_INET); - } - -#if !defined(ASIO_NO_IOSTREAM) - // Convert to a string. - ASIO_DECL std::string to_string() const; -#endif // !defined(ASIO_NO_IOSTREAM) - -private: - // The underlying IP socket address. - union data_union - { - asio::detail::socket_addr_type base; - asio::detail::sockaddr_in4_type v4; - asio::detail::sockaddr_in6_type v6; - } data_; -}; - -} // namespace detail -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/ip/detail/impl/endpoint.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_IP_DETAIL_ENDPOINT_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/detail/impl/endpoint.ipp b/Sources/Vendor/asio/include/asio/ip/detail/impl/endpoint.ipp deleted file mode 100644 index 304bdf3..0000000 --- a/Sources/Vendor/asio/include/asio/ip/detail/impl/endpoint.ipp +++ /dev/null @@ -1,199 +0,0 @@ -// -// ip/detail/impl/endpoint.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_DETAIL_IMPL_ENDPOINT_IPP -#define ASIO_IP_DETAIL_IMPL_ENDPOINT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#if !defined(ASIO_NO_IOSTREAM) -# include -#endif // !defined(ASIO_NO_IOSTREAM) -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/ip/detail/endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { -namespace detail { - -endpoint::endpoint() - : data_() -{ - data_.v4.sin_family = ASIO_OS_DEF(AF_INET); - data_.v4.sin_port = 0; - data_.v4.sin_addr.s_addr = ASIO_OS_DEF(INADDR_ANY); -} - -endpoint::endpoint(int family, unsigned short port_num) - : data_() -{ - using namespace std; // For memcpy. - if (family == ASIO_OS_DEF(AF_INET)) - { - data_.v4.sin_family = ASIO_OS_DEF(AF_INET); - data_.v4.sin_port = - asio::detail::socket_ops::host_to_network_short(port_num); - data_.v4.sin_addr.s_addr = ASIO_OS_DEF(INADDR_ANY); - } - else - { - data_.v6.sin6_family = ASIO_OS_DEF(AF_INET6); - data_.v6.sin6_port = - asio::detail::socket_ops::host_to_network_short(port_num); - data_.v6.sin6_flowinfo = 0; - data_.v6.sin6_addr.s6_addr[0] = 0; data_.v6.sin6_addr.s6_addr[1] = 0; - data_.v6.sin6_addr.s6_addr[2] = 0; data_.v6.sin6_addr.s6_addr[3] = 0; - data_.v6.sin6_addr.s6_addr[4] = 0; data_.v6.sin6_addr.s6_addr[5] = 0; - data_.v6.sin6_addr.s6_addr[6] = 0; data_.v6.sin6_addr.s6_addr[7] = 0; - data_.v6.sin6_addr.s6_addr[8] = 0; data_.v6.sin6_addr.s6_addr[9] = 0; - data_.v6.sin6_addr.s6_addr[10] = 0; data_.v6.sin6_addr.s6_addr[11] = 0; - data_.v6.sin6_addr.s6_addr[12] = 0; data_.v6.sin6_addr.s6_addr[13] = 0; - data_.v6.sin6_addr.s6_addr[14] = 0; data_.v6.sin6_addr.s6_addr[15] = 0; - data_.v6.sin6_scope_id = 0; - } -} - -endpoint::endpoint(const asio::ip::address& addr, - unsigned short port_num) - : data_() -{ - using namespace std; // For memcpy. - if (addr.is_v4()) - { - data_.v4.sin_family = ASIO_OS_DEF(AF_INET); - data_.v4.sin_port = - asio::detail::socket_ops::host_to_network_short(port_num); - data_.v4.sin_addr.s_addr = - asio::detail::socket_ops::host_to_network_long( - addr.to_v4().to_uint()); - } - else - { - data_.v6.sin6_family = ASIO_OS_DEF(AF_INET6); - data_.v6.sin6_port = - asio::detail::socket_ops::host_to_network_short(port_num); - data_.v6.sin6_flowinfo = 0; - asio::ip::address_v6 v6_addr = addr.to_v6(); - asio::ip::address_v6::bytes_type bytes = v6_addr.to_bytes(); - memcpy(data_.v6.sin6_addr.s6_addr, bytes.data(), 16); - data_.v6.sin6_scope_id = - static_cast( - v6_addr.scope_id()); - } -} - -void endpoint::resize(std::size_t new_size) -{ - if (new_size > sizeof(asio::detail::sockaddr_storage_type)) - { - asio::error_code ec(asio::error::invalid_argument); - asio::detail::throw_error(ec); - } -} - -unsigned short endpoint::port() const -{ - if (is_v4()) - { - return asio::detail::socket_ops::network_to_host_short( - data_.v4.sin_port); - } - else - { - return asio::detail::socket_ops::network_to_host_short( - data_.v6.sin6_port); - } -} - -void endpoint::port(unsigned short port_num) -{ - if (is_v4()) - { - data_.v4.sin_port - = asio::detail::socket_ops::host_to_network_short(port_num); - } - else - { - data_.v6.sin6_port - = asio::detail::socket_ops::host_to_network_short(port_num); - } -} - -asio::ip::address endpoint::address() const -{ - using namespace std; // For memcpy. - if (is_v4()) - { - return asio::ip::address_v4( - asio::detail::socket_ops::network_to_host_long( - data_.v4.sin_addr.s_addr)); - } - else - { - asio::ip::address_v6::bytes_type bytes; -#if defined(ASIO_HAS_STD_ARRAY) - memcpy(bytes.data(), data_.v6.sin6_addr.s6_addr, 16); -#else // defined(ASIO_HAS_STD_ARRAY) - memcpy(bytes.elems, data_.v6.sin6_addr.s6_addr, 16); -#endif // defined(ASIO_HAS_STD_ARRAY) - return asio::ip::address_v6(bytes, data_.v6.sin6_scope_id); - } -} - -void endpoint::address(const asio::ip::address& addr) -{ - endpoint tmp_endpoint(addr, port()); - data_ = tmp_endpoint.data_; -} - -bool operator==(const endpoint& e1, const endpoint& e2) -{ - return e1.address() == e2.address() && e1.port() == e2.port(); -} - -bool operator<(const endpoint& e1, const endpoint& e2) -{ - if (e1.address() < e2.address()) - return true; - if (e1.address() != e2.address()) - return false; - return e1.port() < e2.port(); -} - -#if !defined(ASIO_NO_IOSTREAM) -std::string endpoint::to_string() const -{ - std::ostringstream tmp_os; - tmp_os.imbue(std::locale::classic()); - if (is_v4()) - tmp_os << address(); - else - tmp_os << '[' << address() << ']'; - tmp_os << ':' << port(); - - return tmp_os.str(); -} -#endif // !defined(ASIO_NO_IOSTREAM) - -} // namespace detail -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_DETAIL_IMPL_ENDPOINT_IPP diff --git a/Sources/Vendor/asio/include/asio/ip/detail/socket_option.hpp b/Sources/Vendor/asio/include/asio/ip/detail/socket_option.hpp deleted file mode 100644 index 051ef30..0000000 --- a/Sources/Vendor/asio/include/asio/ip/detail/socket_option.hpp +++ /dev/null @@ -1,566 +0,0 @@ -// -// detail/socket_option.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_DETAIL_SOCKET_OPTION_HPP -#define ASIO_IP_DETAIL_SOCKET_OPTION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/ip/address.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { -namespace detail { -namespace socket_option { - -// Helper template for implementing multicast enable loopback options. -template -class multicast_enable_loopback -{ -public: -#if defined(__sun) || defined(__osf__) - typedef unsigned char ipv4_value_type; - typedef unsigned char ipv6_value_type; -#elif defined(_AIX) || defined(__hpux) || defined(__QNXNTO__) - typedef unsigned char ipv4_value_type; - typedef unsigned int ipv6_value_type; -#else - typedef int ipv4_value_type; - typedef int ipv6_value_type; -#endif - - // Default constructor. - multicast_enable_loopback() - : ipv4_value_(0), - ipv6_value_(0) - { - } - - // Construct with a specific option value. - explicit multicast_enable_loopback(bool v) - : ipv4_value_(v ? 1 : 0), - ipv6_value_(v ? 1 : 0) - { - } - - // Set the value of the boolean. - multicast_enable_loopback& operator=(bool v) - { - ipv4_value_ = v ? 1 : 0; - ipv6_value_ = v ? 1 : 0; - return *this; - } - - // Get the current value of the boolean. - bool value() const - { - return !!ipv4_value_; - } - - // Convert to bool. - operator bool() const - { - return !!ipv4_value_; - } - - // Test for false. - bool operator!() const - { - return !ipv4_value_; - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the boolean data. - template - void* data(const Protocol& protocol) - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the address of the boolean data. - template - const void* data(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the size of the boolean data. - template - std::size_t size(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return sizeof(ipv6_value_); - return sizeof(ipv4_value_); - } - - // Set the size of the boolean data. - template - void resize(const Protocol& protocol, std::size_t s) - { - if (protocol.family() == PF_INET6) - { - if (s != sizeof(ipv6_value_)) - { - std::length_error ex("multicast_enable_loopback socket option resize"); - asio::detail::throw_exception(ex); - } - ipv4_value_ = ipv6_value_ ? 1 : 0; - } - else - { - if (s != sizeof(ipv4_value_)) - { - std::length_error ex("multicast_enable_loopback socket option resize"); - asio::detail::throw_exception(ex); - } - ipv6_value_ = ipv4_value_ ? 1 : 0; - } - } - -private: - ipv4_value_type ipv4_value_; - ipv6_value_type ipv6_value_; -}; - -// Helper template for implementing unicast hops options. -template -class unicast_hops -{ -public: - // Default constructor. - unicast_hops() - : value_(0) - { - } - - // Construct with a specific option value. - explicit unicast_hops(int v) - : value_(v) - { - } - - // Set the value of the option. - unicast_hops& operator=(int v) - { - value_ = v; - return *this; - } - - // Get the current value of the option. - int value() const - { - return value_; - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the data. - template - int* data(const Protocol&) - { - return &value_; - } - - // Get the address of the data. - template - const int* data(const Protocol&) const - { - return &value_; - } - - // Get the size of the data. - template - std::size_t size(const Protocol&) const - { - return sizeof(value_); - } - - // Set the size of the data. - template - void resize(const Protocol&, std::size_t s) - { - if (s != sizeof(value_)) - { - std::length_error ex("unicast hops socket option resize"); - asio::detail::throw_exception(ex); - } -#if defined(__hpux) - if (value_ < 0) - value_ = value_ & 0xFF; -#endif - } - -private: - int value_; -}; - -// Helper template for implementing multicast hops options. -template -class multicast_hops -{ -public: -#if defined(ASIO_WINDOWS) && defined(UNDER_CE) - typedef int ipv4_value_type; -#else - typedef unsigned char ipv4_value_type; -#endif - typedef int ipv6_value_type; - - // Default constructor. - multicast_hops() - : ipv4_value_(0), - ipv6_value_(0) - { - } - - // Construct with a specific option value. - explicit multicast_hops(int v) - { - if (v < 0 || v > 255) - { - std::out_of_range ex("multicast hops value out of range"); - asio::detail::throw_exception(ex); - } - ipv4_value_ = (ipv4_value_type)v; - ipv6_value_ = v; - } - - // Set the value of the option. - multicast_hops& operator=(int v) - { - if (v < 0 || v > 255) - { - std::out_of_range ex("multicast hops value out of range"); - asio::detail::throw_exception(ex); - } - ipv4_value_ = (ipv4_value_type)v; - ipv6_value_ = v; - return *this; - } - - // Get the current value of the option. - int value() const - { - return ipv6_value_; - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the data. - template - void* data(const Protocol& protocol) - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the address of the data. - template - const void* data(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the size of the data. - template - std::size_t size(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return sizeof(ipv6_value_); - return sizeof(ipv4_value_); - } - - // Set the size of the data. - template - void resize(const Protocol& protocol, std::size_t s) - { - if (protocol.family() == PF_INET6) - { - if (s != sizeof(ipv6_value_)) - { - std::length_error ex("multicast hops socket option resize"); - asio::detail::throw_exception(ex); - } - if (ipv6_value_ < 0) - ipv4_value_ = 0; - else if (ipv6_value_ > 255) - ipv4_value_ = 255; - else - ipv4_value_ = (ipv4_value_type)ipv6_value_; - } - else - { - if (s != sizeof(ipv4_value_)) - { - std::length_error ex("multicast hops socket option resize"); - asio::detail::throw_exception(ex); - } - ipv6_value_ = ipv4_value_; - } - } - -private: - ipv4_value_type ipv4_value_; - ipv6_value_type ipv6_value_; -}; - -// Helper template for implementing ip_mreq-based options. -template -class multicast_request -{ -public: - // Default constructor. - multicast_request() - : ipv4_value_(), // Zero-initialisation gives the "any" address. - ipv6_value_() // Zero-initialisation gives the "any" address. - { - } - - // Construct with multicast address only. - explicit multicast_request(const address& multicast_address) - : ipv4_value_(), // Zero-initialisation gives the "any" address. - ipv6_value_() // Zero-initialisation gives the "any" address. - { - if (multicast_address.is_v6()) - { - using namespace std; // For memcpy. - address_v6 ipv6_address = multicast_address.to_v6(); - address_v6::bytes_type bytes = ipv6_address.to_bytes(); - memcpy(ipv6_value_.ipv6mr_multiaddr.s6_addr, bytes.data(), 16); - ipv6_value_.ipv6mr_interface = ipv6_address.scope_id(); - } - else - { - ipv4_value_.imr_multiaddr.s_addr = - asio::detail::socket_ops::host_to_network_long( - multicast_address.to_v4().to_uint()); - ipv4_value_.imr_interface.s_addr = - asio::detail::socket_ops::host_to_network_long( - address_v4::any().to_uint()); - } - } - - // Construct with multicast address and IPv4 address specifying an interface. - explicit multicast_request(const address_v4& multicast_address, - const address_v4& network_interface = address_v4::any()) - : ipv6_value_() // Zero-initialisation gives the "any" address. - { - ipv4_value_.imr_multiaddr.s_addr = - asio::detail::socket_ops::host_to_network_long( - multicast_address.to_uint()); - ipv4_value_.imr_interface.s_addr = - asio::detail::socket_ops::host_to_network_long( - network_interface.to_uint()); - } - - // Construct with multicast address and IPv6 network interface index. - explicit multicast_request( - const address_v6& multicast_address, - unsigned long network_interface = 0) - : ipv4_value_() // Zero-initialisation gives the "any" address. - { - using namespace std; // For memcpy. - address_v6::bytes_type bytes = multicast_address.to_bytes(); - memcpy(ipv6_value_.ipv6mr_multiaddr.s6_addr, bytes.data(), 16); - if (network_interface) - ipv6_value_.ipv6mr_interface = network_interface; - else - ipv6_value_.ipv6mr_interface = multicast_address.scope_id(); - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the option data. - template - const void* data(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the size of the option data. - template - std::size_t size(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return sizeof(ipv6_value_); - return sizeof(ipv4_value_); - } - -private: - asio::detail::in4_mreq_type ipv4_value_; - asio::detail::in6_mreq_type ipv6_value_; -}; - -// Helper template for implementing options that specify a network interface. -template -class network_interface -{ -public: - // Default constructor. - network_interface() - { - ipv4_value_.s_addr = - asio::detail::socket_ops::host_to_network_long( - address_v4::any().to_uint()); - ipv6_value_ = 0; - } - - // Construct with IPv4 interface. - explicit network_interface(const address_v4& ipv4_interface) - { - ipv4_value_.s_addr = - asio::detail::socket_ops::host_to_network_long( - ipv4_interface.to_uint()); - ipv6_value_ = 0; - } - - // Construct with IPv6 interface. - explicit network_interface(unsigned int ipv6_interface) - { - ipv4_value_.s_addr = - asio::detail::socket_ops::host_to_network_long( - address_v4::any().to_uint()); - ipv6_value_ = ipv6_interface; - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the option data. - template - const void* data(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the size of the option data. - template - std::size_t size(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return sizeof(ipv6_value_); - return sizeof(ipv4_value_); - } - -private: - asio::detail::in4_addr_type ipv4_value_; - unsigned int ipv6_value_; -}; - -} // namespace socket_option -} // namespace detail -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_DETAIL_SOCKET_OPTION_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/host_name.hpp b/Sources/Vendor/asio/include/asio/ip/host_name.hpp deleted file mode 100644 index d06de50..0000000 --- a/Sources/Vendor/asio/include/asio/ip/host_name.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// -// ip/host_name.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_HOST_NAME_HPP -#define ASIO_IP_HOST_NAME_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/error_code.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Get the current host name. -ASIO_DECL std::string host_name(); - -/// Get the current host name. -ASIO_DECL std::string host_name(asio::error_code& ec); - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/ip/impl/host_name.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_IP_HOST_NAME_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/icmp.hpp b/Sources/Vendor/asio/include/asio/ip/icmp.hpp deleted file mode 100644 index 92e1953..0000000 --- a/Sources/Vendor/asio/include/asio/ip/icmp.hpp +++ /dev/null @@ -1,115 +0,0 @@ -// -// ip/icmp.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_ICMP_HPP -#define ASIO_IP_ICMP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/basic_raw_socket.hpp" -#include "asio/ip/basic_endpoint.hpp" -#include "asio/ip/basic_resolver.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver_query.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Encapsulates the flags needed for ICMP. -/** - * The asio::ip::icmp class contains flags necessary for ICMP sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol, InternetProtocol. - */ -class icmp -{ -public: - /// The type of a ICMP endpoint. - typedef basic_endpoint endpoint; - - /// Construct to represent the IPv4 ICMP protocol. - static icmp v4() - { - return icmp(ASIO_OS_DEF(IPPROTO_ICMP), - ASIO_OS_DEF(AF_INET)); - } - - /// Construct to represent the IPv6 ICMP protocol. - static icmp v6() - { - return icmp(ASIO_OS_DEF(IPPROTO_ICMPV6), - ASIO_OS_DEF(AF_INET6)); - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return ASIO_OS_DEF(SOCK_RAW); - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return protocol_; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// The ICMP socket type. - typedef basic_raw_socket socket; - - /// The ICMP resolver type. - typedef basic_resolver resolver; - - /// Compare two protocols for equality. - friend bool operator==(const icmp& p1, const icmp& p2) - { - return p1.protocol_ == p2.protocol_ && p1.family_ == p2.family_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const icmp& p1, const icmp& p2) - { - return p1.protocol_ != p2.protocol_ || p1.family_ != p2.family_; - } - -private: - // Construct with a specific family. - explicit icmp(int protocol_id, int protocol_family) - : protocol_(protocol_id), - family_(protocol_family) - { - } - - int protocol_; - int family_; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_ICMP_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/address.hpp b/Sources/Vendor/asio/include/asio/ip/impl/address.hpp deleted file mode 100644 index 085b93f..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/address.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// ip/impl/address.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_IMPL_ADDRESS_HPP -#define ASIO_IP_IMPL_ADDRESS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -#if !defined(ASIO_NO_DEPRECATED) - -inline address address::from_string(const char* str) -{ - return asio::ip::make_address(str); -} - -inline address address::from_string( - const char* str, asio::error_code& ec) -{ - return asio::ip::make_address(str, ec); -} - -inline address address::from_string(const std::string& str) -{ - return asio::ip::make_address(str); -} - -inline address address::from_string( - const std::string& str, asio::error_code& ec) -{ - return asio::ip::make_address(str, ec); -} - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address& addr) -{ - return os << addr.to_string().c_str(); -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_IP_IMPL_ADDRESS_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/address.ipp b/Sources/Vendor/asio/include/asio/ip/impl/address.ipp deleted file mode 100644 index 0523071..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/address.ipp +++ /dev/null @@ -1,234 +0,0 @@ -// -// ip/impl/address.ipp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_IMPL_ADDRESS_IPP -#define ASIO_IP_IMPL_ADDRESS_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/throw_error.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/error.hpp" -#include "asio/ip/address.hpp" -#include "asio/ip/bad_address_cast.hpp" -#include "asio/system_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -address::address() - : type_(ipv4), - ipv4_address_(), - ipv6_address_() -{ -} - -address::address(const asio::ip::address_v4& ipv4_address) - : type_(ipv4), - ipv4_address_(ipv4_address), - ipv6_address_() -{ -} - -address::address(const asio::ip::address_v6& ipv6_address) - : type_(ipv6), - ipv4_address_(), - ipv6_address_(ipv6_address) -{ -} - -address::address(const address& other) - : type_(other.type_), - ipv4_address_(other.ipv4_address_), - ipv6_address_(other.ipv6_address_) -{ -} - -#if defined(ASIO_HAS_MOVE) -address::address(address&& other) - : type_(other.type_), - ipv4_address_(other.ipv4_address_), - ipv6_address_(other.ipv6_address_) -{ -} -#endif // defined(ASIO_HAS_MOVE) - -address& address::operator=(const address& other) -{ - type_ = other.type_; - ipv4_address_ = other.ipv4_address_; - ipv6_address_ = other.ipv6_address_; - return *this; -} - -#if defined(ASIO_HAS_MOVE) -address& address::operator=(address&& other) -{ - type_ = other.type_; - ipv4_address_ = other.ipv4_address_; - ipv6_address_ = other.ipv6_address_; - return *this; -} -#endif // defined(ASIO_HAS_MOVE) - -address& address::operator=(const asio::ip::address_v4& ipv4_address) -{ - type_ = ipv4; - ipv4_address_ = ipv4_address; - ipv6_address_ = asio::ip::address_v6(); - return *this; -} - -address& address::operator=(const asio::ip::address_v6& ipv6_address) -{ - type_ = ipv6; - ipv4_address_ = asio::ip::address_v4(); - ipv6_address_ = ipv6_address; - return *this; -} - -address make_address(const char* str) -{ - asio::error_code ec; - address addr = make_address(str, ec); - asio::detail::throw_error(ec); - return addr; -} - -address make_address(const char* str, asio::error_code& ec) -{ - asio::ip::address_v6 ipv6_address = - asio::ip::make_address_v6(str, ec); - if (!ec) - return address(ipv6_address); - - asio::ip::address_v4 ipv4_address = - asio::ip::make_address_v4(str, ec); - if (!ec) - return address(ipv4_address); - - return address(); -} - -address make_address(const std::string& str) -{ - return make_address(str.c_str()); -} - -address make_address(const std::string& str, - asio::error_code& ec) -{ - return make_address(str.c_str(), ec); -} - -#if defined(ASIO_HAS_STRING_VIEW) - -address make_address(string_view str) -{ - return make_address(static_cast(str)); -} - -address make_address(string_view str, - asio::error_code& ec) -{ - return make_address(static_cast(str), ec); -} - -#endif // defined(ASIO_HAS_STRING_VIEW) - -asio::ip::address_v4 address::to_v4() const -{ - if (type_ != ipv4) - { - bad_address_cast ex; - asio::detail::throw_exception(ex); - } - return ipv4_address_; -} - -asio::ip::address_v6 address::to_v6() const -{ - if (type_ != ipv6) - { - bad_address_cast ex; - asio::detail::throw_exception(ex); - } - return ipv6_address_; -} - -std::string address::to_string() const -{ - if (type_ == ipv6) - return ipv6_address_.to_string(); - return ipv4_address_.to_string(); -} - -#if !defined(ASIO_NO_DEPRECATED) -std::string address::to_string(asio::error_code& ec) const -{ - if (type_ == ipv6) - return ipv6_address_.to_string(ec); - return ipv4_address_.to_string(ec); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -bool address::is_loopback() const -{ - return (type_ == ipv4) - ? ipv4_address_.is_loopback() - : ipv6_address_.is_loopback(); -} - -bool address::is_unspecified() const -{ - return (type_ == ipv4) - ? ipv4_address_.is_unspecified() - : ipv6_address_.is_unspecified(); -} - -bool address::is_multicast() const -{ - return (type_ == ipv4) - ? ipv4_address_.is_multicast() - : ipv6_address_.is_multicast(); -} - -bool operator==(const address& a1, const address& a2) -{ - if (a1.type_ != a2.type_) - return false; - if (a1.type_ == address::ipv6) - return a1.ipv6_address_ == a2.ipv6_address_; - return a1.ipv4_address_ == a2.ipv4_address_; -} - -bool operator<(const address& a1, const address& a2) -{ - if (a1.type_ < a2.type_) - return true; - if (a1.type_ > a2.type_) - return false; - if (a1.type_ == address::ipv6) - return a1.ipv6_address_ < a2.ipv6_address_; - return a1.ipv4_address_ < a2.ipv4_address_; -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_IMPL_ADDRESS_IPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/address_v4.hpp b/Sources/Vendor/asio/include/asio/ip/impl/address_v4.hpp deleted file mode 100644 index d1cf407..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/address_v4.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// ip/impl/address_v4.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_IMPL_ADDRESS_V4_HPP -#define ASIO_IP_IMPL_ADDRESS_V4_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -#if !defined(ASIO_NO_DEPRECATED) - -inline address_v4 address_v4::from_string(const char* str) -{ - return asio::ip::make_address_v4(str); -} - -inline address_v4 address_v4::from_string( - const char* str, asio::error_code& ec) -{ - return asio::ip::make_address_v4(str, ec); -} - -inline address_v4 address_v4::from_string(const std::string& str) -{ - return asio::ip::make_address_v4(str); -} - -inline address_v4 address_v4::from_string( - const std::string& str, asio::error_code& ec) -{ - return asio::ip::make_address_v4(str, ec); -} - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address_v4& addr) -{ - return os << addr.to_string().c_str(); -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_IP_IMPL_ADDRESS_V4_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/address_v4.ipp b/Sources/Vendor/asio/include/asio/ip/impl/address_v4.ipp deleted file mode 100644 index 9559add..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/address_v4.ipp +++ /dev/null @@ -1,210 +0,0 @@ -// -// ip/impl/address_v4.ipp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_IMPL_ADDRESS_V4_IPP -#define ASIO_IP_IMPL_ADDRESS_V4_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include "asio/error.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/ip/address_v4.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -address_v4::address_v4(const address_v4::bytes_type& bytes) -{ -#if UCHAR_MAX > 0xFF - if (bytes[0] > 0xFF || bytes[1] > 0xFF - || bytes[2] > 0xFF || bytes[3] > 0xFF) - { - std::out_of_range ex("address_v4 from bytes_type"); - asio::detail::throw_exception(ex); - } -#endif // UCHAR_MAX > 0xFF - - using namespace std; // For memcpy. - memcpy(&addr_.s_addr, bytes.data(), 4); -} - -address_v4::address_v4(address_v4::uint_type addr) -{ - if ((std::numeric_limits::max)() > 0xFFFFFFFF) - { - std::out_of_range ex("address_v4 from unsigned integer"); - asio::detail::throw_exception(ex); - } - - addr_.s_addr = asio::detail::socket_ops::host_to_network_long( - static_cast(addr)); -} - -address_v4::bytes_type address_v4::to_bytes() const -{ - using namespace std; // For memcpy. - bytes_type bytes; -#if defined(ASIO_HAS_STD_ARRAY) - memcpy(bytes.data(), &addr_.s_addr, 4); -#else // defined(ASIO_HAS_STD_ARRAY) - memcpy(bytes.elems, &addr_.s_addr, 4); -#endif // defined(ASIO_HAS_STD_ARRAY) - return bytes; -} - -address_v4::uint_type address_v4::to_uint() const -{ - return asio::detail::socket_ops::network_to_host_long(addr_.s_addr); -} - -#if !defined(ASIO_NO_DEPRECATED) -unsigned long address_v4::to_ulong() const -{ - return asio::detail::socket_ops::network_to_host_long(addr_.s_addr); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -std::string address_v4::to_string() const -{ - asio::error_code ec; - char addr_str[asio::detail::max_addr_v4_str_len]; - const char* addr = - asio::detail::socket_ops::inet_ntop( - ASIO_OS_DEF(AF_INET), &addr_, addr_str, - asio::detail::max_addr_v4_str_len, 0, ec); - if (addr == 0) - asio::detail::throw_error(ec); - return addr; -} - -#if !defined(ASIO_NO_DEPRECATED) -std::string address_v4::to_string(asio::error_code& ec) const -{ - char addr_str[asio::detail::max_addr_v4_str_len]; - const char* addr = - asio::detail::socket_ops::inet_ntop( - ASIO_OS_DEF(AF_INET), &addr_, addr_str, - asio::detail::max_addr_v4_str_len, 0, ec); - if (addr == 0) - return std::string(); - return addr; -} -#endif // !defined(ASIO_NO_DEPRECATED) - -bool address_v4::is_loopback() const -{ - return (to_uint() & 0xFF000000) == 0x7F000000; -} - -bool address_v4::is_unspecified() const -{ - return to_uint() == 0; -} - -#if !defined(ASIO_NO_DEPRECATED) -bool address_v4::is_class_a() const -{ - return (to_uint() & 0x80000000) == 0; -} - -bool address_v4::is_class_b() const -{ - return (to_uint() & 0xC0000000) == 0x80000000; -} - -bool address_v4::is_class_c() const -{ - return (to_uint() & 0xE0000000) == 0xC0000000; -} -#endif // !defined(ASIO_NO_DEPRECATED) - -bool address_v4::is_multicast() const -{ - return (to_uint() & 0xF0000000) == 0xE0000000; -} - -#if !defined(ASIO_NO_DEPRECATED) -address_v4 address_v4::broadcast(const address_v4& addr, const address_v4& mask) -{ - return address_v4(addr.to_uint() | (mask.to_uint() ^ 0xFFFFFFFF)); -} - -address_v4 address_v4::netmask(const address_v4& addr) -{ - if (addr.is_class_a()) - return address_v4(0xFF000000); - if (addr.is_class_b()) - return address_v4(0xFFFF0000); - if (addr.is_class_c()) - return address_v4(0xFFFFFF00); - return address_v4(0xFFFFFFFF); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -address_v4 make_address_v4(const char* str) -{ - asio::error_code ec; - address_v4 addr = make_address_v4(str, ec); - asio::detail::throw_error(ec); - return addr; -} - -address_v4 make_address_v4( - const char* str, asio::error_code& ec) -{ - address_v4::bytes_type bytes; - if (asio::detail::socket_ops::inet_pton( - ASIO_OS_DEF(AF_INET), str, &bytes, 0, ec) <= 0) - return address_v4(); - return address_v4(bytes); -} - -address_v4 make_address_v4(const std::string& str) -{ - return make_address_v4(str.c_str()); -} - -address_v4 make_address_v4( - const std::string& str, asio::error_code& ec) -{ - return make_address_v4(str.c_str(), ec); -} - -#if defined(ASIO_HAS_STRING_VIEW) - -address_v4 make_address_v4(string_view str) -{ - return make_address_v4(static_cast(str)); -} - -address_v4 make_address_v4(string_view str, - asio::error_code& ec) -{ - return make_address_v4(static_cast(str), ec); -} - -#endif // defined(ASIO_HAS_STRING_VIEW) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_IMPL_ADDRESS_V4_IPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/address_v6.hpp b/Sources/Vendor/asio/include/asio/ip/impl/address_v6.hpp deleted file mode 100644 index 330eafd..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/address_v6.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// ip/impl/address_v6.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_IMPL_ADDRESS_V6_HPP -#define ASIO_IP_IMPL_ADDRESS_V6_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -#if !defined(ASIO_NO_DEPRECATED) - -inline address_v6 address_v6::from_string(const char* str) -{ - return asio::ip::make_address_v6(str); -} - -inline address_v6 address_v6::from_string( - const char* str, asio::error_code& ec) -{ - return asio::ip::make_address_v6(str, ec); -} - -inline address_v6 address_v6::from_string(const std::string& str) -{ - return asio::ip::make_address_v6(str); -} - -inline address_v6 address_v6::from_string( - const std::string& str, asio::error_code& ec) -{ - return asio::ip::make_address_v6(str, ec); -} - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address_v6& addr) -{ - return os << addr.to_string().c_str(); -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_IP_IMPL_ADDRESS_V6_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/address_v6.ipp b/Sources/Vendor/asio/include/asio/ip/impl/address_v6.ipp deleted file mode 100644 index 36bd68c..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/address_v6.ipp +++ /dev/null @@ -1,350 +0,0 @@ -// -// ip/impl/address_v6.ipp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_IMPL_ADDRESS_V6_IPP -#define ASIO_IP_IMPL_ADDRESS_V6_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/error.hpp" -#include "asio/ip/address_v6.hpp" -#include "asio/ip/bad_address_cast.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -address_v6::address_v6() - : addr_(), - scope_id_(0) -{ -} - -address_v6::address_v6(const address_v6::bytes_type& bytes, - unsigned long scope) - : scope_id_(scope) -{ -#if UCHAR_MAX > 0xFF - for (std::size_t i = 0; i < bytes.size(); ++i) - { - if (bytes[i] > 0xFF) - { - std::out_of_range ex("address_v6 from bytes_type"); - asio::detail::throw_exception(ex); - } - } -#endif // UCHAR_MAX > 0xFF - - using namespace std; // For memcpy. - memcpy(addr_.s6_addr, bytes.data(), 16); -} - -address_v6::address_v6(const address_v6& other) - : addr_(other.addr_), - scope_id_(other.scope_id_) -{ -} - -#if defined(ASIO_HAS_MOVE) -address_v6::address_v6(address_v6&& other) - : addr_(other.addr_), - scope_id_(other.scope_id_) -{ -} -#endif // defined(ASIO_HAS_MOVE) - -address_v6& address_v6::operator=(const address_v6& other) -{ - addr_ = other.addr_; - scope_id_ = other.scope_id_; - return *this; -} - -#if defined(ASIO_HAS_MOVE) -address_v6& address_v6::operator=(address_v6&& other) -{ - addr_ = other.addr_; - scope_id_ = other.scope_id_; - return *this; -} -#endif // defined(ASIO_HAS_MOVE) - -address_v6::bytes_type address_v6::to_bytes() const -{ - using namespace std; // For memcpy. - bytes_type bytes; -#if defined(ASIO_HAS_STD_ARRAY) - memcpy(bytes.data(), addr_.s6_addr, 16); -#else // defined(ASIO_HAS_STD_ARRAY) - memcpy(bytes.elems, addr_.s6_addr, 16); -#endif // defined(ASIO_HAS_STD_ARRAY) - return bytes; -} - -std::string address_v6::to_string() const -{ - asio::error_code ec; - char addr_str[asio::detail::max_addr_v6_str_len]; - const char* addr = - asio::detail::socket_ops::inet_ntop( - ASIO_OS_DEF(AF_INET6), &addr_, addr_str, - asio::detail::max_addr_v6_str_len, scope_id_, ec); - if (addr == 0) - asio::detail::throw_error(ec); - return addr; -} - -#if !defined(ASIO_NO_DEPRECATED) -std::string address_v6::to_string(asio::error_code& ec) const -{ - char addr_str[asio::detail::max_addr_v6_str_len]; - const char* addr = - asio::detail::socket_ops::inet_ntop( - ASIO_OS_DEF(AF_INET6), &addr_, addr_str, - asio::detail::max_addr_v6_str_len, scope_id_, ec); - if (addr == 0) - return std::string(); - return addr; -} - -address_v4 address_v6::to_v4() const -{ - if (!is_v4_mapped() && !is_v4_compatible()) - { - bad_address_cast ex; - asio::detail::throw_exception(ex); - } - - address_v4::bytes_type v4_bytes = { { addr_.s6_addr[12], - addr_.s6_addr[13], addr_.s6_addr[14], addr_.s6_addr[15] } }; - return address_v4(v4_bytes); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -bool address_v6::is_loopback() const -{ - return ((addr_.s6_addr[0] == 0) && (addr_.s6_addr[1] == 0) - && (addr_.s6_addr[2] == 0) && (addr_.s6_addr[3] == 0) - && (addr_.s6_addr[4] == 0) && (addr_.s6_addr[5] == 0) - && (addr_.s6_addr[6] == 0) && (addr_.s6_addr[7] == 0) - && (addr_.s6_addr[8] == 0) && (addr_.s6_addr[9] == 0) - && (addr_.s6_addr[10] == 0) && (addr_.s6_addr[11] == 0) - && (addr_.s6_addr[12] == 0) && (addr_.s6_addr[13] == 0) - && (addr_.s6_addr[14] == 0) && (addr_.s6_addr[15] == 1)); -} - -bool address_v6::is_unspecified() const -{ - return ((addr_.s6_addr[0] == 0) && (addr_.s6_addr[1] == 0) - && (addr_.s6_addr[2] == 0) && (addr_.s6_addr[3] == 0) - && (addr_.s6_addr[4] == 0) && (addr_.s6_addr[5] == 0) - && (addr_.s6_addr[6] == 0) && (addr_.s6_addr[7] == 0) - && (addr_.s6_addr[8] == 0) && (addr_.s6_addr[9] == 0) - && (addr_.s6_addr[10] == 0) && (addr_.s6_addr[11] == 0) - && (addr_.s6_addr[12] == 0) && (addr_.s6_addr[13] == 0) - && (addr_.s6_addr[14] == 0) && (addr_.s6_addr[15] == 0)); -} - -bool address_v6::is_link_local() const -{ - return ((addr_.s6_addr[0] == 0xfe) && ((addr_.s6_addr[1] & 0xc0) == 0x80)); -} - -bool address_v6::is_site_local() const -{ - return ((addr_.s6_addr[0] == 0xfe) && ((addr_.s6_addr[1] & 0xc0) == 0xc0)); -} - -bool address_v6::is_v4_mapped() const -{ - return ((addr_.s6_addr[0] == 0) && (addr_.s6_addr[1] == 0) - && (addr_.s6_addr[2] == 0) && (addr_.s6_addr[3] == 0) - && (addr_.s6_addr[4] == 0) && (addr_.s6_addr[5] == 0) - && (addr_.s6_addr[6] == 0) && (addr_.s6_addr[7] == 0) - && (addr_.s6_addr[8] == 0) && (addr_.s6_addr[9] == 0) - && (addr_.s6_addr[10] == 0xff) && (addr_.s6_addr[11] == 0xff)); -} - -#if !defined(ASIO_NO_DEPRECATED) -bool address_v6::is_v4_compatible() const -{ - return ((addr_.s6_addr[0] == 0) && (addr_.s6_addr[1] == 0) - && (addr_.s6_addr[2] == 0) && (addr_.s6_addr[3] == 0) - && (addr_.s6_addr[4] == 0) && (addr_.s6_addr[5] == 0) - && (addr_.s6_addr[6] == 0) && (addr_.s6_addr[7] == 0) - && (addr_.s6_addr[8] == 0) && (addr_.s6_addr[9] == 0) - && (addr_.s6_addr[10] == 0) && (addr_.s6_addr[11] == 0) - && !((addr_.s6_addr[12] == 0) - && (addr_.s6_addr[13] == 0) - && (addr_.s6_addr[14] == 0) - && ((addr_.s6_addr[15] == 0) || (addr_.s6_addr[15] == 1)))); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -bool address_v6::is_multicast() const -{ - return (addr_.s6_addr[0] == 0xff); -} - -bool address_v6::is_multicast_global() const -{ - return ((addr_.s6_addr[0] == 0xff) && ((addr_.s6_addr[1] & 0x0f) == 0x0e)); -} - -bool address_v6::is_multicast_link_local() const -{ - return ((addr_.s6_addr[0] == 0xff) && ((addr_.s6_addr[1] & 0x0f) == 0x02)); -} - -bool address_v6::is_multicast_node_local() const -{ - return ((addr_.s6_addr[0] == 0xff) && ((addr_.s6_addr[1] & 0x0f) == 0x01)); -} - -bool address_v6::is_multicast_org_local() const -{ - return ((addr_.s6_addr[0] == 0xff) && ((addr_.s6_addr[1] & 0x0f) == 0x08)); -} - -bool address_v6::is_multicast_site_local() const -{ - return ((addr_.s6_addr[0] == 0xff) && ((addr_.s6_addr[1] & 0x0f) == 0x05)); -} - -bool operator==(const address_v6& a1, const address_v6& a2) -{ - using namespace std; // For memcmp. - return memcmp(&a1.addr_, &a2.addr_, - sizeof(asio::detail::in6_addr_type)) == 0 - && a1.scope_id_ == a2.scope_id_; -} - -bool operator<(const address_v6& a1, const address_v6& a2) -{ - using namespace std; // For memcmp. - int memcmp_result = memcmp(&a1.addr_, &a2.addr_, - sizeof(asio::detail::in6_addr_type)); - if (memcmp_result < 0) - return true; - if (memcmp_result > 0) - return false; - return a1.scope_id_ < a2.scope_id_; -} - -address_v6 address_v6::loopback() -{ - address_v6 tmp; - tmp.addr_.s6_addr[15] = 1; - return tmp; -} - -#if !defined(ASIO_NO_DEPRECATED) -address_v6 address_v6::v4_mapped(const address_v4& addr) -{ - address_v4::bytes_type v4_bytes = addr.to_bytes(); - bytes_type v6_bytes = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, - v4_bytes[0], v4_bytes[1], v4_bytes[2], v4_bytes[3] } }; - return address_v6(v6_bytes); -} - -address_v6 address_v6::v4_compatible(const address_v4& addr) -{ - address_v4::bytes_type v4_bytes = addr.to_bytes(); - bytes_type v6_bytes = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - v4_bytes[0], v4_bytes[1], v4_bytes[2], v4_bytes[3] } }; - return address_v6(v6_bytes); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -address_v6 make_address_v6(const char* str) -{ - asio::error_code ec; - address_v6 addr = make_address_v6(str, ec); - asio::detail::throw_error(ec); - return addr; -} - -address_v6 make_address_v6( - const char* str, asio::error_code& ec) -{ - address_v6::bytes_type bytes; - unsigned long scope_id = 0; - if (asio::detail::socket_ops::inet_pton( - ASIO_OS_DEF(AF_INET6), str, &bytes[0], &scope_id, ec) <= 0) - return address_v6(); - return address_v6(bytes, scope_id); -} - -address_v6 make_address_v6(const std::string& str) -{ - return make_address_v6(str.c_str()); -} - -address_v6 make_address_v6( - const std::string& str, asio::error_code& ec) -{ - return make_address_v6(str.c_str(), ec); -} - -#if defined(ASIO_HAS_STRING_VIEW) - -address_v6 make_address_v6(string_view str) -{ - return make_address_v6(static_cast(str)); -} - -address_v6 make_address_v6(string_view str, - asio::error_code& ec) -{ - return make_address_v6(static_cast(str), ec); -} - -#endif // defined(ASIO_HAS_STRING_VIEW) - -address_v4 make_address_v4( - v4_mapped_t, const address_v6& v6_addr) -{ - if (!v6_addr.is_v4_mapped()) - { - bad_address_cast ex; - asio::detail::throw_exception(ex); - } - - address_v6::bytes_type v6_bytes = v6_addr.to_bytes(); - address_v4::bytes_type v4_bytes = { { v6_bytes[12], - v6_bytes[13], v6_bytes[14], v6_bytes[15] } }; - return address_v4(v4_bytes); -} - -address_v6 make_address_v6( - v4_mapped_t, const address_v4& v4_addr) -{ - address_v4::bytes_type v4_bytes = v4_addr.to_bytes(); - address_v6::bytes_type v6_bytes = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0xFF, 0xFF, v4_bytes[0], v4_bytes[1], v4_bytes[2], v4_bytes[3] } }; - return address_v6(v6_bytes); -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_IMPL_ADDRESS_V6_IPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/basic_endpoint.hpp b/Sources/Vendor/asio/include/asio/ip/impl/basic_endpoint.hpp deleted file mode 100644 index 5680a43..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/basic_endpoint.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// -// ip/impl/basic_endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_IMPL_BASIC_ENDPOINT_HPP -#define ASIO_IP_IMPL_BASIC_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template -std::basic_ostream& operator<<( - std::basic_ostream& os, - const basic_endpoint& endpoint) -{ - asio::ip::detail::endpoint tmp_ep(endpoint.address(), endpoint.port()); - return os << tmp_ep.to_string().c_str(); -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_IP_IMPL_BASIC_ENDPOINT_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/host_name.ipp b/Sources/Vendor/asio/include/asio/ip/impl/host_name.ipp deleted file mode 100644 index 932ab1c..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/host_name.ipp +++ /dev/null @@ -1,54 +0,0 @@ -// -// ip/impl/host_name.ipp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_IMPL_HOST_NAME_IPP -#define ASIO_IP_IMPL_HOST_NAME_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/winsock_init.hpp" -#include "asio/ip/host_name.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -std::string host_name() -{ - char name[1024]; - asio::error_code ec; - if (asio::detail::socket_ops::gethostname(name, sizeof(name), ec) != 0) - { - asio::detail::throw_error(ec); - return std::string(); - } - return std::string(name); -} - -std::string host_name(asio::error_code& ec) -{ - char name[1024]; - if (asio::detail::socket_ops::gethostname(name, sizeof(name), ec) != 0) - return std::string(); - return std::string(name); -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_IMPL_HOST_NAME_IPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/network_v4.hpp b/Sources/Vendor/asio/include/asio/ip/impl/network_v4.hpp deleted file mode 100644 index 911a45c..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/network_v4.hpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// ip/impl/network_v4.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail dot com) -// -// Distributed under the 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 ASIO_IP_IMPL_NETWORK_V4_HPP -#define ASIO_IP_IMPL_NETWORK_V4_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const network_v4& addr) -{ - asio::error_code ec; - std::string s = addr.to_string(ec); - if (ec) - { - if (os.exceptions() & std::basic_ostream::failbit) - asio::detail::throw_error(ec); - else - os.setstate(std::basic_ostream::failbit); - } - else - for (std::string::iterator i = s.begin(); i != s.end(); ++i) - os << os.widen(*i); - return os; -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_IP_IMPL_NETWORK_V4_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/network_v4.ipp b/Sources/Vendor/asio/include/asio/ip/impl/network_v4.ipp deleted file mode 100644 index 4b27887..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/network_v4.ipp +++ /dev/null @@ -1,216 +0,0 @@ -// -// ip/impl/network_v4.ipp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail dot com) -// -// Distributed under the 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 ASIO_IP_IMPL_NETWORK_V4_IPP -#define ASIO_IP_IMPL_NETWORK_V4_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include -#include "asio/error.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/ip/network_v4.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -network_v4::network_v4(const address_v4& addr, unsigned short prefix_len) - : address_(addr), - prefix_length_(prefix_len) -{ - if (prefix_len > 32) - { - std::out_of_range ex("prefix length too large"); - asio::detail::throw_exception(ex); - } -} - -network_v4::network_v4(const address_v4& addr, const address_v4& mask) - : address_(addr), - prefix_length_(0) -{ - address_v4::bytes_type mask_bytes = mask.to_bytes(); - bool finished = false; - for (std::size_t i = 0; i < mask_bytes.size(); ++i) - { - if (finished) - { - if (mask_bytes[i]) - { - std::invalid_argument ex("non-contiguous netmask"); - asio::detail::throw_exception(ex); - } - continue; - } - else - { - switch (mask_bytes[i]) - { - case 255: - prefix_length_ += 8; - break; - case 254: // prefix_length_ += 7 - prefix_length_ += 1; - case 252: // prefix_length_ += 6 - prefix_length_ += 1; - case 248: // prefix_length_ += 5 - prefix_length_ += 1; - case 240: // prefix_length_ += 4 - prefix_length_ += 1; - case 224: // prefix_length_ += 3 - prefix_length_ += 1; - case 192: // prefix_length_ += 2 - prefix_length_ += 1; - case 128: // prefix_length_ += 1 - prefix_length_ += 1; - case 0: // nbits += 0 - finished = true; - break; - default: - std::out_of_range ex("non-contiguous netmask"); - asio::detail::throw_exception(ex); - } - } - } -} - -address_v4 network_v4::netmask() const ASIO_NOEXCEPT -{ - uint32_t nmbits = 0xffffffff; - if (prefix_length_ == 0) - nmbits = 0; - else - nmbits = nmbits << (32 - prefix_length_); - return address_v4(nmbits); -} - -address_v4_range network_v4::hosts() const ASIO_NOEXCEPT -{ - return is_host() - ? address_v4_range(address_, address_v4(address_.to_uint() + 1)) - : address_v4_range(address_v4(network().to_uint() + 1), broadcast()); -} - -bool network_v4::is_subnet_of(const network_v4& other) const -{ - if (other.prefix_length_ >= prefix_length_) - return false; // Only real subsets are allowed. - const network_v4 me(address_, other.prefix_length_); - return other.canonical() == me.canonical(); -} - -std::string network_v4::to_string() const -{ - asio::error_code ec; - std::string addr = to_string(ec); - asio::detail::throw_error(ec); - return addr; -} - -std::string network_v4::to_string(asio::error_code& ec) const -{ - using namespace std; // For sprintf. - ec = asio::error_code(); - char prefix_len[16]; -#if defined(ASIO_HAS_SECURE_RTL) - sprintf_s(prefix_len, sizeof(prefix_len), "/%u", prefix_length_); -#else // defined(ASIO_HAS_SECURE_RTL) - sprintf(prefix_len, "/%u", prefix_length_); -#endif // defined(ASIO_HAS_SECURE_RTL) - return address_.to_string() + prefix_len; -} - -network_v4 make_network_v4(const char* str) -{ - return make_network_v4(std::string(str)); -} - -network_v4 make_network_v4(const char* str, asio::error_code& ec) -{ - return make_network_v4(std::string(str), ec); -} - -network_v4 make_network_v4(const std::string& str) -{ - asio::error_code ec; - network_v4 net = make_network_v4(str, ec); - asio::detail::throw_error(ec); - return net; -} - -network_v4 make_network_v4(const std::string& str, - asio::error_code& ec) -{ - std::string::size_type pos = str.find_first_of("/"); - - if (pos == std::string::npos) - { - ec = asio::error::invalid_argument; - return network_v4(); - } - - if (pos == str.size() - 1) - { - ec = asio::error::invalid_argument; - return network_v4(); - } - - std::string::size_type end = str.find_first_not_of("0123456789", pos + 1); - if (end != std::string::npos) - { - ec = asio::error::invalid_argument; - return network_v4(); - } - - const address_v4 addr = make_address_v4(str.substr(0, pos), ec); - if (ec) - return network_v4(); - - const int prefix_len = std::atoi(str.substr(pos + 1).c_str()); - if (prefix_len < 0 || prefix_len > 32) - { - ec = asio::error::invalid_argument; - return network_v4(); - } - - return network_v4(addr, static_cast(prefix_len)); -} - -#if defined(ASIO_HAS_STRING_VIEW) - -network_v4 make_network_v4(string_view str) -{ - return make_network_v4(static_cast(str)); -} - -network_v4 make_network_v4(string_view str, - asio::error_code& ec) -{ - return make_network_v4(static_cast(str), ec); -} - -#endif // defined(ASIO_HAS_STRING_VIEW) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_IMPL_NETWORK_V4_IPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/network_v6.hpp b/Sources/Vendor/asio/include/asio/ip/impl/network_v6.hpp deleted file mode 100644 index b0eedad..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/network_v6.hpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// ip/impl/network_v6.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_IMPL_NETWORK_V6_HPP -#define ASIO_IP_IMPL_NETWORK_V6_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const network_v6& addr) -{ - asio::error_code ec; - std::string s = addr.to_string(ec); - if (ec) - { - if (os.exceptions() & std::basic_ostream::failbit) - asio::detail::throw_error(ec); - else - os.setstate(std::basic_ostream::failbit); - } - else - for (std::string::iterator i = s.begin(); i != s.end(); ++i) - os << os.widen(*i); - return os; -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_IP_IMPL_NETWORK_V6_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/network_v6.ipp b/Sources/Vendor/asio/include/asio/ip/impl/network_v6.ipp deleted file mode 100644 index 2e37a99..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/network_v6.ipp +++ /dev/null @@ -1,185 +0,0 @@ -// -// ip/impl/network_v6.ipp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail dot com) -// -// Distributed under the 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 ASIO_IP_IMPL_NETWORK_V6_IPP -#define ASIO_IP_IMPL_NETWORK_V6_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include -#include "asio/error.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/ip/network_v6.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -network_v6::network_v6(const address_v6& addr, unsigned short prefix_len) - : address_(addr), - prefix_length_(prefix_len) -{ - if (prefix_len > 128) - { - std::out_of_range ex("prefix length too large"); - asio::detail::throw_exception(ex); - } -} - -ASIO_DECL address_v6 network_v6::network() const ASIO_NOEXCEPT -{ - address_v6::bytes_type bytes(address_.to_bytes()); - for (std::size_t i = 0; i < 16; ++i) - { - if (prefix_length_ <= i * 8) - bytes[i] = 0; - else if (prefix_length_ < (i + 1) * 8) - bytes[i] &= 0xFF00 >> (prefix_length_ % 8); - } - return address_v6(bytes, address_.scope_id()); -} - -address_v6_range network_v6::hosts() const ASIO_NOEXCEPT -{ - address_v6::bytes_type begin_bytes(address_.to_bytes()); - address_v6::bytes_type end_bytes(address_.to_bytes()); - for (std::size_t i = 0; i < 16; ++i) - { - if (prefix_length_ <= i * 8) - { - begin_bytes[i] = 0; - end_bytes[i] = 0xFF; - } - else if (prefix_length_ < (i + 1) * 8) - { - begin_bytes[i] &= 0xFF00 >> (prefix_length_ % 8); - end_bytes[i] |= 0xFF >> (prefix_length_ % 8); - } - } - return address_v6_range( - address_v6_iterator(address_v6(begin_bytes, address_.scope_id())), - ++address_v6_iterator(address_v6(end_bytes, address_.scope_id()))); -} - -bool network_v6::is_subnet_of(const network_v6& other) const -{ - if (other.prefix_length_ >= prefix_length_) - return false; // Only real subsets are allowed. - const network_v6 me(address_, other.prefix_length_); - return other.canonical() == me.canonical(); -} - -std::string network_v6::to_string() const -{ - asio::error_code ec; - std::string addr = to_string(ec); - asio::detail::throw_error(ec); - return addr; -} - -std::string network_v6::to_string(asio::error_code& ec) const -{ - using namespace std; // For sprintf. - ec = asio::error_code(); - char prefix_len[16]; -#if defined(ASIO_HAS_SECURE_RTL) - sprintf_s(prefix_len, sizeof(prefix_len), "/%u", prefix_length_); -#else // defined(ASIO_HAS_SECURE_RTL) - sprintf(prefix_len, "/%u", prefix_length_); -#endif // defined(ASIO_HAS_SECURE_RTL) - return address_.to_string() + prefix_len; -} - -network_v6 make_network_v6(const char* str) -{ - return make_network_v6(std::string(str)); -} - -network_v6 make_network_v6(const char* str, asio::error_code& ec) -{ - return make_network_v6(std::string(str), ec); -} - -network_v6 make_network_v6(const std::string& str) -{ - asio::error_code ec; - network_v6 net = make_network_v6(str, ec); - asio::detail::throw_error(ec); - return net; -} - -network_v6 make_network_v6(const std::string& str, - asio::error_code& ec) -{ - std::string::size_type pos = str.find_first_of("/"); - - if (pos == std::string::npos) - { - ec = asio::error::invalid_argument; - return network_v6(); - } - - if (pos == str.size() - 1) - { - ec = asio::error::invalid_argument; - return network_v6(); - } - - std::string::size_type end = str.find_first_not_of("0123456789", pos + 1); - if (end != std::string::npos) - { - ec = asio::error::invalid_argument; - return network_v6(); - } - - const address_v6 addr = make_address_v6(str.substr(0, pos), ec); - if (ec) - return network_v6(); - - const int prefix_len = std::atoi(str.substr(pos + 1).c_str()); - if (prefix_len < 0 || prefix_len > 128) - { - ec = asio::error::invalid_argument; - return network_v6(); - } - - return network_v6(addr, static_cast(prefix_len)); -} - -#if defined(ASIO_HAS_STRING_VIEW) - -network_v6 make_network_v6(string_view str) -{ - return make_network_v6(static_cast(str)); -} - -network_v6 make_network_v6(string_view str, - asio::error_code& ec) -{ - return make_network_v6(static_cast(str), ec); -} - -#endif // defined(ASIO_HAS_STRING_VIEW) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_IMPL_NETWORK_V6_IPP diff --git a/Sources/Vendor/asio/include/asio/ip/multicast.hpp b/Sources/Vendor/asio/include/asio/ip/multicast.hpp deleted file mode 100644 index ea624e1..0000000 --- a/Sources/Vendor/asio/include/asio/ip/multicast.hpp +++ /dev/null @@ -1,191 +0,0 @@ -// -// ip/multicast.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_MULTICAST_HPP -#define ASIO_IP_MULTICAST_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/ip/detail/socket_option.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { -namespace multicast { - -/// Socket option to join a multicast group on a specified interface. -/** - * Implements the IPPROTO_IP/IP_ADD_MEMBERSHIP socket option. - * - * @par Examples - * Setting the option to join a multicast group: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::address multicast_address = - * asio::ip::address::from_string("225.0.0.1"); - * asio::ip::multicast::join_group option(multicast_address); - * socket.set_option(option); - * @endcode - * - * @par Concepts: - * SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined join_group; -#else -typedef asio::ip::detail::socket_option::multicast_request< - ASIO_OS_DEF(IPPROTO_IP), - ASIO_OS_DEF(IP_ADD_MEMBERSHIP), - ASIO_OS_DEF(IPPROTO_IPV6), - ASIO_OS_DEF(IPV6_JOIN_GROUP)> join_group; -#endif - -/// Socket option to leave a multicast group on a specified interface. -/** - * Implements the IPPROTO_IP/IP_DROP_MEMBERSHIP socket option. - * - * @par Examples - * Setting the option to leave a multicast group: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::address multicast_address = - * asio::ip::address::from_string("225.0.0.1"); - * asio::ip::multicast::leave_group option(multicast_address); - * socket.set_option(option); - * @endcode - * - * @par Concepts: - * SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined leave_group; -#else -typedef asio::ip::detail::socket_option::multicast_request< - ASIO_OS_DEF(IPPROTO_IP), - ASIO_OS_DEF(IP_DROP_MEMBERSHIP), - ASIO_OS_DEF(IPPROTO_IPV6), - ASIO_OS_DEF(IPV6_LEAVE_GROUP)> leave_group; -#endif - -/// Socket option for local interface to use for outgoing multicast packets. -/** - * Implements the IPPROTO_IP/IP_MULTICAST_IF socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::address_v4 local_interface = - * asio::ip::address_v4::from_string("1.2.3.4"); - * asio::ip::multicast::outbound_interface option(local_interface); - * socket.set_option(option); - * @endcode - * - * @par Concepts: - * SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined outbound_interface; -#else -typedef asio::ip::detail::socket_option::network_interface< - ASIO_OS_DEF(IPPROTO_IP), - ASIO_OS_DEF(IP_MULTICAST_IF), - ASIO_OS_DEF(IPPROTO_IPV6), - ASIO_OS_DEF(IPV6_MULTICAST_IF)> outbound_interface; -#endif - -/// Socket option for time-to-live associated with outgoing multicast packets. -/** - * Implements the IPPROTO_IP/IP_MULTICAST_TTL socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::multicast::hops option(4); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::multicast::hops option; - * socket.get_option(option); - * int ttl = option.value(); - * @endcode - * - * @par Concepts: - * GettableSocketOption, SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined hops; -#else -typedef asio::ip::detail::socket_option::multicast_hops< - ASIO_OS_DEF(IPPROTO_IP), - ASIO_OS_DEF(IP_MULTICAST_TTL), - ASIO_OS_DEF(IPPROTO_IPV6), - ASIO_OS_DEF(IPV6_MULTICAST_HOPS)> hops; -#endif - -/// Socket option determining whether outgoing multicast packets will be -/// received on the same socket if it is a member of the multicast group. -/** - * Implements the IPPROTO_IP/IP_MULTICAST_LOOP socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::multicast::enable_loopback option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::multicast::enable_loopback option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * GettableSocketOption, SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined enable_loopback; -#else -typedef asio::ip::detail::socket_option::multicast_enable_loopback< - ASIO_OS_DEF(IPPROTO_IP), - ASIO_OS_DEF(IP_MULTICAST_LOOP), - ASIO_OS_DEF(IPPROTO_IPV6), - ASIO_OS_DEF(IPV6_MULTICAST_LOOP)> enable_loopback; -#endif - -} // namespace multicast -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_MULTICAST_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/network_v4.hpp b/Sources/Vendor/asio/include/asio/ip/network_v4.hpp deleted file mode 100644 index e38f60f..0000000 --- a/Sources/Vendor/asio/include/asio/ip/network_v4.hpp +++ /dev/null @@ -1,261 +0,0 @@ -// -// ip/network_v4.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail dot com) -// -// Distributed under the 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 ASIO_IP_NETWORK_V4_HPP -#define ASIO_IP_NETWORK_V4_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/string_view.hpp" -#include "asio/error_code.hpp" -#include "asio/ip/address_v4_range.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Represents an IPv4 network. -/** - * The asio::ip::network_v4 class provides the ability to use and - * manipulate IP version 4 networks. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class network_v4 -{ -public: - /// Default constructor. - network_v4() ASIO_NOEXCEPT - : address_(), - prefix_length_(0) - { - } - - /// Construct a network based on the specified address and prefix length. - ASIO_DECL network_v4(const address_v4& addr, - unsigned short prefix_len); - - /// Construct network based on the specified address and netmask. - ASIO_DECL network_v4(const address_v4& addr, - const address_v4& mask); - - /// Copy constructor. - network_v4(const network_v4& other) ASIO_NOEXCEPT - : address_(other.address_), - prefix_length_(other.prefix_length_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - network_v4(network_v4&& other) ASIO_NOEXCEPT - : address_(ASIO_MOVE_CAST(address_v4)(other.address_)), - prefix_length_(other.prefix_length_) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from another network. - network_v4& operator=(const network_v4& other) ASIO_NOEXCEPT - { - address_ = other.address_; - prefix_length_ = other.prefix_length_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move-assign from another network. - network_v4& operator=(network_v4&& other) ASIO_NOEXCEPT - { - address_ = ASIO_MOVE_CAST(address_v4)(other.address_); - prefix_length_ = other.prefix_length_; - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// Obtain the address object specified when the network object was created. - address_v4 address() const ASIO_NOEXCEPT - { - return address_; - } - - /// Obtain the prefix length that was specified when the network object was - /// created. - unsigned short prefix_length() const ASIO_NOEXCEPT - { - return prefix_length_; - } - - /// Obtain the netmask that was specified when the network object was created. - ASIO_DECL address_v4 netmask() const ASIO_NOEXCEPT; - - /// Obtain an address object that represents the network address. - address_v4 network() const ASIO_NOEXCEPT - { - return address_v4(address_.to_uint() & netmask().to_uint()); - } - - /// Obtain an address object that represents the network's broadcast address. - address_v4 broadcast() const ASIO_NOEXCEPT - { - return address_v4(network().to_uint() | (netmask().to_uint() ^ 0xFFFFFFFF)); - } - - /// Obtain an address range corresponding to the hosts in the network. - ASIO_DECL address_v4_range hosts() const ASIO_NOEXCEPT; - - /// Obtain the true network address, omitting any host bits. - network_v4 canonical() const ASIO_NOEXCEPT - { - return network_v4(network(), netmask()); - } - - /// Test if network is a valid host address. - bool is_host() const ASIO_NOEXCEPT - { - return prefix_length_ == 32; - } - - /// Test if a network is a real subnet of another network. - ASIO_DECL bool is_subnet_of(const network_v4& other) const; - - /// Get the network as an address in dotted decimal format. - ASIO_DECL std::string to_string() const; - - /// Get the network as an address in dotted decimal format. - ASIO_DECL std::string to_string(asio::error_code& ec) const; - - /// Compare two networks for equality. - friend bool operator==(const network_v4& a, const network_v4& b) - { - return a.address_ == b.address_ && a.prefix_length_ == b.prefix_length_; - } - - /// Compare two networks for inequality. - friend bool operator!=(const network_v4& a, const network_v4& b) - { - return !(a == b); - } - -private: - address_v4 address_; - unsigned short prefix_length_; -}; - -/// Create an IPv4 network from an address and prefix length. -/** - * @relates address_v4 - */ -inline network_v4 make_network_v4( - const address_v4& addr, unsigned short prefix_len) -{ - return network_v4(addr, prefix_len); -} - -/// Create an IPv4 network from an address and netmask. -/** - * @relates address_v4 - */ -inline network_v4 make_network_v4( - const address_v4& addr, const address_v4& mask) -{ - return network_v4(addr, mask); -} - -/// Create an IPv4 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v4 - */ -ASIO_DECL network_v4 make_network_v4(const char* str); - -/// Create an IPv4 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v4 - */ -ASIO_DECL network_v4 make_network_v4( - const char* str, asio::error_code& ec); - -/// Create an IPv4 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v4 - */ -ASIO_DECL network_v4 make_network_v4(const std::string& str); - -/// Create an IPv4 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v4 - */ -ASIO_DECL network_v4 make_network_v4( - const std::string& str, asio::error_code& ec); - -#if defined(ASIO_HAS_STRING_VIEW) \ - || defined(GENERATING_DOCUMENTATION) - -/// Create an IPv4 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v4 - */ -ASIO_DECL network_v4 make_network_v4(string_view str); - -/// Create an IPv4 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v4 - */ -ASIO_DECL network_v4 make_network_v4( - string_view str, asio::error_code& ec); - -#endif // defined(ASIO_HAS_STRING_VIEW) - // || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_NO_IOSTREAM) - -/// Output a network as a string. -/** - * Used to output a human-readable string for a specified network. - * - * @param os The output stream to which the string will be written. - * - * @param net The network to be written. - * - * @return The output stream. - * - * @relates asio::ip::address_v4 - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const network_v4& net); - -#endif // !defined(ASIO_NO_IOSTREAM) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/ip/impl/network_v4.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/ip/impl/network_v4.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_IP_NETWORK_V4_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/network_v6.hpp b/Sources/Vendor/asio/include/asio/ip/network_v6.hpp deleted file mode 100644 index 7b6b7e6..0000000 --- a/Sources/Vendor/asio/include/asio/ip/network_v6.hpp +++ /dev/null @@ -1,235 +0,0 @@ -// -// ip/network_v6.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail dot com) -// -// Distributed under the 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 ASIO_IP_NETWORK_V6_HPP -#define ASIO_IP_NETWORK_V6_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/string_view.hpp" -#include "asio/error_code.hpp" -#include "asio/ip/address_v6_range.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Represents an IPv6 network. -/** - * The asio::ip::network_v6 class provides the ability to use and - * manipulate IP version 6 networks. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class network_v6 -{ -public: - /// Default constructor. - network_v6() ASIO_NOEXCEPT - : address_(), - prefix_length_(0) - { - } - - /// Construct a network based on the specified address and prefix length. - ASIO_DECL network_v6(const address_v6& addr, - unsigned short prefix_len); - - /// Copy constructor. - network_v6(const network_v6& other) ASIO_NOEXCEPT - : address_(other.address_), - prefix_length_(other.prefix_length_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - network_v6(network_v6&& other) ASIO_NOEXCEPT - : address_(ASIO_MOVE_CAST(address_v6)(other.address_)), - prefix_length_(other.prefix_length_) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from another network. - network_v6& operator=(const network_v6& other) ASIO_NOEXCEPT - { - address_ = other.address_; - prefix_length_ = other.prefix_length_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move-assign from another network. - network_v6& operator=(network_v6&& other) ASIO_NOEXCEPT - { - address_ = ASIO_MOVE_CAST(address_v6)(other.address_); - prefix_length_ = other.prefix_length_; - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// Obtain the address object specified when the network object was created. - address_v6 address() const ASIO_NOEXCEPT - { - return address_; - } - - /// Obtain the prefix length that was specified when the network object was - /// created. - unsigned short prefix_length() const ASIO_NOEXCEPT - { - return prefix_length_; - } - - /// Obtain an address object that represents the network address. - ASIO_DECL address_v6 network() const ASIO_NOEXCEPT; - - /// Obtain an address range corresponding to the hosts in the network. - ASIO_DECL address_v6_range hosts() const ASIO_NOEXCEPT; - - /// Obtain the true network address, omitting any host bits. - network_v6 canonical() const ASIO_NOEXCEPT - { - return network_v6(network(), prefix_length()); - } - - /// Test if network is a valid host address. - bool is_host() const ASIO_NOEXCEPT - { - return prefix_length_ == 128; - } - - /// Test if a network is a real subnet of another network. - ASIO_DECL bool is_subnet_of(const network_v6& other) const; - - /// Get the network as an address in dotted decimal format. - ASIO_DECL std::string to_string() const; - - /// Get the network as an address in dotted decimal format. - ASIO_DECL std::string to_string(asio::error_code& ec) const; - - /// Compare two networks for equality. - friend bool operator==(const network_v6& a, const network_v6& b) - { - return a.address_ == b.address_ && a.prefix_length_ == b.prefix_length_; - } - - /// Compare two networks for inequality. - friend bool operator!=(const network_v6& a, const network_v6& b) - { - return !(a == b); - } - -private: - address_v6 address_; - unsigned short prefix_length_; -}; - -/// Create an IPv6 network from an address and prefix length. -/** - * @relates address_v6 - */ -inline network_v6 make_network_v6( - const address_v6& addr, unsigned short prefix_len) -{ - return network_v6(addr, prefix_len); -} - -/// Create an IPv6 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v6 - */ -ASIO_DECL network_v6 make_network_v6(const char* str); - -/// Create an IPv6 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v6 - */ -ASIO_DECL network_v6 make_network_v6( - const char* str, asio::error_code& ec); - -/// Create an IPv6 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v6 - */ -ASIO_DECL network_v6 make_network_v6(const std::string& str); - -/// Create an IPv6 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v6 - */ -ASIO_DECL network_v6 make_network_v6( - const std::string& str, asio::error_code& ec); - -#if defined(ASIO_HAS_STRING_VIEW) \ - || defined(GENERATING_DOCUMENTATION) - -/// Create an IPv6 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v6 - */ -ASIO_DECL network_v6 make_network_v6(string_view str); - -/// Create an IPv6 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v6 - */ -ASIO_DECL network_v6 make_network_v6( - string_view str, asio::error_code& ec); - -#endif // defined(ASIO_HAS_STRING_VIEW) - // || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_NO_IOSTREAM) - -/// Output a network as a string. -/** - * Used to output a human-readable string for a specified network. - * - * @param os The output stream to which the string will be written. - * - * @param net The network to be written. - * - * @return The output stream. - * - * @relates asio::ip::address_v6 - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const network_v6& net); - -#endif // !defined(ASIO_NO_IOSTREAM) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/ip/impl/network_v6.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/ip/impl/network_v6.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_IP_NETWORK_V6_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/resolver_base.hpp b/Sources/Vendor/asio/include/asio/ip/resolver_base.hpp deleted file mode 100644 index d32c911..0000000 --- a/Sources/Vendor/asio/include/asio/ip/resolver_base.hpp +++ /dev/null @@ -1,129 +0,0 @@ -// -// ip/resolver_base.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_RESOLVER_BASE_HPP -#define ASIO_IP_RESOLVER_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// The resolver_base class is used as a base for the basic_resolver class -/// templates to provide a common place to define the flag constants. -class resolver_base -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// A bitmask type (C++ Std [lib.bitmask.types]). - typedef unspecified flags; - - /// Determine the canonical name of the host specified in the query. - static const flags canonical_name = implementation_defined; - - /// Indicate that returned endpoint is intended for use as a locally bound - /// socket endpoint. - static const flags passive = implementation_defined; - - /// Host name should be treated as a numeric string defining an IPv4 or IPv6 - /// address and no name resolution should be attempted. - static const flags numeric_host = implementation_defined; - - /// Service name should be treated as a numeric string defining a port number - /// and no name resolution should be attempted. - static const flags numeric_service = implementation_defined; - - /// If the query protocol family is specified as IPv6, return IPv4-mapped - /// IPv6 addresses on finding no IPv6 addresses. - static const flags v4_mapped = implementation_defined; - - /// If used with v4_mapped, return all matching IPv6 and IPv4 addresses. - static const flags all_matching = implementation_defined; - - /// Only return IPv4 addresses if a non-loopback IPv4 address is configured - /// for the system. Only return IPv6 addresses if a non-loopback IPv6 address - /// is configured for the system. - static const flags address_configured = implementation_defined; -#else - enum flags - { - canonical_name = ASIO_OS_DEF(AI_CANONNAME), - passive = ASIO_OS_DEF(AI_PASSIVE), - numeric_host = ASIO_OS_DEF(AI_NUMERICHOST), - numeric_service = ASIO_OS_DEF(AI_NUMERICSERV), - v4_mapped = ASIO_OS_DEF(AI_V4MAPPED), - all_matching = ASIO_OS_DEF(AI_ALL), - address_configured = ASIO_OS_DEF(AI_ADDRCONFIG) - }; - - // Implement bitmask operations as shown in C++ Std [lib.bitmask.types]. - - friend flags operator&(flags x, flags y) - { - return static_cast( - static_cast(x) & static_cast(y)); - } - - friend flags operator|(flags x, flags y) - { - return static_cast( - static_cast(x) | static_cast(y)); - } - - friend flags operator^(flags x, flags y) - { - return static_cast( - static_cast(x) ^ static_cast(y)); - } - - friend flags operator~(flags x) - { - return static_cast(~static_cast(x)); - } - - friend flags& operator&=(flags& x, flags y) - { - x = x & y; - return x; - } - - friend flags& operator|=(flags& x, flags y) - { - x = x | y; - return x; - } - - friend flags& operator^=(flags& x, flags y) - { - x = x ^ y; - return x; - } -#endif - -protected: - /// Protected destructor to prevent deletion through this type. - ~resolver_base() - { - } -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_RESOLVER_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/resolver_query_base.hpp b/Sources/Vendor/asio/include/asio/ip/resolver_query_base.hpp deleted file mode 100644 index be36858..0000000 --- a/Sources/Vendor/asio/include/asio/ip/resolver_query_base.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// -// ip/resolver_query_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_RESOLVER_QUERY_BASE_HPP -#define ASIO_IP_RESOLVER_QUERY_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ip/resolver_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// The resolver_query_base class is used as a base for the -/// basic_resolver_query class templates to provide a common place to define -/// the flag constants. -class resolver_query_base : public resolver_base -{ -protected: - /// Protected destructor to prevent deletion through this type. - ~resolver_query_base() - { - } -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_RESOLVER_QUERY_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/resolver_service.hpp b/Sources/Vendor/asio/include/asio/ip/resolver_service.hpp deleted file mode 100644 index 519d72d..0000000 --- a/Sources/Vendor/asio/include/asio/ip/resolver_service.hpp +++ /dev/null @@ -1,200 +0,0 @@ -// -// ip/resolver_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_RESOLVER_SERVICE_HPP -#define ASIO_IP_RESOLVER_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/async_result.hpp" -#include "asio/error_code.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/basic_resolver_results.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/winrt_resolver_service.hpp" -#else -# include "asio/detail/resolver_service.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Default service implementation for a resolver. -template -class resolver_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base< - resolver_service > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The protocol type. - typedef InternetProtocol protocol_type; - - /// The endpoint type. - typedef typename InternetProtocol::endpoint endpoint_type; - - /// The query type. - typedef basic_resolver_query query_type; - - /// The iterator type. - typedef basic_resolver_iterator iterator_type; - - /// The results type. - typedef basic_resolver_results results_type; - -private: - // The type of the platform-specific implementation. -#if defined(ASIO_WINDOWS_RUNTIME) - typedef asio::detail::winrt_resolver_service - service_impl_type; -#else - typedef asio::detail::resolver_service - service_impl_type; -#endif - -public: - /// The type of a resolver implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// Construct a new resolver service for the specified io_context. - explicit resolver_service(asio::io_context& io_context) - : asio::detail::service_base< - resolver_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new resolver implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new resolver implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another resolver implementation. - void move_assign(implementation_type& impl, - resolver_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a resolver implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Cancel pending asynchronous operations. - void cancel(implementation_type& impl) - { - service_impl_.cancel(impl); - } - - /// Resolve a query to a list of entries. - results_type resolve(implementation_type& impl, const query_type& query, - asio::error_code& ec) - { - return service_impl_.resolve(impl, query, ec); - } - - /// Asynchronously resolve a query to a list of entries. - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(implementation_type& impl, const query_type& query, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_resolve(impl, query, init.completion_handler); - - return init.result.get(); - } - - /// Resolve an endpoint to a list of entries. - results_type resolve(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - return service_impl_.resolve(impl, endpoint, ec); - } - - /// Asynchronously resolve an endpoint to a list of entries. - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(implementation_type& impl, const endpoint_type& endpoint, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_resolve(impl, endpoint, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // Perform any fork-related housekeeping. - void notify_fork(asio::io_context::fork_event event) - { - service_impl_.notify_fork(event); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_IP_RESOLVER_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/tcp.hpp b/Sources/Vendor/asio/include/asio/ip/tcp.hpp deleted file mode 100644 index f1adeb0..0000000 --- a/Sources/Vendor/asio/include/asio/ip/tcp.hpp +++ /dev/null @@ -1,155 +0,0 @@ -// -// ip/tcp.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_TCP_HPP -#define ASIO_IP_TCP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/basic_socket_acceptor.hpp" -#include "asio/basic_socket_iostream.hpp" -#include "asio/basic_stream_socket.hpp" -#include "asio/detail/socket_option.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/ip/basic_endpoint.hpp" -#include "asio/ip/basic_resolver.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver_query.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Encapsulates the flags needed for TCP. -/** - * The asio::ip::tcp class contains flags necessary for TCP sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol, InternetProtocol. - */ -class tcp -{ -public: - /// The type of a TCP endpoint. - typedef basic_endpoint endpoint; - - /// Construct to represent the IPv4 TCP protocol. - static tcp v4() - { - return tcp(ASIO_OS_DEF(AF_INET)); - } - - /// Construct to represent the IPv6 TCP protocol. - static tcp v6() - { - return tcp(ASIO_OS_DEF(AF_INET6)); - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return ASIO_OS_DEF(SOCK_STREAM); - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return ASIO_OS_DEF(IPPROTO_TCP); - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// The TCP socket type. - typedef basic_stream_socket socket; - - /// The TCP acceptor type. - typedef basic_socket_acceptor acceptor; - - /// The TCP resolver type. - typedef basic_resolver resolver; - -#if !defined(ASIO_NO_IOSTREAM) - /// The TCP iostream type. - typedef basic_socket_iostream iostream; -#endif // !defined(ASIO_NO_IOSTREAM) - - /// Socket option for disabling the Nagle algorithm. - /** - * Implements the IPPROTO_TCP/TCP_NODELAY socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::no_delay option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::no_delay option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined no_delay; -#else - typedef asio::detail::socket_option::boolean< - ASIO_OS_DEF(IPPROTO_TCP), ASIO_OS_DEF(TCP_NODELAY)> no_delay; -#endif - - /// Compare two protocols for equality. - friend bool operator==(const tcp& p1, const tcp& p2) - { - return p1.family_ == p2.family_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const tcp& p1, const tcp& p2) - { - return p1.family_ != p2.family_; - } - -private: - // Construct with a specific family. - explicit tcp(int protocol_family) - : family_(protocol_family) - { - } - - int family_; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_TCP_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/udp.hpp b/Sources/Vendor/asio/include/asio/ip/udp.hpp deleted file mode 100644 index 1c93f9b..0000000 --- a/Sources/Vendor/asio/include/asio/ip/udp.hpp +++ /dev/null @@ -1,111 +0,0 @@ -// -// ip/udp.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_UDP_HPP -#define ASIO_IP_UDP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/basic_datagram_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/ip/basic_endpoint.hpp" -#include "asio/ip/basic_resolver.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver_query.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Encapsulates the flags needed for UDP. -/** - * The asio::ip::udp class contains flags necessary for UDP sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol, InternetProtocol. - */ -class udp -{ -public: - /// The type of a UDP endpoint. - typedef basic_endpoint endpoint; - - /// Construct to represent the IPv4 UDP protocol. - static udp v4() - { - return udp(ASIO_OS_DEF(AF_INET)); - } - - /// Construct to represent the IPv6 UDP protocol. - static udp v6() - { - return udp(ASIO_OS_DEF(AF_INET6)); - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return ASIO_OS_DEF(SOCK_DGRAM); - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return ASIO_OS_DEF(IPPROTO_UDP); - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// The UDP socket type. - typedef basic_datagram_socket socket; - - /// The UDP resolver type. - typedef basic_resolver resolver; - - /// Compare two protocols for equality. - friend bool operator==(const udp& p1, const udp& p2) - { - return p1.family_ == p2.family_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const udp& p1, const udp& p2) - { - return p1.family_ != p2.family_; - } - -private: - // Construct with a specific family. - explicit udp(int protocol_family) - : family_(protocol_family) - { - } - - int family_; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_UDP_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/unicast.hpp b/Sources/Vendor/asio/include/asio/ip/unicast.hpp deleted file mode 100644 index 14e3e48..0000000 --- a/Sources/Vendor/asio/include/asio/ip/unicast.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// -// ip/unicast.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_UNICAST_HPP -#define ASIO_IP_UNICAST_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/ip/detail/socket_option.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { -namespace unicast { - -/// Socket option for time-to-live associated with outgoing unicast packets. -/** - * Implements the IPPROTO_IP/IP_UNICAST_TTL socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::unicast::hops option(4); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::unicast::hops option; - * socket.get_option(option); - * int ttl = option.value(); - * @endcode - * - * @par Concepts: - * GettableSocketOption, SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined hops; -#else -typedef asio::ip::detail::socket_option::unicast_hops< - ASIO_OS_DEF(IPPROTO_IP), - ASIO_OS_DEF(IP_TTL), - ASIO_OS_DEF(IPPROTO_IPV6), - ASIO_OS_DEF(IPV6_UNICAST_HOPS)> hops; -#endif - -} // namespace unicast -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_UNICAST_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/v6_only.hpp b/Sources/Vendor/asio/include/asio/ip/v6_only.hpp deleted file mode 100644 index ac7234e..0000000 --- a/Sources/Vendor/asio/include/asio/ip/v6_only.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// ip/v6_only.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IP_V6_ONLY_HPP -#define ASIO_IP_V6_ONLY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/socket_option.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Socket option for determining whether an IPv6 socket supports IPv6 -/// communication only. -/** - * Implements the IPPROTO_IPV6/IP_V6ONLY socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::v6_only option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::v6_only option; - * socket.get_option(option); - * bool v6_only = option.value(); - * @endcode - * - * @par Concepts: - * GettableSocketOption, SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined v6_only; -#elif defined(IPV6_V6ONLY) -typedef asio::detail::socket_option::boolean< - IPPROTO_IPV6, IPV6_V6ONLY> v6_only; -#else -typedef asio::detail::socket_option::boolean< - asio::detail::custom_socket_option_level, - asio::detail::always_fail_option> v6_only; -#endif - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_V6_ONLY_HPP diff --git a/Sources/Vendor/asio/include/asio/is_executor.hpp b/Sources/Vendor/asio/include/asio/is_executor.hpp deleted file mode 100644 index a1661ec..0000000 --- a/Sources/Vendor/asio/include/asio/is_executor.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// is_executor.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IS_EXECUTOR_HPP -#define ASIO_IS_EXECUTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/is_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// The is_executor trait detects whether a type T meets the Executor type -/// requirements. -/** - * Class template @c is_executor is a UnaryTypeTrait that is derived from @c - * true_type if the type @c T meets the syntactic requirements for Executor, - * otherwise @c false_type. - */ -template -struct is_executor -#if defined(GENERATING_DOCUMENTATION) - : integral_constant -#else // defined(GENERATING_DOCUMENTATION) - : asio::detail::is_executor -#endif // defined(GENERATING_DOCUMENTATION) -{ -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IS_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/is_read_buffered.hpp b/Sources/Vendor/asio/include/asio/is_read_buffered.hpp deleted file mode 100644 index c5a67b2..0000000 --- a/Sources/Vendor/asio/include/asio/is_read_buffered.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// is_read_buffered.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IS_READ_BUFFERED_HPP -#define ASIO_IS_READ_BUFFERED_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/buffered_read_stream_fwd.hpp" -#include "asio/buffered_stream_fwd.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail { - -template -char is_read_buffered_helper(buffered_stream* s); - -template -char is_read_buffered_helper(buffered_read_stream* s); - -struct is_read_buffered_big_type { char data[10]; }; -is_read_buffered_big_type is_read_buffered_helper(...); - -} // namespace detail - -/// The is_read_buffered class is a traits class that may be used to determine -/// whether a stream type supports buffering of read data. -template -class is_read_buffered -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The value member is true only if the Stream type supports buffering of - /// read data. - static const bool value; -#else - ASIO_STATIC_CONSTANT(bool, - value = sizeof(detail::is_read_buffered_helper((Stream*)0)) == 1); -#endif -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IS_READ_BUFFERED_HPP diff --git a/Sources/Vendor/asio/include/asio/is_write_buffered.hpp b/Sources/Vendor/asio/include/asio/is_write_buffered.hpp deleted file mode 100644 index e237dd6..0000000 --- a/Sources/Vendor/asio/include/asio/is_write_buffered.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// is_write_buffered.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_IS_WRITE_BUFFERED_HPP -#define ASIO_IS_WRITE_BUFFERED_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/buffered_stream_fwd.hpp" -#include "asio/buffered_write_stream_fwd.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail { - -template -char is_write_buffered_helper(buffered_stream* s); - -template -char is_write_buffered_helper(buffered_write_stream* s); - -struct is_write_buffered_big_type { char data[10]; }; -is_write_buffered_big_type is_write_buffered_helper(...); - -} // namespace detail - -/// The is_write_buffered class is a traits class that may be used to determine -/// whether a stream type supports buffering of written data. -template -class is_write_buffered -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The value member is true only if the Stream type supports buffering of - /// written data. - static const bool value; -#else - ASIO_STATIC_CONSTANT(bool, - value = sizeof(detail::is_write_buffered_helper((Stream*)0)) == 1); -#endif -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IS_WRITE_BUFFERED_HPP diff --git a/Sources/Vendor/asio/include/asio/local/basic_endpoint.hpp b/Sources/Vendor/asio/include/asio/local/basic_endpoint.hpp deleted file mode 100644 index 94e470a..0000000 --- a/Sources/Vendor/asio/include/asio/local/basic_endpoint.hpp +++ /dev/null @@ -1,239 +0,0 @@ -// -// local/basic_endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Derived from a public domain implementation written by Daniel Casimiro. -// -// Distributed under the 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 ASIO_LOCAL_BASIC_ENDPOINT_HPP -#define ASIO_LOCAL_BASIC_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/local/detail/endpoint.hpp" - -#if !defined(ASIO_NO_IOSTREAM) -# include -#endif // !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { - -/// Describes an endpoint for a UNIX socket. -/** - * The asio::local::basic_endpoint class template describes an endpoint - * that may be associated with a particular UNIX socket. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * Endpoint. - */ -template -class basic_endpoint -{ -public: - /// The protocol type associated with the endpoint. - typedef Protocol protocol_type; - - /// The type of the endpoint structure. This type is dependent on the - /// underlying implementation of the socket layer. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined data_type; -#else - typedef asio::detail::socket_addr_type data_type; -#endif - - /// Default constructor. - basic_endpoint() - { - } - - /// Construct an endpoint using the specified path name. - basic_endpoint(const char* path_name) - : impl_(path_name) - { - } - - /// Construct an endpoint using the specified path name. - basic_endpoint(const std::string& path_name) - : impl_(path_name) - { - } - - /// Copy constructor. - basic_endpoint(const basic_endpoint& other) - : impl_(other.impl_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - basic_endpoint(basic_endpoint&& other) - : impl_(other.impl_) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from another endpoint. - basic_endpoint& operator=(const basic_endpoint& other) - { - impl_ = other.impl_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move-assign from another endpoint. - basic_endpoint& operator=(basic_endpoint&& other) - { - impl_ = other.impl_; - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// The protocol associated with the endpoint. - protocol_type protocol() const - { - return protocol_type(); - } - - /// Get the underlying endpoint in the native type. - data_type* data() - { - return impl_.data(); - } - - /// Get the underlying endpoint in the native type. - const data_type* data() const - { - return impl_.data(); - } - - /// Get the underlying size of the endpoint in the native type. - std::size_t size() const - { - return impl_.size(); - } - - /// Set the underlying size of the endpoint in the native type. - void resize(std::size_t new_size) - { - impl_.resize(new_size); - } - - /// Get the capacity of the endpoint in the native type. - std::size_t capacity() const - { - return impl_.capacity(); - } - - /// Get the path associated with the endpoint. - std::string path() const - { - return impl_.path(); - } - - /// Set the path associated with the endpoint. - void path(const char* p) - { - impl_.path(p); - } - - /// Set the path associated with the endpoint. - void path(const std::string& p) - { - impl_.path(p); - } - - /// Compare two endpoints for equality. - friend bool operator==(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.impl_ == e2.impl_; - } - - /// Compare two endpoints for inequality. - friend bool operator!=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e1.impl_ == e2.impl_); - } - - /// Compare endpoints for ordering. - friend bool operator<(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.impl_ < e2.impl_; - } - - /// Compare endpoints for ordering. - friend bool operator>(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e2.impl_ < e1.impl_; - } - - /// Compare endpoints for ordering. - friend bool operator<=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e2 < e1); - } - - /// Compare endpoints for ordering. - friend bool operator>=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e1 < e2); - } - -private: - // The underlying UNIX domain endpoint. - asio::local::detail::endpoint impl_; -}; - -/// Output an endpoint as a string. -/** - * Used to output a human-readable string for a specified endpoint. - * - * @param os The output stream to which the string will be written. - * - * @param endpoint The endpoint to be written. - * - * @return The output stream. - * - * @relates asio::local::basic_endpoint - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, - const basic_endpoint& endpoint) -{ - os << endpoint.path(); - return os; -} - -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_LOCAL_BASIC_ENDPOINT_HPP diff --git a/Sources/Vendor/asio/include/asio/local/connect_pair.hpp b/Sources/Vendor/asio/include/asio/local/connect_pair.hpp deleted file mode 100644 index 2f7c090..0000000 --- a/Sources/Vendor/asio/include/asio/local/connect_pair.hpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// local/connect_pair.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_LOCAL_CONNECT_PAIR_HPP -#define ASIO_LOCAL_CONNECT_PAIR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_socket.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/local/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { - -/// Create a pair of connected sockets. -template -void connect_pair( - basic_socket& socket1, - basic_socket& socket2); - -/// Create a pair of connected sockets. -template -ASIO_SYNC_OP_VOID connect_pair( - basic_socket& socket1, - basic_socket& socket2, - asio::error_code& ec); - -template -inline void connect_pair( - basic_socket& socket1, - basic_socket& socket2) -{ - asio::error_code ec; - connect_pair(socket1, socket2, ec); - asio::detail::throw_error(ec, "connect_pair"); -} - -template -inline ASIO_SYNC_OP_VOID connect_pair( - basic_socket& socket1, - basic_socket& socket2, - asio::error_code& ec) -{ - // Check that this function is only being used with a UNIX domain socket. - asio::local::basic_endpoint* tmp - = static_cast(0); - (void)tmp; - - Protocol protocol; - asio::detail::socket_type sv[2]; - if (asio::detail::socket_ops::socketpair(protocol.family(), - protocol.type(), protocol.protocol(), sv, ec) - == asio::detail::socket_error_retval) - ASIO_SYNC_OP_VOID_RETURN(ec); - - socket1.assign(protocol, sv[0], ec); - if (ec) - { - asio::error_code temp_ec; - asio::detail::socket_ops::state_type state[2] = { 0, 0 }; - asio::detail::socket_ops::close(sv[0], state[0], true, temp_ec); - asio::detail::socket_ops::close(sv[1], state[1], true, temp_ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - socket2.assign(protocol, sv[1], ec); - if (ec) - { - asio::error_code temp_ec; - socket1.close(temp_ec); - asio::detail::socket_ops::state_type state = 0; - asio::detail::socket_ops::close(sv[1], state, true, temp_ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_LOCAL_CONNECT_PAIR_HPP diff --git a/Sources/Vendor/asio/include/asio/local/datagram_protocol.hpp b/Sources/Vendor/asio/include/asio/local/datagram_protocol.hpp deleted file mode 100644 index b87df2e..0000000 --- a/Sources/Vendor/asio/include/asio/local/datagram_protocol.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// -// local/datagram_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_LOCAL_DATAGRAM_PROTOCOL_HPP -#define ASIO_LOCAL_DATAGRAM_PROTOCOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_datagram_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/local/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { - -/// Encapsulates the flags needed for datagram-oriented UNIX sockets. -/** - * The asio::local::datagram_protocol class contains flags necessary for - * datagram-oriented UNIX domain sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class datagram_protocol -{ -public: - /// Obtain an identifier for the type of the protocol. - int type() const - { - return SOCK_DGRAM; - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return 0; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return AF_UNIX; - } - - /// The type of a UNIX domain endpoint. - typedef basic_endpoint endpoint; - - /// The UNIX domain socket type. - typedef basic_datagram_socket socket; -}; - -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_LOCAL_DATAGRAM_PROTOCOL_HPP diff --git a/Sources/Vendor/asio/include/asio/local/detail/endpoint.hpp b/Sources/Vendor/asio/include/asio/local/detail/endpoint.hpp deleted file mode 100644 index 4870f3b..0000000 --- a/Sources/Vendor/asio/include/asio/local/detail/endpoint.hpp +++ /dev/null @@ -1,133 +0,0 @@ -// -// local/detail/endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Derived from a public domain implementation written by Daniel Casimiro. -// -// Distributed under the 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 ASIO_LOCAL_DETAIL_ENDPOINT_HPP -#define ASIO_LOCAL_DETAIL_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -#include -#include -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { -namespace detail { - -// Helper class for implementing a UNIX domain endpoint. -class endpoint -{ -public: - // Default constructor. - ASIO_DECL endpoint(); - - // Construct an endpoint using the specified path name. - ASIO_DECL endpoint(const char* path_name); - - // Construct an endpoint using the specified path name. - ASIO_DECL endpoint(const std::string& path_name); - - // Copy constructor. - endpoint(const endpoint& other) - : data_(other.data_), - path_length_(other.path_length_) - { - } - - // Assign from another endpoint. - endpoint& operator=(const endpoint& other) - { - data_ = other.data_; - path_length_ = other.path_length_; - return *this; - } - - // Get the underlying endpoint in the native type. - asio::detail::socket_addr_type* data() - { - return &data_.base; - } - - // Get the underlying endpoint in the native type. - const asio::detail::socket_addr_type* data() const - { - return &data_.base; - } - - // Get the underlying size of the endpoint in the native type. - std::size_t size() const - { - return path_length_ - + offsetof(asio::detail::sockaddr_un_type, sun_path); - } - - // Set the underlying size of the endpoint in the native type. - ASIO_DECL void resize(std::size_t size); - - // Get the capacity of the endpoint in the native type. - std::size_t capacity() const - { - return sizeof(asio::detail::sockaddr_un_type); - } - - // Get the path associated with the endpoint. - ASIO_DECL std::string path() const; - - // Set the path associated with the endpoint. - ASIO_DECL void path(const char* p); - - // Set the path associated with the endpoint. - ASIO_DECL void path(const std::string& p); - - // Compare two endpoints for equality. - ASIO_DECL friend bool operator==( - const endpoint& e1, const endpoint& e2); - - // Compare endpoints for ordering. - ASIO_DECL friend bool operator<( - const endpoint& e1, const endpoint& e2); - -private: - // The underlying UNIX socket address. - union data_union - { - asio::detail::socket_addr_type base; - asio::detail::sockaddr_un_type local; - } data_; - - // The length of the path associated with the endpoint. - std::size_t path_length_; - - // Initialise with a specified path. - ASIO_DECL void init(const char* path, std::size_t path_length); -}; - -} // namespace detail -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/local/detail/impl/endpoint.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) - -#endif // ASIO_LOCAL_DETAIL_ENDPOINT_HPP diff --git a/Sources/Vendor/asio/include/asio/local/detail/impl/endpoint.ipp b/Sources/Vendor/asio/include/asio/local/detail/impl/endpoint.ipp deleted file mode 100644 index d5bbf50..0000000 --- a/Sources/Vendor/asio/include/asio/local/detail/impl/endpoint.ipp +++ /dev/null @@ -1,129 +0,0 @@ -// -// local/detail/impl/endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Derived from a public domain implementation written by Daniel Casimiro. -// -// Distributed under the 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 ASIO_LOCAL_DETAIL_IMPL_ENDPOINT_IPP -#define ASIO_LOCAL_DETAIL_IMPL_ENDPOINT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -#include -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/local/detail/endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { -namespace detail { - -endpoint::endpoint() -{ - init("", 0); -} - -endpoint::endpoint(const char* path_name) -{ - using namespace std; // For strlen. - init(path_name, strlen(path_name)); -} - -endpoint::endpoint(const std::string& path_name) -{ - init(path_name.data(), path_name.length()); -} - -void endpoint::resize(std::size_t new_size) -{ - if (new_size > sizeof(asio::detail::sockaddr_un_type)) - { - asio::error_code ec(asio::error::invalid_argument); - asio::detail::throw_error(ec); - } - else if (new_size == 0) - { - path_length_ = 0; - } - else - { - path_length_ = new_size - - offsetof(asio::detail::sockaddr_un_type, sun_path); - - // The path returned by the operating system may be NUL-terminated. - if (path_length_ > 0 && data_.local.sun_path[path_length_ - 1] == 0) - --path_length_; - } -} - -std::string endpoint::path() const -{ - return std::string(data_.local.sun_path, path_length_); -} - -void endpoint::path(const char* p) -{ - using namespace std; // For strlen. - init(p, strlen(p)); -} - -void endpoint::path(const std::string& p) -{ - init(p.data(), p.length()); -} - -bool operator==(const endpoint& e1, const endpoint& e2) -{ - return e1.path() == e2.path(); -} - -bool operator<(const endpoint& e1, const endpoint& e2) -{ - return e1.path() < e2.path(); -} - -void endpoint::init(const char* path_name, std::size_t path_length) -{ - if (path_length > sizeof(data_.local.sun_path) - 1) - { - // The buffer is not large enough to store this address. - asio::error_code ec(asio::error::name_too_long); - asio::detail::throw_error(ec); - } - - using namespace std; // For memcpy. - data_.local = asio::detail::sockaddr_un_type(); - data_.local.sun_family = AF_UNIX; - if (path_length > 0) - memcpy(data_.local.sun_path, path_name, path_length); - path_length_ = path_length; - - // NUL-terminate normal path names. Names that start with a NUL are in the - // UNIX domain protocol's "abstract namespace" and are not NUL-terminated. - if (path_length > 0 && data_.local.sun_path[0] == 0) - data_.local.sun_path[path_length] = 0; -} - -} // namespace detail -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) - -#endif // ASIO_LOCAL_DETAIL_IMPL_ENDPOINT_IPP diff --git a/Sources/Vendor/asio/include/asio/local/stream_protocol.hpp b/Sources/Vendor/asio/include/asio/local/stream_protocol.hpp deleted file mode 100644 index e2ef5f3..0000000 --- a/Sources/Vendor/asio/include/asio/local/stream_protocol.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// local/stream_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_LOCAL_STREAM_PROTOCOL_HPP -#define ASIO_LOCAL_STREAM_PROTOCOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_socket_acceptor.hpp" -#include "asio/basic_socket_iostream.hpp" -#include "asio/basic_stream_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/local/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { - -/// Encapsulates the flags needed for stream-oriented UNIX sockets. -/** - * The asio::local::stream_protocol class contains flags necessary for - * stream-oriented UNIX domain sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class stream_protocol -{ -public: - /// Obtain an identifier for the type of the protocol. - int type() const - { - return SOCK_STREAM; - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return 0; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return AF_UNIX; - } - - /// The type of a UNIX domain endpoint. - typedef basic_endpoint endpoint; - - /// The UNIX domain socket type. - typedef basic_stream_socket socket; - - /// The UNIX domain acceptor type. - typedef basic_socket_acceptor acceptor; - -#if !defined(ASIO_NO_IOSTREAM) - /// The UNIX domain iostream type. - typedef basic_socket_iostream iostream; -#endif // !defined(ASIO_NO_IOSTREAM) -}; - -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_LOCAL_STREAM_PROTOCOL_HPP diff --git a/Sources/Vendor/asio/include/asio/packaged_task.hpp b/Sources/Vendor/asio/include/asio/packaged_task.hpp deleted file mode 100644 index 29b15b8..0000000 --- a/Sources/Vendor/asio/include/asio/packaged_task.hpp +++ /dev/null @@ -1,126 +0,0 @@ -// -// packaged_task.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_PACKAGED_TASK_HPP -#define ASIO_PACKAGED_TASK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/future.hpp" - -#if defined(ASIO_HAS_STD_FUTURE_CLASS) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/detail/variadic_templates.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) \ - || defined(GENERATING_DOCUMENTATION) - -/// Partial specialisation of @c async_result for @c std::packaged_task. -template -class async_result, Signature> -{ -public: - /// The packaged task is the concrete completion handler type. - typedef std::packaged_task completion_handler_type; - - /// The return type of the initiating function is the future obtained from - /// the packaged task. - typedef std::future return_type; - - /// The constructor extracts the future from the packaged task. - explicit async_result(completion_handler_type& h) - : future_(h.get_future()) - { - } - - /// Returns the packaged task's future. - return_type get() - { - return std::move(future_); - } - -private: - return_type future_; -}; - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - // || defined(GENERATING_DOCUMENTATION) - -template -struct async_result, Signature> -{ - typedef std::packaged_task completion_handler_type; - typedef std::future return_type; - - explicit async_result(completion_handler_type& h) - : future_(h.get_future()) - { - } - - return_type get() - { - return std::move(future_); - } - -private: - return_type future_; -}; - -#define ASIO_PRIVATE_ASYNC_RESULT_DEF(n) \ - template \ - class async_result< \ - std::packaged_task, Signature> \ - { \ - public: \ - typedef std::packaged_task< \ - Result(ASIO_VARIADIC_TARGS(n))> \ - completion_handler_type; \ - \ - typedef std::future return_type; \ - \ - explicit async_result(completion_handler_type& h) \ - : future_(h.get_future()) \ - { \ - } \ - \ - return_type get() \ - { \ - return std::move(future_); \ - } \ - \ - private: \ - return_type future_; \ - }; \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_ASYNC_RESULT_DEF) -#undef ASIO_PRIVATE_ASYNC_RESULT_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - // || defined(GENERATING_DOCUMENTATION) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_STD_FUTURE_CLASS) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_PACKAGED_TASK_HPP diff --git a/Sources/Vendor/asio/include/asio/placeholders.hpp b/Sources/Vendor/asio/include/asio/placeholders.hpp deleted file mode 100644 index e71a21e..0000000 --- a/Sources/Vendor/asio/include/asio/placeholders.hpp +++ /dev/null @@ -1,151 +0,0 @@ -// -// placeholders.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_PLACEHOLDERS_HPP -#define ASIO_PLACEHOLDERS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_BOOST_BIND) -# include -#endif // defined(ASIO_HAS_BOOST_BIND) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace placeholders { - -#if defined(GENERATING_DOCUMENTATION) - -/// An argument placeholder, for use with boost::bind(), that corresponds to -/// the error argument of a handler for any of the asynchronous functions. -unspecified error; - -/// An argument placeholder, for use with boost::bind(), that corresponds to -/// the bytes_transferred argument of a handler for asynchronous functions such -/// as asio::basic_stream_socket::async_write_some or -/// asio::async_write. -unspecified bytes_transferred; - -/// An argument placeholder, for use with boost::bind(), that corresponds to -/// the iterator argument of a handler for asynchronous functions such as -/// asio::async_connect. -unspecified iterator; - -/// An argument placeholder, for use with boost::bind(), that corresponds to -/// the results argument of a handler for asynchronous functions such as -/// asio::basic_resolver::async_resolve. -unspecified results; - -/// An argument placeholder, for use with boost::bind(), that corresponds to -/// the results argument of a handler for asynchronous functions such as -/// asio::async_connect. -unspecified endpoint; - -/// An argument placeholder, for use with boost::bind(), that corresponds to -/// the signal_number argument of a handler for asynchronous functions such as -/// asio::signal_set::async_wait. -unspecified signal_number; - -#elif defined(ASIO_HAS_BOOST_BIND) -# if defined(__BORLANDC__) || defined(__GNUC__) - -inline boost::arg<1> error() -{ - return boost::arg<1>(); -} - -inline boost::arg<2> bytes_transferred() -{ - return boost::arg<2>(); -} - -inline boost::arg<2> iterator() -{ - return boost::arg<2>(); -} - -inline boost::arg<2> results() -{ - return boost::arg<2>(); -} - -inline boost::arg<2> endpoint() -{ - return boost::arg<2>(); -} - -inline boost::arg<2> signal_number() -{ - return boost::arg<2>(); -} - -# else - -namespace detail -{ - template - struct placeholder - { - static boost::arg& get() - { - static boost::arg result; - return result; - } - }; -} - -# if defined(ASIO_MSVC) && (ASIO_MSVC < 1400) - -static boost::arg<1>& error - = asio::placeholders::detail::placeholder<1>::get(); -static boost::arg<2>& bytes_transferred - = asio::placeholders::detail::placeholder<2>::get(); -static boost::arg<2>& iterator - = asio::placeholders::detail::placeholder<2>::get(); -static boost::arg<2>& results - = asio::placeholders::detail::placeholder<2>::get(); -static boost::arg<2>& endpoint - = asio::placeholders::detail::placeholder<2>::get(); -static boost::arg<2>& signal_number - = asio::placeholders::detail::placeholder<2>::get(); - -# else - -namespace -{ - boost::arg<1>& error - = asio::placeholders::detail::placeholder<1>::get(); - boost::arg<2>& bytes_transferred - = asio::placeholders::detail::placeholder<2>::get(); - boost::arg<2>& iterator - = asio::placeholders::detail::placeholder<2>::get(); - boost::arg<2>& results - = asio::placeholders::detail::placeholder<2>::get(); - boost::arg<2>& endpoint - = asio::placeholders::detail::placeholder<2>::get(); - boost::arg<2>& signal_number - = asio::placeholders::detail::placeholder<2>::get(); -} // namespace - -# endif -# endif -#endif - -} // namespace placeholders -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_PLACEHOLDERS_HPP diff --git a/Sources/Vendor/asio/include/asio/posix/basic_descriptor.hpp b/Sources/Vendor/asio/include/asio/posix/basic_descriptor.hpp deleted file mode 100644 index c15da63..0000000 --- a/Sources/Vendor/asio/include/asio/posix/basic_descriptor.hpp +++ /dev/null @@ -1,582 +0,0 @@ -// -// posix/basic_descriptor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_POSIX_BASIC_DESCRIPTOR_HPP -#define ASIO_POSIX_BASIC_DESCRIPTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_io_object.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/posix/descriptor_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace posix { - -/// Provides POSIX descriptor functionality. -/** - * The posix::basic_descriptor class template provides the ability to wrap a - * POSIX descriptor. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_descriptor - : public basic_io_object, - public descriptor_base -{ -public: - /// The native representation of a descriptor. - typedef typename DescriptorService::native_handle_type native_handle_type; - - /// A basic_descriptor is always the lowest layer. - typedef basic_descriptor lowest_layer_type; - - /// Construct a basic_descriptor without opening it. - /** - * This constructor creates a descriptor without opening it. - * - * @param io_context The io_context object that the descriptor will use to - * dispatch handlers for any asynchronous operations performed on the - * descriptor. - */ - explicit basic_descriptor(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct a basic_descriptor on an existing native descriptor. - /** - * This constructor creates a descriptor object to hold an existing native - * descriptor. - * - * @param io_context The io_context object that the descriptor will use to - * dispatch handlers for any asynchronous operations performed on the - * descriptor. - * - * @param native_descriptor A native descriptor. - * - * @throws asio::system_error Thrown on failure. - */ - basic_descriptor(asio::io_context& io_context, - const native_handle_type& native_descriptor) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_descriptor, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_descriptor from another. - /** - * This constructor moves a descriptor from one object to another. - * - * @param other The other basic_descriptor object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_descriptor(io_context&) constructor. - */ - basic_descriptor(basic_descriptor&& other) - : basic_io_object( - ASIO_MOVE_CAST(basic_descriptor)(other)) - { - } - - /// Move-assign a basic_descriptor from another. - /** - * This assignment operator moves a descriptor from one object to another. - * - * @param other The other basic_descriptor object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_descriptor(io_context&) constructor. - */ - basic_descriptor& operator=(basic_descriptor&& other) - { - basic_io_object::operator=( - ASIO_MOVE_CAST(basic_descriptor)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a basic_descriptor cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a basic_descriptor cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Assign an existing native descriptor to the descriptor. - /* - * This function opens the descriptor to hold an existing native descriptor. - * - * @param native_descriptor A native descriptor. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& native_descriptor) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_descriptor, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native descriptor to the descriptor. - /* - * This function opens the descriptor to hold an existing native descriptor. - * - * @param native_descriptor A native descriptor. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const native_handle_type& native_descriptor, - asio::error_code& ec) - { - this->get_service().assign( - this->get_implementation(), native_descriptor, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the descriptor is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the descriptor. - /** - * This function is used to close the descriptor. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. Note that, even if - * the function indicates an error, the underlying descriptor is closed. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the descriptor. - /** - * This function is used to close the descriptor. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. Note that, even if - * the function indicates an error, the underlying descriptor is closed. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native descriptor representation. - /** - * This function may be used to obtain the underlying representation of the - * descriptor. This is intended to allow access to native descriptor - * functionality that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Release ownership of the native descriptor implementation. - /** - * This function may be used to obtain the underlying representation of the - * descriptor. After calling this function, @c is_open() returns false. The - * caller is responsible for closing the descriptor. - * - * All outstanding asynchronous read or write operations will finish - * immediately, and the handlers for cancelled operations will be passed the - * asio::error::operation_aborted error. - */ - native_handle_type release() - { - return this->get_service().release(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the descriptor. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the descriptor. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the descriptor. - /** - * This function is used to execute an IO control command on the descriptor. - * - * @param command The IO control command to be performed on the descriptor. - * - * @throws asio::system_error Thrown on failure. - * - * @sa IoControlCommand @n - * asio::posix::descriptor_base::bytes_readable @n - * asio::posix::descriptor_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * asio::posix::stream_descriptor::bytes_readable command; - * descriptor.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - void io_control(IoControlCommand& command) - { - asio::error_code ec; - this->get_service().io_control(this->get_implementation(), command, ec); - asio::detail::throw_error(ec, "io_control"); - } - - /// Perform an IO control command on the descriptor. - /** - * This function is used to execute an IO control command on the descriptor. - * - * @param command The IO control command to be performed on the descriptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa IoControlCommand @n - * asio::posix::descriptor_base::bytes_readable @n - * asio::posix::descriptor_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * asio::posix::stream_descriptor::bytes_readable command; - * asio::error_code ec; - * descriptor.io_control(command, ec); - * if (ec) - * { - * // An error occurred. - * } - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - ASIO_SYNC_OP_VOID io_control(IoControlCommand& command, - asio::error_code& ec) - { - this->get_service().io_control(this->get_implementation(), command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the descriptor. - /** - * @returns @c true if the descriptor's synchronous operations will fail with - * asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - bool non_blocking() const - { - return this->get_service().non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the descriptor. - /** - * @param mode If @c true, the descriptor's synchronous operations will fail - * with asio::error::would_block if they are unable to perform the - * requested operation immediately. If @c false, synchronous operations will - * block until complete. - * - * @throws asio::system_error Thrown on failure. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - void non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().non_blocking(this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "non_blocking"); - } - - /// Sets the non-blocking mode of the descriptor. - /** - * @param mode If @c true, the descriptor's synchronous operations will fail - * with asio::error::would_block if they are unable to perform the - * requested operation immediately. If @c false, synchronous operations will - * block until complete. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - ASIO_SYNC_OP_VOID non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().non_blocking(this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native descriptor implementation. - /** - * This function is used to retrieve the non-blocking mode of the underlying - * native descriptor. This mode has no effect on the behaviour of the - * descriptor object's synchronous operations. - * - * @returns @c true if the underlying descriptor is in non-blocking mode and - * direct system calls may fail with asio::error::would_block (or the - * equivalent system error). - * - * @note The current non-blocking mode is cached by the descriptor object. - * Consequently, the return value may be incorrect if the non-blocking mode - * was set directly on the native descriptor. - */ - bool native_non_blocking() const - { - return this->get_service().native_non_blocking( - this->get_implementation()); - } - - /// Sets the non-blocking mode of the native descriptor implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native descriptor. It has no effect on the behaviour of the descriptor - * object's synchronous operations. - * - * @param mode If @c true, the underlying descriptor is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @throws asio::system_error Thrown on failure. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - */ - void native_non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "native_non_blocking"); - } - - /// Sets the non-blocking mode of the native descriptor implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native descriptor. It has no effect on the behaviour of the descriptor - * object's synchronous operations. - * - * @param mode If @c true, the underlying descriptor is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @param ec Set to indicate what error occurred, if any. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - */ - ASIO_SYNC_OP_VOID native_non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the descriptor to become ready to read, ready to write, or to - /// have pending error conditions. - /** - * This function is used to perform a blocking wait for a descriptor to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired descriptor state. - * - * @par Example - * Waiting for a descriptor to become readable. - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * descriptor.wait(asio::posix::stream_descriptor::wait_read); - * @endcode - */ - void wait(wait_type w) - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), w, ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Wait for the descriptor to become ready to read, ready to write, or to - /// have pending error conditions. - /** - * This function is used to perform a blocking wait for a descriptor to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired descriptor state. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * Waiting for a descriptor to become readable. - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * asio::error_code ec; - * descriptor.wait(asio::posix::stream_descriptor::wait_read, ec); - * @endcode - */ - ASIO_SYNC_OP_VOID wait(wait_type w, asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the descriptor to become ready to read, ready to - /// write, or to have pending error conditions. - /** - * This function is used to perform an asynchronous wait for a descriptor to - * enter a ready to read, write or error condition state. - * - * @param w Specifies the desired descriptor state. - * - * @param handler The handler to be called when the wait operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void wait_handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Wait succeeded. - * } - * } - * - * ... - * - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * descriptor.async_wait( - * asio::posix::stream_descriptor::wait_read, - * wait_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(wait_type w, ASIO_MOVE_ARG(WaitHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WaitHandler. - ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check; - - return this->get_service().async_wait(this->get_implementation(), - w, ASIO_MOVE_CAST(WaitHandler)(handler)); - } - -protected: - /// Protected destructor to prevent deletion through this type. - ~basic_descriptor() - { - } -}; - -} // namespace posix -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_POSIX_BASIC_DESCRIPTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/posix/basic_stream_descriptor.hpp b/Sources/Vendor/asio/include/asio/posix/basic_stream_descriptor.hpp deleted file mode 100644 index acd5cb6..0000000 --- a/Sources/Vendor/asio/include/asio/posix/basic_stream_descriptor.hpp +++ /dev/null @@ -1,362 +0,0 @@ -// -// posix/basic_stream_descriptor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_POSIX_BASIC_STREAM_DESCRIPTOR_HPP -#define ASIO_POSIX_BASIC_STREAM_DESCRIPTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/posix/basic_descriptor.hpp" -#include "asio/posix/stream_descriptor_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace posix { - -/// Provides stream-oriented descriptor functionality. -/** - * The posix::basic_stream_descriptor class template provides asynchronous and - * blocking stream-oriented descriptor functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class basic_stream_descriptor - : public basic_descriptor -{ -public: - /// The native representation of a descriptor. - typedef typename StreamDescriptorService::native_handle_type - native_handle_type; - - /// Construct a basic_stream_descriptor without opening it. - /** - * This constructor creates a stream descriptor without opening it. The - * descriptor needs to be opened and then connected or accepted before data - * can be sent or received on it. - * - * @param io_context The io_context object that the stream descriptor will - * use to dispatch handlers for any asynchronous operations performed on the - * descriptor. - */ - explicit basic_stream_descriptor(asio::io_context& io_context) - : basic_descriptor(io_context) - { - } - - /// Construct a basic_stream_descriptor on an existing native descriptor. - /** - * This constructor creates a stream descriptor object to hold an existing - * native descriptor. - * - * @param io_context The io_context object that the stream descriptor will - * use to dispatch handlers for any asynchronous operations performed on the - * descriptor. - * - * @param native_descriptor The new underlying descriptor implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_stream_descriptor(asio::io_context& io_context, - const native_handle_type& native_descriptor) - : basic_descriptor(io_context, native_descriptor) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_stream_descriptor from another. - /** - * This constructor moves a stream descriptor from one object to another. - * - * @param other The other basic_stream_descriptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_descriptor(io_context&) constructor. - */ - basic_stream_descriptor(basic_stream_descriptor&& other) - : basic_descriptor( - ASIO_MOVE_CAST(basic_stream_descriptor)(other)) - { - } - - /// Move-assign a basic_stream_descriptor from another. - /** - * This assignment operator moves a stream descriptor from one object to - * another. - * - * @param other The other basic_stream_descriptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_descriptor(io_context&) constructor. - */ - basic_stream_descriptor& operator=(basic_stream_descriptor&& other) - { - basic_descriptor::operator=( - ASIO_MOVE_CAST(basic_stream_descriptor)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Write some data to the descriptor. - /** - * This function is used to write data to the stream descriptor. The function - * call will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the descriptor. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.write_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the descriptor. - /** - * This function is used to write data to the stream descriptor. The function - * call will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the descriptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().write_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the stream - * descriptor. The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the descriptor. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.async_write_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_write_some(this->get_implementation(), - buffers, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Read some data from the descriptor. - /** - * This function is used to read data from the stream descriptor. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.read_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the descriptor. - /** - * This function is used to read data from the stream descriptor. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().read_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the stream - * descriptor. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.async_read_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_read_some(this->get_implementation(), - buffers, ASIO_MOVE_CAST(ReadHandler)(handler)); - } -}; - -} // namespace posix -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_POSIX_BASIC_STREAM_DESCRIPTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/posix/descriptor.hpp b/Sources/Vendor/asio/include/asio/posix/descriptor.hpp deleted file mode 100644 index d0cee1a..0000000 --- a/Sources/Vendor/asio/include/asio/posix/descriptor.hpp +++ /dev/null @@ -1,644 +0,0 @@ -// -// posix/descriptor.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_POSIX_DESCRIPTOR_HPP -#define ASIO_POSIX_DESCRIPTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/reactive_descriptor_service.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/posix/descriptor_base.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#define ASIO_SVC_T asio::detail::reactive_descriptor_service - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace posix { - -/// Provides POSIX descriptor functionality. -/** - * The posix::descriptor class template provides the ability to wrap a - * POSIX descriptor. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class descriptor - : ASIO_SVC_ACCESS basic_io_object, - public descriptor_base -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The native representation of a descriptor. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef ASIO_SVC_T::native_handle_type native_handle_type; -#endif - - /// A descriptor is always the lowest layer. - typedef descriptor lowest_layer_type; - - /// Construct a descriptor without opening it. - /** - * This constructor creates a descriptor without opening it. - * - * @param io_context The io_context object that the descriptor will use to - * dispatch handlers for any asynchronous operations performed on the - * descriptor. - */ - explicit descriptor(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct a descriptor on an existing native descriptor. - /** - * This constructor creates a descriptor object to hold an existing native - * descriptor. - * - * @param io_context The io_context object that the descriptor will use to - * dispatch handlers for any asynchronous operations performed on the - * descriptor. - * - * @param native_descriptor A native descriptor. - * - * @throws asio::system_error Thrown on failure. - */ - descriptor(asio::io_context& io_context, - const native_handle_type& native_descriptor) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_descriptor, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a descriptor from another. - /** - * This constructor moves a descriptor from one object to another. - * - * @param other The other descriptor object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c descriptor(io_context&) constructor. - */ - descriptor(descriptor&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign a descriptor from another. - /** - * This assignment operator moves a descriptor from one object to another. - * - * @param other The other descriptor object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c descriptor(io_context&) constructor. - */ - descriptor& operator=(descriptor&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a descriptor cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a descriptor cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Assign an existing native descriptor to the descriptor. - /* - * This function opens the descriptor to hold an existing native descriptor. - * - * @param native_descriptor A native descriptor. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& native_descriptor) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_descriptor, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native descriptor to the descriptor. - /* - * This function opens the descriptor to hold an existing native descriptor. - * - * @param native_descriptor A native descriptor. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const native_handle_type& native_descriptor, - asio::error_code& ec) - { - this->get_service().assign( - this->get_implementation(), native_descriptor, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the descriptor is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the descriptor. - /** - * This function is used to close the descriptor. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. Note that, even if - * the function indicates an error, the underlying descriptor is closed. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the descriptor. - /** - * This function is used to close the descriptor. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. Note that, even if - * the function indicates an error, the underlying descriptor is closed. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native descriptor representation. - /** - * This function may be used to obtain the underlying representation of the - * descriptor. This is intended to allow access to native descriptor - * functionality that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Release ownership of the native descriptor implementation. - /** - * This function may be used to obtain the underlying representation of the - * descriptor. After calling this function, @c is_open() returns false. The - * caller is responsible for closing the descriptor. - * - * All outstanding asynchronous read or write operations will finish - * immediately, and the handlers for cancelled operations will be passed the - * asio::error::operation_aborted error. - */ - native_handle_type release() - { - return this->get_service().release(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the descriptor. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the descriptor. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the descriptor. - /** - * This function is used to execute an IO control command on the descriptor. - * - * @param command The IO control command to be performed on the descriptor. - * - * @throws asio::system_error Thrown on failure. - * - * @sa IoControlCommand @n - * asio::posix::descriptor_base::bytes_readable @n - * asio::posix::descriptor_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * asio::posix::stream_descriptor::bytes_readable command; - * descriptor.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - void io_control(IoControlCommand& command) - { - asio::error_code ec; - this->get_service().io_control(this->get_implementation(), command, ec); - asio::detail::throw_error(ec, "io_control"); - } - - /// Perform an IO control command on the descriptor. - /** - * This function is used to execute an IO control command on the descriptor. - * - * @param command The IO control command to be performed on the descriptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa IoControlCommand @n - * asio::posix::descriptor_base::bytes_readable @n - * asio::posix::descriptor_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * asio::posix::stream_descriptor::bytes_readable command; - * asio::error_code ec; - * descriptor.io_control(command, ec); - * if (ec) - * { - * // An error occurred. - * } - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - ASIO_SYNC_OP_VOID io_control(IoControlCommand& command, - asio::error_code& ec) - { - this->get_service().io_control(this->get_implementation(), command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the descriptor. - /** - * @returns @c true if the descriptor's synchronous operations will fail with - * asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - bool non_blocking() const - { - return this->get_service().non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the descriptor. - /** - * @param mode If @c true, the descriptor's synchronous operations will fail - * with asio::error::would_block if they are unable to perform the - * requested operation immediately. If @c false, synchronous operations will - * block until complete. - * - * @throws asio::system_error Thrown on failure. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - void non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().non_blocking(this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "non_blocking"); - } - - /// Sets the non-blocking mode of the descriptor. - /** - * @param mode If @c true, the descriptor's synchronous operations will fail - * with asio::error::would_block if they are unable to perform the - * requested operation immediately. If @c false, synchronous operations will - * block until complete. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - ASIO_SYNC_OP_VOID non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().non_blocking(this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native descriptor implementation. - /** - * This function is used to retrieve the non-blocking mode of the underlying - * native descriptor. This mode has no effect on the behaviour of the - * descriptor object's synchronous operations. - * - * @returns @c true if the underlying descriptor is in non-blocking mode and - * direct system calls may fail with asio::error::would_block (or the - * equivalent system error). - * - * @note The current non-blocking mode is cached by the descriptor object. - * Consequently, the return value may be incorrect if the non-blocking mode - * was set directly on the native descriptor. - */ - bool native_non_blocking() const - { - return this->get_service().native_non_blocking( - this->get_implementation()); - } - - /// Sets the non-blocking mode of the native descriptor implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native descriptor. It has no effect on the behaviour of the descriptor - * object's synchronous operations. - * - * @param mode If @c true, the underlying descriptor is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @throws asio::system_error Thrown on failure. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - */ - void native_non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "native_non_blocking"); - } - - /// Sets the non-blocking mode of the native descriptor implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native descriptor. It has no effect on the behaviour of the descriptor - * object's synchronous operations. - * - * @param mode If @c true, the underlying descriptor is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @param ec Set to indicate what error occurred, if any. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - */ - ASIO_SYNC_OP_VOID native_non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the descriptor to become ready to read, ready to write, or to - /// have pending error conditions. - /** - * This function is used to perform a blocking wait for a descriptor to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired descriptor state. - * - * @par Example - * Waiting for a descriptor to become readable. - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * descriptor.wait(asio::posix::stream_descriptor::wait_read); - * @endcode - */ - void wait(wait_type w) - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), w, ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Wait for the descriptor to become ready to read, ready to write, or to - /// have pending error conditions. - /** - * This function is used to perform a blocking wait for a descriptor to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired descriptor state. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * Waiting for a descriptor to become readable. - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * asio::error_code ec; - * descriptor.wait(asio::posix::stream_descriptor::wait_read, ec); - * @endcode - */ - ASIO_SYNC_OP_VOID wait(wait_type w, asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the descriptor to become ready to read, ready to - /// write, or to have pending error conditions. - /** - * This function is used to perform an asynchronous wait for a descriptor to - * enter a ready to read, write or error condition state. - * - * @param w Specifies the desired descriptor state. - * - * @param handler The handler to be called when the wait operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void wait_handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Wait succeeded. - * } - * } - * - * ... - * - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * descriptor.async_wait( - * asio::posix::stream_descriptor::wait_read, - * wait_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(wait_type w, ASIO_MOVE_ARG(WaitHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WaitHandler. - ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check; - - async_completion init(handler); - - this->get_service().async_wait( - this->get_implementation(), w, init.completion_handler); - - return init.result.get(); - } - -protected: - /// Protected destructor to prevent deletion through this type. - /** - * This function destroys the descriptor, cancelling any outstanding - * asynchronous wait operations associated with the descriptor as if by - * calling @c cancel. - */ - ~descriptor() - { - } -}; - -} // namespace posix -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#undef ASIO_SVC_T - -#endif // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_POSIX_DESCRIPTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/posix/descriptor_base.hpp b/Sources/Vendor/asio/include/asio/posix/descriptor_base.hpp deleted file mode 100644 index 4aac04f..0000000 --- a/Sources/Vendor/asio/include/asio/posix/descriptor_base.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// posix/descriptor_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_POSIX_DESCRIPTOR_BASE_HPP -#define ASIO_POSIX_DESCRIPTOR_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/detail/io_control.hpp" -#include "asio/detail/socket_option.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace posix { - -/// The descriptor_base class is used as a base for the descriptor class as a -/// place to define the associated IO control commands. -class descriptor_base -{ -public: - /// Wait types. - /** - * For use with descriptor::wait() and descriptor::async_wait(). - */ - enum wait_type - { - /// Wait for a descriptor to become ready to read. - wait_read, - - /// Wait for a descriptor to become ready to write. - wait_write, - - /// Wait for a descriptor to have error conditions pending. - wait_error - }; - - /// IO control command to get the amount of data that can be read without - /// blocking. - /** - * Implements the FIONREAD IO control command. - * - * @par Example - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * asio::descriptor_base::bytes_readable command(true); - * descriptor.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - * - * @par Concepts: - * IoControlCommand. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined bytes_readable; -#else - typedef asio::detail::io_control::bytes_readable bytes_readable; -#endif - -protected: - /// Protected destructor to prevent deletion through this type. - ~descriptor_base() - { - } -}; - -} // namespace posix -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_POSIX_DESCRIPTOR_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/posix/stream_descriptor.hpp b/Sources/Vendor/asio/include/asio/posix/stream_descriptor.hpp deleted file mode 100644 index abb426a..0000000 --- a/Sources/Vendor/asio/include/asio/posix/stream_descriptor.hpp +++ /dev/null @@ -1,360 +0,0 @@ -// -// posix/stream_descriptor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_POSIX_STREAM_DESCRIPTOR_HPP -#define ASIO_POSIX_STREAM_DESCRIPTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/posix/descriptor.hpp" - -#if defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/posix/basic_stream_descriptor.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -namespace asio { -namespace posix { - -#if defined(ASIO_ENABLE_OLD_SERVICES) -// Typedef for the typical usage of a stream-oriented descriptor. -typedef basic_stream_descriptor<> stream_descriptor; -#else // defined(ASIO_ENABLE_OLD_SERVICES) -/// Provides stream-oriented descriptor functionality. -/** - * The posix::stream_descriptor class template provides asynchronous and - * blocking stream-oriented descriptor functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -class stream_descriptor - : public descriptor -{ -public: - /// Construct a stream_descriptor without opening it. - /** - * This constructor creates a stream descriptor without opening it. The - * descriptor needs to be opened and then connected or accepted before data - * can be sent or received on it. - * - * @param io_context The io_context object that the stream descriptor will - * use to dispatch handlers for any asynchronous operations performed on the - * descriptor. - */ - explicit stream_descriptor(asio::io_context& io_context) - : descriptor(io_context) - { - } - - /// Construct a stream_descriptor on an existing native descriptor. - /** - * This constructor creates a stream descriptor object to hold an existing - * native descriptor. - * - * @param io_context The io_context object that the stream descriptor will - * use to dispatch handlers for any asynchronous operations performed on the - * descriptor. - * - * @param native_descriptor The new underlying descriptor implementation. - * - * @throws asio::system_error Thrown on failure. - */ - stream_descriptor(asio::io_context& io_context, - const native_handle_type& native_descriptor) - : descriptor(io_context, native_descriptor) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a stream_descriptor from another. - /** - * This constructor moves a stream descriptor from one object to another. - * - * @param other The other stream_descriptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c stream_descriptor(io_context&) constructor. - */ - stream_descriptor(stream_descriptor&& other) - : descriptor(std::move(other)) - { - } - - /// Move-assign a stream_descriptor from another. - /** - * This assignment operator moves a stream descriptor from one object to - * another. - * - * @param other The other stream_descriptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c stream_descriptor(io_context&) constructor. - */ - stream_descriptor& operator=(stream_descriptor&& other) - { - descriptor::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Write some data to the descriptor. - /** - * This function is used to write data to the stream descriptor. The function - * call will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the descriptor. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.write_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the descriptor. - /** - * This function is used to write data to the stream descriptor. The function - * call will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the descriptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().write_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the stream - * descriptor. The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the descriptor. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.async_write_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - asio::async_completion init(handler); - - this->get_service().async_write_some( - this->get_implementation(), buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the descriptor. - /** - * This function is used to read data from the stream descriptor. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.read_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the descriptor. - /** - * This function is used to read data from the stream descriptor. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().read_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the stream - * descriptor. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.async_read_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - asio::async_completion init(handler); - - this->get_service().async_read_some( - this->get_implementation(), buffers, init.completion_handler); - - return init.result.get(); - } -}; -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -} // namespace posix -} // namespace asio - -#endif // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_POSIX_STREAM_DESCRIPTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/posix/stream_descriptor_service.hpp b/Sources/Vendor/asio/include/asio/posix/stream_descriptor_service.hpp deleted file mode 100644 index 4ffbb96..0000000 --- a/Sources/Vendor/asio/include/asio/posix/stream_descriptor_service.hpp +++ /dev/null @@ -1,279 +0,0 @@ -// -// posix/stream_descriptor_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_POSIX_STREAM_DESCRIPTOR_SERVICE_HPP -#define ASIO_POSIX_STREAM_DESCRIPTOR_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/async_result.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/reactive_descriptor_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace posix { - -/// Default service implementation for a stream descriptor. -class stream_descriptor_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - -private: - // The type of the platform-specific implementation. - typedef detail::reactive_descriptor_service service_impl_type; - -public: - /// The type of a stream descriptor implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef service_impl_type::implementation_type implementation_type; -#endif - - /// The native descriptor type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new stream descriptor service for the specified io_context. - explicit stream_descriptor_service(asio::io_context& io_context) - : asio::detail::service_base(io_context), - service_impl_(io_context) - { - } - - /// Construct a new stream descriptor implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new stream descriptor implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another stream descriptor implementation. - void move_assign(implementation_type& impl, - stream_descriptor_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a stream descriptor implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Assign an existing native descriptor to a stream descriptor. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const native_handle_type& native_descriptor, - asio::error_code& ec) - { - service_impl_.assign(impl, native_descriptor, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the descriptor is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a stream descriptor implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native descriptor implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Release ownership of the native descriptor implementation. - native_handle_type release(implementation_type& impl) - { - return service_impl_.release(impl); - } - - /// Cancel all asynchronous operations associated with the descriptor. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the descriptor. - template - ASIO_SYNC_OP_VOID io_control(implementation_type& impl, - IoControlCommand& command, asio::error_code& ec) - { - service_impl_.io_control(impl, command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the descriptor. - bool non_blocking(const implementation_type& impl) const - { - return service_impl_.non_blocking(impl); - } - - /// Sets the non-blocking mode of the descriptor. - ASIO_SYNC_OP_VOID non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native descriptor implementation. - bool native_non_blocking(const implementation_type& impl) const - { - return service_impl_.native_non_blocking(impl); - } - - /// Sets the non-blocking mode of the native descriptor implementation. - ASIO_SYNC_OP_VOID native_non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.native_non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the descriptor to become ready to read, ready to write, or to - /// have pending error conditions. - ASIO_SYNC_OP_VOID wait(implementation_type& impl, - descriptor_base::wait_type w, asio::error_code& ec) - { - service_impl_.wait(impl, w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the descriptor to become ready to read, ready to - /// write, or to have pending error conditions. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, descriptor_base::wait_type w, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, w, init.completion_handler); - - return init.result.get(); - } - - /// Write the given data to the stream. - template - std::size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.write_some(impl, buffers, ec); - } - - /// Start an asynchronous write. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_write_some(impl, buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the stream. - template - std::size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.read_some(impl, buffers, ec); - } - - /// Start an asynchronous read. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_read_some(impl, buffers, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace posix -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_POSIX_STREAM_DESCRIPTOR_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/post.hpp b/Sources/Vendor/asio/include/asio/post.hpp deleted file mode 100644 index 87d7b96..0000000 --- a/Sources/Vendor/asio/include/asio/post.hpp +++ /dev/null @@ -1,107 +0,0 @@ -// -// post.hpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_POST_HPP -#define ASIO_POST_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/execution_context.hpp" -#include "asio/is_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Submits a completion token or function object for execution. -/** - * This function submits an object for execution using the object's associated - * executor. The function object is queued for execution, and is never called - * from the current thread prior to returning from post(). - * - * This function has the following effects: - * - * @li Constructs a function object handler of type @c Handler, initialized - * with handler(forward(token)). - * - * @li Constructs an object @c result of type async_result, - * initializing the object as result(handler). - * - * @li Obtains the handler's associated executor object @c ex by performing - * get_associated_executor(handler). - * - * @li Obtains the handler's associated allocator object @c alloc by performing - * get_associated_allocator(handler). - * - * @li Performs ex.post(std::move(handler), alloc). - * - * @li Returns result.get(). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) post( - ASIO_MOVE_ARG(CompletionToken) token); - -/// Submits a completion token or function object for execution. -/** - * This function submits an object for execution using the specified executor. - * The function object is queued for execution, and is never called from the - * current thread prior to returning from post(). - * - * This function has the following effects: - * - * @li Constructs a function object handler of type @c Handler, initialized - * with handler(forward(token)). - * - * @li Constructs an object @c result of type async_result, - * initializing the object as result(handler). - * - * @li Obtains the handler's associated executor object @c ex1 by performing - * get_associated_executor(handler). - * - * @li Creates a work object @c w by performing make_work(ex1). - * - * @li Obtains the handler's associated allocator object @c alloc by performing - * get_associated_allocator(handler). - * - * @li Constructs a function object @c f with a function call operator that - * performs ex1.dispatch(std::move(handler), alloc) followed by - * w.reset(). - * - * @li Performs Executor(ex).post(std::move(f), alloc). - * - * @li Returns result.get(). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) post( - const Executor& ex, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type* = 0); - -/// Submits a completion token or function object for execution. -/** - * @returns post(ctx.get_executor(), forward(token)). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) post( - ExecutionContext& ctx, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type* = 0); - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/post.hpp" - -#endif // ASIO_POST_HPP diff --git a/Sources/Vendor/asio/include/asio/raw_socket_service.hpp b/Sources/Vendor/asio/include/asio/raw_socket_service.hpp deleted file mode 100644 index 2bccf03..0000000 --- a/Sources/Vendor/asio/include/asio/raw_socket_service.hpp +++ /dev/null @@ -1,466 +0,0 @@ -// -// raw_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_RAW_SOCKET_SERVICE_HPP -#define ASIO_RAW_SOCKET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/null_socket_service.hpp" -#elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_socket_service.hpp" -#else -# include "asio/detail/reactive_socket_service.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a raw socket. -template -class raw_socket_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - -private: - // The type of the platform-specific implementation. -#if defined(ASIO_WINDOWS_RUNTIME) - typedef detail::null_socket_service service_impl_type; -#elif defined(ASIO_HAS_IOCP) - typedef detail::win_iocp_socket_service service_impl_type; -#else - typedef detail::reactive_socket_service service_impl_type; -#endif - -public: - /// The type of a raw socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// The native socket type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new raw socket service for the specified io_context. - explicit raw_socket_service(asio::io_context& io_context) - : asio::detail::service_base< - raw_socket_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new raw socket implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new raw socket implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another raw socket implementation. - void move_assign(implementation_type& impl, - raw_socket_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } - - // All socket services have access to each other's implementations. - template friend class raw_socket_service; - - /// Move-construct a new raw socket implementation from another protocol - /// type. - template - void converting_move_construct(implementation_type& impl, - raw_socket_service& other_service, - typename raw_socket_service< - Protocol1>::implementation_type& other_impl, - typename enable_if::value>::type* = 0) - { - service_impl_.template converting_move_construct( - impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a raw socket implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - // Open a new raw socket implementation. - ASIO_SYNC_OP_VOID open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - if (protocol.type() == ASIO_OS_DEF(SOCK_RAW)) - service_impl_.open(impl, protocol, ec); - else - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native socket to a raw socket. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_socket, - asio::error_code& ec) - { - service_impl_.assign(impl, protocol, native_socket, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a raw socket implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Release ownership of the underlying socket. - native_handle_type release(implementation_type& impl, - asio::error_code& ec) - { - return service_impl_.release(impl, ec); - } - - /// Get the native socket implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the socket. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.at_mark(impl, ec); - } - - /// Determine the number of bytes available for reading. - std::size_t available(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.available(impl, ec); - } - - // Bind the raw socket to the specified local endpoint. - ASIO_SYNC_OP_VOID bind(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - service_impl_.bind(impl, endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Connect the raw socket to the specified endpoint. - ASIO_SYNC_OP_VOID connect(implementation_type& impl, - const endpoint_type& peer_endpoint, asio::error_code& ec) - { - service_impl_.connect(impl, peer_endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous connect. - template - ASIO_INITFN_RESULT_TYPE(ConnectHandler, - void (asio::error_code)) - async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(ConnectHandler) handler) - { - async_completion init(handler); - - service_impl_.async_connect(impl, peer_endpoint, init.completion_handler); - - return init.result.get(); - } - - /// Set a socket option. - template - ASIO_SYNC_OP_VOID set_option(implementation_type& impl, - const SettableSocketOption& option, asio::error_code& ec) - { - service_impl_.set_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get a socket option. - template - ASIO_SYNC_OP_VOID get_option(const implementation_type& impl, - GettableSocketOption& option, asio::error_code& ec) const - { - service_impl_.get_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the socket. - template - ASIO_SYNC_OP_VOID io_control(implementation_type& impl, - IoControlCommand& command, asio::error_code& ec) - { - service_impl_.io_control(impl, command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the socket. - bool non_blocking(const implementation_type& impl) const - { - return service_impl_.non_blocking(impl); - } - - /// Sets the non-blocking mode of the socket. - ASIO_SYNC_OP_VOID non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const implementation_type& impl) const - { - return service_impl_.native_non_blocking(impl); - } - - /// Sets the non-blocking mode of the native socket implementation. - ASIO_SYNC_OP_VOID native_non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.native_non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.local_endpoint(impl, ec); - } - - /// Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.remote_endpoint(impl, ec); - } - - /// Disable sends or receives on the socket. - ASIO_SYNC_OP_VOID shutdown(implementation_type& impl, - socket_base::shutdown_type what, asio::error_code& ec) - { - service_impl_.shutdown(impl, what, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the socket to become ready to read, ready to write, or to have - /// pending error conditions. - ASIO_SYNC_OP_VOID wait(implementation_type& impl, - socket_base::wait_type w, asio::error_code& ec) - { - service_impl_.wait(impl, w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the socket to become ready to read, ready to - /// write, or to have pending error conditions. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, socket_base::wait_type w, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, w, init.completion_handler); - - return init.result.get(); - } - - /// Send the given data to the peer. - template - std::size_t send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.send(impl, buffers, flags, ec); - } - - /// Start an asynchronous send. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(implementation_type& impl, const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - async_completion init(handler); - - service_impl_.async_send(impl, buffers, flags, init.completion_handler); - - return init.result.get(); - } - - /// Send raw data to the specified endpoint. - template - std::size_t send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.send_to(impl, buffers, destination, flags, ec); - } - - /// Start an asynchronous send. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - async_completion init(handler); - - service_impl_.async_send_to(impl, buffers, - destination, flags, init.completion_handler); - - return init.result.get(); - } - - /// Receive some data from the peer. - template - std::size_t receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.receive(impl, buffers, flags, ec); - } - - /// Start an asynchronous receive. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - async_completion init(handler); - - service_impl_.async_receive(impl, buffers, flags, init.completion_handler); - - return init.result.get(); - } - - /// Receive raw data with the endpoint of the sender. - template - std::size_t receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.receive_from(impl, buffers, sender_endpoint, flags, - ec); - } - - /// Start an asynchronous receive that will get the endpoint of the sender. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - async_completion init(handler); - - service_impl_.async_receive_from(impl, buffers, - sender_endpoint, flags, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_RAW_SOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/read.hpp b/Sources/Vendor/asio/include/asio/read.hpp deleted file mode 100644 index 02e8b67..0000000 --- a/Sources/Vendor/asio/include/asio/read.hpp +++ /dev/null @@ -1,947 +0,0 @@ -// -// read.hpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_READ_HPP -#define ASIO_READ_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/buffer.hpp" -#include "asio/error.hpp" - -#if !defined(ASIO_NO_EXTENSIONS) -# include "asio/basic_streambuf_fwd.hpp" -#endif // !defined(ASIO_NO_EXTENSIONS) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/** - * @defgroup read asio::read - * - * @brief The @c read function is a composed operation that reads a certain - * amount of data from a stream before returning. - */ -/*@{*/ - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::read(s, asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::read( - * s, buffers, - * asio::transfer_all()); @endcode - */ -template -std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - typename enable_if< - is_mutable_buffer_sequence::value - >::type* = 0); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::read(s, asio::buffer(data, size), ec); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::read( - * s, buffers, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - asio::error_code& ec, - typename enable_if< - is_mutable_buffer_sequence::value - >::type* = 0); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::read(s, asio::buffer(data, size), - * asio::transfer_at_least(32)); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, - typename enable_if< - is_mutable_buffer_sequence::value - >::type* = 0); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_mutable_buffer_sequence::value - >::type* = 0); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The specified dynamic buffer sequence is full (that is, it has reached - * maximum size). - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code asio::read( - * s, buffers, - * asio::transfer_all()); @endcode - */ -template -std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffer is full (that is, it has reached maximum size). - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @note This overload is equivalent to calling: - * @code asio::read( - * s, buffers, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The specified dynamic buffer sequence is full (that is, it has reached - * maximum size). - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - */ -template -std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The specified dynamic buffer sequence is full (that is, it has reached - * maximum size). - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffer is full (that is, it has reached maximum size). - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code asio::read( - * s, b, - * asio::transfer_all()); @endcode - */ -template -std::size_t read(SyncReadStream& s, basic_streambuf& b); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffer is full (that is, it has reached maximum size). - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @note This overload is equivalent to calling: - * @code asio::read( - * s, b, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t read(SyncReadStream& s, basic_streambuf& b, - asio::error_code& ec); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffer is full (that is, it has reached maximum size). - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - */ -template -std::size_t read(SyncReadStream& s, basic_streambuf& b, - CompletionCondition completion_condition); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffer is full (that is, it has reached maximum size). - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t read(SyncReadStream& s, basic_streambuf& b, - CompletionCondition completion_condition, asio::error_code& ec); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ -/** - * @defgroup async_read asio::async_read - * - * @brief The @c async_read function is a composed asynchronous operation that - * reads a certain amount of data from a stream before completion. - */ -/*@{*/ - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li 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. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. Although the buffers object may be copied as necessary, ownership of - * the underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * asio::async_read(s, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::async_read( - * s, buffers, - * asio::transfer_all(), - * handler); @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_mutable_buffer_sequence::value - >::type* = 0); - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. Although the buffers object may be copied as necessary, ownership of - * the underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's async_read_some function. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::async_read(s, - * asio::buffer(data, size), - * asio::transfer_at_least(32), - * handler); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_mutable_buffer_sequence::value - >::type* = 0); - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The specified dynamic buffer sequence is full (that is, it has reached - * maximum size). - * - * @li 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. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note This overload is equivalent to calling: - * @code asio::async_read( - * s, buffers, - * asio::transfer_all(), - * handler); @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The specified dynamic buffer sequence is full (that is, it has reached - * maximum size). - * - * @li 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. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's async_read_some function. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The supplied buffer is full (that is, it has reached maximum size). - * - * @li 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. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A basic_streambuf object into which the data will be read. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note This overload is equivalent to calling: - * @code asio::async_read( - * s, b, - * asio::transfer_all(), - * handler); @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, basic_streambuf& b, - ASIO_MOVE_ARG(ReadHandler) handler); - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The supplied buffer is full (that is, it has reached maximum size). - * - * @li 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. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A basic_streambuf object into which the data will be read. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's async_read_some function. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, basic_streambuf& b, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/read.hpp" - -#endif // ASIO_READ_HPP diff --git a/Sources/Vendor/asio/include/asio/read_at.hpp b/Sources/Vendor/asio/include/asio/read_at.hpp deleted file mode 100644 index 3e25a91..0000000 --- a/Sources/Vendor/asio/include/asio/read_at.hpp +++ /dev/null @@ -1,671 +0,0 @@ -// -// read_at.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_READ_AT_HPP -#define ASIO_READ_AT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/detail/cstdint.hpp" -#include "asio/error.hpp" - -#if !defined(ASIO_NO_EXTENSIONS) -# include "asio/basic_streambuf_fwd.hpp" -#endif // !defined(ASIO_NO_EXTENSIONS) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/** - * @defgroup read_at asio::read_at - * - * @brief The @c read_at function is a composed operation that reads a certain - * amount of data at the specified offset before returning. - */ -/*@{*/ - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::read_at(d, 42, asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::read_at( - * d, 42, buffers, - * asio::transfer_all()); @endcode - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::read_at(d, 42, - * asio::buffer(data, size), ec); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::read_at( - * d, 42, buffers, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - asio::error_code& ec); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's read_some_at function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::read_at(d, 42, asio::buffer(data, size), - * asio::transfer_at_least(32)); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's read_some_at function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code asio::read_at( - * d, 42, b, - * asio::transfer_all()); @endcode - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, basic_streambuf& b); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @note This overload is equivalent to calling: - * @code asio::read_at( - * d, 42, b, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, basic_streambuf& b, - asio::error_code& ec); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's read_some_at function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, basic_streambuf& b, - CompletionCondition completion_condition); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's read_some_at function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, basic_streambuf& b, - CompletionCondition completion_condition, asio::error_code& ec); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ -/** - * @defgroup async_read_at asio::async_read_at - * - * @brief The @c async_read_at function is a composed asynchronous operation - * that reads a certain amount of data at the specified offset. - */ -/*@{*/ - -/// Start an asynchronous operation to read a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a random access device at the specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the AsyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. Although the buffers object may be copied as necessary, ownership of - * the underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes copied into the buffers. If an error - * // occurred, this will be the number of bytes successfully - * // transferred prior to the error. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * asio::async_read_at(d, 42, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::async_read_at( - * d, 42, buffers, - * asio::transfer_all(), - * handler); @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, uint64_t offset, - const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler); - -/// Start an asynchronous operation to read a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a random access device at the specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * @param d The device from which the data is to be read. The type must support - * the AsyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. Although the buffers object may be copied as necessary, ownership of - * the underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_read_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's async_read_some_at function. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes copied into the buffers. If an error - * // occurred, this will be the number of bytes successfully - * // transferred prior to the error. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::async_read_at(d, 42, - * asio::buffer(data, size), - * asio::transfer_at_least(32), - * handler); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Start an asynchronous operation to read a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a random access device at the specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the AsyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b A basic_streambuf object into which the data will be read. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes copied into the buffers. If an error - * // occurred, this will be the number of bytes successfully - * // transferred prior to the error. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note This overload is equivalent to calling: - * @code asio::async_read_at( - * d, 42, b, - * asio::transfer_all(), - * handler); @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, uint64_t offset, - basic_streambuf& b, ASIO_MOVE_ARG(ReadHandler) handler); - -/// Start an asynchronous operation to read a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a random access device at the specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the AsyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b A basic_streambuf object into which the data will be read. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_read_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's async_read_some_at function. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes copied into the buffers. If an error - * // occurred, this will be the number of bytes successfully - * // transferred prior to the error. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, - uint64_t offset, basic_streambuf& b, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/read_at.hpp" - -#endif // ASIO_READ_AT_HPP diff --git a/Sources/Vendor/asio/include/asio/read_until.hpp b/Sources/Vendor/asio/include/asio/read_until.hpp deleted file mode 100644 index a346d4b..0000000 --- a/Sources/Vendor/asio/include/asio/read_until.hpp +++ /dev/null @@ -1,1826 +0,0 @@ -// -// read_until.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_READ_UNTIL_HPP -#define ASIO_READ_UNTIL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include "asio/async_result.hpp" -#include "asio/detail/regex_fwd.hpp" -#include "asio/detail/string_view.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" - -#if !defined(ASIO_NO_EXTENSIONS) -# include "asio/basic_streambuf_fwd.hpp" -#endif // !defined(ASIO_NO_EXTENSIONS) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - char (&has_result_type_helper(...))[2]; - - template - char has_result_type_helper(T*, typename T::result_type* = 0); - - template - struct has_result_type - { - enum { value = (sizeof((has_result_type_helper)((T*)(0))) == 1) }; - }; -} // namespace detail - -/// Type trait used to determine whether a type can be used as a match condition -/// function with read_until and async_read_until. -template -struct is_match_condition -{ -#if defined(GENERATING_DOCUMENTATION) - /// The value member is true if the type may be used as a match condition. - static const bool value; -#else - enum - { - value = asio::is_function< - typename asio::remove_pointer::type>::value - || detail::has_result_type::value - }; -#endif -}; - -/** - * @defgroup read_until asio::read_until - * - * @brief The @c read_until function is a composed operation that reads data - * into a dynamic buffer sequence, or into a streambuf, until it contains a - * delimiter, matches a regular expression, or a function object indicates a - * match. - */ -/*@{*/ - -/// Read data into a dynamic buffer sequence until it contains a specified -/// delimiter. -/** - * This function is used to read data into the specified dynamic buffer - * sequence until the dynamic buffer sequence's get area contains the specified - * delimiter. The call will block until one of the following conditions is - * true: - * - * @li The get area of the dynamic buffer sequence contains the specified - * delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the dynamic buffer sequence's get area already - * contains the delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @param delim The delimiter character. - * - * @returns The number of bytes in the dynamic buffer sequence's get area up to - * and including the delimiter. - * - * @throws asio::system_error Thrown on failure. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond the delimiter. An application will - * typically leave that data in the dynamic buffer sequence for a subsequent - * read_until operation to examine. - * - * @par Example - * To read data into a @c std::string until a newline is encountered: - * @code std::string data; - * std::string n = asio::read_until(s, - * asio::dynamic_buffer(data), '\n'); - * std::string line = data.substr(0, n); - * data.erase(0, n); @endcode - * After the @c read_until operation completes successfully, the string @c data - * contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\n', 'd', 'e', ... } @endcode - * The call to @c substr then extracts the data up to and including the - * delimiter, so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\n' } @endcode - * After the call to @c erase, the remaining data is left in the buffer @c b as - * follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c read_until operation. - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, char delim); - -/// Read data into a dynamic buffer sequence until it contains a specified -/// delimiter. -/** - * This function is used to read data into the specified dynamic buffer - * sequence until the dynamic buffer sequence's get area contains the specified - * delimiter. The call will block until one of the following conditions is - * true: - * - * @li The get area of the dynamic buffer sequence contains the specified - * delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the dynamic buffer sequence's get area already - * contains the delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @param delim The delimiter character. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the dynamic buffer sequence's get area up to - * and including the delimiter. Returns 0 if an error occurred. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond the delimiter. An application will - * typically leave that data in the dynamic buffer sequence for a subsequent - * read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - char delim, asio::error_code& ec); - -/// Read data into a dynamic buffer sequence until it contains a specified -/// delimiter. -/** - * This function is used to read data into the specified dynamic buffer - * sequence until the dynamic buffer sequence's get area contains the specified - * delimiter. The call will block until one of the following conditions is - * true: - * - * @li The get area of the dynamic buffer sequence contains the specified - * delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the dynamic buffer sequence's get area already - * contains the delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @param delim The delimiter string. - * - * @returns The number of bytes in the dynamic buffer sequence's get area up to - * and including the delimiter. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond the delimiter. An application will - * typically leave that data in the dynamic buffer sequence for a subsequent - * read_until operation to examine. - * - * @par Example - * To read data into a @c std::string until a CR-LF sequence is encountered: - * @code std::string data; - * std::string n = asio::read_until(s, - * asio::dynamic_buffer(data), "\r\n"); - * std::string line = data.substr(0, n); - * data.erase(0, n); @endcode - * After the @c read_until operation completes successfully, the string @c data - * contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c substr then extracts the data up to and including the - * delimiter, so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r', '\n' } @endcode - * After the call to @c erase, the remaining data is left in the buffer @c b as - * follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c read_until operation. - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_STRING_VIEW_PARAM delim); - -/// Read data into a dynamic buffer sequence until it contains a specified -/// delimiter. -/** - * This function is used to read data into the specified dynamic buffer - * sequence until the dynamic buffer sequence's get area contains the specified - * delimiter. The call will block until one of the following conditions is - * true: - * - * @li The get area of the dynamic buffer sequence contains the specified - * delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the dynamic buffer sequence's get area already - * contains the delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @param delim The delimiter string. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the dynamic buffer sequence's get area up to - * and including the delimiter. Returns 0 if an error occurred. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond the delimiter. An application will - * typically leave that data in the dynamic buffer sequence for a subsequent - * read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_STRING_VIEW_PARAM delim, - asio::error_code& ec); - -#if !defined(ASIO_NO_EXTENSIONS) -#if defined(ASIO_HAS_BOOST_REGEX) \ - || defined(GENERATING_DOCUMENTATION) - -/// Read data into a dynamic buffer sequence until some part of the data it -/// contains matches a regular expression. -/** - * This function is used to read data into the specified dynamic buffer - * sequence until the dynamic buffer sequence's get area contains some data - * that matches a regular expression. The call will block until one of the - * following conditions is true: - * - * @li A substring of the dynamic buffer sequence's get area matches the - * regular expression. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the dynamic buffer sequence's get area already - * contains data that matches the regular expression, the function returns - * immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers A dynamic buffer sequence into which the data will be read. - * - * @param expr The regular expression. - * - * @returns The number of bytes in the dynamic buffer sequence's get area up to - * and including the substring that matches the regular expression. - * - * @throws asio::system_error Thrown on failure. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond that which matched the regular - * expression. An application will typically leave that data in the dynamic - * buffer sequence for a subsequent read_until operation to examine. - * - * @par Example - * To read data into a @c std::string until a CR-LF sequence is encountered: - * @code std::string data; - * std::string n = asio::read_until(s, - * asio::dynamic_buffer(data), boost::regex("\r\n")); - * std::string line = data.substr(0, n); - * data.erase(0, n); @endcode - * After the @c read_until operation completes successfully, the string @c data - * contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c substr then extracts the data up to and including the - * delimiter, so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r', '\n' } @endcode - * After the call to @c erase, the remaining data is left in the buffer @c b as - * follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c read_until operation. - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - const boost::regex& expr); - -/// Read data into a dynamic buffer sequence until some part of the data it -/// contains matches a regular expression. -/** - * This function is used to read data into the specified dynamic buffer - * sequence until the dynamic buffer sequence's get area contains some data - * that matches a regular expression. The call will block until one of the - * following conditions is true: - * - * @li A substring of the dynamic buffer sequence's get area matches the - * regular expression. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the dynamic buffer sequence's get area already - * contains data that matches the regular expression, the function returns - * immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers A dynamic buffer sequence into which the data will be read. - * - * @param expr The regular expression. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the dynamic buffer sequence's get area up to - * and including the substring that matches the regular expression. Returns 0 - * if an error occurred. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond that which matched the regular - * expression. An application will typically leave that data in the dynamic - * buffer sequence for a subsequent read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - const boost::regex& expr, asio::error_code& ec); - -#endif // defined(ASIO_HAS_BOOST_REGEX) - // || defined(GENERATING_DOCUMENTATION) - -/// Read data into a dynamic buffer sequence until a function object indicates a -/// match. - -/** - * This function is used to read data into the specified dynamic buffer - * sequence until a user-defined match condition function object, when applied - * to the data contained in the dynamic buffer sequence, indicates a successful - * match. The call will block until one of the following conditions is true: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the match condition function object already indicates - * a match, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers A dynamic buffer sequence into which the data will be read. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @returns The number of bytes in the dynamic_buffer's get area that - * have been fully consumed by the match function. - * - * @throws asio::system_error Thrown on failure. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond that which matched the function object. - * An application will typically leave that data in the dynamic buffer sequence - * for a subsequent read_until operation to examine. - - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - * - * @par Examples - * To read data into a dynamic buffer sequence until whitespace is encountered: - * @code typedef asio::buffers_iterator< - * asio::const_buffers_1> iterator; - * - * std::pair - * match_whitespace(iterator begin, iterator end) - * { - * iterator i = begin; - * while (i != end) - * if (std::isspace(*i++)) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * ... - * std::string data; - * asio::read_until(s, data, match_whitespace); - * @endcode - * - * To read data into a @c std::string until a matching character is found: - * @code class match_char - * { - * public: - * explicit match_char(char c) : c_(c) {} - * - * template - * std::pair operator()( - * Iterator begin, Iterator end) const - * { - * Iterator i = begin; - * while (i != end) - * if (c_ == *i++) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * - * private: - * char c_; - * }; - * - * namespace asio { - * template <> struct is_match_condition - * : public boost::true_type {}; - * } // namespace asio - * ... - * std::string data; - * asio::read_until(s, data, match_char('a')); - * @endcode - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - MatchCondition match_condition, - typename enable_if::value>::type* = 0); - -/// Read data into a dynamic buffer sequence until a function object indicates a -/// match. -/** - * This function is used to read data into the specified dynamic buffer - * sequence until a user-defined match condition function object, when applied - * to the data contained in the dynamic buffer sequence, indicates a successful - * match. The call will block until one of the following conditions is true: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the match condition function object already indicates - * a match, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers A dynamic buffer sequence into which the data will be read. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the dynamic buffer sequence's get area that - * have been fully consumed by the match function. Returns 0 if an error - * occurred. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond that which matched the function object. - * An application will typically leave that data in the dynamic buffer sequence - * for a subsequent read_until operation to examine. - * - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - MatchCondition match_condition, asio::error_code& ec, - typename enable_if::value>::type* = 0); - -#if !defined(ASIO_NO_IOSTREAM) - -/// Read data into a streambuf until it contains a specified delimiter. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains the specified delimiter. The call will block - * until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains the - * delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param delim The delimiter character. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the delimiter. - * - * @throws asio::system_error Thrown on failure. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond the delimiter. An application will typically leave - * that data in the streambuf for a subsequent read_until operation to examine. - * - * @par Example - * To read data into a streambuf until a newline is encountered: - * @code asio::streambuf b; - * asio::read_until(s, b, '\n'); - * std::istream is(&b); - * std::string line; - * std::getline(is, line); @endcode - * After the @c read_until operation completes successfully, the buffer @c b - * contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\n', 'd', 'e', ... } @endcode - * The call to @c std::getline then extracts the data up to and including the - * newline (which is discarded), so that the string @c line contains: - * @code { 'a', 'b', ..., 'c' } @endcode - * The remaining data is left in the buffer @c b as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c read_until operation. - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, char delim); - -/// Read data into a streambuf until it contains a specified delimiter. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains the specified delimiter. The call will block - * until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains the - * delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param delim The delimiter character. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the delimiter. Returns 0 if an error occurred. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond the delimiter. An application will typically leave - * that data in the streambuf for a subsequent read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, char delim, - asio::error_code& ec); - -/// Read data into a streambuf until it contains a specified delimiter. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains the specified delimiter. The call will block - * until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains the - * delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param delim The delimiter string. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the delimiter. - * - * @throws asio::system_error Thrown on failure. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond the delimiter. An application will typically leave - * that data in the streambuf for a subsequent read_until operation to examine. - * - * @par Example - * To read data into a streambuf until a newline is encountered: - * @code asio::streambuf b; - * asio::read_until(s, b, "\r\n"); - * std::istream is(&b); - * std::string line; - * std::getline(is, line); @endcode - * After the @c read_until operation completes successfully, the buffer @c b - * contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c std::getline then extracts the data up to and including the - * newline (which is discarded), so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r' } @endcode - * The remaining data is left in the buffer @c b as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c read_until operation. - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, - ASIO_STRING_VIEW_PARAM delim); - -/// Read data into a streambuf until it contains a specified delimiter. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains the specified delimiter. The call will block - * until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains the - * delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param delim The delimiter string. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the delimiter. Returns 0 if an error occurred. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond the delimiter. An application will typically leave - * that data in the streambuf for a subsequent read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, - ASIO_STRING_VIEW_PARAM delim, asio::error_code& ec); - -#if defined(ASIO_HAS_BOOST_REGEX) \ - || defined(GENERATING_DOCUMENTATION) - -/// Read data into a streambuf until some part of the data it contains matches -/// a regular expression. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains some data that matches a regular expression. - * The call will block until one of the following conditions is true: - * - * @li A substring of the streambuf's get area matches the regular expression. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains data that - * matches the regular expression, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param expr The regular expression. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the substring that matches the regular expression. - * - * @throws asio::system_error Thrown on failure. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond that which matched the regular expression. An - * application will typically leave that data in the streambuf for a subsequent - * read_until operation to examine. - * - * @par Example - * To read data into a streambuf until a CR-LF sequence is encountered: - * @code asio::streambuf b; - * asio::read_until(s, b, boost::regex("\r\n")); - * std::istream is(&b); - * std::string line; - * std::getline(is, line); @endcode - * After the @c read_until operation completes successfully, the buffer @c b - * contains the data which matched the regular expression: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c std::getline then extracts the data up to and including the - * newline (which is discarded), so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r' } @endcode - * The remaining data is left in the buffer @c b as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c read_until operation. - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, const boost::regex& expr); - -/// Read data into a streambuf until some part of the data it contains matches -/// a regular expression. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains some data that matches a regular expression. - * The call will block until one of the following conditions is true: - * - * @li A substring of the streambuf's get area matches the regular expression. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains data that - * matches the regular expression, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param expr The regular expression. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the substring that matches the regular expression. Returns 0 if an error - * occurred. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond that which matched the regular expression. An - * application will typically leave that data in the streambuf for a subsequent - * read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, const boost::regex& expr, - asio::error_code& ec); - -#endif // defined(ASIO_HAS_BOOST_REGEX) - // || defined(GENERATING_DOCUMENTATION) - -/// Read data into a streambuf until a function object indicates a match. -/** - * 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: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the match condition function object already indicates - * a match, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator::const_buffers_type> - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @returns The number of bytes in the streambuf's get area that have been fully - * consumed by the match function. - * - * @throws asio::system_error Thrown on failure. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond that which matched the function object. An application - * will typically leave that data in the streambuf for a subsequent read_until - * operation to examine. - * - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - * - * @par Examples - * To read data into a streambuf until whitespace is encountered: - * @code typedef asio::buffers_iterator< - * asio::streambuf::const_buffers_type> iterator; - * - * std::pair - * match_whitespace(iterator begin, iterator end) - * { - * iterator i = begin; - * while (i != end) - * if (std::isspace(*i++)) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * ... - * asio::streambuf b; - * asio::read_until(s, b, match_whitespace); - * @endcode - * - * To read data into a streambuf until a matching character is found: - * @code class match_char - * { - * public: - * explicit match_char(char c) : c_(c) {} - * - * template - * std::pair operator()( - * Iterator begin, Iterator end) const - * { - * Iterator i = begin; - * while (i != end) - * if (c_ == *i++) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * - * private: - * char c_; - * }; - * - * namespace asio { - * template <> struct is_match_condition - * : public boost::true_type {}; - * } // namespace asio - * ... - * asio::streambuf b; - * asio::read_until(s, b, match_char('a')); - * @endcode - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, MatchCondition match_condition, - typename enable_if::value>::type* = 0); - -/// Read data into a streambuf until a function object indicates a match. -/** - * 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: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the match condition function object already indicates - * a match, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator::const_buffers_type> - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the streambuf's get area that have been fully - * consumed by the match function. Returns 0 if an error occurred. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond that which matched the function object. An application - * will typically leave that data in the streambuf for a subsequent read_until - * operation to examine. - * - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, - MatchCondition match_condition, asio::error_code& ec, - typename enable_if::value>::type* = 0); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ -/** - * @defgroup async_read_until asio::async_read_until - * - * @brief The @c async_read_until function is a composed asynchronous operation - * that reads data into a dynamic buffer sequence, or into a streambuf, until - * it contains a delimiter, matches a regular expression, or a function object - * indicates a match. - */ -/*@{*/ - -/// Start an asynchronous operation to read data into a dynamic buffer sequence -/// until it contains a specified delimiter. -/** - * This function is used to asynchronously read data into the specified dynamic - * buffer sequence until the dynamic buffer sequence's get area contains the - * specified delimiter. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li The get area of the dynamic buffer sequence contains the specified - * delimiter. - * - * @li 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 dynamic buffer sequence'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. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param delim The delimiter character. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the dynamic buffer sequence's - * // get area up to and including the delimiter. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the dynamic buffer - * sequence may contain additional data beyond the delimiter. An application - * will typically leave that data in the dynamic buffer sequence for a - * subsequent async_read_until operation to examine. - * - * @par Example - * To asynchronously read data into a @c std::string until a newline is - * encountered: - * @code std::string data; - * ... - * void handler(const asio::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::string line = data.substr(0, n); - * data.erase(0, n); - * ... - * } - * } - * ... - * asio::async_read_until(s, data, '\n', handler); @endcode - * After the @c async_read_until operation completes successfully, the buffer - * @c data contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\n', 'd', 'e', ... } @endcode - * The call to @c substr then extracts the data up to and including the - * delimiter, so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\n' } @endcode - * After the call to @c erase, the remaining data is left in the buffer @c data - * as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c async_read_until operation. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - char delim, ASIO_MOVE_ARG(ReadHandler) handler); - -/// Start an asynchronous operation to read data into a dynamic buffer sequence -/// until it contains a specified delimiter. -/** - * This function is used to asynchronously read data into the specified dynamic - * buffer sequence until the dynamic buffer sequence's get area contains the - * specified delimiter. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li The get area of the dynamic buffer sequence contains the specified - * delimiter. - * - * @li 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 dynamic buffer sequence'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. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param delim The delimiter string. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the dynamic buffer sequence's - * // get area up to and including the delimiter. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the dynamic buffer - * sequence may contain additional data beyond the delimiter. An application - * will typically leave that data in the dynamic buffer sequence for a - * subsequent async_read_until operation to examine. - * - * @par Example - * To asynchronously read data into a @c std::string until a CR-LF sequence is - * encountered: - * @code std::string data; - * ... - * void handler(const asio::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::string line = data.substr(0, n); - * data.erase(0, n); - * ... - * } - * } - * ... - * asio::async_read_until(s, data, "\r\n", handler); @endcode - * After the @c async_read_until operation completes successfully, the string - * @c data contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c substr then extracts the data up to and including the - * delimiter, so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r', '\n' } @endcode - * After the call to @c erase, the remaining data is left in the string @c data - * as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c async_read_until operation. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_STRING_VIEW_PARAM delim, - ASIO_MOVE_ARG(ReadHandler) handler); - -#if !defined(ASIO_NO_EXTENSIONS) -#if defined(ASIO_HAS_BOOST_REGEX) \ - || defined(GENERATING_DOCUMENTATION) - -/// Start an asynchronous operation to read data into a dynamic buffer sequence -/// until some part of its data matches a regular expression. -/** - * This function is used to asynchronously read data into the specified dynamic - * buffer sequence until the dynamic buffer sequence's get area contains some - * data that matches a regular expression. The function call always returns - * immediately. The asynchronous operation will continue until one of the - * following conditions is true: - * - * @li A substring of the dynamic buffer sequence's get area matches the regular - * expression. - * - * @li 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 dynamic buffer sequence'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. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param expr The regular expression. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the dynamic buffer - * // sequence's get area up to and including the - * // substring that matches the regular expression. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the dynamic buffer - * sequence may contain additional data beyond that which matched the regular - * expression. An application will typically leave that data in the dynamic - * buffer sequence for a subsequent async_read_until operation to examine. - * - * @par Example - * To asynchronously read data into a @c std::string until a CR-LF sequence is - * encountered: - * @code std::string data; - * ... - * void handler(const asio::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::string line = data.substr(0, n); - * data.erase(0, n); - * ... - * } - * } - * ... - * asio::async_read_until(s, data, - * boost::regex("\r\n"), handler); @endcode - * After the @c async_read_until operation completes successfully, the string - * @c data contains the data which matched the regular expression: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c substr then extracts the data up to and including the match, - * so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r', '\n' } @endcode - * After the call to @c erase, the remaining data is left in the string @c data - * as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c async_read_until operation. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - const boost::regex& expr, - ASIO_MOVE_ARG(ReadHandler) handler); - -#endif // defined(ASIO_HAS_BOOST_REGEX) - // || defined(GENERATING_DOCUMENTATION) - -/// Start an asynchronous operation to read data into a dynamic buffer sequence -/// until a function object indicates a match. -/** - * This function is used to asynchronously read data into the specified dynamic - * buffer sequence until a user-defined match condition function object, when - * applied to the data contained in the dynamic buffer sequence, indicates a - * successful match. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li 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. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the dynamic buffer sequence's - * // get area that have been fully consumed by the match - * // function. O if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the dynamic buffer - * sequence may contain additional data beyond that which matched the function - * object. An application will typically leave that data in the dynamic buffer - * sequence for a subsequent async_read_until operation to examine. - * - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - * - * @par Examples - * To asynchronously read data into a @c std::string until whitespace is - * encountered: - * @code typedef asio::buffers_iterator< - * asio::const_buffers_1> iterator; - * - * std::pair - * match_whitespace(iterator begin, iterator end) - * { - * iterator i = begin; - * while (i != end) - * if (std::isspace(*i++)) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * ... - * void handler(const asio::error_code& e, std::size_t size); - * ... - * std::string data; - * asio::async_read_until(s, data, match_whitespace, handler); - * @endcode - * - * To asynchronously read data into a @c std::string until a matching character - * is found: - * @code class match_char - * { - * public: - * explicit match_char(char c) : c_(c) {} - * - * template - * std::pair operator()( - * Iterator begin, Iterator end) const - * { - * Iterator i = begin; - * while (i != end) - * if (c_ == *i++) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * - * private: - * char c_; - * }; - * - * namespace asio { - * template <> struct is_match_condition - * : public boost::true_type {}; - * } // namespace asio - * ... - * void handler(const asio::error_code& e, std::size_t size); - * ... - * std::string data; - * asio::async_read_until(s, data, match_char('a'), handler); - * @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - MatchCondition match_condition, ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if::value>::type* = 0); - -#if !defined(ASIO_NO_IOSTREAM) - -/// Start an asynchronous operation to read data into a streambuf until it -/// contains a specified delimiter. -/** - * This function is used to asynchronously read data into the specified - * streambuf until the streambuf's get area contains the specified delimiter. - * The function call always returns immediately. The asynchronous operation - * will continue until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li 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. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. Ownership of - * the streambuf is retained by the caller, which must guarantee that it remains - * valid until the handler is called. - * - * @param delim The delimiter character. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the streambuf's get - * // area up to and including the delimiter. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the streambuf may - * contain additional data beyond the delimiter. An application will typically - * leave that data in the streambuf for a subsequent async_read_until operation - * to examine. - * - * @par Example - * To asynchronously read data into a streambuf until a newline is encountered: - * @code asio::streambuf b; - * ... - * void handler(const asio::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::istream is(&b); - * std::string line; - * std::getline(is, line); - * ... - * } - * } - * ... - * asio::async_read_until(s, b, '\n', handler); @endcode - * After the @c async_read_until operation completes successfully, the buffer - * @c b contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\n', 'd', 'e', ... } @endcode - * The call to @c std::getline then extracts the data up to and including the - * newline (which is discarded), so that the string @c line contains: - * @code { 'a', 'b', ..., 'c' } @endcode - * The remaining data is left in the buffer @c b as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c async_read_until operation. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, - char delim, ASIO_MOVE_ARG(ReadHandler) handler); - -/// Start an asynchronous operation to read data into a streambuf until it -/// contains a specified delimiter. -/** - * This function is used to asynchronously read data into the specified - * streambuf until the streambuf's get area contains the specified delimiter. - * The function call always returns immediately. The asynchronous operation - * will continue until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li 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. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. Ownership of - * the streambuf is retained by the caller, which must guarantee that it remains - * valid until the handler is called. - * - * @param delim The delimiter string. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the streambuf's get - * // area up to and including the delimiter. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the streambuf may - * contain additional data beyond the delimiter. An application will typically - * leave that data in the streambuf for a subsequent async_read_until operation - * to examine. - * - * @par Example - * To asynchronously read data into a streambuf until a newline is encountered: - * @code asio::streambuf b; - * ... - * void handler(const asio::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::istream is(&b); - * std::string line; - * std::getline(is, line); - * ... - * } - * } - * ... - * asio::async_read_until(s, b, "\r\n", handler); @endcode - * After the @c async_read_until operation completes successfully, the buffer - * @c b contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c std::getline then extracts the data up to and including the - * newline (which is discarded), so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r' } @endcode - * The remaining data is left in the buffer @c b as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c async_read_until operation. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, - ASIO_STRING_VIEW_PARAM delim, - ASIO_MOVE_ARG(ReadHandler) handler); - -#if defined(ASIO_HAS_BOOST_REGEX) \ - || defined(GENERATING_DOCUMENTATION) - -/// Start an asynchronous operation to read data into a streambuf until some -/// part of its data matches a regular expression. -/** - * This function is used to asynchronously read data into the specified - * streambuf until the streambuf's get area contains some data that matches a - * regular expression. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li A substring of the streambuf's get area matches the regular expression. - * - * @li 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. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. Ownership of - * the streambuf is retained by the caller, which must guarantee that it remains - * valid until the handler is called. - * - * @param expr The regular expression. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the streambuf's get - * // area up to and including the substring - * // that matches the regular. expression. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the streambuf may - * contain additional data beyond that which matched the regular expression. An - * application will typically leave that data in the streambuf for a subsequent - * async_read_until operation to examine. - * - * @par Example - * To asynchronously read data into a streambuf until a CR-LF sequence is - * encountered: - * @code asio::streambuf b; - * ... - * void handler(const asio::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::istream is(&b); - * std::string line; - * std::getline(is, line); - * ... - * } - * } - * ... - * asio::async_read_until(s, b, boost::regex("\r\n"), handler); @endcode - * After the @c async_read_until operation completes successfully, the buffer - * @c b contains the data which matched the regular expression: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c std::getline then extracts the data up to and including the - * newline (which is discarded), so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r' } @endcode - * The remaining data is left in the buffer @c b as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c async_read_until operation. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, const boost::regex& expr, - ASIO_MOVE_ARG(ReadHandler) handler); - -#endif // defined(ASIO_HAS_BOOST_REGEX) - // || defined(GENERATING_DOCUMENTATION) - -/// Start an asynchronous operation to read data into a streambuf until a -/// function object indicates a match. -/** - * 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: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li 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. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator::const_buffers_type> - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the streambuf's get - * // area that have been fully consumed by the - * // match function. O if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the streambuf may - * contain additional data beyond that which matched the function object. An - * application will typically leave that data in the streambuf for a subsequent - * async_read_until operation to examine. - * - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - * - * @par Examples - * To asynchronously read data into a streambuf until whitespace is encountered: - * @code typedef asio::buffers_iterator< - * asio::streambuf::const_buffers_type> iterator; - * - * std::pair - * match_whitespace(iterator begin, iterator end) - * { - * iterator i = begin; - * while (i != end) - * if (std::isspace(*i++)) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * ... - * void handler(const asio::error_code& e, std::size_t size); - * ... - * asio::streambuf b; - * asio::async_read_until(s, b, match_whitespace, handler); - * @endcode - * - * To asynchronously read data into a streambuf until a matching character is - * found: - * @code class match_char - * { - * public: - * explicit match_char(char c) : c_(c) {} - * - * template - * std::pair operator()( - * Iterator begin, Iterator end) const - * { - * Iterator i = begin; - * while (i != end) - * if (c_ == *i++) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * - * private: - * char c_; - * }; - * - * namespace asio { - * template <> struct is_match_condition - * : public boost::true_type {}; - * } // namespace asio - * ... - * void handler(const asio::error_code& e, std::size_t size); - * ... - * asio::streambuf b; - * asio::async_read_until(s, b, match_char('a'), handler); - * @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, - MatchCondition match_condition, ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if::value>::type* = 0); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/read_until.hpp" - -#endif // ASIO_READ_UNTIL_HPP diff --git a/Sources/Vendor/asio/include/asio/seq_packet_socket_service.hpp b/Sources/Vendor/asio/include/asio/seq_packet_socket_service.hpp deleted file mode 100644 index 7e6824d..0000000 --- a/Sources/Vendor/asio/include/asio/seq_packet_socket_service.hpp +++ /dev/null @@ -1,416 +0,0 @@ -// -// seq_packet_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SEQ_PACKET_SOCKET_SERVICE_HPP -#define ASIO_SEQ_PACKET_SOCKET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/null_socket_service.hpp" -#elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_socket_service.hpp" -#else -# include "asio/detail/reactive_socket_service.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a sequenced packet socket. -template -class seq_packet_socket_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base< - seq_packet_socket_service > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - -private: - // The type of the platform-specific implementation. -#if defined(ASIO_WINDOWS_RUNTIME) - typedef detail::null_socket_service service_impl_type; -#elif defined(ASIO_HAS_IOCP) - typedef detail::win_iocp_socket_service service_impl_type; -#else - typedef detail::reactive_socket_service service_impl_type; -#endif - -public: - /// The type of a sequenced packet socket implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// The native socket type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new sequenced packet socket service for the specified - /// io_context. - explicit seq_packet_socket_service(asio::io_context& io_context) - : asio::detail::service_base< - seq_packet_socket_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new sequenced packet socket implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new sequenced packet socket implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another sequenced packet socket implementation. - void move_assign(implementation_type& impl, - seq_packet_socket_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } - - // All socket services have access to each other's implementations. - template friend class seq_packet_socket_service; - - /// Move-construct a new sequenced packet socket implementation from another - /// protocol type. - template - void converting_move_construct(implementation_type& impl, - seq_packet_socket_service& other_service, - typename seq_packet_socket_service< - Protocol1>::implementation_type& other_impl, - typename enable_if::value>::type* = 0) - { - service_impl_.template converting_move_construct( - impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a sequenced packet socket implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Open a sequenced packet socket. - ASIO_SYNC_OP_VOID open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - if (protocol.type() == ASIO_OS_DEF(SOCK_SEQPACKET)) - service_impl_.open(impl, protocol, ec); - else - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native socket to a sequenced packet socket. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_socket, - asio::error_code& ec) - { - service_impl_.assign(impl, protocol, native_socket, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a sequenced packet socket implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Release ownership of the underlying socket. - native_handle_type release(implementation_type& impl, - asio::error_code& ec) - { - return service_impl_.release(impl, ec); - } - - /// Get the native socket implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the socket. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.at_mark(impl, ec); - } - - /// Determine the number of bytes available for reading. - std::size_t available(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.available(impl, ec); - } - - /// Bind the sequenced packet socket to the specified local endpoint. - ASIO_SYNC_OP_VOID bind(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - service_impl_.bind(impl, endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Connect the sequenced packet socket to the specified endpoint. - ASIO_SYNC_OP_VOID connect(implementation_type& impl, - const endpoint_type& peer_endpoint, asio::error_code& ec) - { - service_impl_.connect(impl, peer_endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous connect. - template - ASIO_INITFN_RESULT_TYPE(ConnectHandler, - void (asio::error_code)) - async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(ConnectHandler) handler) - { - async_completion init(handler); - - service_impl_.async_connect(impl, peer_endpoint, init.completion_handler); - - return init.result.get(); - } - - /// Set a socket option. - template - ASIO_SYNC_OP_VOID set_option(implementation_type& impl, - const SettableSocketOption& option, asio::error_code& ec) - { - service_impl_.set_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get a socket option. - template - ASIO_SYNC_OP_VOID get_option(const implementation_type& impl, - GettableSocketOption& option, asio::error_code& ec) const - { - service_impl_.get_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the socket. - template - ASIO_SYNC_OP_VOID io_control(implementation_type& impl, - IoControlCommand& command, asio::error_code& ec) - { - service_impl_.io_control(impl, command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the socket. - bool non_blocking(const implementation_type& impl) const - { - return service_impl_.non_blocking(impl); - } - - /// Sets the non-blocking mode of the socket. - ASIO_SYNC_OP_VOID non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const implementation_type& impl) const - { - return service_impl_.native_non_blocking(impl); - } - - /// Sets the non-blocking mode of the native socket implementation. - ASIO_SYNC_OP_VOID native_non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.native_non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.local_endpoint(impl, ec); - } - - /// Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.remote_endpoint(impl, ec); - } - - /// Disable sends or receives on the socket. - ASIO_SYNC_OP_VOID shutdown(implementation_type& impl, - socket_base::shutdown_type what, asio::error_code& ec) - { - service_impl_.shutdown(impl, what, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the socket to become ready to read, ready to write, or to have - /// pending error conditions. - ASIO_SYNC_OP_VOID wait(implementation_type& impl, - socket_base::wait_type w, asio::error_code& ec) - { - service_impl_.wait(impl, w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the socket to become ready to read, ready to - /// write, or to have pending error conditions. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, socket_base::wait_type w, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, w, init.completion_handler); - - return init.result.get(); - } - - /// Send the given data to the peer. - template - std::size_t send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.send(impl, buffers, flags, ec); - } - - /// Start an asynchronous send. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - async_completion init(handler); - - service_impl_.async_send(impl, buffers, flags, init.completion_handler); - - return init.result.get(); - } - - /// Receive some data from the peer. - template - std::size_t receive(implementation_type& impl, - const MutableBufferSequence& buffers, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, asio::error_code& ec) - { - return service_impl_.receive_with_flags(impl, - buffers, in_flags, out_flags, ec); - } - - /// Start an asynchronous receive. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(implementation_type& impl, - const MutableBufferSequence& buffers, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - async_completion init(handler); - - service_impl_.async_receive_with_flags(impl, - buffers, in_flags, out_flags, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_SEQ_PACKET_SOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/serial_port.hpp b/Sources/Vendor/asio/include/asio/serial_port.hpp deleted file mode 100644 index 27bb63e..0000000 --- a/Sources/Vendor/asio/include/asio/serial_port.hpp +++ /dev/null @@ -1,769 +0,0 @@ -// -// serial_port.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_SERIAL_PORT_HPP -#define ASIO_SERIAL_PORT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_SERIAL_PORT) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/serial_port_base.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/basic_serial_port.hpp" -#else // defined(ASIO_ENABLE_OLD_SERVICES) -# if defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_serial_port_service.hpp" -# define ASIO_SVC_T detail::win_iocp_serial_port_service -# else -# include "asio/detail/reactive_serial_port_service.hpp" -# define ASIO_SVC_T detail::reactive_serial_port_service -# endif -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if defined(ASIO_ENABLE_OLD_SERVICES) -// Typedef for the typical usage of a serial port. -typedef basic_serial_port<> serial_port; -#else // defined(ASIO_ENABLE_OLD_SERVICES) -/// Provides serial port functionality. -/** - * The serial_port class provides a wrapper over serial port functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class serial_port - : ASIO_SVC_ACCESS basic_io_object, - public serial_port_base -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The native representation of a serial port. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef ASIO_SVC_T::native_handle_type native_handle_type; -#endif - - /// A basic_serial_port is always the lowest layer. - typedef serial_port lowest_layer_type; - - /// Construct a serial_port without opening it. - /** - * This constructor creates a serial port without opening it. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - */ - explicit serial_port(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct and open a serial_port. - /** - * This constructor creates and opens a serial port for the specified device - * name. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param device The platform-specific device name for this serial - * port. - */ - explicit serial_port(asio::io_context& io_context, - const char* device) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Construct and open a serial_port. - /** - * This constructor creates and opens a serial port for the specified device - * name. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param device The platform-specific device name for this serial - * port. - */ - explicit serial_port(asio::io_context& io_context, - const std::string& device) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Construct a serial_port on an existing native serial port. - /** - * This constructor creates a serial port object to hold an existing native - * serial port. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param native_serial_port A native serial port. - * - * @throws asio::system_error Thrown on failure. - */ - serial_port(asio::io_context& io_context, - const native_handle_type& native_serial_port) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a serial_port from another. - /** - * This constructor moves a serial port from one object to another. - * - * @param other The other serial_port object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c serial_port(io_context&) constructor. - */ - serial_port(serial_port&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign a serial_port from another. - /** - * This assignment operator moves a serial port from one object to another. - * - * @param other The other serial_port object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c serial_port(io_context&) constructor. - */ - serial_port& operator=(serial_port&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the serial port. - /** - * This function destroys the serial port, cancelling any outstanding - * asynchronous wait operations associated with the serial port as if by - * calling @c cancel. - */ - ~serial_port() - { - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a serial_port cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a serial_port cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Open the serial port using the specified device name. - /** - * This function opens the serial port for the specified device name. - * - * @param device The platform-specific device name. - * - * @throws asio::system_error Thrown on failure. - */ - void open(const std::string& device) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Open the serial port using the specified device name. - /** - * This function opens the serial port using the given platform-specific - * device name. - * - * @param device The platform-specific device name. - * - * @param ec Set the indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID open(const std::string& device, - asio::error_code& ec) - { - this->get_service().open(this->get_implementation(), device, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native serial port to the serial port. - /* - * This function opens the serial port to hold an existing native serial port. - * - * @param native_serial_port A native serial port. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& native_serial_port) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native serial port to the serial port. - /* - * This function opens the serial port to hold an existing native serial port. - * - * @param native_serial_port A native serial port. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const native_handle_type& native_serial_port, - asio::error_code& ec) - { - this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the serial port is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the serial port. - /** - * This function is used to close the serial port. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the serial port. - /** - * This function is used to close the serial port. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native serial port representation. - /** - * This function may be used to obtain the underlying representation of the - * serial port. This is intended to allow access to native serial port - * functionality that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the serial port. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the serial port. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Send a break sequence to the serial port. - /** - * This function causes a break sequence of platform-specific duration to be - * sent out the serial port. - * - * @throws asio::system_error Thrown on failure. - */ - void send_break() - { - asio::error_code ec; - this->get_service().send_break(this->get_implementation(), ec); - asio::detail::throw_error(ec, "send_break"); - } - - /// Send a break sequence to the serial port. - /** - * This function causes a break sequence of platform-specific duration to be - * sent out the serial port. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID send_break(asio::error_code& ec) - { - this->get_service().send_break(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Set an option on the serial port. - /** - * This function is used to set an option on the serial port. - * - * @param option The option value to be set on the serial port. - * - * @throws asio::system_error Thrown on failure. - * - * @sa SettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - void set_option(const SettableSerialPortOption& option) - { - asio::error_code ec; - this->get_service().set_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "set_option"); - } - - /// Set an option on the serial port. - /** - * This function is used to set an option on the serial port. - * - * @param option The option value to be set on the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa SettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - ASIO_SYNC_OP_VOID set_option(const SettableSerialPortOption& option, - asio::error_code& ec) - { - this->get_service().set_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get an option from the serial port. - /** - * This function is used to get the current value of an option on the serial - * port. - * - * @param option The option value to be obtained from the serial port. - * - * @throws asio::system_error Thrown on failure. - * - * @sa GettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - void get_option(GettableSerialPortOption& option) - { - asio::error_code ec; - this->get_service().get_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "get_option"); - } - - /// Get an option from the serial port. - /** - * This function is used to get the current value of an option on the serial - * port. - * - * @param option The option value to be obtained from the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa GettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - ASIO_SYNC_OP_VOID get_option(GettableSerialPortOption& option, - asio::error_code& ec) - { - this->get_service().get_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Write some data to the serial port. - /** - * This function is used to write data to the serial port. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the serial port. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.write_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the serial port. - /** - * This function is used to write data to the serial port. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().write_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the serial port. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the serial port. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.async_write_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - this->get_service().async_write_some( - this->get_implementation(), buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the serial port. - /** - * This function is used to read data from the serial port. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.read_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the serial port. - /** - * This function is used to read data from the serial port. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().read_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the serial port. - * The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.async_read_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - this->get_service().async_read_some( - this->get_implementation(), buffers, init.completion_handler); - - return init.result.get(); - } -}; -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# undef ASIO_SVC_T -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // defined(ASIO_HAS_SERIAL_PORT) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_SERIAL_PORT_HPP diff --git a/Sources/Vendor/asio/include/asio/serial_port_base.hpp b/Sources/Vendor/asio/include/asio/serial_port_base.hpp deleted file mode 100644 index feb5b9d..0000000 --- a/Sources/Vendor/asio/include/asio/serial_port_base.hpp +++ /dev/null @@ -1,167 +0,0 @@ -// -// serial_port_base.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_SERIAL_PORT_BASE_HPP -#define ASIO_SERIAL_PORT_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_SERIAL_PORT) \ - || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) -# include -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#include "asio/detail/socket_types.hpp" -#include "asio/error_code.hpp" - -#if defined(GENERATING_DOCUMENTATION) -# define ASIO_OPTION_STORAGE implementation_defined -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# define ASIO_OPTION_STORAGE DCB -#else -# define ASIO_OPTION_STORAGE termios -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// The serial_port_base class is used as a base for the basic_serial_port class -/// template so that we have a common place to define the serial port options. -class serial_port_base -{ -public: - /// Serial port option to permit changing the baud rate. - /** - * Implements changing the baud rate for a given serial port. - */ - class baud_rate - { - public: - explicit baud_rate(unsigned int rate = 0); - unsigned int value() const; - ASIO_DECL ASIO_SYNC_OP_VOID store( - ASIO_OPTION_STORAGE& storage, - asio::error_code& ec) const; - ASIO_DECL ASIO_SYNC_OP_VOID load( - const ASIO_OPTION_STORAGE& storage, - asio::error_code& ec); - private: - unsigned int value_; - }; - - /// Serial port option to permit changing the flow control. - /** - * Implements changing the flow control for a given serial port. - */ - class flow_control - { - public: - enum type { none, software, hardware }; - ASIO_DECL explicit flow_control(type t = none); - type value() const; - ASIO_DECL ASIO_SYNC_OP_VOID store( - ASIO_OPTION_STORAGE& storage, - asio::error_code& ec) const; - ASIO_DECL ASIO_SYNC_OP_VOID load( - const ASIO_OPTION_STORAGE& storage, - asio::error_code& ec); - private: - type value_; - }; - - /// Serial port option to permit changing the parity. - /** - * Implements changing the parity for a given serial port. - */ - class parity - { - public: - enum type { none, odd, even }; - ASIO_DECL explicit parity(type t = none); - type value() const; - ASIO_DECL ASIO_SYNC_OP_VOID store( - ASIO_OPTION_STORAGE& storage, - asio::error_code& ec) const; - ASIO_DECL ASIO_SYNC_OP_VOID load( - const ASIO_OPTION_STORAGE& storage, - asio::error_code& ec); - private: - type value_; - }; - - /// Serial port option to permit changing the number of stop bits. - /** - * Implements changing the number of stop bits for a given serial port. - */ - class stop_bits - { - public: - enum type { one, onepointfive, two }; - ASIO_DECL explicit stop_bits(type t = one); - type value() const; - ASIO_DECL ASIO_SYNC_OP_VOID store( - ASIO_OPTION_STORAGE& storage, - asio::error_code& ec) const; - ASIO_DECL ASIO_SYNC_OP_VOID load( - const ASIO_OPTION_STORAGE& storage, - asio::error_code& ec); - private: - type value_; - }; - - /// Serial port option to permit changing the character size. - /** - * Implements changing the character size for a given serial port. - */ - class character_size - { - public: - ASIO_DECL explicit character_size(unsigned int t = 8); - unsigned int value() const; - ASIO_DECL ASIO_SYNC_OP_VOID store( - ASIO_OPTION_STORAGE& storage, - asio::error_code& ec) const; - ASIO_DECL ASIO_SYNC_OP_VOID load( - const ASIO_OPTION_STORAGE& storage, - asio::error_code& ec); - private: - unsigned int value_; - }; - -protected: - /// Protected destructor to prevent deletion through this type. - ~serial_port_base() - { - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#undef ASIO_OPTION_STORAGE - -#include "asio/impl/serial_port_base.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/serial_port_base.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_SERIAL_PORT) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_SERIAL_PORT_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/serial_port_service.hpp b/Sources/Vendor/asio/include/asio/serial_port_service.hpp deleted file mode 100644 index 0e20d96..0000000 --- a/Sources/Vendor/asio/include/asio/serial_port_service.hpp +++ /dev/null @@ -1,249 +0,0 @@ -// -// serial_port_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SERIAL_PORT_SERVICE_HPP -#define ASIO_SERIAL_PORT_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_SERIAL_PORT) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include -#include "asio/async_result.hpp" -#include "asio/detail/reactive_serial_port_service.hpp" -#include "asio/detail/win_iocp_serial_port_service.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/serial_port_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a serial port. -class serial_port_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - -private: - // The type of the platform-specific implementation. -#if defined(ASIO_HAS_IOCP) - typedef detail::win_iocp_serial_port_service service_impl_type; -#else - typedef detail::reactive_serial_port_service service_impl_type; -#endif - -public: - /// The type of a serial port implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef service_impl_type::implementation_type implementation_type; -#endif - - /// The native handle type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new serial port service for the specified io_context. - explicit serial_port_service(asio::io_context& io_context) - : asio::detail::service_base(io_context), - service_impl_(io_context) - { - } - - /// Construct a new serial port implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new serial port implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another serial port implementation. - void move_assign(implementation_type& impl, - serial_port_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a serial port implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Open a serial port. - ASIO_SYNC_OP_VOID open(implementation_type& impl, - const std::string& device, asio::error_code& ec) - { - service_impl_.open(impl, device, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native handle to a serial port. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec) - { - service_impl_.assign(impl, handle, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a serial port implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native handle implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the handle. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Set a serial port option. - template - ASIO_SYNC_OP_VOID set_option(implementation_type& impl, - const SettableSerialPortOption& option, asio::error_code& ec) - { - service_impl_.set_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get a serial port option. - template - ASIO_SYNC_OP_VOID get_option(const implementation_type& impl, - GettableSerialPortOption& option, asio::error_code& ec) const - { - service_impl_.get_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Send a break sequence to the serial port. - ASIO_SYNC_OP_VOID send_break(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.send_break(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Write the given data to the stream. - template - std::size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.write_some(impl, buffers, ec); - } - - /// Start an asynchronous write. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - async_completion init(handler); - - service_impl_.async_write_some(impl, buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the stream. - template - std::size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.read_some(impl, buffers, ec); - } - - /// Start an asynchronous read. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - async_completion init(handler); - - service_impl_.async_read_some(impl, buffers, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_SERIAL_PORT) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_SERIAL_PORT_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/signal_set.hpp b/Sources/Vendor/asio/include/asio/signal_set.hpp deleted file mode 100644 index 30e5c4e..0000000 --- a/Sources/Vendor/asio/include/asio/signal_set.hpp +++ /dev/null @@ -1,447 +0,0 @@ -// -// signal_set.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SIGNAL_SET_HPP -#define ASIO_SIGNAL_SET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/basic_signal_set.hpp" -#else // defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/detail/signal_set_service.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -namespace asio { - -#if defined(ASIO_ENABLE_OLD_SERVICES) -// Typedef for the typical usage of a signal set. -typedef basic_signal_set<> signal_set; -#else // defined(ASIO_ENABLE_OLD_SERVICES) -/// Provides signal functionality. -/** - * The signal_set class provides the ability to perform an asynchronous wait - * for one or more signals to occur. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Example - * Performing an asynchronous wait: - * @code - * void handler( - * const asio::error_code& error, - * int signal_number) - * { - * if (!error) - * { - * // A signal occurred. - * } - * } - * - * ... - * - * // Construct a signal set registered for process termination. - * asio::signal_set signals(io_context, SIGINT, SIGTERM); - * - * // Start an asynchronous wait for one of the signals to occur. - * signals.async_wait(handler); - * @endcode - * - * @par Queueing of signal notifications - * - * If a signal is registered with a signal_set, and the signal occurs when - * there are no waiting handlers, then the signal notification is queued. The - * next async_wait operation on that signal_set will dequeue the notification. - * If multiple notifications are queued, subsequent async_wait operations - * dequeue them one at a time. Signal notifications are dequeued in order of - * ascending signal number. - * - * If a signal number is removed from a signal_set (using the @c remove or @c - * erase member functions) then any queued notifications for that signal are - * discarded. - * - * @par Multiple registration of signals - * - * The same signal number may be registered with different signal_set objects. - * When the signal occurs, one handler is called for each signal_set object. - * - * Note that multiple registration only works for signals that are registered - * using Asio. The application must not also register a signal handler using - * functions such as @c signal() or @c sigaction(). - * - * @par Signal masking on POSIX platforms - * - * POSIX allows signals to be blocked using functions such as @c sigprocmask() - * and @c pthread_sigmask(). For signals to be delivered, programs must ensure - * that any signals registered using signal_set objects are unblocked in at - * least one thread. - */ -class signal_set - : ASIO_SVC_ACCESS basic_io_object -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// Construct a signal set without adding any signals. - /** - * This constructor creates a signal set without registering for any signals. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - */ - explicit signal_set(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct a signal set and add one signal. - /** - * This constructor creates a signal set and registers for one signal. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code asio::signal_set signals(io_context); - * signals.add(signal_number_1); @endcode - */ - signal_set(asio::io_context& io_context, int signal_number_1) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number_1, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Construct a signal set and add two signals. - /** - * This constructor creates a signal set and registers for two signals. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The first signal number to be added. - * - * @param signal_number_2 The second signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code asio::signal_set signals(io_context); - * signals.add(signal_number_1); - * signals.add(signal_number_2); @endcode - */ - signal_set(asio::io_context& io_context, int signal_number_1, - int signal_number_2) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number_1, ec); - asio::detail::throw_error(ec, "add"); - this->get_service().add(this->get_implementation(), signal_number_2, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Construct a signal set and add three signals. - /** - * This constructor creates a signal set and registers for three signals. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The first signal number to be added. - * - * @param signal_number_2 The second signal number to be added. - * - * @param signal_number_3 The third signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code asio::signal_set signals(io_context); - * signals.add(signal_number_1); - * signals.add(signal_number_2); - * signals.add(signal_number_3); @endcode - */ - signal_set(asio::io_context& io_context, int signal_number_1, - int signal_number_2, int signal_number_3) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number_1, ec); - asio::detail::throw_error(ec, "add"); - this->get_service().add(this->get_implementation(), signal_number_2, ec); - asio::detail::throw_error(ec, "add"); - this->get_service().add(this->get_implementation(), signal_number_3, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Destroys the signal set. - /** - * This function destroys the signal set, cancelling any outstanding - * asynchronous wait operations associated with the signal set as if by - * calling @c cancel. - */ - ~signal_set() - { - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } - - /// Add a signal to a signal_set. - /** - * This function adds the specified signal to the set. It has no effect if the - * signal is already in the set. - * - * @param signal_number The signal to be added to the set. - * - * @throws asio::system_error Thrown on failure. - */ - void add(int signal_number) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Add a signal to a signal_set. - /** - * This function adds the specified signal to the set. It has no effect if the - * signal is already in the set. - * - * @param signal_number The signal to be added to the set. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID add(int signal_number, - asio::error_code& ec) - { - this->get_service().add(this->get_implementation(), signal_number, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Remove a signal from a signal_set. - /** - * This function removes the specified signal from the set. It has no effect - * if the signal is not in the set. - * - * @param signal_number The signal to be removed from the set. - * - * @throws asio::system_error Thrown on failure. - * - * @note Removes any notifications that have been queued for the specified - * signal number. - */ - void remove(int signal_number) - { - asio::error_code ec; - this->get_service().remove(this->get_implementation(), signal_number, ec); - asio::detail::throw_error(ec, "remove"); - } - - /// Remove a signal from a signal_set. - /** - * This function removes the specified signal from the set. It has no effect - * if the signal is not in the set. - * - * @param signal_number The signal to be removed from the set. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Removes any notifications that have been queued for the specified - * signal number. - */ - ASIO_SYNC_OP_VOID remove(int signal_number, - asio::error_code& ec) - { - this->get_service().remove(this->get_implementation(), signal_number, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Remove all signals from a signal_set. - /** - * This function removes all signals from the set. It has no effect if the set - * is already empty. - * - * @throws asio::system_error Thrown on failure. - * - * @note Removes all queued notifications. - */ - void clear() - { - asio::error_code ec; - this->get_service().clear(this->get_implementation(), ec); - asio::detail::throw_error(ec, "clear"); - } - - /// Remove all signals from a signal_set. - /** - * This function removes all signals from the set. It has no effect if the set - * is already empty. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Removes all queued notifications. - */ - ASIO_SYNC_OP_VOID clear(asio::error_code& ec) - { - this->get_service().clear(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Cancel all operations associated with the signal set. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the signal set. The handler for each cancelled - * operation will be invoked with the asio::error::operation_aborted - * error code. - * - * Cancellation does not alter the set of registered signals. - * - * @throws asio::system_error Thrown on failure. - * - * @note If a registered signal occurred before cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all operations associated with the signal set. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the signal set. The handler for each cancelled - * operation will be invoked with the asio::error::operation_aborted - * error code. - * - * Cancellation does not alter the set of registered signals. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note If a registered signal occurred before cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous operation to wait for a signal to be delivered. - /** - * This function may be used to initiate an asynchronous wait against the - * signal set. It always returns immediately. - * - * For each call to async_wait(), the supplied handler will be called exactly - * once. The handler will be called when: - * - * @li One of the registered signals in the signal set occurs; or - * - * @li The signal set was cancelled, in which case the handler is passed the - * error code asio::error::operation_aborted. - * - * @param handler The handler to be called when the signal occurs. Copies - * will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * int signal_number // Indicates which signal occurred. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(SignalHandler, - void (asio::error_code, int)) - async_wait(ASIO_MOVE_ARG(SignalHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a SignalHandler. - ASIO_SIGNAL_HANDLER_CHECK(SignalHandler, handler) type_check; - - async_completion init(handler); - - this->get_service().async_wait(this->get_implementation(), - init.completion_handler); - - return init.result.get(); - } -}; -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -} // namespace asio - -#endif // ASIO_SIGNAL_SET_HPP diff --git a/Sources/Vendor/asio/include/asio/signal_set_service.hpp b/Sources/Vendor/asio/include/asio/signal_set_service.hpp deleted file mode 100644 index 3285beb..0000000 --- a/Sources/Vendor/asio/include/asio/signal_set_service.hpp +++ /dev/null @@ -1,142 +0,0 @@ -// -// signal_set_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SIGNAL_SET_SERVICE_HPP -#define ASIO_SIGNAL_SET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/async_result.hpp" -#include "asio/detail/signal_set_service.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a signal set. -class signal_set_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - -public: - /// The type of a signal set implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef detail::signal_set_service::implementation_type implementation_type; -#endif - - /// Construct a new signal set service for the specified io_context. - explicit signal_set_service(asio::io_context& io_context) - : asio::detail::service_base(io_context), - service_impl_(io_context) - { - } - - /// Construct a new signal set implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a signal set implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Add a signal to a signal_set. - ASIO_SYNC_OP_VOID add(implementation_type& impl, - int signal_number, asio::error_code& ec) - { - service_impl_.add(impl, signal_number, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Remove a signal to a signal_set. - ASIO_SYNC_OP_VOID remove(implementation_type& impl, - int signal_number, asio::error_code& ec) - { - service_impl_.remove(impl, signal_number, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Remove all signals from a signal_set. - ASIO_SYNC_OP_VOID clear(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.clear(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Cancel all operations associated with the signal set. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - // Start an asynchronous operation to wait for a signal to be delivered. - template - ASIO_INITFN_RESULT_TYPE(SignalHandler, - void (asio::error_code, int)) - async_wait(implementation_type& impl, - ASIO_MOVE_ARG(SignalHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // Perform any fork-related housekeeping. - void notify_fork(asio::io_context::fork_event event) - { - service_impl_.notify_fork(event); - } - - // The platform-specific implementation. - detail::signal_set_service service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_SIGNAL_SET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/socket_acceptor_service.hpp b/Sources/Vendor/asio/include/asio/socket_acceptor_service.hpp deleted file mode 100644 index cd40fe1..0000000 --- a/Sources/Vendor/asio/include/asio/socket_acceptor_service.hpp +++ /dev/null @@ -1,372 +0,0 @@ -// -// socket_acceptor_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SOCKET_ACCEPTOR_SERVICE_HPP -#define ASIO_SOCKET_ACCEPTOR_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/basic_socket.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/null_socket_service.hpp" -#elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_socket_service.hpp" -#else -# include "asio/detail/reactive_socket_service.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a socket acceptor. -template -class socket_acceptor_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename protocol_type::endpoint endpoint_type; - -private: - // The type of the platform-specific implementation. -#if defined(ASIO_WINDOWS_RUNTIME) - typedef detail::null_socket_service service_impl_type; -#elif defined(ASIO_HAS_IOCP) - typedef detail::win_iocp_socket_service service_impl_type; -#else - typedef detail::reactive_socket_service service_impl_type; -#endif - -public: - /// The native type of the socket acceptor. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// The native acceptor type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new socket acceptor service for the specified io_context. - explicit socket_acceptor_service(asio::io_context& io_context) - : asio::detail::service_base< - socket_acceptor_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new socket acceptor implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new socket acceptor implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another socket acceptor implementation. - void move_assign(implementation_type& impl, - socket_acceptor_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } - - // All acceptor services have access to each other's implementations. - template friend class socket_acceptor_service; - - /// Move-construct a new socket acceptor implementation from another protocol - /// type. - template - void converting_move_construct(implementation_type& impl, - socket_acceptor_service& other_service, - typename socket_acceptor_service< - Protocol1>::implementation_type& other_impl, - typename enable_if::value>::type* = 0) - { - service_impl_.template converting_move_construct( - impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a socket acceptor implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Open a new socket acceptor implementation. - ASIO_SYNC_OP_VOID open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - service_impl_.open(impl, protocol, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native acceptor to a socket acceptor. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_acceptor, - asio::error_code& ec) - { - service_impl_.assign(impl, protocol, native_acceptor, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the acceptor is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Cancel all asynchronous operations associated with the acceptor. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Bind the socket acceptor to the specified local endpoint. - ASIO_SYNC_OP_VOID bind(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - service_impl_.bind(impl, endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Place the socket acceptor into the state where it will listen for new - /// connections. - ASIO_SYNC_OP_VOID listen(implementation_type& impl, int backlog, - asio::error_code& ec) - { - service_impl_.listen(impl, backlog, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Close a socket acceptor implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Release ownership of the underlying acceptor. - native_handle_type release(implementation_type& impl, - asio::error_code& ec) - { - return service_impl_.release(impl, ec); - } - - /// Get the native acceptor implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Set a socket option. - template - ASIO_SYNC_OP_VOID set_option(implementation_type& impl, - const SettableSocketOption& option, asio::error_code& ec) - { - service_impl_.set_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get a socket option. - template - ASIO_SYNC_OP_VOID get_option(const implementation_type& impl, - GettableSocketOption& option, asio::error_code& ec) const - { - service_impl_.get_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the socket. - template - ASIO_SYNC_OP_VOID io_control(implementation_type& impl, - IoControlCommand& command, asio::error_code& ec) - { - service_impl_.io_control(impl, command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the acceptor. - bool non_blocking(const implementation_type& impl) const - { - return service_impl_.non_blocking(impl); - } - - /// Sets the non-blocking mode of the acceptor. - ASIO_SYNC_OP_VOID non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native acceptor implementation. - bool native_non_blocking(const implementation_type& impl) const - { - return service_impl_.native_non_blocking(impl); - } - - /// Sets the non-blocking mode of the native acceptor implementation. - ASIO_SYNC_OP_VOID native_non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.native_non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.local_endpoint(impl, ec); - } - - /// Wait for the acceptor to become ready to read, ready to write, or to have - /// pending error conditions. - ASIO_SYNC_OP_VOID wait(implementation_type& impl, - socket_base::wait_type w, asio::error_code& ec) - { - service_impl_.wait(impl, w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the acceptor to become ready to read, ready to - /// write, or to have pending error conditions. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, socket_base::wait_type w, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, w, init.completion_handler); - - return init.result.get(); - } - - /// Accept a new connection. - template - ASIO_SYNC_OP_VOID accept(implementation_type& impl, - basic_socket& peer, - endpoint_type* peer_endpoint, asio::error_code& ec, - typename enable_if::value>::type* = 0) - { - service_impl_.accept(impl, peer, peer_endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - -#if defined(ASIO_HAS_MOVE) - /// Accept a new connection. - typename Protocol::socket accept(implementation_type& impl, - io_context* peer_io_context, endpoint_type* peer_endpoint, - asio::error_code& ec) - { - return service_impl_.accept(impl, peer_io_context, peer_endpoint, ec); - } -#endif // defined(ASIO_HAS_MOVE) - - /// Start an asynchronous accept. - template - ASIO_INITFN_RESULT_TYPE(AcceptHandler, - void (asio::error_code)) - async_accept(implementation_type& impl, - basic_socket& peer, - endpoint_type* peer_endpoint, - ASIO_MOVE_ARG(AcceptHandler) handler, - typename enable_if::value>::type* = 0) - { - async_completion init(handler); - - service_impl_.async_accept(impl, - peer, peer_endpoint, init.completion_handler); - - return init.result.get(); - } - -#if defined(ASIO_HAS_MOVE) - /// Start an asynchronous accept. - template - ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler, - void (asio::error_code, typename Protocol::socket)) - async_accept(implementation_type& impl, - asio::io_context* peer_io_context, endpoint_type* peer_endpoint, - ASIO_MOVE_ARG(MoveAcceptHandler) handler) - { - async_completion init(handler); - - service_impl_.async_accept(impl, - peer_io_context, peer_endpoint, init.completion_handler); - - return init.result.get(); - } -#endif // defined(ASIO_HAS_MOVE) - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_SOCKET_ACCEPTOR_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/socket_base.hpp b/Sources/Vendor/asio/include/asio/socket_base.hpp deleted file mode 100644 index 87ed840..0000000 --- a/Sources/Vendor/asio/include/asio/socket_base.hpp +++ /dev/null @@ -1,559 +0,0 @@ -// -// socket_base.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SOCKET_BASE_HPP -#define ASIO_SOCKET_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/io_control.hpp" -#include "asio/detail/socket_option.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// The socket_base class is used as a base for the basic_stream_socket and -/// basic_datagram_socket class templates so that we have a common place to -/// define the shutdown_type and enum. -class socket_base -{ -public: - /// Different ways a socket may be shutdown. - enum shutdown_type - { -#if defined(GENERATING_DOCUMENTATION) - /// Shutdown the receive side of the socket. - shutdown_receive = implementation_defined, - - /// Shutdown the send side of the socket. - shutdown_send = implementation_defined, - - /// Shutdown both send and receive on the socket. - shutdown_both = implementation_defined -#else - shutdown_receive = ASIO_OS_DEF(SHUT_RD), - shutdown_send = ASIO_OS_DEF(SHUT_WR), - shutdown_both = ASIO_OS_DEF(SHUT_RDWR) -#endif - }; - - /// Bitmask type for flags that can be passed to send and receive operations. - typedef int message_flags; - -#if defined(GENERATING_DOCUMENTATION) - /// Peek at incoming data without removing it from the input queue. - static const int message_peek = implementation_defined; - - /// Process out-of-band data. - static const int message_out_of_band = implementation_defined; - - /// Specify that the data should not be subject to routing. - static const int message_do_not_route = implementation_defined; - - /// Specifies that the data marks the end of a record. - static const int message_end_of_record = implementation_defined; -#else - ASIO_STATIC_CONSTANT(int, - message_peek = ASIO_OS_DEF(MSG_PEEK)); - ASIO_STATIC_CONSTANT(int, - message_out_of_band = ASIO_OS_DEF(MSG_OOB)); - ASIO_STATIC_CONSTANT(int, - message_do_not_route = ASIO_OS_DEF(MSG_DONTROUTE)); - ASIO_STATIC_CONSTANT(int, - message_end_of_record = ASIO_OS_DEF(MSG_EOR)); -#endif - - /// Wait types. - /** - * For use with basic_socket::wait() and basic_socket::async_wait(). - */ - enum wait_type - { - /// Wait for a socket to become ready to read. - wait_read, - - /// Wait for a socket to become ready to write. - wait_write, - - /// Wait for a socket to have error conditions pending. - wait_error - }; - - /// Socket option to permit sending of broadcast messages. - /** - * Implements the SOL_SOCKET/SO_BROADCAST socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::socket_base::broadcast option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::socket_base::broadcast option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined broadcast; -#else - typedef asio::detail::socket_option::boolean< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_BROADCAST)> - broadcast; -#endif - - /// Socket option to enable socket-level debugging. - /** - * Implements the SOL_SOCKET/SO_DEBUG socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::debug option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::debug option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined debug; -#else - typedef asio::detail::socket_option::boolean< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_DEBUG)> debug; -#endif - - /// Socket option to prevent routing, use local interfaces only. - /** - * Implements the SOL_SOCKET/SO_DONTROUTE socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::socket_base::do_not_route option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::socket_base::do_not_route option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined do_not_route; -#else - typedef asio::detail::socket_option::boolean< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_DONTROUTE)> - do_not_route; -#endif - - /// Socket option to send keep-alives. - /** - * Implements the SOL_SOCKET/SO_KEEPALIVE socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::keep_alive option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::keep_alive option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined keep_alive; -#else - typedef asio::detail::socket_option::boolean< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_KEEPALIVE)> keep_alive; -#endif - - /// Socket option for the send buffer size of a socket. - /** - * Implements the SOL_SOCKET/SO_SNDBUF socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::send_buffer_size option(8192); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::send_buffer_size option; - * socket.get_option(option); - * int size = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Integer_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined send_buffer_size; -#else - typedef asio::detail::socket_option::integer< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_SNDBUF)> - send_buffer_size; -#endif - - /// Socket option for the send low watermark. - /** - * Implements the SOL_SOCKET/SO_SNDLOWAT socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::send_low_watermark option(1024); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::send_low_watermark option; - * socket.get_option(option); - * int size = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Integer_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined send_low_watermark; -#else - typedef asio::detail::socket_option::integer< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_SNDLOWAT)> - send_low_watermark; -#endif - - /// Socket option for the receive buffer size of a socket. - /** - * Implements the SOL_SOCKET/SO_RCVBUF socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::receive_buffer_size option(8192); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::receive_buffer_size option; - * socket.get_option(option); - * int size = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Integer_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined receive_buffer_size; -#else - typedef asio::detail::socket_option::integer< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_RCVBUF)> - receive_buffer_size; -#endif - - /// Socket option for the receive low watermark. - /** - * Implements the SOL_SOCKET/SO_RCVLOWAT socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::receive_low_watermark option(1024); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::receive_low_watermark option; - * socket.get_option(option); - * int size = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Integer_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined receive_low_watermark; -#else - typedef asio::detail::socket_option::integer< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_RCVLOWAT)> - receive_low_watermark; -#endif - - /// Socket option to allow the socket to be bound to an address that is - /// already in use. - /** - * Implements the SOL_SOCKET/SO_REUSEADDR socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::socket_base::reuse_address option(true); - * acceptor.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::socket_base::reuse_address option; - * acceptor.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined reuse_address; -#else - typedef asio::detail::socket_option::boolean< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_REUSEADDR)> - reuse_address; -#endif - - /// Socket option to specify whether the socket lingers on close if unsent - /// data is present. - /** - * Implements the SOL_SOCKET/SO_LINGER socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::linger option(true, 30); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::linger option; - * socket.get_option(option); - * bool is_set = option.enabled(); - * unsigned short timeout = option.timeout(); - * @endcode - * - * @par Concepts: - * Socket_Option, Linger_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined linger; -#else - typedef asio::detail::socket_option::linger< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_LINGER)> - linger; -#endif - - /// Socket option for putting received out-of-band data inline. - /** - * Implements the SOL_SOCKET/SO_OOBINLINE socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::out_of_band_inline option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::out_of_band_inline option; - * socket.get_option(option); - * bool value = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined out_of_band_inline; -#else - typedef asio::detail::socket_option::boolean< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_OOBINLINE)> - out_of_band_inline; -#endif - - /// Socket option to report aborted connections on accept. - /** - * Implements a custom socket option that determines whether or not an accept - * operation is permitted to fail with asio::error::connection_aborted. - * By default the option is false. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::socket_base::enable_connection_aborted option(true); - * acceptor.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::socket_base::enable_connection_aborted option; - * acceptor.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined enable_connection_aborted; -#else - typedef asio::detail::socket_option::boolean< - asio::detail::custom_socket_option_level, - asio::detail::enable_connection_aborted_option> - enable_connection_aborted; -#endif - - /// IO control command to get the amount of data that can be read without - /// blocking. - /** - * Implements the FIONREAD IO control command. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::bytes_readable command(true); - * socket.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - * - * @par Concepts: - * IO_Control_Command, Size_IO_Control_Command. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined bytes_readable; -#else - typedef asio::detail::io_control::bytes_readable bytes_readable; -#endif - - /// The maximum length of the queue of pending incoming connections. -#if defined(GENERATING_DOCUMENTATION) - static const int max_listen_connections = implementation_defined; -#else - ASIO_STATIC_CONSTANT(int, max_listen_connections - = ASIO_OS_DEF(SOMAXCONN)); -#endif - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use max_listen_connections.) The maximum length of the queue - /// of pending incoming connections. -#if defined(GENERATING_DOCUMENTATION) - static const int max_connections = implementation_defined; -#else - ASIO_STATIC_CONSTANT(int, max_connections - = ASIO_OS_DEF(SOMAXCONN)); -#endif -#endif // !defined(ASIO_NO_DEPRECATED) - -protected: - /// Protected destructor to prevent deletion through this type. - ~socket_base() - { - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SOCKET_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/spawn.hpp b/Sources/Vendor/asio/include/asio/spawn.hpp deleted file mode 100644 index a91c581..0000000 --- a/Sources/Vendor/asio/include/asio/spawn.hpp +++ /dev/null @@ -1,336 +0,0 @@ -// -// spawn.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SPAWN_HPP -#define ASIO_SPAWN_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/bind_executor.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/detail/wrapped_handler.hpp" -#include "asio/executor.hpp" -#include "asio/io_context.hpp" -#include "asio/is_executor.hpp" -#include "asio/strand.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Context object the represents the currently executing coroutine. -/** - * The basic_yield_context class is used to represent the currently executing - * stackful coroutine. A basic_yield_context may be passed as a handler to an - * asynchronous operation. For example: - * - * @code template - * void my_coroutine(basic_yield_context yield) - * { - * ... - * std::size_t n = my_socket.async_read_some(buffer, yield); - * ... - * } @endcode - * - * 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. - */ -template -class basic_yield_context -{ -public: - /// The coroutine callee type, used by the implementation. - /** - * When using Boost.Coroutine v1, this type is: - * @code typename coroutine @endcode - * When using Boost.Coroutine v2 (unidirectional coroutines), this type is: - * @code push_coroutine @endcode - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined callee_type; -#elif defined(BOOST_COROUTINES_UNIDIRECT) || defined(BOOST_COROUTINES_V2) - typedef boost::coroutines::push_coroutine callee_type; -#else - typedef boost::coroutines::coroutine callee_type; -#endif - - /// The coroutine caller type, used by the implementation. - /** - * When using Boost.Coroutine v1, this type is: - * @code typename coroutine::caller_type @endcode - * When using Boost.Coroutine v2 (unidirectional coroutines), this type is: - * @code pull_coroutine @endcode - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined caller_type; -#elif defined(BOOST_COROUTINES_UNIDIRECT) || defined(BOOST_COROUTINES_V2) - typedef boost::coroutines::pull_coroutine caller_type; -#else - typedef boost::coroutines::coroutine::caller_type caller_type; -#endif - - /// Construct a yield context to represent the specified coroutine. - /** - * Most applications do not need to use this constructor. Instead, the - * spawn() function passes a yield context as an argument to the coroutine - * function. - */ - basic_yield_context( - const detail::weak_ptr& coro, - caller_type& ca, Handler& handler) - : coro_(coro), - ca_(ca), - handler_(handler), - ec_(0) - { - } - - /// Construct a yield context from another yield context type. - /** - * Requires that OtherHandler be convertible to Handler. - */ - template - basic_yield_context(const basic_yield_context& other) - : coro_(other.coro_), - ca_(other.ca_), - handler_(other.handler_), - ec_(other.ec_) - { - } - - /// Return a yield context that sets the specified error_code. - /** - * 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: - * - * @code template - * void my_coroutine(basic_yield_context yield) - * { - * ... - * std::size_t n = my_socket.async_read_some(buffer, yield[ec]); - * if (ec) - * { - * // An error occurred. - * } - * ... - * } @endcode - */ - basic_yield_context operator[](asio::error_code& ec) const - { - basic_yield_context tmp(*this); - tmp.ec_ = &ec; - return tmp; - } - -#if defined(GENERATING_DOCUMENTATION) -private: -#endif // defined(GENERATING_DOCUMENTATION) - detail::weak_ptr coro_; - caller_type& ca_; - Handler handler_; - asio::error_code* ec_; -}; - -#if defined(GENERATING_DOCUMENTATION) -/// Context object that represents the currently executing coroutine. -typedef basic_yield_context yield_context; -#else // defined(GENERATING_DOCUMENTATION) -typedef basic_yield_context< - executor_binder > yield_context; -#endif // defined(GENERATING_DOCUMENTATION) - -/** - * @defgroup spawn asio::spawn - * - * @brief Start a new stackful coroutine. - * - * 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: - * - * @code asio::spawn(my_strand, do_echo); - * - * // ... - * - * void do_echo(asio::yield_context yield) - * { - * try - * { - * char data[128]; - * for (;;) - * { - * std::size_t length = - * my_socket.async_read_some( - * asio::buffer(data), yield); - * - * asio::async_write(my_socket, - * asio::buffer(data, length), yield); - * } - * } - * catch (std::exception& e) - * { - * // ... - * } - * } @endcode - */ -/*@{*/ - -/// Start a new stackful coroutine, calling the specified handler when it -/// completes. -/** - * This function is used to launch a new coroutine. - * - * @param function The coroutine function. The function must have the signature: - * @code void function(basic_yield_context yield); @endcode - * - * @param attributes Boost.Coroutine attributes used to customise the coroutine. - */ -template -void spawn(ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes - = boost::coroutines::attributes()); - -/// Start a new stackful coroutine, calling the specified handler when it -/// completes. -/** - * This function is used to launch a new coroutine. - * - * @param 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: - * @code void handler(); @endcode - * - * @param function The coroutine function. The function must have the signature: - * @code void function(basic_yield_context yield); @endcode - * - * @param attributes Boost.Coroutine attributes used to customise the coroutine. - */ -template -void spawn(ASIO_MOVE_ARG(Handler) handler, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes - = boost::coroutines::attributes(), - typename enable_if::type>::value && - !is_convertible::value>::type* = 0); - -/// Start a new stackful coroutine, inheriting the execution context of another. -/** - * This function is used to launch a new coroutine. - * - * @param 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. - * - * @param function The coroutine function. The function must have the signature: - * @code void function(basic_yield_context yield); @endcode - * - * @param attributes Boost.Coroutine attributes used to customise the coroutine. - */ -template -void spawn(basic_yield_context ctx, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes - = boost::coroutines::attributes()); - -/// Start a new stackful coroutine that executes on a given executor. -/** - * This function is used to launch a new coroutine. - * - * @param ex Identifies the executor that will run the coroutine. The new - * coroutine is implicitly given its own strand within this executor. - * - * @param function The coroutine function. The function must have the signature: - * @code void function(yield_context yield); @endcode - * - * @param attributes Boost.Coroutine attributes used to customise the coroutine. - */ -template -void spawn(const Executor& ex, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes - = boost::coroutines::attributes(), - typename enable_if::value>::type* = 0); - -/// Start a new stackful coroutine that executes on a given strand. -/** - * This function is used to launch a new coroutine. - * - * @param ex Identifies the strand that will run the coroutine. - * - * @param function The coroutine function. The function must have the signature: - * @code void function(yield_context yield); @endcode - * - * @param attributes Boost.Coroutine attributes used to customise the coroutine. - */ -template -void spawn(const strand& ex, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes - = boost::coroutines::attributes()); - -/// Start a new stackful coroutine that executes in the context of a strand. -/** - * This function is used to launch a new coroutine. - * - * @param s Identifies a strand. By starting multiple coroutines on the same - * strand, the implementation ensures that none of those coroutines can execute - * simultaneously. - * - * @param function The coroutine function. The function must have the signature: - * @code void function(yield_context yield); @endcode - * - * @param attributes Boost.Coroutine attributes used to customise the coroutine. - */ -template -void spawn(const asio::io_context::strand& s, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes - = boost::coroutines::attributes()); - -/// Start a new stackful coroutine that executes on a given execution context. -/** - * This function is used to launch a new coroutine. - * - * @param ctx Identifies the execution context that will run the coroutine. The - * new coroutine is implicitly given its own strand within this execution - * context. - * - * @param function The coroutine function. The function must have the signature: - * @code void function(yield_context yield); @endcode - * - * @param attributes Boost.Coroutine attributes used to customise the coroutine. - */ -template -void spawn(ExecutionContext& ctx, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes - = boost::coroutines::attributes(), - typename enable_if::value>::type* = 0); - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/spawn.hpp" - -#endif // ASIO_SPAWN_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl.hpp b/Sources/Vendor/asio/include/asio/ssl.hpp deleted file mode 100644 index cbad19d..0000000 --- a/Sources/Vendor/asio/include/asio/ssl.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// ssl.hpp -// ~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_HPP -#define ASIO_SSL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/ssl/context.hpp" -#include "asio/ssl/context_base.hpp" -#include "asio/ssl/error.hpp" -#include "asio/ssl/rfc2818_verification.hpp" -#include "asio/ssl/stream.hpp" -#include "asio/ssl/stream_base.hpp" -#include "asio/ssl/verify_context.hpp" -#include "asio/ssl/verify_mode.hpp" - -#endif // ASIO_SSL_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/context.hpp b/Sources/Vendor/asio/include/asio/ssl/context.hpp deleted file mode 100644 index 9543aab..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/context.hpp +++ /dev/null @@ -1,758 +0,0 @@ -// -// ssl/context.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_CONTEXT_HPP -#define ASIO_SSL_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/ssl/context_base.hpp" -#include "asio/ssl/detail/openssl_types.hpp" -#include "asio/ssl/detail/openssl_init.hpp" -#include "asio/ssl/detail/password_callback.hpp" -#include "asio/ssl/detail/verify_callback.hpp" -#include "asio/ssl/verify_mode.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -class context - : public context_base, - private noncopyable -{ -public: - /// The native handle type of the SSL context. - typedef SSL_CTX* native_handle_type; - - /// Constructor. - ASIO_DECL explicit context(method m); - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a context from another. - /** - * This constructor moves an SSL context from one object to another. - * - * @param other The other context object from which the move will occur. - * - * @note Following the move, the following operations only are valid for the - * moved-from object: - * @li Destruction. - * @li As a target for move-assignment. - */ - ASIO_DECL context(context&& other); - - /// Move-assign a context from another. - /** - * This assignment operator moves an SSL context from one object to another. - * - * @param other The other context object from which the move will occur. - * - * @note Following the move, the following operations only are valid for the - * moved-from object: - * @li Destruction. - * @li As a target for move-assignment. - */ - ASIO_DECL context& operator=(context&& other); -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destructor. - ASIO_DECL ~context(); - - /// Get the underlying implementation in the native type. - /** - * This function may be used to obtain the underlying implementation of the - * context. This is intended to allow access to context functionality that is - * not otherwise provided. - */ - ASIO_DECL native_handle_type native_handle(); - - /// Clear options on the context. - /** - * This function may be used to configure the SSL options used by the context. - * - * @param o A bitmask of options. The available option values are defined in - * the context_base class. The specified options, if currently enabled on the - * context, are cleared. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_clear_options. - */ - ASIO_DECL void clear_options(options o); - - /// Clear options on the context. - /** - * This function may be used to configure the SSL options used by the context. - * - * @param o A bitmask of options. The available option values are defined in - * the context_base class. The specified options, if currently enabled on the - * context, are cleared. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_clear_options. - */ - ASIO_DECL ASIO_SYNC_OP_VOID clear_options(options o, - asio::error_code& ec); - - /// Set options on the context. - /** - * This function may be used to configure the SSL options used by the context. - * - * @param o A bitmask of options. The available option values are defined in - * the context_base class. The options are bitwise-ored with any existing - * value for the options. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_options. - */ - ASIO_DECL void set_options(options o); - - /// Set options on the context. - /** - * This function may be used to configure the SSL options used by the context. - * - * @param o A bitmask of options. The available option values are defined in - * the context_base class. The options are bitwise-ored with any existing - * value for the options. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_options. - */ - ASIO_DECL ASIO_SYNC_OP_VOID set_options(options o, - asio::error_code& ec); - - /// Set the peer verification mode. - /** - * This function may be used to configure the peer verification mode used by - * the context. - * - * @param v A bitmask of peer verification modes. See @ref verify_mode for - * available values. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_verify. - */ - ASIO_DECL void set_verify_mode(verify_mode v); - - /// Set the peer verification mode. - /** - * This function may be used to configure the peer verification mode used by - * the context. - * - * @param v A bitmask of peer verification modes. See @ref verify_mode for - * available values. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_verify. - */ - ASIO_DECL ASIO_SYNC_OP_VOID set_verify_mode( - verify_mode v, asio::error_code& ec); - - /// Set the peer verification depth. - /** - * This function may be used to configure the maximum verification depth - * allowed by the context. - * - * @param depth Maximum depth for the certificate chain verification that - * shall be allowed. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_verify_depth. - */ - ASIO_DECL void set_verify_depth(int depth); - - /// Set the peer verification depth. - /** - * This function may be used to configure the maximum verification depth - * allowed by the context. - * - * @param depth Maximum depth for the certificate chain verification that - * shall be allowed. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_verify_depth. - */ - ASIO_DECL ASIO_SYNC_OP_VOID set_verify_depth( - int depth, asio::error_code& ec); - - /// Set the callback used to verify peer certificates. - /** - * This function is used to specify a callback function that will be called - * by the implementation when it needs to verify a peer certificate. - * - * @param callback The function object to be used for verifying a certificate. - * The function signature of the handler must be: - * @code bool verify_callback( - * bool preverified, // True if the certificate passed pre-verification. - * verify_context& ctx // The peer certificate and other context. - * ); @endcode - * The return value of the callback is true if the certificate has passed - * verification, false otherwise. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_verify. - */ - template - void set_verify_callback(VerifyCallback callback); - - /// Set the callback used to verify peer certificates. - /** - * This function is used to specify a callback function that will be called - * by the implementation when it needs to verify a peer certificate. - * - * @param callback The function object to be used for verifying a certificate. - * The function signature of the handler must be: - * @code bool verify_callback( - * bool preverified, // True if the certificate passed pre-verification. - * verify_context& ctx // The peer certificate and other context. - * ); @endcode - * The return value of the callback is true if the certificate has passed - * verification, false otherwise. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_verify. - */ - template - ASIO_SYNC_OP_VOID set_verify_callback(VerifyCallback callback, - asio::error_code& ec); - - /// Load a certification authority file for performing verification. - /** - * This function is used to load one or more trusted certification authorities - * from a file. - * - * @param filename The name of a file containing certification authority - * certificates in PEM format. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_load_verify_locations. - */ - ASIO_DECL void load_verify_file(const std::string& filename); - - /// Load a certification authority file for performing verification. - /** - * This function is used to load the certificates for one or more trusted - * certification authorities from a file. - * - * @param filename The name of a file containing certification authority - * certificates in PEM format. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_load_verify_locations. - */ - ASIO_DECL ASIO_SYNC_OP_VOID load_verify_file( - const std::string& filename, asio::error_code& ec); - - /// Add certification authority for performing verification. - /** - * This function is used to add one trusted certification authority - * from a memory buffer. - * - * @param ca The buffer containing the certification authority certificate. - * The certificate must use the PEM format. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_get_cert_store and @c X509_STORE_add_cert. - */ - ASIO_DECL void add_certificate_authority(const const_buffer& ca); - - /// Add certification authority for performing verification. - /** - * This function is used to add one trusted certification authority - * from a memory buffer. - * - * @param ca The buffer containing the certification authority certificate. - * The certificate must use the PEM format. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_get_cert_store and @c X509_STORE_add_cert. - */ - ASIO_DECL ASIO_SYNC_OP_VOID add_certificate_authority( - const const_buffer& ca, asio::error_code& ec); - - /// Configures the context to use the default directories for finding - /// certification authority certificates. - /** - * This function specifies that the context should use the default, - * system-dependent directories for locating certification authority - * certificates. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_default_verify_paths. - */ - ASIO_DECL void set_default_verify_paths(); - - /// Configures the context to use the default directories for finding - /// certification authority certificates. - /** - * This function specifies that the context should use the default, - * system-dependent directories for locating certification authority - * certificates. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_default_verify_paths. - */ - ASIO_DECL ASIO_SYNC_OP_VOID set_default_verify_paths( - asio::error_code& ec); - - /// Add a directory containing certificate authority files to be used for - /// performing verification. - /** - * This function is used to specify the name of a directory containing - * certification authority certificates. Each file in the directory must - * contain a single certificate. The files must be named using the subject - * name's hash and an extension of ".0". - * - * @param path The name of a directory containing the certificates. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_load_verify_locations. - */ - ASIO_DECL void add_verify_path(const std::string& path); - - /// Add a directory containing certificate authority files to be used for - /// performing verification. - /** - * This function is used to specify the name of a directory containing - * certification authority certificates. Each file in the directory must - * contain a single certificate. The files must be named using the subject - * name's hash and an extension of ".0". - * - * @param path The name of a directory containing the certificates. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_load_verify_locations. - */ - ASIO_DECL ASIO_SYNC_OP_VOID add_verify_path( - const std::string& path, asio::error_code& ec); - - /// Use a certificate from a memory buffer. - /** - * This function is used to load a certificate into the context from a buffer. - * - * @param certificate The buffer containing the certificate. - * - * @param format The certificate format (ASN.1 or PEM). - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_certificate or SSL_CTX_use_certificate_ASN1. - */ - ASIO_DECL void use_certificate( - const const_buffer& certificate, file_format format); - - /// Use a certificate from a memory buffer. - /** - * This function is used to load a certificate into the context from a buffer. - * - * @param certificate The buffer containing the certificate. - * - * @param format The certificate format (ASN.1 or PEM). - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_certificate or SSL_CTX_use_certificate_ASN1. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_certificate( - const const_buffer& certificate, file_format format, - asio::error_code& ec); - - /// Use a certificate from a file. - /** - * This function is used to load a certificate into the context from a file. - * - * @param filename The name of the file containing the certificate. - * - * @param format The file format (ASN.1 or PEM). - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_certificate_file. - */ - ASIO_DECL void use_certificate_file( - const std::string& filename, file_format format); - - /// Use a certificate from a file. - /** - * This function is used to load a certificate into the context from a file. - * - * @param filename The name of the file containing the certificate. - * - * @param format The file format (ASN.1 or PEM). - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_certificate_file. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_certificate_file( - const std::string& filename, file_format format, - asio::error_code& ec); - - /// Use a certificate chain from a memory buffer. - /** - * This function is used to load a certificate chain into the context from a - * buffer. - * - * @param chain The buffer containing the certificate chain. The certificate - * chain must use the PEM format. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_certificate and SSL_CTX_add_extra_chain_cert. - */ - ASIO_DECL void use_certificate_chain(const const_buffer& chain); - - /// Use a certificate chain from a memory buffer. - /** - * This function is used to load a certificate chain into the context from a - * buffer. - * - * @param chain The buffer containing the certificate chain. The certificate - * chain must use the PEM format. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_certificate and SSL_CTX_add_extra_chain_cert. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_certificate_chain( - const const_buffer& chain, asio::error_code& ec); - - /// Use a certificate chain from a file. - /** - * This function is used to load a certificate chain into the context from a - * file. - * - * @param filename The name of the file containing the certificate. The file - * must use the PEM format. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_certificate_chain_file. - */ - ASIO_DECL void use_certificate_chain_file(const std::string& filename); - - /// Use a certificate chain from a file. - /** - * This function is used to load a certificate chain into the context from a - * file. - * - * @param filename The name of the file containing the certificate. The file - * must use the PEM format. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_certificate_chain_file. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_certificate_chain_file( - const std::string& filename, asio::error_code& ec); - - /// Use a private key from a memory buffer. - /** - * This function is used to load a private key into the context from a buffer. - * - * @param private_key The buffer containing the private key. - * - * @param format The private key format (ASN.1 or PEM). - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_PrivateKey or SSL_CTX_use_PrivateKey_ASN1. - */ - ASIO_DECL void use_private_key( - const const_buffer& private_key, file_format format); - - /// Use a private key from a memory buffer. - /** - * This function is used to load a private key into the context from a buffer. - * - * @param private_key The buffer containing the private key. - * - * @param format The private key format (ASN.1 or PEM). - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_PrivateKey or SSL_CTX_use_PrivateKey_ASN1. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_private_key( - const const_buffer& private_key, file_format format, - asio::error_code& ec); - - /// Use a private key from a file. - /** - * This function is used to load a private key into the context from a file. - * - * @param filename The name of the file containing the private key. - * - * @param format The file format (ASN.1 or PEM). - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_PrivateKey_file. - */ - ASIO_DECL void use_private_key_file( - const std::string& filename, file_format format); - - /// Use a private key from a file. - /** - * This function is used to load a private key into the context from a file. - * - * @param filename The name of the file containing the private key. - * - * @param format The file format (ASN.1 or PEM). - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_PrivateKey_file. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_private_key_file( - const std::string& filename, file_format format, - asio::error_code& ec); - - /// Use an RSA private key from a memory buffer. - /** - * This function is used to load an RSA private key into the context from a - * buffer. - * - * @param private_key The buffer containing the RSA private key. - * - * @param format The private key format (ASN.1 or PEM). - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_RSAPrivateKey or SSL_CTX_use_RSAPrivateKey_ASN1. - */ - ASIO_DECL void use_rsa_private_key( - const const_buffer& private_key, file_format format); - - /// Use an RSA private key from a memory buffer. - /** - * This function is used to load an RSA private key into the context from a - * buffer. - * - * @param private_key The buffer containing the RSA private key. - * - * @param format The private key format (ASN.1 or PEM). - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_RSAPrivateKey or SSL_CTX_use_RSAPrivateKey_ASN1. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_rsa_private_key( - const const_buffer& private_key, file_format format, - asio::error_code& ec); - - /// Use an RSA private key from a file. - /** - * This function is used to load an RSA private key into the context from a - * file. - * - * @param filename The name of the file containing the RSA private key. - * - * @param format The file format (ASN.1 or PEM). - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_RSAPrivateKey_file. - */ - ASIO_DECL void use_rsa_private_key_file( - const std::string& filename, file_format format); - - /// Use an RSA private key from a file. - /** - * This function is used to load an RSA private key into the context from a - * file. - * - * @param filename The name of the file containing the RSA private key. - * - * @param format The file format (ASN.1 or PEM). - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_RSAPrivateKey_file. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_rsa_private_key_file( - const std::string& filename, file_format format, - asio::error_code& ec); - - /// Use the specified memory buffer to obtain the temporary Diffie-Hellman - /// parameters. - /** - * This function is used to load Diffie-Hellman parameters into the context - * from a buffer. - * - * @param dh The memory buffer containing the Diffie-Hellman parameters. The - * buffer must use the PEM format. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_tmp_dh. - */ - ASIO_DECL void use_tmp_dh(const const_buffer& dh); - - /// Use the specified memory buffer to obtain the temporary Diffie-Hellman - /// parameters. - /** - * This function is used to load Diffie-Hellman parameters into the context - * from a buffer. - * - * @param dh The memory buffer containing the Diffie-Hellman parameters. The - * buffer must use the PEM format. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_tmp_dh. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_tmp_dh( - const const_buffer& dh, asio::error_code& ec); - - /// Use the specified file to obtain the temporary Diffie-Hellman parameters. - /** - * This function is used to load Diffie-Hellman parameters into the context - * from a file. - * - * @param filename The name of the file containing the Diffie-Hellman - * parameters. The file must use the PEM format. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_tmp_dh. - */ - ASIO_DECL void use_tmp_dh_file(const std::string& filename); - - /// Use the specified file to obtain the temporary Diffie-Hellman parameters. - /** - * This function is used to load Diffie-Hellman parameters into the context - * from a file. - * - * @param filename The name of the file containing the Diffie-Hellman - * parameters. The file must use the PEM format. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_tmp_dh. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_tmp_dh_file( - const std::string& filename, asio::error_code& ec); - - /// Set the password callback. - /** - * This function is used to specify a callback function to obtain password - * information about an encrypted key in PEM format. - * - * @param callback The function object to be used for obtaining the password. - * The function signature of the handler must be: - * @code std::string password_callback( - * std::size_t max_length, // The maximum size for a password. - * password_purpose purpose // Whether password is for reading or writing. - * ); @endcode - * The return value of the callback is a string containing the password. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_default_passwd_cb. - */ - template - void set_password_callback(PasswordCallback callback); - - /// Set the password callback. - /** - * This function is used to specify a callback function to obtain password - * information about an encrypted key in PEM format. - * - * @param callback The function object to be used for obtaining the password. - * The function signature of the handler must be: - * @code std::string password_callback( - * std::size_t max_length, // The maximum size for a password. - * password_purpose purpose // Whether password is for reading or writing. - * ); @endcode - * The return value of the callback is a string containing the password. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_default_passwd_cb. - */ - template - ASIO_SYNC_OP_VOID set_password_callback(PasswordCallback callback, - asio::error_code& ec); - -private: - struct bio_cleanup; - struct x509_cleanup; - struct evp_pkey_cleanup; - struct rsa_cleanup; - struct dh_cleanup; - - // Helper function used to set a peer certificate verification callback. - ASIO_DECL ASIO_SYNC_OP_VOID do_set_verify_callback( - detail::verify_callback_base* callback, asio::error_code& ec); - - // Callback used when the SSL implementation wants to verify a certificate. - ASIO_DECL static int verify_callback_function( - int preverified, X509_STORE_CTX* ctx); - - // Helper function used to set a password callback. - ASIO_DECL ASIO_SYNC_OP_VOID do_set_password_callback( - detail::password_callback_base* callback, asio::error_code& ec); - - // Callback used when the SSL implementation wants a password. - ASIO_DECL static int password_callback_function( - char* buf, int size, int purpose, void* data); - - // Helper function to set the temporary Diffie-Hellman parameters from a BIO. - ASIO_DECL ASIO_SYNC_OP_VOID do_use_tmp_dh( - BIO* bio, asio::error_code& ec); - - // Helper function to make a BIO from a memory buffer. - ASIO_DECL BIO* make_buffer_bio(const const_buffer& b); - - // The underlying native implementation. - native_handle_type handle_; - - // Ensure openssl is initialised. - asio::ssl::detail::openssl_init<> init_; -}; - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/ssl/impl/context.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/ssl/impl/context.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_SSL_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/context_base.hpp b/Sources/Vendor/asio/include/asio/ssl/context_base.hpp deleted file mode 100644 index b862f96..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/context_base.hpp +++ /dev/null @@ -1,209 +0,0 @@ -// -// ssl/context_base.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_CONTEXT_BASE_HPP -#define ASIO_SSL_CONTEXT_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ssl/detail/openssl_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -/// The context_base class is used as a base for the basic_context class -/// template so that we have a common place to define various enums. -class context_base -{ -public: - /// Different methods supported by a context. - enum method - { - /// Generic SSL version 2. - sslv2, - - /// SSL version 2 client. - sslv2_client, - - /// SSL version 2 server. - sslv2_server, - - /// Generic SSL version 3. - sslv3, - - /// SSL version 3 client. - sslv3_client, - - /// SSL version 3 server. - sslv3_server, - - /// Generic TLS version 1. - tlsv1, - - /// TLS version 1 client. - tlsv1_client, - - /// TLS version 1 server. - tlsv1_server, - - /// Generic SSL/TLS. - sslv23, - - /// SSL/TLS client. - sslv23_client, - - /// SSL/TLS server. - sslv23_server, - - /// Generic TLS version 1.1. - tlsv11, - - /// TLS version 1.1 client. - tlsv11_client, - - /// TLS version 1.1 server. - tlsv11_server, - - /// Generic TLS version 1.2. - tlsv12, - - /// TLS version 1.2 client. - tlsv12_client, - - /// TLS version 1.2 server. - tlsv12_server, - - /// Generic TLS version 1.3. - tlsv13, - - /// TLS version 1.3 client. - tlsv13_client, - - /// TLS version 1.3 server. - tlsv13_server, - - /// Generic TLS. - tls, - - /// TLS client. - tls_client, - - /// TLS server. - tls_server - }; - - /// Bitmask type for SSL options. - typedef long options; - -#if defined(GENERATING_DOCUMENTATION) - /// Implement various bug workarounds. - static const long default_workarounds = implementation_defined; - - /// Always create a new key when using tmp_dh parameters. - static const long single_dh_use = implementation_defined; - - /// Disable SSL v2. - static const long no_sslv2 = implementation_defined; - - /// Disable SSL v3. - static const long no_sslv3 = implementation_defined; - - /// Disable TLS v1. - static const long no_tlsv1 = implementation_defined; - - /// Disable TLS v1.1. - static const long no_tlsv1_1 = implementation_defined; - - /// Disable TLS v1.2. - static const long no_tlsv1_2 = implementation_defined; - - /// Disable TLS v1.3. - static const long no_tlsv1_3 = implementation_defined; - - /// Disable compression. Compression is disabled by default. - static const long no_compression = implementation_defined; -#else - ASIO_STATIC_CONSTANT(long, default_workarounds = SSL_OP_ALL); - ASIO_STATIC_CONSTANT(long, single_dh_use = SSL_OP_SINGLE_DH_USE); - ASIO_STATIC_CONSTANT(long, no_sslv2 = SSL_OP_NO_SSLv2); - ASIO_STATIC_CONSTANT(long, no_sslv3 = SSL_OP_NO_SSLv3); - ASIO_STATIC_CONSTANT(long, no_tlsv1 = SSL_OP_NO_TLSv1); -# if defined(SSL_OP_NO_TLSv1_1) - ASIO_STATIC_CONSTANT(long, no_tlsv1_1 = SSL_OP_NO_TLSv1_1); -# else // defined(SSL_OP_NO_TLSv1_1) - ASIO_STATIC_CONSTANT(long, no_tlsv1_1 = 0x10000000L); -# endif // defined(SSL_OP_NO_TLSv1_1) -# if defined(SSL_OP_NO_TLSv1_2) - ASIO_STATIC_CONSTANT(long, no_tlsv1_2 = SSL_OP_NO_TLSv1_2); -# else // defined(SSL_OP_NO_TLSv1_2) - ASIO_STATIC_CONSTANT(long, no_tlsv1_2 = 0x08000000L); -# endif // defined(SSL_OP_NO_TLSv1_2) -# if defined(SSL_OP_NO_TLSv1_3) - ASIO_STATIC_CONSTANT(long, no_tlsv1_3 = SSL_OP_NO_TLSv1_3); -# else // defined(SSL_OP_NO_TLSv1_3) - ASIO_STATIC_CONSTANT(long, no_tlsv1_3 = 0x20000000L); -# endif // defined(SSL_OP_NO_TLSv1_3) -# if defined(SSL_OP_NO_COMPRESSION) - ASIO_STATIC_CONSTANT(long, no_compression = SSL_OP_NO_COMPRESSION); -# else // defined(SSL_OP_NO_COMPRESSION) - ASIO_STATIC_CONSTANT(long, no_compression = 0x20000L); -# endif // defined(SSL_OP_NO_COMPRESSION) -#endif - - /// File format types. - enum file_format - { - /// ASN.1 file. - asn1, - - /// PEM file. - pem - }; - -#if !defined(GENERATING_DOCUMENTATION) - // The following types and constants are preserved for backward compatibility. - // New programs should use the equivalents of the same names that are defined - // in the asio::ssl namespace. - typedef int verify_mode; - ASIO_STATIC_CONSTANT(int, verify_none = SSL_VERIFY_NONE); - ASIO_STATIC_CONSTANT(int, verify_peer = SSL_VERIFY_PEER); - ASIO_STATIC_CONSTANT(int, - verify_fail_if_no_peer_cert = SSL_VERIFY_FAIL_IF_NO_PEER_CERT); - ASIO_STATIC_CONSTANT(int, verify_client_once = SSL_VERIFY_CLIENT_ONCE); -#endif - - /// Purpose of PEM password. - enum password_purpose - { - /// The password is needed for reading/decryption. - for_reading, - - /// The password is needed for writing/encryption. - for_writing - }; - -protected: - /// Protected destructor to prevent deletion through this type. - ~context_base() - { - } -}; - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_CONTEXT_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/buffered_handshake_op.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/buffered_handshake_op.hpp deleted file mode 100644 index 38a03fc..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +++ /dev/null @@ -1,114 +0,0 @@ -// -// ssl/detail/buffered_handshake_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_DETAIL_BUFFERED_HANDSHAKE_OP_HPP -#define ASIO_SSL_DETAIL_BUFFERED_HANDSHAKE_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/ssl/detail/engine.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -template -class buffered_handshake_op -{ -public: - buffered_handshake_op(stream_base::handshake_type type, - const ConstBufferSequence& buffers) - : type_(type), - buffers_(buffers), - total_buffer_size_(asio::buffer_size(buffers_)) - { - } - - engine::want operator()(engine& eng, - asio::error_code& ec, - std::size_t& bytes_transferred) const - { - return this->process(eng, ec, bytes_transferred, - asio::buffer_sequence_begin(buffers_), - asio::buffer_sequence_end(buffers_)); - } - - template - void call_handler(Handler& handler, - const asio::error_code& ec, - const std::size_t& bytes_transferred) const - { - handler(ec, bytes_transferred); - } - -private: - template - engine::want process(engine& eng, - asio::error_code& ec, - std::size_t& bytes_transferred, - Iterator begin, Iterator end) const - { - Iterator iter = begin; - std::size_t accumulated_size = 0; - - for (;;) - { - engine::want want = eng.handshake(type_, ec); - if (want != engine::want_input_and_retry - || bytes_transferred == total_buffer_size_) - return want; - - // Find the next buffer piece to be fed to the engine. - while (iter != end) - { - const_buffer buffer(*iter); - - // Skip over any buffers which have already been consumed by the engine. - if (bytes_transferred >= accumulated_size + buffer.size()) - { - accumulated_size += buffer.size(); - ++iter; - continue; - } - - // The current buffer may have been partially consumed by the engine on - // a previous iteration. If so, adjust the buffer to point to the - // unused portion. - if (bytes_transferred > accumulated_size) - buffer = buffer + (bytes_transferred - accumulated_size); - - // Pass the buffer to the engine, and update the bytes transferred to - // reflect the total number of bytes consumed so far. - bytes_transferred += buffer.size(); - buffer = eng.put_input(buffer); - bytes_transferred -= buffer.size(); - break; - } - } - } - - stream_base::handshake_type type_; - ConstBufferSequence buffers_; - std::size_t total_buffer_size_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_BUFFERED_HANDSHAKE_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/engine.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/engine.hpp deleted file mode 100644 index 2f033d6..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/engine.hpp +++ /dev/null @@ -1,160 +0,0 @@ -// -// ssl/detail/engine.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_DETAIL_ENGINE_HPP -#define ASIO_SSL_DETAIL_ENGINE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/buffer.hpp" -#include "asio/detail/static_mutex.hpp" -#include "asio/ssl/detail/openssl_types.hpp" -#include "asio/ssl/detail/verify_callback.hpp" -#include "asio/ssl/stream_base.hpp" -#include "asio/ssl/verify_mode.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -class engine -{ -public: - enum want - { - // Returned by functions to indicate that the engine wants input. The input - // buffer should be updated to point to the data. The engine then needs to - // be called again to retry the operation. - want_input_and_retry = -2, - - // Returned by functions to indicate that the engine wants to write output. - // The output buffer points to the data to be written. The engine then - // needs to be called again to retry the operation. - want_output_and_retry = -1, - - // Returned by functions to indicate that the engine doesn't need input or - // output. - want_nothing = 0, - - // Returned by functions to indicate that the engine wants to write output. - // The output buffer points to the data to be written. After that the - // operation is complete, and the engine does not need to be called again. - want_output = 1 - }; - - // Construct a new engine for the specified context. - ASIO_DECL explicit engine(SSL_CTX* context); - - // Destructor. - ASIO_DECL ~engine(); - - // Get the underlying implementation in the native type. - ASIO_DECL SSL* native_handle(); - - // Set the peer verification mode. - ASIO_DECL asio::error_code set_verify_mode( - verify_mode v, asio::error_code& ec); - - // Set the peer verification depth. - ASIO_DECL asio::error_code set_verify_depth( - int depth, asio::error_code& ec); - - // Set a peer certificate verification callback. - ASIO_DECL asio::error_code set_verify_callback( - verify_callback_base* callback, asio::error_code& ec); - - // Perform an SSL handshake using either SSL_connect (client-side) or - // SSL_accept (server-side). - ASIO_DECL want handshake( - stream_base::handshake_type type, asio::error_code& ec); - - // Perform a graceful shutdown of the SSL session. - ASIO_DECL want shutdown(asio::error_code& ec); - - // Write bytes to the SSL session. - ASIO_DECL want write(const asio::const_buffer& data, - asio::error_code& ec, std::size_t& bytes_transferred); - - // Read bytes from the SSL session. - ASIO_DECL want read(const asio::mutable_buffer& data, - asio::error_code& ec, std::size_t& bytes_transferred); - - // Get output data to be written to the transport. - ASIO_DECL asio::mutable_buffer get_output( - const asio::mutable_buffer& data); - - // Put input data that was read from the transport. - ASIO_DECL asio::const_buffer put_input( - const asio::const_buffer& data); - - // Map an error::eof code returned by the underlying transport according to - // the type and state of the SSL session. Returns a const reference to the - // error code object, suitable for passing to a completion handler. - ASIO_DECL const asio::error_code& map_error_code( - asio::error_code& ec) const; - -private: - // Disallow copying and assignment. - engine(const engine&); - engine& operator=(const engine&); - - // Callback used when the SSL implementation wants to verify a certificate. - ASIO_DECL static int verify_callback_function( - int preverified, X509_STORE_CTX* ctx); - -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - // The SSL_accept function may not be thread safe. This mutex is used to - // protect all calls to the SSL_accept function. - ASIO_DECL static asio::detail::static_mutex& accept_mutex(); -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) - - // Perform one operation. Returns >= 0 on success or error, want_read if the - // operation needs more input, or want_write if it needs to write some output - // before the operation can complete. - ASIO_DECL want perform(int (engine::* op)(void*, std::size_t), - void* data, std::size_t length, asio::error_code& ec, - std::size_t* bytes_transferred); - - // Adapt the SSL_accept function to the signature needed for perform(). - ASIO_DECL int do_accept(void*, std::size_t); - - // Adapt the SSL_connect function to the signature needed for perform(). - ASIO_DECL int do_connect(void*, std::size_t); - - // Adapt the SSL_shutdown function to the signature needed for perform(). - ASIO_DECL int do_shutdown(void*, std::size_t); - - // Adapt the SSL_read function to the signature needed for perform(). - ASIO_DECL int do_read(void* data, std::size_t length); - - // Adapt the SSL_write function to the signature needed for perform(). - ASIO_DECL int do_write(void* data, std::size_t length); - - SSL* ssl_; - BIO* ext_bio_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/ssl/detail/impl/engine.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_SSL_DETAIL_ENGINE_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/handshake_op.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/handshake_op.hpp deleted file mode 100644 index f782023..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/handshake_op.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// -// ssl/detail/handshake_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_DETAIL_HANDSHAKE_OP_HPP -#define ASIO_SSL_DETAIL_HANDSHAKE_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/ssl/detail/engine.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -class handshake_op -{ -public: - handshake_op(stream_base::handshake_type type) - : type_(type) - { - } - - engine::want operator()(engine& eng, - asio::error_code& ec, - std::size_t& bytes_transferred) const - { - bytes_transferred = 0; - return eng.handshake(type_, ec); - } - - template - void call_handler(Handler& handler, - const asio::error_code& ec, - const std::size_t&) const - { - handler(ec); - } - -private: - stream_base::handshake_type type_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_HANDSHAKE_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/impl/engine.ipp b/Sources/Vendor/asio/include/asio/ssl/detail/impl/engine.ipp deleted file mode 100644 index e60e8d6..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/impl/engine.ipp +++ /dev/null @@ -1,322 +0,0 @@ -// -// ssl/detail/impl/engine.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_DETAIL_IMPL_ENGINE_IPP -#define ASIO_SSL_DETAIL_IMPL_ENGINE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/ssl/detail/engine.hpp" -#include "asio/ssl/error.hpp" -#include "asio/ssl/verify_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -engine::engine(SSL_CTX* context) - : ssl_(::SSL_new(context)) -{ - if (!ssl_) - { - asio::error_code ec( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - asio::detail::throw_error(ec, "engine"); - } - -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - accept_mutex().init(); -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) - - ::SSL_set_mode(ssl_, SSL_MODE_ENABLE_PARTIAL_WRITE); - ::SSL_set_mode(ssl_, SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER); -#if defined(SSL_MODE_RELEASE_BUFFERS) - ::SSL_set_mode(ssl_, SSL_MODE_RELEASE_BUFFERS); -#endif // defined(SSL_MODE_RELEASE_BUFFERS) - - ::BIO* int_bio = 0; - ::BIO_new_bio_pair(&int_bio, 0, &ext_bio_, 0); - ::SSL_set_bio(ssl_, int_bio, int_bio); -} - -engine::~engine() -{ - if (SSL_get_app_data(ssl_)) - { - delete static_cast(SSL_get_app_data(ssl_)); - SSL_set_app_data(ssl_, 0); - } - - ::BIO_free(ext_bio_); - ::SSL_free(ssl_); -} - -SSL* engine::native_handle() -{ - return ssl_; -} - -asio::error_code engine::set_verify_mode( - verify_mode v, asio::error_code& ec) -{ - ::SSL_set_verify(ssl_, v, ::SSL_get_verify_callback(ssl_)); - - ec = asio::error_code(); - return ec; -} - -asio::error_code engine::set_verify_depth( - int depth, asio::error_code& ec) -{ - ::SSL_set_verify_depth(ssl_, depth); - - ec = asio::error_code(); - return ec; -} - -asio::error_code engine::set_verify_callback( - verify_callback_base* callback, asio::error_code& ec) -{ - if (SSL_get_app_data(ssl_)) - delete static_cast(SSL_get_app_data(ssl_)); - - SSL_set_app_data(ssl_, callback); - - ::SSL_set_verify(ssl_, ::SSL_get_verify_mode(ssl_), - &engine::verify_callback_function); - - ec = asio::error_code(); - return ec; -} - -int engine::verify_callback_function(int preverified, X509_STORE_CTX* ctx) -{ - if (ctx) - { - if (SSL* ssl = static_cast( - ::X509_STORE_CTX_get_ex_data( - ctx, ::SSL_get_ex_data_X509_STORE_CTX_idx()))) - { - if (SSL_get_app_data(ssl)) - { - verify_callback_base* callback = - static_cast( - SSL_get_app_data(ssl)); - - verify_context verify_ctx(ctx); - return callback->call(preverified != 0, verify_ctx) ? 1 : 0; - } - } - } - - return 0; -} - -engine::want engine::handshake( - stream_base::handshake_type type, asio::error_code& ec) -{ - return perform((type == asio::ssl::stream_base::client) - ? &engine::do_connect : &engine::do_accept, 0, 0, ec, 0); -} - -engine::want engine::shutdown(asio::error_code& ec) -{ - return perform(&engine::do_shutdown, 0, 0, ec, 0); -} - -engine::want engine::write(const asio::const_buffer& data, - asio::error_code& ec, std::size_t& bytes_transferred) -{ - if (data.size() == 0) - { - ec = asio::error_code(); - return engine::want_nothing; - } - - return perform(&engine::do_write, - const_cast(data.data()), - data.size(), ec, &bytes_transferred); -} - -engine::want engine::read(const asio::mutable_buffer& data, - asio::error_code& ec, std::size_t& bytes_transferred) -{ - if (data.size() == 0) - { - ec = asio::error_code(); - return engine::want_nothing; - } - - return perform(&engine::do_read, data.data(), - data.size(), ec, &bytes_transferred); -} - -asio::mutable_buffer engine::get_output( - const asio::mutable_buffer& data) -{ - int length = ::BIO_read(ext_bio_, - data.data(), static_cast(data.size())); - - return asio::buffer(data, - length > 0 ? static_cast(length) : 0); -} - -asio::const_buffer engine::put_input( - const asio::const_buffer& data) -{ - int length = ::BIO_write(ext_bio_, - data.data(), static_cast(data.size())); - - return asio::buffer(data + - (length > 0 ? static_cast(length) : 0)); -} - -const asio::error_code& engine::map_error_code( - asio::error_code& ec) const -{ - // We only want to map the error::eof code. - if (ec != asio::error::eof) - return ec; - - // If there's data yet to be read, it's an error. - if (BIO_wpending(ext_bio_)) - { - ec = asio::ssl::error::stream_truncated; - return ec; - } - - // SSL v2 doesn't provide a protocol-level shutdown, so an eof on the - // underlying transport is passed through. -#if (OPENSSL_VERSION_NUMBER < 0x10100000L) - if (SSL_version(ssl_) == SSL2_VERSION) - return ec; -#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L) - - // Otherwise, the peer should have negotiated a proper shutdown. - if ((::SSL_get_shutdown(ssl_) & SSL_RECEIVED_SHUTDOWN) == 0) - { - ec = asio::ssl::error::stream_truncated; - } - - return ec; -} - -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) -asio::detail::static_mutex& engine::accept_mutex() -{ - static asio::detail::static_mutex mutex = ASIO_STATIC_MUTEX_INIT; - return mutex; -} -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) - -engine::want engine::perform(int (engine::* op)(void*, std::size_t), - void* data, std::size_t length, asio::error_code& ec, - std::size_t* bytes_transferred) -{ - std::size_t pending_output_before = ::BIO_ctrl_pending(ext_bio_); - ::ERR_clear_error(); - int result = (this->*op)(data, length); - int ssl_error = ::SSL_get_error(ssl_, result); - int sys_error = static_cast(::ERR_get_error()); - std::size_t pending_output_after = ::BIO_ctrl_pending(ext_bio_); - - if (ssl_error == SSL_ERROR_SSL) - { - ec = asio::error_code(sys_error, - asio::error::get_ssl_category()); - return want_nothing; - } - - if (ssl_error == SSL_ERROR_SYSCALL) - { - ec = asio::error_code(sys_error, - asio::error::get_system_category()); - return want_nothing; - } - - if (result > 0 && bytes_transferred) - *bytes_transferred = static_cast(result); - - if (ssl_error == SSL_ERROR_WANT_WRITE) - { - ec = asio::error_code(); - return want_output_and_retry; - } - else if (pending_output_after > pending_output_before) - { - ec = asio::error_code(); - return result > 0 ? want_output : want_output_and_retry; - } - else if (ssl_error == SSL_ERROR_WANT_READ) - { - ec = asio::error_code(); - return want_input_and_retry; - } - else if (::SSL_get_shutdown(ssl_) & SSL_RECEIVED_SHUTDOWN) - { - ec = asio::error::eof; - return want_nothing; - } - else - { - ec = asio::error_code(); - return want_nothing; - } -} - -int engine::do_accept(void*, std::size_t) -{ -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - asio::detail::static_mutex::scoped_lock lock(accept_mutex()); -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) - return ::SSL_accept(ssl_); -} - -int engine::do_connect(void*, std::size_t) -{ - return ::SSL_connect(ssl_); -} - -int engine::do_shutdown(void*, std::size_t) -{ - int result = ::SSL_shutdown(ssl_); - if (result == 0) - result = ::SSL_shutdown(ssl_); - return result; -} - -int engine::do_read(void* data, std::size_t length) -{ - return ::SSL_read(ssl_, data, - length < INT_MAX ? static_cast(length) : INT_MAX); -} - -int engine::do_write(void* data, std::size_t length) -{ - return ::SSL_write(ssl_, data, - length < INT_MAX ? static_cast(length) : INT_MAX); -} - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_IMPL_ENGINE_IPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/impl/openssl_init.ipp b/Sources/Vendor/asio/include/asio/ssl/detail/impl/openssl_init.ipp deleted file mode 100644 index fb0fff9..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/impl/openssl_init.ipp +++ /dev/null @@ -1,165 +0,0 @@ -// -// ssl/detail/impl/openssl_init.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com -// Copyright (c) 2005-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_DETAIL_IMPL_OPENSSL_INIT_IPP -#define ASIO_SSL_DETAIL_IMPL_OPENSSL_INIT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/assert.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/tss_ptr.hpp" -#include "asio/ssl/detail/openssl_init.hpp" -#include "asio/ssl/detail/openssl_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -class openssl_init_base::do_init -{ -public: - do_init() - { -#if (OPENSSL_VERSION_NUMBER < 0x10100000L) - ::SSL_library_init(); - ::SSL_load_error_strings(); - ::OpenSSL_add_all_algorithms(); - - mutexes_.resize(::CRYPTO_num_locks()); - for (size_t i = 0; i < mutexes_.size(); ++i) - mutexes_[i].reset(new asio::detail::mutex); - ::CRYPTO_set_locking_callback(&do_init::openssl_locking_func); -#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L) -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - ::CRYPTO_set_id_callback(&do_init::openssl_id_func); -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) - -#if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - null_compression_methods_ = sk_SSL_COMP_new_null(); -#endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - } - - ~do_init() - { -#if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - sk_SSL_COMP_free(null_compression_methods_); -#endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - ::CRYPTO_set_id_callback(0); -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) -#if (OPENSSL_VERSION_NUMBER < 0x10100000L) - ::CRYPTO_set_locking_callback(0); - ::ERR_free_strings(); - ::EVP_cleanup(); - ::CRYPTO_cleanup_all_ex_data(); -#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L) -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - ::ERR_remove_state(0); -#elif (OPENSSL_VERSION_NUMBER < 0x10100000L) - ::ERR_remove_thread_state(NULL); -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) -#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) \ - && (OPENSSL_VERSION_NUMBER < 0x10100000L) \ - && !defined(SSL_OP_NO_COMPRESSION) - ::SSL_COMP_free_compression_methods(); -#endif // (OPENSSL_VERSION_NUMBER >= 0x10002000L) - // && (OPENSSL_VERSION_NUMBER < 0x10100000L) - // && !defined(SSL_OP_NO_COMPRESSION) -#if !defined(OPENSSL_IS_BORINGSSL) - ::CONF_modules_unload(1); -#endif // !defined(OPENSSL_IS_BORINGSSL) -#if !defined(OPENSSL_NO_ENGINE) \ - && (OPENSSL_VERSION_NUMBER < 0x10100000L) - ::ENGINE_cleanup(); -#endif // !defined(OPENSSL_NO_ENGINE) - // && (OPENSSL_VERSION_NUMBER < 0x10100000L) - } - -#if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - STACK_OF(SSL_COMP)* get_null_compression_methods() const - { - return null_compression_methods_; - } -#endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - -private: -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - static unsigned long openssl_id_func() - { -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - return ::GetCurrentThreadId(); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - void* id = &errno; - ASIO_ASSERT(sizeof(unsigned long) >= sizeof(void*)); - return reinterpret_cast(id); -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - } -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) - -#if (OPENSSL_VERSION_NUMBER < 0x10100000L) - static void openssl_locking_func(int mode, int n, - const char* /*file*/, int /*line*/) - { - if (mode & CRYPTO_LOCK) - instance()->mutexes_[n]->lock(); - else - instance()->mutexes_[n]->unlock(); - } - - // Mutexes to be used in locking callbacks. - std::vector > mutexes_; -#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L) - -#if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - STACK_OF(SSL_COMP)* null_compression_methods_; -#endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) -}; - -asio::detail::shared_ptr -openssl_init_base::instance() -{ - static asio::detail::shared_ptr init(new do_init); - return init; -} - -#if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) -STACK_OF(SSL_COMP)* openssl_init_base::get_null_compression_methods() -{ - return instance()->get_null_compression_methods(); -} -#endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_IMPL_OPENSSL_INIT_IPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/io.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/io.hpp deleted file mode 100644 index 0b0e51a..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/io.hpp +++ /dev/null @@ -1,372 +0,0 @@ -// -// ssl/detail/io.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_DETAIL_IO_HPP -#define ASIO_SSL_DETAIL_IO_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/ssl/detail/engine.hpp" -#include "asio/ssl/detail/stream_core.hpp" -#include "asio/write.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -template -std::size_t io(Stream& next_layer, stream_core& core, - const Operation& op, asio::error_code& ec) -{ - std::size_t bytes_transferred = 0; - do switch (op(core.engine_, ec, bytes_transferred)) - { - case engine::want_input_and_retry: - - // If the input buffer is empty then we need to read some more data from - // the underlying transport. - if (core.input_.size() == 0) - core.input_ = asio::buffer(core.input_buffer_, - next_layer.read_some(core.input_buffer_, ec)); - - // Pass the new input data to the engine. - core.input_ = core.engine_.put_input(core.input_); - - // Try the operation again. - continue; - - case engine::want_output_and_retry: - - // Get output data from the engine and write it to the underlying - // transport. - asio::write(next_layer, - core.engine_.get_output(core.output_buffer_), ec); - - // Try the operation again. - continue; - - case engine::want_output: - - // Get output data from the engine and write it to the underlying - // transport. - asio::write(next_layer, - core.engine_.get_output(core.output_buffer_), ec); - - // Operation is complete. Return result to caller. - core.engine_.map_error_code(ec); - return bytes_transferred; - - default: - - // Operation is complete. Return result to caller. - core.engine_.map_error_code(ec); - return bytes_transferred; - - } while (!ec); - - // Operation failed. Return result to caller. - core.engine_.map_error_code(ec); - return 0; -} - -template -class io_op -{ -public: - io_op(Stream& next_layer, stream_core& core, - const Operation& op, Handler& handler) - : next_layer_(next_layer), - core_(core), - op_(op), - start_(0), - want_(engine::want_nothing), - bytes_transferred_(0), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - io_op(const io_op& other) - : next_layer_(other.next_layer_), - core_(other.core_), - op_(other.op_), - start_(other.start_), - want_(other.want_), - ec_(other.ec_), - bytes_transferred_(other.bytes_transferred_), - handler_(other.handler_) - { - } - - io_op(io_op&& other) - : next_layer_(other.next_layer_), - core_(other.core_), - op_(ASIO_MOVE_CAST(Operation)(other.op_)), - start_(other.start_), - want_(other.want_), - ec_(other.ec_), - bytes_transferred_(other.bytes_transferred_), - handler_(ASIO_MOVE_CAST(Handler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(asio::error_code ec, - std::size_t bytes_transferred = ~std::size_t(0), int start = 0) - { - switch (start_ = start) - { - case 1: // Called after at least one async operation. - do - { - switch (want_ = op_(core_.engine_, ec_, bytes_transferred_)) - { - case engine::want_input_and_retry: - - // If the input buffer already has data in it we can pass it to the - // engine and then retry the operation immediately. - if (core_.input_.size() != 0) - { - core_.input_ = core_.engine_.put_input(core_.input_); - continue; - } - - // The engine wants more data to be read from input. However, we - // cannot allow more than one read operation at a time on the - // underlying transport. The pending_read_ timer's expiry is set to - // pos_infin if a read is in progress, and neg_infin otherwise. - if (core_.expiry(core_.pending_read_) == core_.neg_infin()) - { - // Prevent other read operations from being started. - core_.pending_read_.expires_at(core_.pos_infin()); - - // Start reading some data from the underlying transport. - next_layer_.async_read_some( - asio::buffer(core_.input_buffer_), - ASIO_MOVE_CAST(io_op)(*this)); - } - else - { - // Wait until the current read operation completes. - core_.pending_read_.async_wait(ASIO_MOVE_CAST(io_op)(*this)); - } - - // Yield control until asynchronous operation completes. Control - // resumes at the "default:" label below. - return; - - case engine::want_output_and_retry: - case engine::want_output: - - // The engine wants some data to be written to the output. However, we - // cannot allow more than one write operation at a time on the - // underlying transport. The pending_write_ timer's expiry is set to - // pos_infin if a write is in progress, and neg_infin otherwise. - if (core_.expiry(core_.pending_write_) == core_.neg_infin()) - { - // Prevent other write operations from being started. - core_.pending_write_.expires_at(core_.pos_infin()); - - // Start writing all the data to the underlying transport. - asio::async_write(next_layer_, - core_.engine_.get_output(core_.output_buffer_), - ASIO_MOVE_CAST(io_op)(*this)); - } - else - { - // Wait until the current write operation completes. - core_.pending_write_.async_wait(ASIO_MOVE_CAST(io_op)(*this)); - } - - // Yield control until asynchronous operation completes. Control - // resumes at the "default:" label below. - return; - - default: - - // The SSL operation is done and we can invoke the handler, but we - // have to keep in mind that this function might be being called from - // the async operation's initiating function. In this case we're not - // allowed to call the handler directly. Instead, issue a zero-sized - // read so the handler runs "as-if" posted using io_context::post(). - if (start) - { - next_layer_.async_read_some( - asio::buffer(core_.input_buffer_, 0), - ASIO_MOVE_CAST(io_op)(*this)); - - // Yield control until asynchronous operation completes. Control - // resumes at the "default:" label below. - return; - } - else - { - // Continue on to run handler directly. - break; - } - } - - default: - if (bytes_transferred == ~std::size_t(0)) - bytes_transferred = 0; // Timer cancellation, no data transferred. - else if (!ec_) - ec_ = ec; - - switch (want_) - { - case engine::want_input_and_retry: - - // Add received data to the engine's input. - core_.input_ = asio::buffer( - core_.input_buffer_, bytes_transferred); - core_.input_ = core_.engine_.put_input(core_.input_); - - // Release any waiting read operations. - core_.pending_read_.expires_at(core_.neg_infin()); - - // Try the operation again. - continue; - - case engine::want_output_and_retry: - - // Release any waiting write operations. - core_.pending_write_.expires_at(core_.neg_infin()); - - // Try the operation again. - continue; - - case engine::want_output: - - // Release any waiting write operations. - core_.pending_write_.expires_at(core_.neg_infin()); - - // Fall through to call handler. - - default: - - // Pass the result to the handler. - op_.call_handler(handler_, - core_.engine_.map_error_code(ec_), - ec_ ? 0 : bytes_transferred_); - - // Our work here is done. - return; - } - } while (!ec_); - - // Operation failed. Pass the result to the handler. - op_.call_handler(handler_, core_.engine_.map_error_code(ec_), 0); - } - } - -//private: - Stream& next_layer_; - stream_core& core_; - Operation op_; - int start_; - engine::want want_; - asio::error_code ec_; - std::size_t bytes_transferred_; - Handler handler_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - io_op* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - io_op* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - io_op* this_handler) -{ - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation(this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - io_op* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - io_op* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void async_io(Stream& next_layer, stream_core& core, - const Operation& op, Handler& handler) -{ - io_op( - next_layer, core, op, handler)( - asio::error_code(), 0, 1); -} - -} // namespace detail -} // namespace ssl - -template -struct associated_allocator< - ssl::detail::io_op, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const ssl::detail::io_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - ssl::detail::io_op, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const ssl::detail::io_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_IO_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/openssl_init.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/openssl_init.hpp deleted file mode 100644 index c3e4727..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/openssl_init.hpp +++ /dev/null @@ -1,101 +0,0 @@ -// -// ssl/detail/openssl_init.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_DETAIL_OPENSSL_INIT_HPP -#define ASIO_SSL_DETAIL_OPENSSL_INIT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/memory.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/ssl/detail/openssl_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -class openssl_init_base - : private noncopyable -{ -protected: - // Class that performs the actual initialisation. - class do_init; - - // Helper function to manage a do_init singleton. The static instance of the - // openssl_init object ensures that this function is always called before - // main, and therefore before any other threads can get started. The do_init - // instance must be static in this function to ensure that it gets - // initialised before any other global objects try to use it. - ASIO_DECL static asio::detail::shared_ptr instance(); - -#if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - // Get an empty stack of compression methods, to be used when disabling - // compression. - ASIO_DECL static STACK_OF(SSL_COMP)* get_null_compression_methods(); -#endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) -}; - -template -class openssl_init : private openssl_init_base -{ -public: - // Constructor. - openssl_init() - : ref_(instance()) - { - using namespace std; // For memmove. - - // Ensure openssl_init::instance_ is linked in. - openssl_init* tmp = &instance_; - memmove(&tmp, &tmp, sizeof(openssl_init*)); - } - - // Destructor. - ~openssl_init() - { - } - -#if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - using openssl_init_base::get_null_compression_methods; -#endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - -private: - // Instance to force initialisation of openssl at global scope. - static openssl_init instance_; - - // Reference to singleton do_init object to ensure that openssl does not get - // cleaned up until the last user has finished with it. - asio::detail::shared_ptr ref_; -}; - -template -openssl_init openssl_init::instance_; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/ssl/detail/impl/openssl_init.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_SSL_DETAIL_OPENSSL_INIT_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/openssl_types.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/openssl_types.hpp deleted file mode 100644 index a044af3..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/openssl_types.hpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// ssl/detail/openssl_types.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_DETAIL_OPENSSL_TYPES_HPP -#define ASIO_SSL_DETAIL_OPENSSL_TYPES_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/socket_types.hpp" -#include -#include -#if !defined(OPENSSL_NO_ENGINE) -# include -#endif // !defined(OPENSSL_NO_ENGINE) -#include -#include -#include -#include - -#endif // ASIO_SSL_DETAIL_OPENSSL_TYPES_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/password_callback.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/password_callback.hpp deleted file mode 100644 index 9b1dbee..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/password_callback.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// -// ssl/detail/password_callback.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_DETAIL_PASSWORD_CALLBACK_HPP -#define ASIO_SSL_DETAIL_PASSWORD_CALLBACK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include -#include "asio/ssl/context_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -class password_callback_base -{ -public: - virtual ~password_callback_base() - { - } - - virtual std::string call(std::size_t size, - context_base::password_purpose purpose) = 0; -}; - -template -class password_callback : public password_callback_base -{ -public: - explicit password_callback(PasswordCallback callback) - : callback_(callback) - { - } - - virtual std::string call(std::size_t size, - context_base::password_purpose purpose) - { - return callback_(size, purpose); - } - -private: - PasswordCallback callback_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_PASSWORD_CALLBACK_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/read_op.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/read_op.hpp deleted file mode 100644 index b0d6de2..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/read_op.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// ssl/detail/read_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_DETAIL_READ_OP_HPP -#define ASIO_SSL_DETAIL_READ_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/ssl/detail/engine.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -template -class read_op -{ -public: - read_op(const MutableBufferSequence& buffers) - : buffers_(buffers) - { - } - - engine::want operator()(engine& eng, - asio::error_code& ec, - std::size_t& bytes_transferred) const - { - asio::mutable_buffer buffer = - asio::detail::buffer_sequence_adapter::first(buffers_); - - return eng.read(buffer, ec, bytes_transferred); - } - - template - void call_handler(Handler& handler, - const asio::error_code& ec, - const std::size_t& bytes_transferred) const - { - handler(ec, bytes_transferred); - } - -private: - MutableBufferSequence buffers_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_READ_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/shutdown_op.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/shutdown_op.hpp deleted file mode 100644 index d20b430..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/shutdown_op.hpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// ssl/detail/shutdown_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_DETAIL_SHUTDOWN_OP_HPP -#define ASIO_SSL_DETAIL_SHUTDOWN_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/ssl/detail/engine.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -class shutdown_op -{ -public: - engine::want operator()(engine& eng, - asio::error_code& ec, - std::size_t& bytes_transferred) const - { - bytes_transferred = 0; - return eng.shutdown(ec); - } - - template - void call_handler(Handler& handler, - const asio::error_code& ec, - const std::size_t&) const - { - handler(ec); - } -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_SHUTDOWN_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/stream_core.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/stream_core.hpp deleted file mode 100644 index 13fde74..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/stream_core.hpp +++ /dev/null @@ -1,134 +0,0 @@ -// -// ssl/detail/stream_core.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_DETAIL_STREAM_CORE_HPP -#define ASIO_SSL_DETAIL_STREAM_CORE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_BOOST_DATE_TIME) -# include "asio/deadline_timer.hpp" -#else // defined(ASIO_HAS_BOOST_DATE_TIME) -# include "asio/steady_timer.hpp" -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) -#include "asio/ssl/detail/engine.hpp" -#include "asio/buffer.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -struct stream_core -{ - // According to the OpenSSL documentation, this is the buffer size that is - // sufficient to hold the largest possible TLS record. - enum { max_tls_record_size = 17 * 1024 }; - - stream_core(SSL_CTX* context, asio::io_context& io_context) - : engine_(context), - pending_read_(io_context), - pending_write_(io_context), - output_buffer_space_(max_tls_record_size), - output_buffer_(asio::buffer(output_buffer_space_)), - input_buffer_space_(max_tls_record_size), - input_buffer_(asio::buffer(input_buffer_space_)) - { - pending_read_.expires_at(neg_infin()); - pending_write_.expires_at(neg_infin()); - } - - ~stream_core() - { - } - - // The SSL engine. - engine engine_; - -#if defined(ASIO_HAS_BOOST_DATE_TIME) - // Timer used for storing queued read operations. - asio::deadline_timer pending_read_; - - // Timer used for storing queued write operations. - asio::deadline_timer pending_write_; - - // Helper function for obtaining a time value that always fires. - static asio::deadline_timer::time_type neg_infin() - { - return boost::posix_time::neg_infin; - } - - // Helper function for obtaining a time value that never fires. - static asio::deadline_timer::time_type pos_infin() - { - return boost::posix_time::pos_infin; - } - - // Helper function to get a timer's expiry time. - static asio::deadline_timer::time_type expiry( - const asio::deadline_timer& timer) - { - return timer.expires_at(); - } -#else // defined(ASIO_HAS_BOOST_DATE_TIME) - // Timer used for storing queued read operations. - asio::steady_timer pending_read_; - - // Timer used for storing queued write operations. - asio::steady_timer pending_write_; - - // Helper function for obtaining a time value that always fires. - static asio::steady_timer::time_point neg_infin() - { - return (asio::steady_timer::time_point::min)(); - } - - // Helper function for obtaining a time value that never fires. - static asio::steady_timer::time_point pos_infin() - { - return (asio::steady_timer::time_point::max)(); - } - - // Helper function to get a timer's expiry time. - static asio::steady_timer::time_point expiry( - const asio::steady_timer& timer) - { - return timer.expiry(); - } -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - - // Buffer space used to prepare output intended for the transport. - std::vector output_buffer_space_; - - // A buffer that may be used to prepare output intended for the transport. - const asio::mutable_buffer output_buffer_; - - // Buffer space used to read input intended for the engine. - std::vector input_buffer_space_; - - // A buffer that may be used to read input intended for the engine. - const asio::mutable_buffer input_buffer_; - - // The buffer pointing to the engine's unconsumed input. - asio::const_buffer input_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_STREAM_CORE_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/verify_callback.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/verify_callback.hpp deleted file mode 100644 index 1c56a27..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/verify_callback.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// -// ssl/detail/verify_callback.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_DETAIL_VERIFY_CALLBACK_HPP -#define ASIO_SSL_DETAIL_VERIFY_CALLBACK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/ssl/verify_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -class verify_callback_base -{ -public: - virtual ~verify_callback_base() - { - } - - virtual bool call(bool preverified, verify_context& ctx) = 0; -}; - -template -class verify_callback : public verify_callback_base -{ -public: - explicit verify_callback(VerifyCallback callback) - : callback_(callback) - { - } - - virtual bool call(bool preverified, verify_context& ctx) - { - return callback_(preverified, ctx); - } - -private: - VerifyCallback callback_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_VERIFY_CALLBACK_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/write_op.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/write_op.hpp deleted file mode 100644 index 1d341c0..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/write_op.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// ssl/detail/write_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_DETAIL_WRITE_OP_HPP -#define ASIO_SSL_DETAIL_WRITE_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/ssl/detail/engine.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -template -class write_op -{ -public: - write_op(const ConstBufferSequence& buffers) - : buffers_(buffers) - { - } - - engine::want operator()(engine& eng, - asio::error_code& ec, - std::size_t& bytes_transferred) const - { - asio::const_buffer buffer = - asio::detail::buffer_sequence_adapter::first(buffers_); - - return eng.write(buffer, ec, bytes_transferred); - } - - template - void call_handler(Handler& handler, - const asio::error_code& ec, - const std::size_t& bytes_transferred) const - { - handler(ec, bytes_transferred); - } - -private: - ConstBufferSequence buffers_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_WRITE_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/error.hpp b/Sources/Vendor/asio/include/asio/ssl/error.hpp deleted file mode 100644 index 6165c5c..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/error.hpp +++ /dev/null @@ -1,111 +0,0 @@ -// -// ssl/error.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_ERROR_HPP -#define ASIO_SSL_ERROR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/error_code.hpp" -#include "asio/ssl/detail/openssl_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace error { - -enum ssl_errors -{ - // Error numbers are those produced by openssl. -}; - -extern ASIO_DECL -const asio::error_category& get_ssl_category(); - -static const asio::error_category& - ssl_category ASIO_UNUSED_VARIABLE - = asio::error::get_ssl_category(); - -} // namespace error -namespace ssl { -namespace error { - -enum stream_errors -{ -#if defined(GENERATING_DOCUMENTATION) - /// The underlying stream closed before the ssl stream gracefully shut down. - stream_truncated -#elif (OPENSSL_VERSION_NUMBER < 0x10100000L) && !defined(OPENSSL_IS_BORINGSSL) - stream_truncated = ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ) -#else - stream_truncated = 1 -#endif -}; - -extern ASIO_DECL -const asio::error_category& get_stream_category(); - -static const asio::error_category& - stream_category ASIO_UNUSED_VARIABLE - = asio::ssl::error::get_stream_category(); - -} // namespace error -} // namespace ssl -} // namespace asio - -#if defined(ASIO_HAS_STD_SYSTEM_ERROR) -namespace std { - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -} // namespace std -#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -namespace asio { -namespace error { - -inline asio::error_code make_error_code(ssl_errors e) -{ - return asio::error_code( - static_cast(e), get_ssl_category()); -} - -} // namespace error -namespace ssl { -namespace error { - -inline asio::error_code make_error_code(stream_errors e) -{ - return asio::error_code( - static_cast(e), get_stream_category()); -} - -} // namespace error -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/ssl/impl/error.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_SSL_ERROR_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/impl/context.hpp b/Sources/Vendor/asio/include/asio/ssl/impl/context.hpp deleted file mode 100644 index 40199c1..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/impl/context.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// ssl/impl/context.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com -// Copyright (c) 2005-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_IMPL_CONTEXT_HPP -#define ASIO_SSL_IMPL_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -template -void context::set_verify_callback(VerifyCallback callback) -{ - asio::error_code ec; - this->set_verify_callback(callback, ec); - asio::detail::throw_error(ec, "set_verify_callback"); -} - -template -ASIO_SYNC_OP_VOID context::set_verify_callback( - VerifyCallback callback, asio::error_code& ec) -{ - do_set_verify_callback( - new detail::verify_callback(callback), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -template -void context::set_password_callback(PasswordCallback callback) -{ - asio::error_code ec; - this->set_password_callback(callback, ec); - asio::detail::throw_error(ec, "set_password_callback"); -} - -template -ASIO_SYNC_OP_VOID context::set_password_callback( - PasswordCallback callback, asio::error_code& ec) -{ - do_set_password_callback( - new detail::password_callback(callback), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_IMPL_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/impl/context.ipp b/Sources/Vendor/asio/include/asio/ssl/impl/context.ipp deleted file mode 100644 index 3bc3f29..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/impl/context.ipp +++ /dev/null @@ -1,1204 +0,0 @@ -// -// ssl/impl/context.ipp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com -// Copyright (c) 2005-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_IMPL_CONTEXT_IPP -#define ASIO_SSL_IMPL_CONTEXT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/ssl/context.hpp" -#include "asio/ssl/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -struct context::bio_cleanup -{ - BIO* p; - ~bio_cleanup() { if (p) ::BIO_free(p); } -}; - -struct context::x509_cleanup -{ - X509* p; - ~x509_cleanup() { if (p) ::X509_free(p); } -}; - -struct context::evp_pkey_cleanup -{ - EVP_PKEY* p; - ~evp_pkey_cleanup() { if (p) ::EVP_PKEY_free(p); } -}; - -struct context::rsa_cleanup -{ - RSA* p; - ~rsa_cleanup() { if (p) ::RSA_free(p); } -}; - -struct context::dh_cleanup -{ - DH* p; - ~dh_cleanup() { if (p) ::DH_free(p); } -}; - -context::context(context::method m) - : handle_(0) -{ - ::ERR_clear_error(); - - switch (m) - { - // SSL v2. -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) || defined(OPENSSL_NO_SSL2) - case context::sslv2: - case context::sslv2_client: - case context::sslv2_server: - asio::detail::throw_error( - asio::error::invalid_argument, "context"); - break; -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) || defined(OPENSSL_NO_SSL2) - case context::sslv2: - handle_ = ::SSL_CTX_new(::SSLv2_method()); - break; - case context::sslv2_client: - handle_ = ::SSL_CTX_new(::SSLv2_client_method()); - break; - case context::sslv2_server: - handle_ = ::SSL_CTX_new(::SSLv2_server_method()); - break; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) || defined(OPENSSL_NO_SSL2) - - // SSL v3. -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - case context::sslv3: - handle_ = ::SSL_CTX_new(::TLS_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, SSL3_VERSION); - SSL_CTX_set_max_proto_version(handle_, SSL3_VERSION); - } - break; - case context::sslv3_client: - handle_ = ::SSL_CTX_new(::TLS_client_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, SSL3_VERSION); - SSL_CTX_set_max_proto_version(handle_, SSL3_VERSION); - } - break; - case context::sslv3_server: - handle_ = ::SSL_CTX_new(::TLS_server_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, SSL3_VERSION); - SSL_CTX_set_max_proto_version(handle_, SSL3_VERSION); - } - break; -#elif defined(OPENSSL_NO_SSL3) - case context::sslv3: - case context::sslv3_client: - case context::sslv3_server: - asio::detail::throw_error( - asio::error::invalid_argument, "context"); - break; -#else // defined(OPENSSL_NO_SSL3) - case context::sslv3: - handle_ = ::SSL_CTX_new(::SSLv3_method()); - break; - case context::sslv3_client: - handle_ = ::SSL_CTX_new(::SSLv3_client_method()); - break; - case context::sslv3_server: - handle_ = ::SSL_CTX_new(::SSLv3_server_method()); - break; -#endif // defined(OPENSSL_NO_SSL3) - - // TLS v1.0. -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - case context::tlsv1: - handle_ = ::SSL_CTX_new(::TLS_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_VERSION); - } - break; - case context::tlsv1_client: - handle_ = ::SSL_CTX_new(::TLS_client_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_VERSION); - } - break; - case context::tlsv1_server: - handle_ = ::SSL_CTX_new(::TLS_server_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_VERSION); - } - break; -#elif defined(SSL_TXT_TLSV1) - case context::tlsv1: - handle_ = ::SSL_CTX_new(::TLSv1_method()); - break; - case context::tlsv1_client: - handle_ = ::SSL_CTX_new(::TLSv1_client_method()); - break; - case context::tlsv1_server: - handle_ = ::SSL_CTX_new(::TLSv1_server_method()); - break; -#else // defined(SSL_TXT_TLSV1) - case context::tlsv1: - case context::tlsv1_client: - case context::tlsv1_server: - asio::detail::throw_error( - asio::error::invalid_argument, "context"); - break; -#endif // defined(SSL_TXT_TLSV1) - - // TLS v1.1. -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - case context::tlsv11: - handle_ = ::SSL_CTX_new(::TLS_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_1_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_1_VERSION); - } - break; - case context::tlsv11_client: - handle_ = ::SSL_CTX_new(::TLS_client_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_1_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_1_VERSION); - } - break; - case context::tlsv11_server: - handle_ = ::SSL_CTX_new(::TLS_server_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_1_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_1_VERSION); - } - break; -#elif defined(SSL_TXT_TLSV1_1) - case context::tlsv11: - handle_ = ::SSL_CTX_new(::TLSv1_1_method()); - break; - case context::tlsv11_client: - handle_ = ::SSL_CTX_new(::TLSv1_1_client_method()); - break; - case context::tlsv11_server: - handle_ = ::SSL_CTX_new(::TLSv1_1_server_method()); - break; -#else // defined(SSL_TXT_TLSV1_1) - case context::tlsv11: - case context::tlsv11_client: - case context::tlsv11_server: - asio::detail::throw_error( - asio::error::invalid_argument, "context"); - break; -#endif // defined(SSL_TXT_TLSV1_1) - - // TLS v1.2. -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - case context::tlsv12: - handle_ = ::SSL_CTX_new(::TLS_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_2_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_2_VERSION); - } - break; - case context::tlsv12_client: - handle_ = ::SSL_CTX_new(::TLS_client_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_2_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_2_VERSION); - } - break; - case context::tlsv12_server: - handle_ = ::SSL_CTX_new(::TLS_server_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_2_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_2_VERSION); - } - break; -#elif defined(SSL_TXT_TLSV1_2) - case context::tlsv12: - handle_ = ::SSL_CTX_new(::TLSv1_2_method()); - break; - case context::tlsv12_client: - handle_ = ::SSL_CTX_new(::TLSv1_2_client_method()); - break; - case context::tlsv12_server: - handle_ = ::SSL_CTX_new(::TLSv1_2_server_method()); - break; -#else // defined(SSL_TXT_TLSV1_2) - case context::tlsv12: - case context::tlsv12_client: - case context::tlsv12_server: - asio::detail::throw_error( - asio::error::invalid_argument, "context"); - break; -#endif // defined(SSL_TXT_TLSV1_2) - - // TLS v1.3. -#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) \ - && !defined(LIBRESSL_VERSION_NUMBER) - case context::tlsv13: - handle_ = ::SSL_CTX_new(::TLS_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_3_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_3_VERSION); - } - break; - case context::tlsv13_client: - handle_ = ::SSL_CTX_new(::TLS_client_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_3_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_3_VERSION); - } - break; - case context::tlsv13_server: - handle_ = ::SSL_CTX_new(::TLS_server_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_3_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_3_VERSION); - } - break; -#else // (OPENSSL_VERSION_NUMBER >= 0x10101000L) - // && !defined(LIBRESSL_VERSION_NUMBER) - case context::tlsv13: - case context::tlsv13_client: - case context::tlsv13_server: - asio::detail::throw_error( - asio::error::invalid_argument, "context"); - break; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10101000L) - // && !defined(LIBRESSL_VERSION_NUMBER) - - // Any supported SSL/TLS version. - case context::sslv23: - handle_ = ::SSL_CTX_new(::SSLv23_method()); - break; - case context::sslv23_client: - handle_ = ::SSL_CTX_new(::SSLv23_client_method()); - break; - case context::sslv23_server: - handle_ = ::SSL_CTX_new(::SSLv23_server_method()); - break; - - // Any supported TLS version. -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - case context::tls: - handle_ = ::SSL_CTX_new(::TLS_method()); - if (handle_) - SSL_CTX_set_min_proto_version(handle_, TLS1_VERSION); - break; - case context::tls_client: - handle_ = ::SSL_CTX_new(::TLS_client_method()); - if (handle_) - SSL_CTX_set_min_proto_version(handle_, TLS1_VERSION); - break; - case context::tls_server: - handle_ = ::SSL_CTX_new(::TLS_server_method()); - if (handle_) - SSL_CTX_set_min_proto_version(handle_, TLS1_VERSION); - break; -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - case context::tls: - handle_ = ::SSL_CTX_new(::SSLv23_method()); - if (handle_) - SSL_CTX_set_options(handle_, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); - break; - case context::tls_client: - handle_ = ::SSL_CTX_new(::SSLv23_client_method()); - if (handle_) - SSL_CTX_set_options(handle_, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); - break; - case context::tls_server: - handle_ = ::SSL_CTX_new(::SSLv23_server_method()); - if (handle_) - SSL_CTX_set_options(handle_, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); - break; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - - default: - handle_ = ::SSL_CTX_new(0); - break; - } - - if (handle_ == 0) - { - asio::error_code ec( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - asio::detail::throw_error(ec, "context"); - } - - set_options(no_compression); -} - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) -context::context(context&& other) -{ - handle_ = other.handle_; - other.handle_ = 0; -} - -context& context::operator=(context&& other) -{ - context tmp(ASIO_MOVE_CAST(context)(*this)); - handle_ = other.handle_; - other.handle_ = 0; - return *this; -} -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - -context::~context() -{ - if (handle_) - { -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - void* cb_userdata = handle_->default_passwd_callback_userdata; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - if (cb_userdata) - { - detail::password_callback_base* callback = - static_cast( - cb_userdata); - delete callback; -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - ::SSL_CTX_set_default_passwd_cb_userdata(handle_, 0); -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - handle_->default_passwd_callback_userdata = 0; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - } - - if (SSL_CTX_get_app_data(handle_)) - { - detail::verify_callback_base* callback = - static_cast( - SSL_CTX_get_app_data(handle_)); - delete callback; - SSL_CTX_set_app_data(handle_, 0); - } - - ::SSL_CTX_free(handle_); - } -} - -context::native_handle_type context::native_handle() -{ - return handle_; -} - -void context::clear_options(context::options o) -{ - asio::error_code ec; - clear_options(o, ec); - asio::detail::throw_error(ec, "clear_options"); -} - -ASIO_SYNC_OP_VOID context::clear_options( - context::options o, asio::error_code& ec) -{ -#if (OPENSSL_VERSION_NUMBER >= 0x009080DFL) \ - && (OPENSSL_VERSION_NUMBER != 0x00909000L) -# if !defined(SSL_OP_NO_COMPRESSION) - if ((o & context::no_compression) != 0) - { -# if (OPENSSL_VERSION_NUMBER >= 0x00908000L) - handle_->comp_methods = SSL_COMP_get_compression_methods(); -# endif // (OPENSSL_VERSION_NUMBER >= 0x00908000L) - o ^= context::no_compression; - } -# endif // !defined(SSL_OP_NO_COMPRESSION) - - ::SSL_CTX_clear_options(handle_, o); - - ec = asio::error_code(); -#else // (OPENSSL_VERSION_NUMBER >= 0x009080DFL) - // && (OPENSSL_VERSION_NUMBER != 0x00909000L) - (void)o; - ec = asio::error::operation_not_supported; -#endif // (OPENSSL_VERSION_NUMBER >= 0x009080DFL) - // && (OPENSSL_VERSION_NUMBER != 0x00909000L) - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::set_options(context::options o) -{ - asio::error_code ec; - set_options(o, ec); - asio::detail::throw_error(ec, "set_options"); -} - -ASIO_SYNC_OP_VOID context::set_options( - context::options o, asio::error_code& ec) -{ -#if !defined(SSL_OP_NO_COMPRESSION) - if ((o & context::no_compression) != 0) - { -#if (OPENSSL_VERSION_NUMBER >= 0x00908000L) - handle_->comp_methods = - asio::ssl::detail::openssl_init<>::get_null_compression_methods(); -#endif // (OPENSSL_VERSION_NUMBER >= 0x00908000L) - o ^= context::no_compression; - } -#endif // !defined(SSL_OP_NO_COMPRESSION) - - ::SSL_CTX_set_options(handle_, o); - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::set_verify_mode(verify_mode v) -{ - asio::error_code ec; - set_verify_mode(v, ec); - asio::detail::throw_error(ec, "set_verify_mode"); -} - -ASIO_SYNC_OP_VOID context::set_verify_mode( - verify_mode v, asio::error_code& ec) -{ - ::SSL_CTX_set_verify(handle_, v, ::SSL_CTX_get_verify_callback(handle_)); - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::set_verify_depth(int depth) -{ - asio::error_code ec; - set_verify_depth(depth, ec); - asio::detail::throw_error(ec, "set_verify_depth"); -} - -ASIO_SYNC_OP_VOID context::set_verify_depth( - int depth, asio::error_code& ec) -{ - ::SSL_CTX_set_verify_depth(handle_, depth); - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::load_verify_file(const std::string& filename) -{ - asio::error_code ec; - load_verify_file(filename, ec); - asio::detail::throw_error(ec, "load_verify_file"); -} - -ASIO_SYNC_OP_VOID context::load_verify_file( - const std::string& filename, asio::error_code& ec) -{ - ::ERR_clear_error(); - - if (::SSL_CTX_load_verify_locations(handle_, filename.c_str(), 0) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::add_certificate_authority(const const_buffer& ca) -{ - asio::error_code ec; - add_certificate_authority(ca, ec); - asio::detail::throw_error(ec, "add_certificate_authority"); -} - -ASIO_SYNC_OP_VOID context::add_certificate_authority( - const const_buffer& ca, asio::error_code& ec) -{ - ::ERR_clear_error(); - - bio_cleanup bio = { make_buffer_bio(ca) }; - if (bio.p) - { - if (X509_STORE* store = ::SSL_CTX_get_cert_store(handle_)) - { - for (;;) - { - x509_cleanup cert = { ::PEM_read_bio_X509(bio.p, 0, 0, 0) }; - if (!cert.p) - break; - - if (::X509_STORE_add_cert(store, cert.p) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - } - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::set_default_verify_paths() -{ - asio::error_code ec; - set_default_verify_paths(ec); - asio::detail::throw_error(ec, "set_default_verify_paths"); -} - -ASIO_SYNC_OP_VOID context::set_default_verify_paths( - asio::error_code& ec) -{ - ::ERR_clear_error(); - - if (::SSL_CTX_set_default_verify_paths(handle_) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::add_verify_path(const std::string& path) -{ - asio::error_code ec; - add_verify_path(path, ec); - asio::detail::throw_error(ec, "add_verify_path"); -} - -ASIO_SYNC_OP_VOID context::add_verify_path( - const std::string& path, asio::error_code& ec) -{ - ::ERR_clear_error(); - - if (::SSL_CTX_load_verify_locations(handle_, 0, path.c_str()) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_certificate( - const const_buffer& certificate, file_format format) -{ - asio::error_code ec; - use_certificate(certificate, format, ec); - asio::detail::throw_error(ec, "use_certificate"); -} - -ASIO_SYNC_OP_VOID context::use_certificate( - const const_buffer& certificate, file_format format, - asio::error_code& ec) -{ - ::ERR_clear_error(); - - if (format == context_base::asn1) - { - if (::SSL_CTX_use_certificate_ASN1(handle_, - static_cast(certificate.size()), - static_cast(certificate.data())) == 1) - { - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - else if (format == context_base::pem) - { - bio_cleanup bio = { make_buffer_bio(certificate) }; - if (bio.p) - { - x509_cleanup cert = { ::PEM_read_bio_X509(bio.p, 0, 0, 0) }; - if (cert.p) - { - if (::SSL_CTX_use_certificate(handle_, cert.p) == 1) - { - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - } - } - else - { - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_certificate_file( - const std::string& filename, file_format format) -{ - asio::error_code ec; - use_certificate_file(filename, format, ec); - asio::detail::throw_error(ec, "use_certificate_file"); -} - -ASIO_SYNC_OP_VOID context::use_certificate_file( - const std::string& filename, file_format format, - asio::error_code& ec) -{ - int file_type; - switch (format) - { - case context_base::asn1: - file_type = SSL_FILETYPE_ASN1; - break; - case context_base::pem: - file_type = SSL_FILETYPE_PEM; - break; - default: - { - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - ::ERR_clear_error(); - - if (::SSL_CTX_use_certificate_file(handle_, filename.c_str(), file_type) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_certificate_chain(const const_buffer& chain) -{ - asio::error_code ec; - use_certificate_chain(chain, ec); - asio::detail::throw_error(ec, "use_certificate_chain"); -} - -ASIO_SYNC_OP_VOID context::use_certificate_chain( - const const_buffer& chain, asio::error_code& ec) -{ - ::ERR_clear_error(); - - bio_cleanup bio = { make_buffer_bio(chain) }; - if (bio.p) - { -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_); - void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - pem_password_cb* callback = handle_->default_passwd_callback; - void* cb_userdata = handle_->default_passwd_callback_userdata; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - x509_cleanup cert = { - ::PEM_read_bio_X509_AUX(bio.p, 0, - callback, - cb_userdata) }; - if (!cert.p) - { - ec = asio::error_code(ERR_R_PEM_LIB, - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - int result = ::SSL_CTX_use_certificate(handle_, cert.p); - if (result == 0 || ::ERR_peek_error() != 0) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - -#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && !defined(LIBRESSL_VERSION_NUMBER) - ::SSL_CTX_clear_chain_certs(handle_); -#else - if (handle_->extra_certs) - { - ::sk_X509_pop_free(handle_->extra_certs, X509_free); - handle_->extra_certs = 0; - } -#endif // (OPENSSL_VERSION_NUMBER >= 0x10002000L) - - while (X509* cacert = ::PEM_read_bio_X509(bio.p, 0, - callback, - cb_userdata)) - { - if (!::SSL_CTX_add_extra_chain_cert(handle_, cacert)) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - result = ::ERR_peek_last_error(); - if ((ERR_GET_LIB(result) == ERR_LIB_PEM) - && (ERR_GET_REASON(result) == PEM_R_NO_START_LINE)) - { - ::ERR_clear_error(); - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_certificate_chain_file(const std::string& filename) -{ - asio::error_code ec; - use_certificate_chain_file(filename, ec); - asio::detail::throw_error(ec, "use_certificate_chain_file"); -} - -ASIO_SYNC_OP_VOID context::use_certificate_chain_file( - const std::string& filename, asio::error_code& ec) -{ - ::ERR_clear_error(); - - if (::SSL_CTX_use_certificate_chain_file(handle_, filename.c_str()) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_private_key( - const const_buffer& private_key, context::file_format format) -{ - asio::error_code ec; - use_private_key(private_key, format, ec); - asio::detail::throw_error(ec, "use_private_key"); -} - -ASIO_SYNC_OP_VOID context::use_private_key( - const const_buffer& private_key, context::file_format format, - asio::error_code& ec) -{ - ::ERR_clear_error(); - -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_); - void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - pem_password_cb* callback = handle_->default_passwd_callback; - void* cb_userdata = handle_->default_passwd_callback_userdata; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - - bio_cleanup bio = { make_buffer_bio(private_key) }; - if (bio.p) - { - evp_pkey_cleanup evp_private_key = { 0 }; - switch (format) - { - case context_base::asn1: - evp_private_key.p = ::d2i_PrivateKey_bio(bio.p, 0); - break; - case context_base::pem: - evp_private_key.p = ::PEM_read_bio_PrivateKey( - bio.p, 0, callback, - cb_userdata); - break; - default: - { - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - if (evp_private_key.p) - { - if (::SSL_CTX_use_PrivateKey(handle_, evp_private_key.p) == 1) - { - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - } - - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_private_key_file( - const std::string& filename, context::file_format format) -{ - asio::error_code ec; - use_private_key_file(filename, format, ec); - asio::detail::throw_error(ec, "use_private_key_file"); -} - -void context::use_rsa_private_key( - const const_buffer& private_key, context::file_format format) -{ - asio::error_code ec; - use_rsa_private_key(private_key, format, ec); - asio::detail::throw_error(ec, "use_rsa_private_key"); -} - -ASIO_SYNC_OP_VOID context::use_rsa_private_key( - const const_buffer& private_key, context::file_format format, - asio::error_code& ec) -{ - ::ERR_clear_error(); - -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_); - void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - pem_password_cb* callback = handle_->default_passwd_callback; - void* cb_userdata = handle_->default_passwd_callback_userdata; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - - bio_cleanup bio = { make_buffer_bio(private_key) }; - if (bio.p) - { - rsa_cleanup rsa_private_key = { 0 }; - switch (format) - { - case context_base::asn1: - rsa_private_key.p = ::d2i_RSAPrivateKey_bio(bio.p, 0); - break; - case context_base::pem: - rsa_private_key.p = ::PEM_read_bio_RSAPrivateKey( - bio.p, 0, callback, - cb_userdata); - break; - default: - { - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - if (rsa_private_key.p) - { - if (::SSL_CTX_use_RSAPrivateKey(handle_, rsa_private_key.p) == 1) - { - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - } - - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID context::use_private_key_file( - const std::string& filename, context::file_format format, - asio::error_code& ec) -{ - int file_type; - switch (format) - { - case context_base::asn1: - file_type = SSL_FILETYPE_ASN1; - break; - case context_base::pem: - file_type = SSL_FILETYPE_PEM; - break; - default: - { - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - ::ERR_clear_error(); - - if (::SSL_CTX_use_PrivateKey_file(handle_, filename.c_str(), file_type) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_rsa_private_key_file( - const std::string& filename, context::file_format format) -{ - asio::error_code ec; - use_rsa_private_key_file(filename, format, ec); - asio::detail::throw_error(ec, "use_rsa_private_key_file"); -} - -ASIO_SYNC_OP_VOID context::use_rsa_private_key_file( - const std::string& filename, context::file_format format, - asio::error_code& ec) -{ - int file_type; - switch (format) - { - case context_base::asn1: - file_type = SSL_FILETYPE_ASN1; - break; - case context_base::pem: - file_type = SSL_FILETYPE_PEM; - break; - default: - { - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - ::ERR_clear_error(); - - if (::SSL_CTX_use_RSAPrivateKey_file( - handle_, filename.c_str(), file_type) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_tmp_dh(const const_buffer& dh) -{ - asio::error_code ec; - use_tmp_dh(dh, ec); - asio::detail::throw_error(ec, "use_tmp_dh"); -} - -ASIO_SYNC_OP_VOID context::use_tmp_dh( - const const_buffer& dh, asio::error_code& ec) -{ - ::ERR_clear_error(); - - bio_cleanup bio = { make_buffer_bio(dh) }; - if (bio.p) - { - return do_use_tmp_dh(bio.p, ec); - } - - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_tmp_dh_file(const std::string& filename) -{ - asio::error_code ec; - use_tmp_dh_file(filename, ec); - asio::detail::throw_error(ec, "use_tmp_dh_file"); -} - -ASIO_SYNC_OP_VOID context::use_tmp_dh_file( - const std::string& filename, asio::error_code& ec) -{ - ::ERR_clear_error(); - - bio_cleanup bio = { ::BIO_new_file(filename.c_str(), "r") }; - if (bio.p) - { - return do_use_tmp_dh(bio.p, ec); - } - - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID context::do_use_tmp_dh( - BIO* bio, asio::error_code& ec) -{ - ::ERR_clear_error(); - - dh_cleanup dh = { ::PEM_read_bio_DHparams(bio, 0, 0, 0) }; - if (dh.p) - { - if (::SSL_CTX_set_tmp_dh(handle_, dh.p) == 1) - { - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID context::do_set_verify_callback( - detail::verify_callback_base* callback, asio::error_code& ec) -{ - if (SSL_CTX_get_app_data(handle_)) - { - delete static_cast( - SSL_CTX_get_app_data(handle_)); - } - - SSL_CTX_set_app_data(handle_, callback); - - ::SSL_CTX_set_verify(handle_, - ::SSL_CTX_get_verify_mode(handle_), - &context::verify_callback_function); - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -int context::verify_callback_function(int preverified, X509_STORE_CTX* ctx) -{ - if (ctx) - { - if (SSL* ssl = static_cast( - ::X509_STORE_CTX_get_ex_data( - ctx, ::SSL_get_ex_data_X509_STORE_CTX_idx()))) - { - if (SSL_CTX* handle = ::SSL_get_SSL_CTX(ssl)) - { - if (SSL_CTX_get_app_data(handle)) - { - detail::verify_callback_base* callback = - static_cast( - SSL_CTX_get_app_data(handle)); - - verify_context verify_ctx(ctx); - return callback->call(preverified != 0, verify_ctx) ? 1 : 0; - } - } - } - } - - return 0; -} - -ASIO_SYNC_OP_VOID context::do_set_password_callback( - detail::password_callback_base* callback, asio::error_code& ec) -{ -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - void* old_callback = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); - ::SSL_CTX_set_default_passwd_cb_userdata(handle_, callback); -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - void* old_callback = handle_->default_passwd_callback_userdata; - handle_->default_passwd_callback_userdata = callback; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - - if (old_callback) - delete static_cast( - old_callback); - - SSL_CTX_set_default_passwd_cb(handle_, &context::password_callback_function); - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -int context::password_callback_function( - char* buf, int size, int purpose, void* data) -{ - using namespace std; // For strncat and strlen. - - if (data) - { - detail::password_callback_base* callback = - static_cast(data); - - std::string passwd = callback->call(static_cast(size), - purpose ? context_base::for_writing : context_base::for_reading); - -#if defined(ASIO_HAS_SECURE_RTL) - strcpy_s(buf, size, passwd.c_str()); -#else // defined(ASIO_HAS_SECURE_RTL) - *buf = '\0'; - if (size > 0) - strncat(buf, passwd.c_str(), size - 1); -#endif // defined(ASIO_HAS_SECURE_RTL) - - return static_cast(strlen(buf)); - } - - return 0; -} - -BIO* context::make_buffer_bio(const const_buffer& b) -{ - return ::BIO_new_mem_buf( - const_cast(b.data()), - static_cast(b.size())); -} - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_IMPL_CONTEXT_IPP diff --git a/Sources/Vendor/asio/include/asio/ssl/impl/error.ipp b/Sources/Vendor/asio/include/asio/ssl/impl/error.ipp deleted file mode 100644 index 98e8c91..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/impl/error.ipp +++ /dev/null @@ -1,100 +0,0 @@ -// -// ssl/impl/error.ipp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_IMPL_ERROR_IPP -#define ASIO_SSL_IMPL_ERROR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ssl/error.hpp" -#include "asio/ssl/detail/openssl_init.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace error { -namespace detail { - -class ssl_category : public asio::error_category -{ -public: - const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT - { - return "asio.ssl"; - } - - std::string message(int value) const - { - const char* s = ::ERR_reason_error_string(value); - return s ? s : "asio.ssl error"; - } -}; - -} // namespace detail - -const asio::error_category& get_ssl_category() -{ - static detail::ssl_category instance; - return instance; -} - -} // namespace error -namespace ssl { -namespace error { - -#if (OPENSSL_VERSION_NUMBER < 0x10100000L) && !defined(OPENSSL_IS_BORINGSSL) - -const asio::error_category& get_stream_category() -{ - return asio::error::get_ssl_category(); -} - -#else - -namespace detail { - -class stream_category : public asio::error_category -{ -public: - const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT - { - return "asio.ssl.stream"; - } - - std::string message(int value) const - { - switch (value) - { - case stream_truncated: return "stream truncated"; - default: return "asio.ssl.stream error"; - } - } -}; - -} // namespace detail - -const asio::error_category& get_stream_category() -{ - static detail::stream_category instance; - return instance; -} - -#endif - -} // namespace error -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_IMPL_ERROR_IPP diff --git a/Sources/Vendor/asio/include/asio/ssl/impl/rfc2818_verification.ipp b/Sources/Vendor/asio/include/asio/ssl/impl/rfc2818_verification.ipp deleted file mode 100644 index 577e4a1..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/impl/rfc2818_verification.ipp +++ /dev/null @@ -1,160 +0,0 @@ -// -// ssl/impl/rfc2818_verification.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_IMPL_RFC2818_VERIFICATION_IPP -#define ASIO_SSL_IMPL_RFC2818_VERIFICATION_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include -#include "asio/ip/address.hpp" -#include "asio/ssl/rfc2818_verification.hpp" -#include "asio/ssl/detail/openssl_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -bool rfc2818_verification::operator()( - bool preverified, verify_context& ctx) const -{ - using namespace std; // For memcmp. - - // Don't bother looking at certificates that have failed pre-verification. - if (!preverified) - return false; - - // We're only interested in checking the certificate at the end of the chain. - int depth = X509_STORE_CTX_get_error_depth(ctx.native_handle()); - if (depth > 0) - return true; - - // Try converting the host name to an address. If it is an address then we - // need to look for an IP address in the certificate rather than a host name. - asio::error_code ec; - ip::address address = ip::make_address(host_, ec); - bool is_address = !ec; - - X509* cert = X509_STORE_CTX_get_current_cert(ctx.native_handle()); - - // Go through the alternate names in the certificate looking for matching DNS - // or IP address entries. - GENERAL_NAMES* gens = static_cast( - X509_get_ext_d2i(cert, NID_subject_alt_name, 0, 0)); - for (int i = 0; i < sk_GENERAL_NAME_num(gens); ++i) - { - GENERAL_NAME* gen = sk_GENERAL_NAME_value(gens, i); - if (gen->type == GEN_DNS && !is_address) - { - ASN1_IA5STRING* domain = gen->d.dNSName; - if (domain->type == V_ASN1_IA5STRING && domain->data && domain->length) - { - const char* pattern = reinterpret_cast(domain->data); - std::size_t pattern_length = domain->length; - if (match_pattern(pattern, pattern_length, host_.c_str())) - { - GENERAL_NAMES_free(gens); - return true; - } - } - } - else if (gen->type == GEN_IPADD && is_address) - { - ASN1_OCTET_STRING* ip_address = gen->d.iPAddress; - if (ip_address->type == V_ASN1_OCTET_STRING && ip_address->data) - { - if (address.is_v4() && ip_address->length == 4) - { - ip::address_v4::bytes_type bytes = address.to_v4().to_bytes(); - if (memcmp(bytes.data(), ip_address->data, 4) == 0) - { - GENERAL_NAMES_free(gens); - return true; - } - } - else if (address.is_v6() && ip_address->length == 16) - { - ip::address_v6::bytes_type bytes = address.to_v6().to_bytes(); - if (memcmp(bytes.data(), ip_address->data, 16) == 0) - { - GENERAL_NAMES_free(gens); - return true; - } - } - } - } - } - GENERAL_NAMES_free(gens); - - // No match in the alternate names, so try the common names. We should only - // use the "most specific" common name, which is the last one in the list. - X509_NAME* name = X509_get_subject_name(cert); - int i = -1; - ASN1_STRING* common_name = 0; - while ((i = X509_NAME_get_index_by_NID(name, NID_commonName, i)) >= 0) - { - X509_NAME_ENTRY* name_entry = X509_NAME_get_entry(name, i); - common_name = X509_NAME_ENTRY_get_data(name_entry); - } - if (common_name && common_name->data && common_name->length) - { - const char* pattern = reinterpret_cast(common_name->data); - std::size_t pattern_length = common_name->length; - if (match_pattern(pattern, pattern_length, host_.c_str())) - return true; - } - - return false; -} - -bool rfc2818_verification::match_pattern(const char* pattern, - std::size_t pattern_length, const char* host) -{ - using namespace std; // For tolower. - - const char* p = pattern; - const char* p_end = p + pattern_length; - const char* h = host; - - while (p != p_end && *h) - { - if (*p == '*') - { - ++p; - while (*h && *h != '.') - if (match_pattern(p, p_end - p, h++)) - return true; - } - else if (tolower(*p) == tolower(*h)) - { - ++p; - ++h; - } - else - { - return false; - } - } - - return p == p_end && !*h; -} - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_IMPL_RFC2818_VERIFICATION_IPP diff --git a/Sources/Vendor/asio/include/asio/ssl/impl/src.hpp b/Sources/Vendor/asio/include/asio/ssl/impl/src.hpp deleted file mode 100644 index 9a1b038..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/impl/src.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// impl/ssl/src.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_IMPL_SRC_HPP -#define ASIO_SSL_IMPL_SRC_HPP - -#define ASIO_SOURCE - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HEADER_ONLY) -# error Do not compile Asio library source with ASIO_HEADER_ONLY defined -#endif - -#include "asio/ssl/impl/context.ipp" -#include "asio/ssl/impl/error.ipp" -#include "asio/ssl/detail/impl/engine.ipp" -#include "asio/ssl/detail/impl/openssl_init.ipp" -#include "asio/ssl/impl/rfc2818_verification.ipp" - -#endif // ASIO_SSL_IMPL_SRC_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/rfc2818_verification.hpp b/Sources/Vendor/asio/include/asio/ssl/rfc2818_verification.hpp deleted file mode 100644 index 3589f53..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/rfc2818_verification.hpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// ssl/rfc2818_verification.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_RFC2818_VERIFICATION_HPP -#define ASIO_SSL_RFC2818_VERIFICATION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/ssl/detail/openssl_types.hpp" -#include "asio/ssl/verify_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -/// Verifies a certificate against a hostname according to the rules described -/// in RFC 2818. -/** - * @par Example - * The following example shows how to synchronously open a secure connection to - * a given host name: - * @code - * using asio::ip::tcp; - * namespace ssl = asio::ssl; - * typedef ssl::stream ssl_socket; - * - * // Create a context that uses the default paths for finding CA certificates. - * ssl::context ctx(ssl::context::sslv23); - * ctx.set_default_verify_paths(); - * - * // Open a socket and connect it to the remote host. - * asio::io_context io_context; - * ssl_socket sock(io_context, ctx); - * tcp::resolver resolver(io_context); - * tcp::resolver::query query("host.name", "https"); - * asio::connect(sock.lowest_layer(), resolver.resolve(query)); - * sock.lowest_layer().set_option(tcp::no_delay(true)); - * - * // Perform SSL handshake and verify the remote host's certificate. - * sock.set_verify_mode(ssl::verify_peer); - * sock.set_verify_callback(ssl::rfc2818_verification("host.name")); - * sock.handshake(ssl_socket::client); - * - * // ... read and write as normal ... - * @endcode - */ -class rfc2818_verification -{ -public: - /// The type of the function object's result. - typedef bool result_type; - - /// Constructor. - explicit rfc2818_verification(const std::string& host) - : host_(host) - { - } - - /// Perform certificate verification. - ASIO_DECL bool operator()(bool preverified, verify_context& ctx) const; - -private: - // Helper function to check a host name against a pattern. - ASIO_DECL static bool match_pattern(const char* pattern, - std::size_t pattern_length, const char* host); - - // Helper function to check a host name against an IPv4 address - // The host name to be checked. - std::string host_; -}; - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/ssl/impl/rfc2818_verification.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_SSL_RFC2818_VERIFICATION_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/stream.hpp b/Sources/Vendor/asio/include/asio/ssl/stream.hpp deleted file mode 100644 index a05ee88..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/stream.hpp +++ /dev/null @@ -1,762 +0,0 @@ -// -// ssl/stream.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_STREAM_HPP -#define ASIO_SSL_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/async_result.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/ssl/context.hpp" -#include "asio/ssl/detail/buffered_handshake_op.hpp" -#include "asio/ssl/detail/handshake_op.hpp" -#include "asio/ssl/detail/io.hpp" -#include "asio/ssl/detail/read_op.hpp" -#include "asio/ssl/detail/shutdown_op.hpp" -#include "asio/ssl/detail/stream_core.hpp" -#include "asio/ssl/detail/write_op.hpp" -#include "asio/ssl/stream_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -/// Provides stream-oriented functionality using SSL. -/** - * The stream class template provides asynchronous and blocking stream-oriented - * functionality using SSL. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. The application must also ensure that all - * asynchronous operations are performed within the same implicit or explicit - * strand. - * - * @par Example - * To use the SSL stream template with an ip::tcp::socket, you would write: - * @code - * asio::io_context io_context; - * asio::ssl::context ctx(asio::ssl::context::sslv23); - * asio::ssl::stream sock(io_context, ctx); - * @endcode - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class stream : - public stream_base, - private noncopyable -{ -public: - /// The native handle type of the SSL stream. - typedef SSL* native_handle_type; - - /// Structure for use with deprecated impl_type. - struct impl_struct - { - SSL* ssl; - }; - - /// The type of the next layer. - typedef typename remove_reference::type next_layer_type; - - /// The type of the lowest layer. - typedef typename next_layer_type::lowest_layer_type lowest_layer_type; - - /// The type of the executor associated with the object. - typedef typename lowest_layer_type::executor_type executor_type; - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Construct a stream. - /** - * This constructor creates a stream and initialises the underlying stream - * object. - * - * @param arg The argument to be passed to initialise the underlying stream. - * - * @param ctx The SSL context to be used for the stream. - */ - template - stream(Arg&& arg, context& ctx) - : next_layer_(ASIO_MOVE_CAST(Arg)(arg)), - core_(ctx.native_handle(), - next_layer_.lowest_layer().get_executor().context()) - { - } -#else // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - template - stream(Arg& arg, context& ctx) - : next_layer_(arg), - core_(ctx.native_handle(), - next_layer_.lowest_layer().get_executor().context()) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destructor. - /** - * @note A @c stream object must not be destroyed while there are pending - * asynchronous operations associated with it. - */ - ~stream() - { - } - - /// Get the executor associated with the object. - /** - * This function may be used to obtain the executor object that the stream - * uses to dispatch handlers for asynchronous operations. - * - * @return A copy of the executor that stream will use to dispatch handlers. - */ - executor_type get_executor() ASIO_NOEXCEPT - { - return next_layer_.lowest_layer().get_executor(); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_context() - { - return next_layer_.lowest_layer().get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_service() - { - return next_layer_.lowest_layer().get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the underlying implementation in the native type. - /** - * This function may be used to obtain the underlying implementation of the - * context. This is intended to allow access to context functionality that is - * not otherwise provided. - * - * @par Example - * The native_handle() function returns a pointer of type @c SSL* that is - * suitable for passing to functions such as @c SSL_get_verify_result and - * @c SSL_get_peer_certificate: - * @code - * asio::ssl::stream sock(io_context, ctx); - * - * // ... establish connection and perform handshake ... - * - * if (X509* cert = SSL_get_peer_certificate(sock.native_handle())) - * { - * if (SSL_get_verify_result(sock.native_handle()) == X509_V_OK) - * { - * // ... - * } - * } - * @endcode - */ - native_handle_type native_handle() - { - return core_.engine_.native_handle(); - } - - /// Get a reference to the next layer. - /** - * This function returns a reference to the next layer in a stack of stream - * layers. - * - * @return A reference to the next layer in the stack of stream layers. - * Ownership is not transferred to the caller. - */ - const next_layer_type& next_layer() const - { - return next_layer_; - } - - /// Get a reference to the next layer. - /** - * This function returns a reference to the next layer in a stack of stream - * layers. - * - * @return A reference to the next layer in the stack of stream layers. - * Ownership is not transferred to the caller. - */ - next_layer_type& next_layer() - { - return next_layer_; - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * stream layers. - * - * @return A reference to the lowest layer in the stack of stream layers. - * Ownership is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return next_layer_.lowest_layer(); - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * stream layers. - * - * @return A reference to the lowest layer in the stack of stream layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return next_layer_.lowest_layer(); - } - - /// Set the peer verification mode. - /** - * This function may be used to configure the peer verification mode used by - * the stream. The new mode will override the mode inherited from the context. - * - * @param v A bitmask of peer verification modes. See @ref verify_mode for - * available values. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_set_verify. - */ - void set_verify_mode(verify_mode v) - { - asio::error_code ec; - set_verify_mode(v, ec); - asio::detail::throw_error(ec, "set_verify_mode"); - } - - /// Set the peer verification mode. - /** - * This function may be used to configure the peer verification mode used by - * the stream. The new mode will override the mode inherited from the context. - * - * @param v A bitmask of peer verification modes. See @ref verify_mode for - * available values. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_set_verify. - */ - ASIO_SYNC_OP_VOID set_verify_mode( - verify_mode v, asio::error_code& ec) - { - core_.engine_.set_verify_mode(v, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Set the peer verification depth. - /** - * This function may be used to configure the maximum verification depth - * allowed by the stream. - * - * @param depth Maximum depth for the certificate chain verification that - * shall be allowed. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_set_verify_depth. - */ - void set_verify_depth(int depth) - { - asio::error_code ec; - set_verify_depth(depth, ec); - asio::detail::throw_error(ec, "set_verify_depth"); - } - - /// Set the peer verification depth. - /** - * This function may be used to configure the maximum verification depth - * allowed by the stream. - * - * @param depth Maximum depth for the certificate chain verification that - * shall be allowed. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_set_verify_depth. - */ - ASIO_SYNC_OP_VOID set_verify_depth( - int depth, asio::error_code& ec) - { - core_.engine_.set_verify_depth(depth, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Set the callback used to verify peer certificates. - /** - * This function is used to specify a callback function that will be called - * by the implementation when it needs to verify a peer certificate. - * - * @param callback The function object to be used for verifying a certificate. - * The function signature of the handler must be: - * @code bool verify_callback( - * bool preverified, // True if the certificate passed pre-verification. - * verify_context& ctx // The peer certificate and other context. - * ); @endcode - * The return value of the callback is true if the certificate has passed - * verification, false otherwise. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_set_verify. - */ - template - void set_verify_callback(VerifyCallback callback) - { - asio::error_code ec; - this->set_verify_callback(callback, ec); - asio::detail::throw_error(ec, "set_verify_callback"); - } - - /// Set the callback used to verify peer certificates. - /** - * This function is used to specify a callback function that will be called - * by the implementation when it needs to verify a peer certificate. - * - * @param callback The function object to be used for verifying a certificate. - * The function signature of the handler must be: - * @code bool verify_callback( - * bool preverified, // True if the certificate passed pre-verification. - * verify_context& ctx // The peer certificate and other context. - * ); @endcode - * The return value of the callback is true if the certificate has passed - * verification, false otherwise. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_set_verify. - */ - template - ASIO_SYNC_OP_VOID set_verify_callback(VerifyCallback callback, - asio::error_code& ec) - { - core_.engine_.set_verify_callback( - new detail::verify_callback(callback), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform SSL handshaking. - /** - * This function is used to perform SSL handshaking on the stream. The - * function call will block until handshaking is complete or an error occurs. - * - * @param type The type of handshaking to be performed, i.e. as a client or as - * a server. - * - * @throws asio::system_error Thrown on failure. - */ - void handshake(handshake_type type) - { - asio::error_code ec; - handshake(type, ec); - asio::detail::throw_error(ec, "handshake"); - } - - /// Perform SSL handshaking. - /** - * This function is used to perform SSL handshaking on the stream. The - * function call will block until handshaking is complete or an error occurs. - * - * @param type The type of handshaking to be performed, i.e. as a client or as - * a server. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID handshake(handshake_type type, - asio::error_code& ec) - { - detail::io(next_layer_, core_, detail::handshake_op(type), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform SSL handshaking. - /** - * This function is used to perform SSL handshaking on the stream. The - * function call will block until handshaking is complete or an error occurs. - * - * @param type The type of handshaking to be performed, i.e. as a client or as - * a server. - * - * @param buffers The buffered data to be reused for the handshake. - * - * @throws asio::system_error Thrown on failure. - */ - template - void handshake(handshake_type type, const ConstBufferSequence& buffers) - { - asio::error_code ec; - handshake(type, buffers, ec); - asio::detail::throw_error(ec, "handshake"); - } - - /// Perform SSL handshaking. - /** - * This function is used to perform SSL handshaking on the stream. The - * function call will block until handshaking is complete or an error occurs. - * - * @param type The type of handshaking to be performed, i.e. as a client or as - * a server. - * - * @param buffers The buffered data to be reused for the handshake. - * - * @param ec Set to indicate what error occurred, if any. - */ - template - ASIO_SYNC_OP_VOID handshake(handshake_type type, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - detail::io(next_layer_, core_, - detail::buffered_handshake_op(type, buffers), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous SSL handshake. - /** - * This function is used to asynchronously perform an SSL handshake on the - * stream. This function call always returns immediately. - * - * @param type The type of handshaking to be performed, i.e. as a client or as - * a server. - * - * @param 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: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(HandshakeHandler, - void (asio::error_code)) - async_handshake(handshake_type type, - ASIO_MOVE_ARG(HandshakeHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a HandshakeHandler. - ASIO_HANDSHAKE_HANDLER_CHECK(HandshakeHandler, handler) type_check; - - asio::async_completion init(handler); - - detail::async_io(next_layer_, core_, - detail::handshake_op(type), init.completion_handler); - - return init.result.get(); - } - - /// Start an asynchronous SSL handshake. - /** - * This function is used to asynchronously perform an SSL handshake on the - * stream. This function call always returns immediately. - * - * @param type The type of handshaking to be performed, i.e. as a client or as - * a server. - * - * @param 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. - * - * @param 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: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Amount of buffers used in handshake. - * ); @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(BufferedHandshakeHandler, - void (asio::error_code, std::size_t)) - async_handshake(handshake_type type, const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(BufferedHandshakeHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a BufferedHandshakeHandler. - ASIO_BUFFERED_HANDSHAKE_HANDLER_CHECK( - BufferedHandshakeHandler, handler) type_check; - - asio::async_completion init(handler); - - detail::async_io(next_layer_, core_, - detail::buffered_handshake_op(type, buffers), - init.completion_handler); - - return init.result.get(); - } - - /// Shut down SSL on the stream. - /** - * This function is used to shut down SSL on the stream. The function call - * will block until SSL has been shut down or an error occurs. - * - * @throws asio::system_error Thrown on failure. - */ - void shutdown() - { - asio::error_code ec; - shutdown(ec); - asio::detail::throw_error(ec, "shutdown"); - } - - /// Shut down SSL on the stream. - /** - * This function is used to shut down SSL on the stream. The function call - * will block until SSL has been shut down or an error occurs. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID shutdown(asio::error_code& ec) - { - detail::io(next_layer_, core_, detail::shutdown_op(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously shut down SSL on the stream. - /** - * This function is used to asynchronously shut down SSL on the stream. This - * function call always returns immediately. - * - * @param 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: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(ShutdownHandler, - void (asio::error_code)) - async_shutdown(ASIO_MOVE_ARG(ShutdownHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ShutdownHandler. - ASIO_SHUTDOWN_HANDLER_CHECK(ShutdownHandler, handler) type_check; - - asio::async_completion init(handler); - - detail::async_io(next_layer_, core_, detail::shutdown_op(), - init.completion_handler); - - return init.result.get(); - } - - /// Write some data to the stream. - /** - * This function is used to write data on the stream. The function call will - * block until one or more bytes of data has been written successfully, or - * until an error occurs. - * - * @param buffers The data to be written. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that all - * data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t n = write_some(buffers, ec); - asio::detail::throw_error(ec, "write_some"); - return n; - } - - /// Write some data to the stream. - /** - * This function is used to write data on the stream. The function call will - * block until one or more bytes of data has been written successfully, or - * until an error occurs. - * - * @param buffers The data to be written to the stream. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that all - * data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return detail::io(next_layer_, core_, - detail::write_op(buffers), ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write one or more bytes of data to - * the stream. The function call always returns immediately. - * - * @param buffers The data to be written to the stream. 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. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The equivalent function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * - * @note The async_write_some operation may not transmit all of the data to - * the peer. Consider using the @ref async_write function if you need to - * ensure that all data is written before the asynchronous operation - * completes. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - asio::async_completion init(handler); - - detail::async_io(next_layer_, core_, - detail::write_op(buffers), - init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the stream. - /** - * This function is used to read data from the stream. The function call will - * block until one or more bytes of data has been read successfully, or until - * an error occurs. - * - * @param buffers The buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t n = read_some(buffers, ec); - asio::detail::throw_error(ec, "read_some"); - return n; - } - - /// Read some data from the stream. - /** - * This function is used to read data from the stream. The function call will - * block until one or more bytes of data has been read successfully, or until - * an error occurs. - * - * @param buffers The buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return detail::io(next_layer_, core_, - detail::read_op(buffers), ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read one or more bytes of data from - * the stream. The function call always returns immediately. - * - * @param buffers The buffers into which the data will be read. 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. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The equivalent function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * - * @note The async_read_some operation may not read all of the requested - * number of bytes. Consider using the @ref async_read function if you need to - * ensure that the requested amount of data is read before the asynchronous - * operation completes. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - asio::async_completion init(handler); - - detail::async_io(next_layer_, core_, - detail::read_op(buffers), - init.completion_handler); - - return init.result.get(); - } - -private: - Stream next_layer_; - detail::stream_core core_; -}; - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_STREAM_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/stream_base.hpp b/Sources/Vendor/asio/include/asio/ssl/stream_base.hpp deleted file mode 100644 index 56873e4..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/stream_base.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// ssl/stream_base.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_STREAM_BASE_HPP -#define ASIO_SSL_STREAM_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -/// The stream_base class is used as a base for the asio::ssl::stream -/// class template so that we have a common place to define various enums. -class stream_base -{ -public: - /// Different handshake types. - enum handshake_type - { - /// Perform handshaking as a client. - client, - - /// Perform handshaking as a server. - server - }; - -protected: - /// Protected destructor to prevent deletion through this type. - ~stream_base() - { - } -}; - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_STREAM_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/verify_context.hpp b/Sources/Vendor/asio/include/asio/ssl/verify_context.hpp deleted file mode 100644 index e172697..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/verify_context.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// ssl/verify_context.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_VERIFY_CONTEXT_HPP -#define ASIO_SSL_VERIFY_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/noncopyable.hpp" -#include "asio/ssl/detail/openssl_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -/// A simple wrapper around the X509_STORE_CTX type, used during verification of -/// a peer certificate. -/** - * @note The verify_context does not own the underlying X509_STORE_CTX object. - */ -class verify_context - : private noncopyable -{ -public: - /// The native handle type of the verification context. - typedef X509_STORE_CTX* native_handle_type; - - /// Constructor. - explicit verify_context(native_handle_type handle) - : handle_(handle) - { - } - - /// Get the underlying implementation in the native type. - /** - * This function may be used to obtain the underlying implementation of the - * context. This is intended to allow access to context functionality that is - * not otherwise provided. - */ - native_handle_type native_handle() - { - return handle_; - } - -private: - // The underlying native implementation. - native_handle_type handle_; -}; - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_VERIFY_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/verify_mode.hpp b/Sources/Vendor/asio/include/asio/ssl/verify_mode.hpp deleted file mode 100644 index 8c4b394..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/verify_mode.hpp +++ /dev/null @@ -1,63 +0,0 @@ -// -// ssl/verify_mode.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SSL_VERIFY_MODE_HPP -#define ASIO_SSL_VERIFY_MODE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ssl/detail/openssl_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -/// Bitmask type for peer verification. -/** - * Possible values are: - * - * @li @ref verify_none - * @li @ref verify_peer - * @li @ref verify_fail_if_no_peer_cert - * @li @ref verify_client_once - */ -typedef int verify_mode; - -#if defined(GENERATING_DOCUMENTATION) -/// No verification. -const int verify_none = implementation_defined; - -/// Verify the peer. -const int verify_peer = implementation_defined; - -/// Fail verification if the peer has no certificate. Ignored unless -/// @ref verify_peer is set. -const int verify_fail_if_no_peer_cert = implementation_defined; - -/// Do not request client certificate on renegotiation. Ignored unless -/// @ref verify_peer is set. -const int verify_client_once = implementation_defined; -#else -const int verify_none = SSL_VERIFY_NONE; -const int verify_peer = SSL_VERIFY_PEER; -const int verify_fail_if_no_peer_cert = SSL_VERIFY_FAIL_IF_NO_PEER_CERT; -const int verify_client_once = SSL_VERIFY_CLIENT_ONCE; -#endif - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_VERIFY_MODE_HPP diff --git a/Sources/Vendor/asio/include/asio/steady_timer.hpp b/Sources/Vendor/asio/include/asio/steady_timer.hpp deleted file mode 100644 index 3ede208..0000000 --- a/Sources/Vendor/asio/include/asio/steady_timer.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// -// steady_timer.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_STEADY_TIMER_HPP -#define ASIO_STEADY_TIMER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_waitable_timer.hpp" -#include "asio/detail/chrono.hpp" - -namespace asio { - -/// Typedef for a timer based on the steady clock. -/** - * This typedef uses the C++11 @c <chrono> standard library facility, if - * available. Otherwise, it may use the Boost.Chrono library. To explicitly - * utilise Boost.Chrono, use the basic_waitable_timer template directly: - * @code - * typedef basic_waitable_timer timer; - * @endcode - */ -typedef basic_waitable_timer steady_timer; - -} // namespace asio - -#endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_STEADY_TIMER_HPP diff --git a/Sources/Vendor/asio/include/asio/strand.hpp b/Sources/Vendor/asio/include/asio/strand.hpp deleted file mode 100644 index ea78ef0..0000000 --- a/Sources/Vendor/asio/include/asio/strand.hpp +++ /dev/null @@ -1,286 +0,0 @@ -// -// strand.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_STRAND_HPP -#define ASIO_STRAND_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/strand_executor_service.hpp" -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides serialised function invocation for any executor type. -template -class strand -{ -public: - /// The type of the underlying executor. - typedef Executor inner_executor_type; - - /// Default constructor. - /** - * This constructor is only valid if the underlying executor type is default - * constructible. - */ - strand() - : executor_(), - impl_(use_service( - executor_.context()).create_implementation()) - { - } - - /// Construct a strand for the specified executor. - explicit strand(const Executor& e) - : executor_(e), - impl_(use_service( - executor_.context()).create_implementation()) - { - } - - /// Copy constructor. - strand(const strand& other) ASIO_NOEXCEPT - : executor_(other.executor_), - impl_(other.impl_) - { - } - - /// Converting constructor. - /** - * This constructor is only valid if the @c OtherExecutor type is convertible - * to @c Executor. - */ - template - strand( - const strand& other) ASIO_NOEXCEPT - : executor_(other.executor_), - impl_(other.impl_) - { - } - - /// Assignment operator. - strand& operator=(const strand& other) ASIO_NOEXCEPT - { - executor_ = other.executor_; - impl_ = other.impl_; - return *this; - } - - /// Converting assignment operator. - /** - * This assignment operator is only valid if the @c OtherExecutor type is - * convertible to @c Executor. - */ - template - strand& operator=( - const strand& other) ASIO_NOEXCEPT - { - executor_ = other.executor_; - impl_ = other.impl_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move constructor. - strand(strand&& other) ASIO_NOEXCEPT - : executor_(ASIO_MOVE_CAST(Executor)(other.executor_)), - impl_(ASIO_MOVE_CAST(implementation_type)(other.impl_)) - { - } - - /// Converting move constructor. - /** - * This constructor is only valid if the @c OtherExecutor type is convertible - * to @c Executor. - */ - template - strand(strand&& other) ASIO_NOEXCEPT - : executor_(ASIO_MOVE_CAST(OtherExecutor)(other)), - impl_(ASIO_MOVE_CAST(implementation_type)(other.impl_)) - { - } - - /// Move assignment operator. - strand& operator=(strand&& other) ASIO_NOEXCEPT - { - executor_ = ASIO_MOVE_CAST(Executor)(other); - impl_ = ASIO_MOVE_CAST(implementation_type)(other.impl_); - return *this; - } - - /// Converting move assignment operator. - /** - * This assignment operator is only valid if the @c OtherExecutor type is - * convertible to @c Executor. - */ - template - strand& operator=( - const strand&& other) ASIO_NOEXCEPT - { - executor_ = ASIO_MOVE_CAST(OtherExecutor)(other); - impl_ = ASIO_MOVE_CAST(implementation_type)(other.impl_); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destructor. - ~strand() - { - } - - /// Obtain the underlying executor. - inner_executor_type get_inner_executor() const ASIO_NOEXCEPT - { - return executor_; - } - - /// Obtain the underlying execution context. - execution_context& context() const ASIO_NOEXCEPT - { - return executor_.context(); - } - - /// Inform the strand that it has some outstanding work to do. - /** - * The strand delegates this call to its underlying executor. - */ - void on_work_started() const ASIO_NOEXCEPT - { - executor_.on_work_started(); - } - - /// Inform the strand that some work is no longer outstanding. - /** - * The strand delegates this call to its underlying executor. - */ - void on_work_finished() const ASIO_NOEXCEPT - { - executor_.on_work_finished(); - } - - /// Request the strand to invoke the given function object. - /** - * This function is used to ask the strand to execute the given function - * object on its underlying executor. The function object will be executed - * inside this function if the strand is not otherwise busy and if the - * underlying executor's @c dispatch() function is also able to execute the - * function before returning. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void dispatch(ASIO_MOVE_ARG(Function) f, const Allocator& a) const - { - detail::strand_executor_service::dispatch(impl_, - executor_, ASIO_MOVE_CAST(Function)(f), a); - } - - /// Request the strand to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object will never be executed inside this function. - * Instead, it will be scheduled by the underlying executor's defer function. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void post(ASIO_MOVE_ARG(Function) f, const Allocator& a) const - { - detail::strand_executor_service::post(impl_, - executor_, ASIO_MOVE_CAST(Function)(f), a); - } - - /// Request the strand to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object will never be executed inside this function. - * Instead, it will be scheduled by the underlying executor's defer function. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void defer(ASIO_MOVE_ARG(Function) f, const Allocator& a) const - { - detail::strand_executor_service::defer(impl_, - executor_, ASIO_MOVE_CAST(Function)(f), a); - } - - /// Determine whether the strand is running in the current thread. - /** - * @return @c true if the current thread is executing a function that was - * submitted to the strand using post(), dispatch() or defer(). Otherwise - * returns @c false. - */ - bool running_in_this_thread() const ASIO_NOEXCEPT - { - return detail::strand_executor_service::running_in_this_thread(impl_); - } - - /// Compare two strands for equality. - /** - * Two strands are equal if they refer to the same ordered, non-concurrent - * state. - */ - friend bool operator==(const strand& a, const strand& b) ASIO_NOEXCEPT - { - return a.impl_ == b.impl_; - } - - /// Compare two strands for inequality. - /** - * Two strands are equal if they refer to the same ordered, non-concurrent - * state. - */ - friend bool operator!=(const strand& a, const strand& b) ASIO_NOEXCEPT - { - return a.impl_ != b.impl_; - } - -private: - Executor executor_; - typedef detail::strand_executor_service::implementation_type - implementation_type; - implementation_type impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -// If both io_context.hpp and strand.hpp have been included, automatically -// include the header file needed for the io_context::strand class. -#if !defined(ASIO_NO_EXTENSIONS) -# if defined(ASIO_IO_CONTEXT_HPP) -# include "asio/io_context_strand.hpp" -# endif // defined(ASIO_IO_CONTEXT_HPP) -#endif // !defined(ASIO_NO_EXTENSIONS) - -#endif // ASIO_STRAND_HPP diff --git a/Sources/Vendor/asio/include/asio/stream_socket_service.hpp b/Sources/Vendor/asio/include/asio/stream_socket_service.hpp deleted file mode 100644 index 91b0a71..0000000 --- a/Sources/Vendor/asio/include/asio/stream_socket_service.hpp +++ /dev/null @@ -1,412 +0,0 @@ -// -// stream_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_STREAM_SOCKET_SERVICE_HPP -#define ASIO_STREAM_SOCKET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/winrt_ssocket_service.hpp" -#elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_socket_service.hpp" -#else -# include "asio/detail/reactive_socket_service.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a stream socket. -template -class stream_socket_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - -private: - // The type of the platform-specific implementation. -#if defined(ASIO_WINDOWS_RUNTIME) - typedef detail::winrt_ssocket_service service_impl_type; -#elif defined(ASIO_HAS_IOCP) - typedef detail::win_iocp_socket_service service_impl_type; -#else - typedef detail::reactive_socket_service service_impl_type; -#endif - -public: - /// The type of a stream socket implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// The native socket type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new stream socket service for the specified io_context. - explicit stream_socket_service(asio::io_context& io_context) - : asio::detail::service_base< - stream_socket_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new stream socket implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new stream socket implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another stream socket implementation. - void move_assign(implementation_type& impl, - stream_socket_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } - - // All socket services have access to each other's implementations. - template friend class stream_socket_service; - - /// Move-construct a new stream socket implementation from another protocol - /// type. - template - void converting_move_construct(implementation_type& impl, - stream_socket_service& other_service, - typename stream_socket_service< - Protocol1>::implementation_type& other_impl, - typename enable_if::value>::type* = 0) - { - service_impl_.template converting_move_construct( - impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a stream socket implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Open a stream socket. - ASIO_SYNC_OP_VOID open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - if (protocol.type() == ASIO_OS_DEF(SOCK_STREAM)) - service_impl_.open(impl, protocol, ec); - else - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native socket to a stream socket. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_socket, - asio::error_code& ec) - { - service_impl_.assign(impl, protocol, native_socket, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a stream socket implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Release ownership of the underlying socket. - native_handle_type release(implementation_type& impl, - asio::error_code& ec) - { - return service_impl_.release(impl, ec); - } - - /// Get the native socket implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the socket. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.at_mark(impl, ec); - } - - /// Determine the number of bytes available for reading. - std::size_t available(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.available(impl, ec); - } - - /// Bind the stream socket to the specified local endpoint. - ASIO_SYNC_OP_VOID bind(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - service_impl_.bind(impl, endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Connect the stream socket to the specified endpoint. - ASIO_SYNC_OP_VOID connect(implementation_type& impl, - const endpoint_type& peer_endpoint, asio::error_code& ec) - { - service_impl_.connect(impl, peer_endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous connect. - template - ASIO_INITFN_RESULT_TYPE(ConnectHandler, - void (asio::error_code)) - async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(ConnectHandler) handler) - { - async_completion init(handler); - - service_impl_.async_connect(impl, peer_endpoint, init.completion_handler); - - return init.result.get(); - } - - /// Set a socket option. - template - ASIO_SYNC_OP_VOID set_option(implementation_type& impl, - const SettableSocketOption& option, asio::error_code& ec) - { - service_impl_.set_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get a socket option. - template - ASIO_SYNC_OP_VOID get_option(const implementation_type& impl, - GettableSocketOption& option, asio::error_code& ec) const - { - service_impl_.get_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the socket. - template - ASIO_SYNC_OP_VOID io_control(implementation_type& impl, - IoControlCommand& command, asio::error_code& ec) - { - service_impl_.io_control(impl, command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the socket. - bool non_blocking(const implementation_type& impl) const - { - return service_impl_.non_blocking(impl); - } - - /// Sets the non-blocking mode of the socket. - ASIO_SYNC_OP_VOID non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const implementation_type& impl) const - { - return service_impl_.native_non_blocking(impl); - } - - /// Sets the non-blocking mode of the native socket implementation. - ASIO_SYNC_OP_VOID native_non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.native_non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.local_endpoint(impl, ec); - } - - /// Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.remote_endpoint(impl, ec); - } - - /// Disable sends or receives on the socket. - ASIO_SYNC_OP_VOID shutdown(implementation_type& impl, - socket_base::shutdown_type what, asio::error_code& ec) - { - service_impl_.shutdown(impl, what, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the socket to become ready to read, ready to write, or to have - /// pending error conditions. - ASIO_SYNC_OP_VOID wait(implementation_type& impl, - socket_base::wait_type w, asio::error_code& ec) - { - service_impl_.wait(impl, w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the socket to become ready to read, ready to - /// write, or to have pending error conditions. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, socket_base::wait_type w, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, w, init.completion_handler); - - return init.result.get(); - } - - /// Send the given data to the peer. - template - std::size_t send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.send(impl, buffers, flags, ec); - } - - /// Start an asynchronous send. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - async_completion init(handler); - - service_impl_.async_send(impl, buffers, flags, init.completion_handler); - - return init.result.get(); - } - - /// Receive some data from the peer. - template - std::size_t receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.receive(impl, buffers, flags, ec); - } - - /// Start an asynchronous receive. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - async_completion init(handler); - - service_impl_.async_receive(impl, buffers, flags, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_STREAM_SOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/streambuf.hpp b/Sources/Vendor/asio/include/asio/streambuf.hpp deleted file mode 100644 index cb3f35f..0000000 --- a/Sources/Vendor/asio/include/asio/streambuf.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// streambuf.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_STREAMBUF_HPP -#define ASIO_STREAMBUF_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_NO_IOSTREAM) - -#include "asio/basic_streambuf.hpp" - -namespace asio { - -/// Typedef for the typical usage of basic_streambuf. -typedef basic_streambuf<> streambuf; - -} // namespace asio - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_STREAMBUF_HPP diff --git a/Sources/Vendor/asio/include/asio/system_context.hpp b/Sources/Vendor/asio/include/asio/system_context.hpp deleted file mode 100644 index ccd1113..0000000 --- a/Sources/Vendor/asio/include/asio/system_context.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// system_context.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SYSTEM_CONTEXT_HPP -#define ASIO_SYSTEM_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/scheduler.hpp" -#include "asio/detail/thread_group.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -class system_executor; - -/// The executor context for the system executor. -class system_context : public execution_context -{ -public: - /// The executor type associated with the context. - typedef system_executor executor_type; - - /// Destructor shuts down all threads in the system thread pool. - ASIO_DECL ~system_context(); - - /// Obtain an executor for the context. - executor_type get_executor() ASIO_NOEXCEPT; - - /// Signal all threads in the system thread pool to stop. - ASIO_DECL void stop(); - - /// Determine whether the system thread pool has been stopped. - ASIO_DECL bool stopped() const ASIO_NOEXCEPT; - - /// Join all threads in the system thread pool. - ASIO_DECL void join(); - -#if defined(GENERATING_DOCUMENTATION) -private: -#endif // defined(GENERATING_DOCUMENTATION) - // Constructor creates all threads in the system thread pool. - ASIO_DECL system_context(); - -private: - friend class system_executor; - - struct thread_function; - - // The underlying scheduler. - detail::scheduler& scheduler_; - - // The threads in the system thread pool. - detail::thread_group threads_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/system_context.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/system_context.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_SYSTEM_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/system_error.hpp b/Sources/Vendor/asio/include/asio/system_error.hpp deleted file mode 100644 index 6390894..0000000 --- a/Sources/Vendor/asio/include/asio/system_error.hpp +++ /dev/null @@ -1,131 +0,0 @@ -// -// system_error.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SYSTEM_ERROR_HPP -#define ASIO_SYSTEM_ERROR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_STD_SYSTEM_ERROR) -# include -#else // defined(ASIO_HAS_STD_SYSTEM_ERROR) -# include -# include -# include -# include "asio/error_code.hpp" -# include "asio/detail/scoped_ptr.hpp" -#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if defined(ASIO_HAS_STD_SYSTEM_ERROR) - -typedef std::system_error system_error; - -#else // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -/// The system_error class is used to represent system conditions that -/// prevent the library from operating correctly. -class system_error - : public std::exception -{ -public: - /// Construct with an error code. - system_error(const error_code& ec) - : code_(ec), - context_() - { - } - - /// Construct with an error code and context. - system_error(const error_code& ec, const std::string& context) - : code_(ec), - context_(context) - { - } - - /// Copy constructor. - system_error(const system_error& other) - : std::exception(other), - code_(other.code_), - context_(other.context_), - what_() - { - } - - /// Destructor. - virtual ~system_error() throw () - { - } - - /// Assignment operator. - system_error& operator=(const system_error& e) - { - context_ = e.context_; - code_ = e.code_; - what_.reset(); - return *this; - } - - /// Get a string representation of the exception. - virtual const char* what() const throw () - { -#if !defined(ASIO_NO_EXCEPTIONS) - try -#endif // !defined(ASIO_NO_EXCEPTIONS) - { - if (!what_.get()) - { - std::string tmp(context_); - if (tmp.length()) - tmp += ": "; - tmp += code_.message(); - what_.reset(new std::string(tmp)); - } - return what_->c_str(); - } -#if !defined(ASIO_NO_EXCEPTIONS) - catch (std::exception&) - { - return "system_error"; - } -#endif // !defined(ASIO_NO_EXCEPTIONS) - } - - /// Get the error code associated with the exception. - error_code code() const - { - return code_; - } - -private: - // The code associated with the error. - error_code code_; - - // The context associated with the error. - std::string context_; - - // The string representation of the error. - mutable asio::detail::scoped_ptr what_; -}; - -#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SYSTEM_ERROR_HPP diff --git a/Sources/Vendor/asio/include/asio/system_executor.hpp b/Sources/Vendor/asio/include/asio/system_executor.hpp deleted file mode 100644 index b588a21..0000000 --- a/Sources/Vendor/asio/include/asio/system_executor.hpp +++ /dev/null @@ -1,129 +0,0 @@ -// -// system_executor.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SYSTEM_EXECUTOR_HPP -#define ASIO_SYSTEM_EXECUTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -class system_context; - -/// An executor that uses arbitrary threads. -/** - * The system executor represents an execution context where functions are - * permitted to run on arbitrary threads. The post() and defer() functions - * schedule the function to run on an unspecified system thread pool, and - * dispatch() invokes the function immediately. - */ -class system_executor -{ -public: - /// Obtain the underlying execution context. - system_context& context() const ASIO_NOEXCEPT; - - /// Inform the executor that it has some outstanding work to do. - /** - * For the system executor, this is a no-op. - */ - void on_work_started() const ASIO_NOEXCEPT - { - } - - /// Inform the executor that some work is no longer outstanding. - /** - * For the system executor, this is a no-op. - */ - void on_work_finished() const ASIO_NOEXCEPT - { - } - - /// Request the system executor to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object will always be executed inside this function. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void dispatch(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the system executor to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object will never be executed inside this function. - * Instead, it will be scheduled to run on an unspecified system thread pool. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void post(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the system executor to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object will never be executed inside this function. - * Instead, it will be scheduled to run on an unspecified system thread pool. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void defer(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Compare two executors for equality. - /** - * System executors always compare equal. - */ - friend bool operator==(const system_executor&, - const system_executor&) ASIO_NOEXCEPT - { - return true; - } - - /// Compare two executors for inequality. - /** - * System executors always compare equal. - */ - friend bool operator!=(const system_executor&, - const system_executor&) ASIO_NOEXCEPT - { - return false; - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/system_executor.hpp" - -#endif // ASIO_SYSTEM_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/system_timer.hpp b/Sources/Vendor/asio/include/asio/system_timer.hpp deleted file mode 100644 index e75e7d4..0000000 --- a/Sources/Vendor/asio/include/asio/system_timer.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// -// system_timer.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_SYSTEM_TIMER_HPP -#define ASIO_SYSTEM_TIMER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_waitable_timer.hpp" -#include "asio/detail/chrono.hpp" - -namespace asio { - -/// Typedef for a timer based on the system clock. -/** - * This typedef uses the C++11 @c <chrono> standard library facility, if - * available. Otherwise, it may use the Boost.Chrono library. To explicitly - * utilise Boost.Chrono, use the basic_waitable_timer template directly: - * @code - * typedef basic_waitable_timer timer; - * @endcode - */ -typedef basic_waitable_timer system_timer; - -} // namespace asio - -#endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_SYSTEM_TIMER_HPP diff --git a/Sources/Vendor/asio/include/asio/thread.hpp b/Sources/Vendor/asio/include/asio/thread.hpp deleted file mode 100644 index eeeef7b..0000000 --- a/Sources/Vendor/asio/include/asio/thread.hpp +++ /dev/null @@ -1,92 +0,0 @@ -// -// thread.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_THREAD_HPP -#define ASIO_THREAD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/thread.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// A simple abstraction for starting threads. -/** - * The asio::thread class implements the smallest possible subset of the - * functionality of boost::thread. It is intended to be used only for starting - * a thread and waiting for it to exit. If more extensive threading - * capabilities are required, you are strongly advised to use something else. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Example - * A typical use of asio::thread would be to launch a thread to run an - * io_context's event processing loop: - * - * @par - * @code asio::io_context io_context; - * // ... - * asio::thread t(boost::bind(&asio::io_context::run, &io_context)); - * // ... - * t.join(); @endcode - */ -class thread - : private noncopyable -{ -public: - /// Start a new thread that executes the supplied function. - /** - * This constructor creates a new thread that will execute the given function - * or function object. - * - * @param f The function or function object to be run in the thread. The - * function signature must be: @code void f(); @endcode - */ - template - explicit thread(Function f) - : impl_(f) - { - } - - /// Destructor. - ~thread() - { - } - - /// Wait for the thread to exit. - /** - * This function will block until the thread has exited. - * - * If this function is not called before the thread object is destroyed, the - * thread itself will continue to run until completion. You will, however, - * no longer have the ability to wait for it to exit. - */ - void join() - { - impl_.join(); - } - -private: - detail::thread impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/thread_pool.hpp b/Sources/Vendor/asio/include/asio/thread_pool.hpp deleted file mode 100644 index 1a86bcd..0000000 --- a/Sources/Vendor/asio/include/asio/thread_pool.hpp +++ /dev/null @@ -1,232 +0,0 @@ -// -// thread_pool.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_THREAD_POOL_HPP -#define ASIO_THREAD_POOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scheduler.hpp" -#include "asio/detail/thread_group.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// A simple fixed-size thread pool. -/** - * The thread pool class is an execution context where functions are permitted - * to run on one of a fixed number of threads. - * - * @par Submitting tasks to the pool - * - * To submit functions to the thread_pool, use the @ref asio::dispatch, - * @ref asio::post or @ref asio::defer free functions. - * - * For example: - * - * @code void my_task() - * { - * ... - * } - * - * ... - * - * // Launch the pool with four threads. - * asio::thread_pool pool(4); - * - * // Submit a function to the pool. - * asio::post(pool, my_task); - * - * // Submit a lambda object to the pool. - * asio::post(pool, - * []() - * { - * ... - * }); - * - * // Wait for all tasks in the pool to complete. - * pool.join(); @endcode - */ -class thread_pool - : public execution_context -{ -public: - class executor_type; - - /// Constructs a pool with an automatically determined number of threads. - ASIO_DECL thread_pool(); - - /// Constructs a pool with a specified number of threads. - ASIO_DECL thread_pool(std::size_t num_threads); - - /// Destructor. - /** - * Automatically stops and joins the pool, if not explicitly done beforehand. - */ - ASIO_DECL ~thread_pool(); - - /// Obtains the executor associated with the pool. - executor_type get_executor() ASIO_NOEXCEPT; - - /// Stops the threads. - /** - * This function stops the threads as soon as possible. As a result of calling - * @c stop(), pending function objects may be never be invoked. - */ - ASIO_DECL void stop(); - - /// Joins the threads. - /** - * This function blocks until the threads in the pool have completed. If @c - * stop() is not called prior to @c join(), the @c join() call will wait - * until the pool has no more outstanding work. - */ - ASIO_DECL void join(); - -private: - friend class executor_type; - struct thread_function; - - // The underlying scheduler. - detail::scheduler& scheduler_; - - // The threads in the pool. - detail::thread_group threads_; -}; - -/// Executor used to submit functions to a thread pool. -class thread_pool::executor_type -{ -public: - /// Obtain the underlying execution context. - thread_pool& context() const ASIO_NOEXCEPT; - - /// Inform the thread pool that it has some outstanding work to do. - /** - * This function is used to inform the thread pool that some work has begun. - * This ensures that the thread pool's join() function will not return while - * the work is underway. - */ - void on_work_started() const ASIO_NOEXCEPT; - - /// Inform the thread pool that some work is no longer outstanding. - /** - * This function is used to inform the thread pool that some work has - * finished. Once the count of unfinished work reaches zero, the thread - * pool's join() function is permitted to exit. - */ - void on_work_finished() const ASIO_NOEXCEPT; - - /// Request the thread pool to invoke the given function object. - /** - * This function is used to ask the thread pool to execute the given function - * object. If the current thread belongs to the pool, @c dispatch() executes - * the function before returning. Otherwise, the function will be scheduled - * to run on the thread pool. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void dispatch(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the thread pool to invoke the given function object. - /** - * This function is used to ask the thread pool to execute the given function - * object. The function object will never be executed inside @c post(). - * Instead, it will be scheduled to run on the thread pool. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void post(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the thread pool to invoke the given function object. - /** - * This function is used to ask the thread pool to execute the given function - * object. The function object will never be executed inside @c defer(). - * Instead, it will be scheduled to run on the thread pool. - * - * If the current thread belongs to the thread pool, @c defer() will delay - * scheduling the function object until the current thread returns control to - * the pool. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void defer(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Determine whether the thread pool is running in the current thread. - /** - * @return @c true if the current thread belongs to the pool. Otherwise - * returns @c false. - */ - bool running_in_this_thread() const ASIO_NOEXCEPT; - - /// Compare two executors for equality. - /** - * Two executors are equal if they refer to the same underlying thread pool. - */ - friend bool operator==(const executor_type& a, - const executor_type& b) ASIO_NOEXCEPT - { - return &a.pool_ == &b.pool_; - } - - /// Compare two executors for inequality. - /** - * Two executors are equal if they refer to the same underlying thread pool. - */ - friend bool operator!=(const executor_type& a, - const executor_type& b) ASIO_NOEXCEPT - { - return &a.pool_ != &b.pool_; - } - -private: - friend class thread_pool; - - // Constructor. - explicit executor_type(thread_pool& p) : pool_(p) {} - - // The underlying thread pool. - thread_pool& pool_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/thread_pool.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/thread_pool.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_THREAD_POOL_HPP diff --git a/Sources/Vendor/asio/include/asio/time_traits.hpp b/Sources/Vendor/asio/include/asio/time_traits.hpp deleted file mode 100644 index 72f4aab..0000000 --- a/Sources/Vendor/asio/include/asio/time_traits.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// -// time_traits.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_TIME_TRAITS_HPP -#define ASIO_TIME_TRAITS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/socket_types.hpp" // Must come before posix_time. - -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - || defined(GENERATING_DOCUMENTATION) - -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Time traits suitable for use with the deadline timer. -template -struct time_traits; - -/// Time traits specialised for posix_time. -template <> -struct time_traits -{ - /// The time type. - typedef boost::posix_time::ptime time_type; - - /// The duration type. - typedef boost::posix_time::time_duration duration_type; - - /// Get the current time. - static time_type now() - { -#if defined(BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK) - return boost::posix_time::microsec_clock::universal_time(); -#else // defined(BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK) - return boost::posix_time::second_clock::universal_time(); -#endif // defined(BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK) - } - - /// Add a duration to a time. - static time_type add(const time_type& t, const duration_type& d) - { - return t + d; - } - - /// Subtract one time from another. - static duration_type subtract(const time_type& t1, const time_type& t2) - { - return t1 - t2; - } - - /// Test whether one time is less than another. - static bool less_than(const time_type& t1, const time_type& t2) - { - return t1 < t2; - } - - /// Convert to POSIX duration type. - static boost::posix_time::time_duration to_posix_duration( - const duration_type& d) - { - return d; - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_TIME_TRAITS_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/buffer.hpp b/Sources/Vendor/asio/include/asio/ts/buffer.hpp deleted file mode 100644 index faf08a4..0000000 --- a/Sources/Vendor/asio/include/asio/ts/buffer.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// -// ts/buffer.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_TS_BUFFER_HPP -#define ASIO_TS_BUFFER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/buffer.hpp" -#include "asio/completion_condition.hpp" -#include "asio/read.hpp" -#include "asio/write.hpp" -#include "asio/read_until.hpp" - -#endif // ASIO_TS_BUFFER_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/executor.hpp b/Sources/Vendor/asio/include/asio/ts/executor.hpp deleted file mode 100644 index 8669cb6..0000000 --- a/Sources/Vendor/asio/include/asio/ts/executor.hpp +++ /dev/null @@ -1,35 +0,0 @@ -// -// ts/executor.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_TS_EXECUTOR_HPP -#define ASIO_TS_EXECUTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/handler_type.hpp" -#include "asio/async_result.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/execution_context.hpp" -#include "asio/is_executor.hpp" -#include "asio/associated_executor.hpp" -#include "asio/bind_executor.hpp" -#include "asio/executor_work_guard.hpp" -#include "asio/system_executor.hpp" -#include "asio/executor.hpp" -#include "asio/dispatch.hpp" -#include "asio/post.hpp" -#include "asio/defer.hpp" -#include "asio/strand.hpp" -#include "asio/packaged_task.hpp" -#include "asio/use_future.hpp" - -#endif // ASIO_TS_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/internet.hpp b/Sources/Vendor/asio/include/asio/ts/internet.hpp deleted file mode 100644 index 6282e90..0000000 --- a/Sources/Vendor/asio/include/asio/ts/internet.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// -// ts/internet.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_TS_INTERNET_HPP -#define ASIO_TS_INTERNET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/ip/address.hpp" -#include "asio/ip/address_v4.hpp" -#include "asio/ip/address_v4_iterator.hpp" -#include "asio/ip/address_v4_range.hpp" -#include "asio/ip/address_v6.hpp" -#include "asio/ip/address_v6_iterator.hpp" -#include "asio/ip/address_v6_range.hpp" -#include "asio/ip/bad_address_cast.hpp" -#include "asio/ip/basic_endpoint.hpp" -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/basic_resolver_entry.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver.hpp" -#include "asio/ip/host_name.hpp" -#include "asio/ip/network_v4.hpp" -#include "asio/ip/network_v6.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/ip/udp.hpp" -#include "asio/ip/v6_only.hpp" -#include "asio/ip/unicast.hpp" -#include "asio/ip/multicast.hpp" - -#endif // ASIO_TS_INTERNET_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/io_context.hpp b/Sources/Vendor/asio/include/asio/ts/io_context.hpp deleted file mode 100644 index b967cd6..0000000 --- a/Sources/Vendor/asio/include/asio/ts/io_context.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// -// ts/io_context.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_TS_IO_CONTEXT_HPP -#define ASIO_TS_IO_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/io_context.hpp" - -#endif // ASIO_TS_IO_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/net.hpp b/Sources/Vendor/asio/include/asio/ts/net.hpp deleted file mode 100644 index f96075d..0000000 --- a/Sources/Vendor/asio/include/asio/ts/net.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// -// ts/net.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_TS_NET_HPP -#define ASIO_TS_NET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/ts/netfwd.hpp" -#include "asio/ts/executor.hpp" -#include "asio/ts/io_context.hpp" -#include "asio/ts/timer.hpp" -#include "asio/ts/buffer.hpp" -#include "asio/ts/socket.hpp" -#include "asio/ts/internet.hpp" - -#endif // ASIO_TS_NET_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/netfwd.hpp b/Sources/Vendor/asio/include/asio/ts/netfwd.hpp deleted file mode 100644 index 657a21d..0000000 --- a/Sources/Vendor/asio/include/asio/ts/netfwd.hpp +++ /dev/null @@ -1,197 +0,0 @@ -// -// ts/netfwd.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_TS_NETFWD_HPP -#define ASIO_TS_NETFWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_CHRONO) -# include "asio/detail/chrono.hpp" -#endif // defined(ASIO_HAS_CHRONO) - -#if defined(ASIO_HAS_BOOST_DATE_TIME) -# include "asio/detail/date_time_fwd.hpp" -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - -#if !defined(GENERATING_DOCUMENTATION) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -class execution_context; - -template -class executor_binder; - -template -class executor_work_guard; - -class system_executor; - -class executor; - -template -class strand; - -class io_context; - -template -struct wait_traits; - -#if defined(ASIO_HAS_BOOST_DATE_TIME) - -template -struct time_traits; - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -template -class waitable_timer_service; - -#if defined(ASIO_HAS_BOOST_DATE_TIME) - -template -class deadline_timer_service; - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#if !defined(ASIO_BASIC_WAITABLE_TIMER_FWD_DECL) -#define ASIO_BASIC_WAITABLE_TIMER_FWD_DECL - -template - ASIO_SVC_TPARAM_DEF2(= waitable_timer_service)> -class basic_waitable_timer; - -#endif // !defined(ASIO_BASIC_WAITABLE_TIMER_FWD_DECL) - -#if defined(ASIO_HAS_CHRONO) - -typedef basic_waitable_timer system_timer; - -typedef basic_waitable_timer steady_timer; - -typedef basic_waitable_timer - high_resolution_timer; - -#endif // defined(ASIO_HAS_CHRONO) - -template -class basic_socket; - -template -class basic_datagram_socket; - -template -class basic_stream_socket; - -template -class basic_socket_acceptor; - -#if !defined(ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL) -#define ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL - -// Forward declaration with defaulted arguments. -template ), -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - || defined(GENERATING_DOCUMENTATION) - typename Clock = boost::posix_time::ptime, - typename WaitTraits = time_traits - ASIO_SVC_TPARAM1_DEF2(= deadline_timer_service)> -#else - typename Clock = chrono::steady_clock, - typename WaitTraits = wait_traits - ASIO_SVC_TPARAM1_DEF1(= steady_timer::service_type)> -#endif -class basic_socket_streambuf; - -#endif // !defined(ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL) - -#if !defined(ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL) -#define ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL - -// Forward declaration with defaulted arguments. -template ), -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - || defined(GENERATING_DOCUMENTATION) - typename Clock = boost::posix_time::ptime, - typename WaitTraits = time_traits - ASIO_SVC_TPARAM1_DEF2(= deadline_timer_service)> -#else - typename Clock = chrono::steady_clock, - typename WaitTraits = wait_traits - ASIO_SVC_TPARAM1_DEF1(= steady_timer::service_type)> -#endif -class basic_socket_iostream; - -#endif // !defined(ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL) - -namespace ip { - -class address; - -class address_v4; - -class address_v6; - -template -class basic_address_iterator; - -typedef basic_address_iterator address_v4_iterator; - -typedef basic_address_iterator address_v6_iterator; - -template -class basic_address_range; - -typedef basic_address_range address_v4_range; - -typedef basic_address_range address_v6_range; - -class network_v4; - -class network_v6; - -template -class basic_endpoint; - -template -class basic_resolver_entry; - -template -class basic_resolver_results; - -template -class basic_resolver; - -class tcp; - -class udp; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_TS_NETFWD_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/socket.hpp b/Sources/Vendor/asio/include/asio/ts/socket.hpp deleted file mode 100644 index a542734..0000000 --- a/Sources/Vendor/asio/include/asio/ts/socket.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// ts/socket.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_TS_SOCKET_HPP -#define ASIO_TS_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/socket_base.hpp" -#include "asio/basic_socket.hpp" -#include "asio/basic_datagram_socket.hpp" -#include "asio/basic_stream_socket.hpp" -#include "asio/basic_socket_acceptor.hpp" -#include "asio/basic_socket_streambuf.hpp" -#include "asio/basic_socket_iostream.hpp" -#include "asio/connect.hpp" - -#endif // ASIO_TS_SOCKET_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/timer.hpp b/Sources/Vendor/asio/include/asio/ts/timer.hpp deleted file mode 100644 index 872be8b..0000000 --- a/Sources/Vendor/asio/include/asio/ts/timer.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// -// ts/timer.hpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_TS_TIMER_HPP -#define ASIO_TS_TIMER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/chrono.hpp" - -#include "asio/wait_traits.hpp" -#include "asio/basic_waitable_timer.hpp" -#include "asio/system_timer.hpp" -#include "asio/steady_timer.hpp" -#include "asio/high_resolution_timer.hpp" - -#endif // ASIO_TS_TIMER_HPP diff --git a/Sources/Vendor/asio/include/asio/unyield.hpp b/Sources/Vendor/asio/include/asio/unyield.hpp deleted file mode 100644 index de3ed02..0000000 --- a/Sources/Vendor/asio/include/asio/unyield.hpp +++ /dev/null @@ -1,21 +0,0 @@ -// -// unyield.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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/Sources/Vendor/asio/include/asio/use_future.hpp b/Sources/Vendor/asio/include/asio/use_future.hpp deleted file mode 100644 index 3ac95a5..0000000 --- a/Sources/Vendor/asio/include/asio/use_future.hpp +++ /dev/null @@ -1,160 +0,0 @@ -// -// use_future.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_USE_FUTURE_HPP -#define ASIO_USE_FUTURE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/future.hpp" - -#if defined(ASIO_HAS_STD_FUTURE_CLASS) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class packaged_token; - -template -class packaged_handler; - -} // namespace detail - -/// Class used to specify that an asynchronous operation should return a future. -/** - * The use_future_t class is used to indicate that an asynchronous operation - * should return a std::future object. A use_future_t object may be passed as a - * handler to an asynchronous operation, typically using the special value @c - * asio::use_future. For example: - * - * @code std::future my_future - * = my_socket.async_read_some(my_buffer, asio::use_future); @endcode - * - * 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. - */ -template > -class use_future_t -{ -public: - /// The allocator type. The allocator is used when constructing the - /// @c std::promise object for a given asynchronous operation. - typedef Allocator allocator_type; - - /// Construct using default-constructed allocator. - ASIO_CONSTEXPR use_future_t() - { - } - - /// Construct using specified allocator. - explicit use_future_t(const Allocator& allocator) - : allocator_(allocator) - { - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use rebind().) Specify an alternate allocator. - template - use_future_t operator[](const OtherAllocator& allocator) const - { - return use_future_t(allocator); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Specify an alternate allocator. - template - use_future_t rebind(const OtherAllocator& allocator) const - { - return use_future_t(allocator); - } - - /// Obtain allocator. - allocator_type get_allocator() const - { - return allocator_; - } - - /// Wrap a function object in a packaged task. - /** - * The @c package function is used to adapt a function object as a packaged - * task. When this adapter is passed as a completion token to an asynchronous - * operation, the result of the function object is retuned via a std::future. - * - * @par Example - * - * @code std::future fut = - * my_socket.async_read_some(buffer, - * use_future([](asio::error_code ec, std::size_t n) - * { - * return ec ? 0 : n; - * })); - * ... - * std::size_t n = fut.get(); @endcode - */ - template -#if defined(GENERATING_DOCUMENTATION) - unspecified -#else // defined(GENERATING_DOCUMENTATION) - detail::packaged_token::type, Allocator> -#endif // defined(GENERATING_DOCUMENTATION) - operator()(ASIO_MOVE_ARG(Function) f) const; - -private: - // Helper type to ensure that use_future can be constexpr default-constructed - // even when std::allocator can't be. - struct std_allocator_void - { - ASIO_CONSTEXPR std_allocator_void() - { - } - - operator std::allocator() const - { - return std::allocator(); - } - }; - - typename conditional< - is_same, Allocator>::value, - std_allocator_void, Allocator>::type allocator_; -}; - -/// A special value, similar to std::nothrow. -/** - * See the documentation for asio::use_future_t for a usage example. - */ -#if defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION) -constexpr use_future_t<> use_future; -#elif defined(ASIO_MSVC) -__declspec(selectany) use_future_t<> use_future; -#endif - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/use_future.hpp" - -#endif // defined(ASIO_HAS_STD_FUTURE_CLASS) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_USE_FUTURE_HPP diff --git a/Sources/Vendor/asio/include/asio/uses_executor.hpp b/Sources/Vendor/asio/include/asio/uses_executor.hpp deleted file mode 100644 index e985c28..0000000 --- a/Sources/Vendor/asio/include/asio/uses_executor.hpp +++ /dev/null @@ -1,71 +0,0 @@ -// -// uses_executor.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_USES_EXECUTOR_HPP -#define ASIO_USES_EXECUTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// A special type, similar to std::nothrow_t, used to disambiguate -/// constructors that accept executor arguments. -/** - * The executor_arg_t struct is an empty structure type used as a unique type - * to disambiguate constructor and function overloading. Specifically, some - * types have constructors with executor_arg_t as the first argument, - * immediately followed by an argument of a type that satisfies the Executor - * type requirements. - */ -struct executor_arg_t -{ - /// Constructor. - ASIO_CONSTEXPR executor_arg_t() ASIO_NOEXCEPT - { - } -}; - -/// A special value, similar to std::nothrow, used to disambiguate constructors -/// that accept executor arguments. -/** - * See asio::executor_arg_t and asio::uses_executor - * for more information. - */ -#if defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION) -constexpr executor_arg_t executor_arg; -#elif defined(ASIO_MSVC) -__declspec(selectany) executor_arg_t executor_arg; -#endif - -/// The uses_executor trait detects whether a type T has an associated executor -/// that is convertible from type Executor. -/** - * Meets the BinaryTypeTrait requirements. The Asio library provides a - * definition that is derived from false_type. A program may specialize this - * template to derive from true_type for a user-defined type T that can be - * constructed with an executor, where the first argument of a constructor has - * type executor_arg_t and the second argument is convertible from type - * Executor. - */ -template -struct uses_executor : false_type {}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_USES_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/version.hpp b/Sources/Vendor/asio/include/asio/version.hpp deleted file mode 100644 index 82ceb16..0000000 --- a/Sources/Vendor/asio/include/asio/version.hpp +++ /dev/null @@ -1,23 +0,0 @@ -// -// version.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_VERSION_HPP -#define ASIO_VERSION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -// ASIO_VERSION % 100 is the sub-minor version -// ASIO_VERSION / 100 % 1000 is the minor version -// ASIO_VERSION / 100000 is the major version -#define ASIO_VERSION 101202 // 1.12.2 - -#endif // ASIO_VERSION_HPP diff --git a/Sources/Vendor/asio/include/asio/wait_traits.hpp b/Sources/Vendor/asio/include/asio/wait_traits.hpp deleted file mode 100644 index a6016f7..0000000 --- a/Sources/Vendor/asio/include/asio/wait_traits.hpp +++ /dev/null @@ -1,56 +0,0 @@ -// -// wait_traits.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_WAIT_TRAITS_HPP -#define ASIO_WAIT_TRAITS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Wait traits suitable for use with the basic_waitable_timer class template. -template -struct wait_traits -{ - /// Convert a clock duration into a duration used for waiting. - /** - * @returns @c d. - */ - static typename Clock::duration to_wait_duration( - const typename Clock::duration& d) - { - return d; - } - - /// Convert a clock duration into a duration used for waiting. - /** - * @returns @c d. - */ - static typename Clock::duration to_wait_duration( - const typename Clock::time_point& t) - { - typename Clock::time_point now = Clock::now(); - if (now + (Clock::duration::max)() < t) - return (Clock::duration::max)(); - if (now + (Clock::duration::min)() > t) - return (Clock::duration::min)(); - return t - now; - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_WAIT_TRAITS_HPP diff --git a/Sources/Vendor/asio/include/asio/waitable_timer_service.hpp b/Sources/Vendor/asio/include/asio/waitable_timer_service.hpp deleted file mode 100644 index 75e496f..0000000 --- a/Sources/Vendor/asio/include/asio/waitable_timer_service.hpp +++ /dev/null @@ -1,210 +0,0 @@ -// -// waitable_timer_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_WAITABLE_TIMER_SERVICE_HPP -#define ASIO_WAITABLE_TIMER_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/chrono_time_traits.hpp" -#include "asio/detail/deadline_timer_service.hpp" -#include "asio/io_context.hpp" -#include "asio/wait_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a timer. -template > -class waitable_timer_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base< - waitable_timer_service > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The clock type. - typedef Clock clock_type; - - /// The duration type of the clock. - typedef typename clock_type::duration duration; - - /// The time point type of the clock. - typedef typename clock_type::time_point time_point; - - /// The wait traits type. - typedef WaitTraits traits_type; - -private: - // The type of the platform-specific implementation. - typedef detail::deadline_timer_service< - detail::chrono_time_traits > service_impl_type; - -public: - /// The implementation type of the waitable timer. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// Construct a new timer service for the specified io_context. - explicit waitable_timer_service(asio::io_context& io_context) - : asio::detail::service_base< - waitable_timer_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new timer implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a timer implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new timer implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another timer implementation. - void move_assign(implementation_type& impl, - waitable_timer_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Cancel any asynchronous wait operations associated with the timer. - std::size_t cancel(implementation_type& impl, asio::error_code& ec) - { - return service_impl_.cancel(impl, ec); - } - - /// Cancels one asynchronous wait operation associated with the timer. - std::size_t cancel_one(implementation_type& impl, - asio::error_code& ec) - { - return service_impl_.cancel_one(impl, ec); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use expiry().) Get the expiry time for the timer as an - /// absolute time. - time_point expires_at(const implementation_type& impl) const - { - return service_impl_.expiry(impl); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the expiry time for the timer as an absolute time. - time_point expiry(const implementation_type& impl) const - { - return service_impl_.expiry(impl); - } - - /// Set the expiry time for the timer as an absolute time. - std::size_t expires_at(implementation_type& impl, - const time_point& expiry_time, asio::error_code& ec) - { - return service_impl_.expires_at(impl, expiry_time, ec); - } - - /// Set the expiry time for the timer relative to now. - std::size_t expires_after(implementation_type& impl, - const duration& expiry_time, asio::error_code& ec) - { - return service_impl_.expires_after(impl, expiry_time, ec); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use expiry().) Get the expiry time for the timer relative to - /// now. - duration expires_from_now(const implementation_type& impl) const - { - typedef detail::chrono_time_traits traits; - return traits::subtract(service_impl_.expiry(impl), traits::now()); - } - - /// (Deprecated: Use expires_after().) Set the expiry time for the timer - /// relative to now. - std::size_t expires_from_now(implementation_type& impl, - const duration& expiry_time, asio::error_code& ec) - { - return service_impl_.expires_after(impl, expiry_time, ec); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - // Perform a blocking wait on the timer. - void wait(implementation_type& impl, asio::error_code& ec) - { - service_impl_.wait(impl, ec); - } - - // Start an asynchronous wait on the timer. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WAITABLE_TIMER_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/basic_handle.hpp b/Sources/Vendor/asio/include/asio/windows/basic_handle.hpp deleted file mode 100644 index f7c9d0d..0000000 --- a/Sources/Vendor/asio/include/asio/windows/basic_handle.hpp +++ /dev/null @@ -1,273 +0,0 @@ -// -// windows/basic_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_WINDOWS_BASIC_HANDLE_HPP -#define ASIO_WINDOWS_BASIC_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \ - || defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) \ - || defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_io_object.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Provides Windows handle functionality. -/** - * The windows::basic_handle class template provides the ability to wrap a - * Windows handle. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_handle - : public basic_io_object -{ -public: - /// The native representation of a handle. - typedef typename HandleService::native_handle_type native_handle_type; - - /// A basic_handle is always the lowest layer. - typedef basic_handle lowest_layer_type; - - /// Construct a basic_handle without opening it. - /** - * This constructor creates a handle without opening it. - * - * @param io_context The io_context object that the handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - */ - explicit basic_handle(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct a basic_handle on an existing native handle. - /** - * This constructor creates a handle object to hold an existing native handle. - * - * @param io_context The io_context object that the handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - * - * @param handle A native handle. - * - * @throws asio::system_error Thrown on failure. - */ - basic_handle(asio::io_context& io_context, - const native_handle_type& handle) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), handle, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_handle from another. - /** - * This constructor moves a handle from one object to another. - * - * @param other The other basic_handle object from which the move will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_handle(io_context&) constructor. - */ - basic_handle(basic_handle&& other) - : basic_io_object( - ASIO_MOVE_CAST(basic_handle)(other)) - { - } - - /// Move-assign a basic_handle from another. - /** - * This assignment operator moves a handle from one object to another. - * - * @param other The other basic_handle object from which the move will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_handle(io_context&) constructor. - */ - basic_handle& operator=(basic_handle&& other) - { - basic_io_object::operator=( - ASIO_MOVE_CAST(basic_handle)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a basic_handle cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a basic_handle cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Assign an existing native handle to the handle. - /* - * This function opens the handle to hold an existing native handle. - * - * @param handle A native handle. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& handle) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), handle, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native handle to the handle. - /* - * This function opens the handle to hold an existing native handle. - * - * @param handle A native handle. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const native_handle_type& handle, - asio::error_code& ec) - { - this->get_service().assign(this->get_implementation(), handle, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the handle is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the handle. - /** - * This function is used to close the handle. Any asynchronous read or write - * operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the handle. - /** - * This function is used to close the handle. Any asynchronous read or write - * operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native handle representation. - /** - * This function may be used to obtain the underlying representation of the - * handle. This is intended to allow access to native handle functionality - * that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the handle. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the handle. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - -protected: - /// Protected destructor to prevent deletion through this type. - ~basic_handle() - { - } -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - // || defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) - // || defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_BASIC_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/basic_object_handle.hpp b/Sources/Vendor/asio/include/asio/windows/basic_object_handle.hpp deleted file mode 100644 index 4b29684..0000000 --- a/Sources/Vendor/asio/include/asio/windows/basic_object_handle.hpp +++ /dev/null @@ -1,182 +0,0 @@ -// -// windows/basic_object_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2011 Boris Schaeling (boris@highscore.de) -// -// Distributed under the 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 ASIO_WINDOWS_BASIC_OBJECT_HANDLE_HPP -#define ASIO_WINDOWS_BASIC_OBJECT_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/windows/basic_handle.hpp" -#include "asio/windows/object_handle_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Provides object-oriented handle functionality. -/** - * The windows::basic_object_handle class template provides asynchronous and - * blocking object-oriented handle functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_object_handle - : public basic_handle -{ -public: - /// The native representation of a handle. - typedef typename ObjectHandleService::native_handle_type native_handle_type; - - /// Construct a basic_object_handle without opening it. - /** - * This constructor creates an object handle without opening it. - * - * @param io_context The io_context object that the object handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - */ - explicit basic_object_handle(asio::io_context& io_context) - : basic_handle(io_context) - { - } - - /// Construct a basic_object_handle on an existing native handle. - /** - * This constructor creates an object handle object to hold an existing native - * handle. - * - * @param io_context The io_context object that the object handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - * - * @param native_handle The new underlying handle implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_object_handle(asio::io_context& io_context, - const native_handle_type& native_handle) - : basic_handle(io_context, native_handle) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_object_handle from another. - /** - * This constructor moves an object handle from one object to another. - * - * @param other The other basic_object_handle object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_object_handle(io_context&) constructor. - */ - basic_object_handle(basic_object_handle&& other) - : basic_handle( - ASIO_MOVE_CAST(basic_object_handle)(other)) - { - } - - /// Move-assign a basic_object_handle from another. - /** - * This assignment operator moves an object handle from one object to another. - * - * @param other The other basic_object_handle object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_object_handle(io_context&) constructor. - */ - basic_object_handle& operator=(basic_object_handle&& other) - { - basic_handle::operator=( - ASIO_MOVE_CAST(basic_object_handle)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Perform a blocking wait on the object handle. - /** - * This function is used to wait for the object handle to be set to the - * signalled state. This function blocks and does not return until the object - * handle has been set to the signalled state. - * - * @throws asio::system_error Thrown on failure. - */ - void wait() - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Perform a blocking wait on the object handle. - /** - * This function is used to wait for the object handle to be set to the - * signalled state. This function blocks and does not return until the object - * handle has been set to the signalled state. - * - * @param ec Set to indicate what error occurred, if any. - */ - void wait(asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), ec); - } - - /// Start an asynchronous wait on the object handle. - /** - * This function is be used to initiate an asynchronous wait against the - * object handle. It always returns immediately. - * - * @param handler The handler to be called when the object handle is set to - * the signalled state. Copies will be made of the handler as required. The - * function signature of the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(ASIO_MOVE_ARG(WaitHandler) handler) - { - return this->get_service().async_wait(this->get_implementation(), - ASIO_MOVE_CAST(WaitHandler)(handler)); - } -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_BASIC_OBJECT_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/basic_random_access_handle.hpp b/Sources/Vendor/asio/include/asio/windows/basic_random_access_handle.hpp deleted file mode 100644 index 4226977..0000000 --- a/Sources/Vendor/asio/include/asio/windows/basic_random_access_handle.hpp +++ /dev/null @@ -1,376 +0,0 @@ -// -// windows/basic_random_access_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_WINDOWS_BASIC_RANDOM_ACCESS_HANDLE_HPP -#define ASIO_WINDOWS_BASIC_RANDOM_ACCESS_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/windows/basic_handle.hpp" -#include "asio/windows/random_access_handle_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Provides random-access handle functionality. -/** - * The windows::basic_random_access_handle class template provides asynchronous - * and blocking random-access handle functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_random_access_handle - : public basic_handle -{ -public: - /// The native representation of a handle. - typedef typename RandomAccessHandleService::native_handle_type - native_handle_type; - - /// Construct a basic_random_access_handle without opening 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. - * - * @param io_context The io_context object that the random-access handle will - * use to dispatch handlers for any asynchronous operations performed on the - * handle. - */ - explicit basic_random_access_handle(asio::io_context& io_context) - : basic_handle(io_context) - { - } - - /// Construct a basic_random_access_handle on an existing native handle. - /** - * This constructor creates a random-access handle object to hold an existing - * native handle. - * - * @param io_context The io_context object that the random-access handle will - * use to dispatch handlers for any asynchronous operations performed on the - * handle. - * - * @param handle The new underlying handle implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_random_access_handle(asio::io_context& io_context, - const native_handle_type& handle) - : basic_handle(io_context, handle) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_random_access_handle from another. - /** - * This constructor moves a random-access handle from one object to another. - * - * @param other The other basic_random_access_handle object from which the - * move will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_random_access_handle(io_context&) - * constructor. - */ - basic_random_access_handle(basic_random_access_handle&& other) - : basic_handle( - ASIO_MOVE_CAST(basic_random_access_handle)(other)) - { - } - - /// Move-assign a basic_random_access_handle from another. - /** - * This assignment operator moves a random-access handle from one object to - * another. - * - * @param other The other basic_random_access_handle object from which the - * move will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_random_access_handle(io_context&) - * constructor. - */ - basic_random_access_handle& operator=(basic_random_access_handle&& other) - { - basic_handle::operator=( - ASIO_MOVE_CAST(basic_random_access_handle)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Write some data to the handle at the specified offset. - /** - * This function is used to write data to the random-access handle. The - * function call will block until one or more bytes of the data has been - * written successfully, or until an error occurs. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some_at operation may not write all of the data. Consider - * using the @ref write_at function if you need to ensure that all data is - * written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.write_some_at(42, asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some_at(uint64_t offset, - const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some_at( - this->get_implementation(), offset, buffers, ec); - asio::detail::throw_error(ec, "write_some_at"); - return s; - } - - /// Write some data to the handle at the specified offset. - /** - * This function is used to write data to the random-access handle. The - * function call will block until one or more bytes of the data has been - * written successfully, or until an error occurs. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write_at function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some_at(uint64_t offset, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return this->get_service().write_some_at( - this->get_implementation(), offset, buffers, ec); - } - - /// Start an asynchronous write at the specified offset. - /** - * This function is used to asynchronously write data to the random-access - * handle. The function call always returns immediately. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write_at function if you need to ensure that - * all data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_write_some_at(42, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some_at(uint64_t offset, - const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_write_some_at(this->get_implementation(), - offset, buffers, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Read some data from the handle at the specified offset. - /** - * This function is used to read data from the random-access handle. The - * function call will block until one or more bytes of data has been read - * successfully, or until an error occurs. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read_at function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.read_some_at(42, asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some_at(uint64_t offset, - const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some_at( - this->get_implementation(), offset, buffers, ec); - asio::detail::throw_error(ec, "read_some_at"); - return s; - } - - /// Read some data from the handle at the specified offset. - /** - * This function is used to read data from the random-access handle. The - * function call will block until one or more bytes of data has been read - * successfully, or until an error occurs. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read_at function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some_at(uint64_t offset, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return this->get_service().read_some_at( - this->get_implementation(), offset, buffers, ec); - } - - /// Start an asynchronous read at the specified offset. - /** - * This function is used to asynchronously read data from the random-access - * handle. The function call always returns immediately. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read_at function if you need to ensure that - * the requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_read_some_at(42, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some_at(uint64_t offset, - const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_read_some_at(this->get_implementation(), - offset, buffers, ASIO_MOVE_CAST(ReadHandler)(handler)); - } -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_BASIC_RANDOM_ACCESS_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/basic_stream_handle.hpp b/Sources/Vendor/asio/include/asio/windows/basic_stream_handle.hpp deleted file mode 100644 index 3bfce68..0000000 --- a/Sources/Vendor/asio/include/asio/windows/basic_stream_handle.hpp +++ /dev/null @@ -1,359 +0,0 @@ -// -// windows/basic_stream_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_WINDOWS_BASIC_STREAM_HANDLE_HPP -#define ASIO_WINDOWS_BASIC_STREAM_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/windows/basic_handle.hpp" -#include "asio/windows/stream_handle_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Provides stream-oriented handle functionality. -/** - * The windows::basic_stream_handle class template provides asynchronous and - * blocking stream-oriented handle functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class basic_stream_handle - : public basic_handle -{ -public: - /// The native representation of a handle. - typedef typename StreamHandleService::native_handle_type native_handle_type; - - /// Construct a basic_stream_handle without opening it. - /** - * This constructor creates a stream handle without opening it. The handle - * needs to be opened and then connected or accepted before data can be sent - * or received on it. - * - * @param io_context The io_context object that the stream handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - */ - explicit basic_stream_handle(asio::io_context& io_context) - : basic_handle(io_context) - { - } - - /// Construct a basic_stream_handle on an existing native handle. - /** - * This constructor creates a stream handle object to hold an existing native - * handle. - * - * @param io_context The io_context object that the stream handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - * - * @param handle The new underlying handle implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_stream_handle(asio::io_context& io_context, - const native_handle_type& handle) - : basic_handle(io_context, handle) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_stream_handle from another. - /** - * This constructor moves a stream handle from one object to another. - * - * @param other The other basic_stream_handle object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_handle(io_context&) constructor. - */ - basic_stream_handle(basic_stream_handle&& other) - : basic_handle( - ASIO_MOVE_CAST(basic_stream_handle)(other)) - { - } - - /// Move-assign a basic_stream_handle from another. - /** - * This assignment operator moves a stream handle from one object to - * another. - * - * @param other The other basic_stream_handle object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_handle(io_context&) constructor. - */ - basic_stream_handle& operator=(basic_stream_handle&& other) - { - basic_handle::operator=( - ASIO_MOVE_CAST(basic_stream_handle)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Write some data to the handle. - /** - * This function is used to write data to the stream handle. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.write_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the handle. - /** - * This function is used to write data to the stream handle. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().write_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the stream handle. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the handle. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_write_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_write_some(this->get_implementation(), - buffers, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Read some data from the handle. - /** - * This function is used to read data from the stream handle. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.read_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the handle. - /** - * This function is used to read data from the stream handle. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().read_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the stream handle. - * The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_read_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_read_some(this->get_implementation(), - buffers, ASIO_MOVE_CAST(ReadHandler)(handler)); - } -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_BASIC_STREAM_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/object_handle.hpp b/Sources/Vendor/asio/include/asio/windows/object_handle.hpp deleted file mode 100644 index 581b568..0000000 --- a/Sources/Vendor/asio/include/asio/windows/object_handle.hpp +++ /dev/null @@ -1,381 +0,0 @@ -// -// windows/object_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2011 Boris Schaeling (boris@highscore.de) -// -// Distributed under the 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 ASIO_WINDOWS_OBJECT_HANDLE_HPP -#define ASIO_WINDOWS_OBJECT_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_object_handle_service.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/windows/basic_object_handle.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#define ASIO_SVC_T asio::detail::win_object_handle_service - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -#if defined(ASIO_ENABLE_OLD_SERVICES) -// Typedef for the typical usage of an object handle. -typedef basic_object_handle<> object_handle; -#else // defined(ASIO_ENABLE_OLD_SERVICES) -/// Provides object-oriented handle functionality. -/** - * The windows::object_handle class provides asynchronous and blocking - * object-oriented handle functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class object_handle - : ASIO_SVC_ACCESS basic_io_object -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The native representation of a handle. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef ASIO_SVC_T::native_handle_type native_handle_type; -#endif - - /// An object_handle is always the lowest layer. - typedef object_handle lowest_layer_type; - - /// Construct an object_handle without opening it. - /** - * This constructor creates an object handle without opening it. - * - * @param io_context The io_context object that the object handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - */ - explicit object_handle(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct an object_handle on an existing native handle. - /** - * This constructor creates an object handle object to hold an existing native - * handle. - * - * @param io_context The io_context object that the object handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - * - * @param native_handle The new underlying handle implementation. - * - * @throws asio::system_error Thrown on failure. - */ - object_handle(asio::io_context& io_context, - const native_handle_type& native_handle) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), native_handle, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct an object_handle from another. - /** - * This constructor moves an object handle from one object to another. - * - * @param other The other object_handle object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c object_handle(io_context&) constructor. - */ - object_handle(object_handle&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign an object_handle from another. - /** - * This assignment operator moves an object handle from one object to another. - * - * @param other The other object_handle object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c object_handle(io_context&) constructor. - */ - object_handle& operator=(object_handle&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since an object_handle cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since an object_handle cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Assign an existing native handle to the handle. - /* - * This function opens the handle to hold an existing native handle. - * - * @param handle A native handle. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& handle) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), handle, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native handle to the handle. - /* - * This function opens the handle to hold an existing native handle. - * - * @param handle A native handle. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const native_handle_type& handle, - asio::error_code& ec) - { - this->get_service().assign(this->get_implementation(), handle, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the handle is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the handle. - /** - * This function is used to close the handle. Any asynchronous read or write - * operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the handle. - /** - * This function is used to close the handle. Any asynchronous read or write - * operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native handle representation. - /** - * This function may be used to obtain the underlying representation of the - * handle. This is intended to allow access to native handle functionality - * that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the handle. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the handle. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform a blocking wait on the object handle. - /** - * This function is used to wait for the object handle to be set to the - * signalled state. This function blocks and does not return until the object - * handle has been set to the signalled state. - * - * @throws asio::system_error Thrown on failure. - */ - void wait() - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Perform a blocking wait on the object handle. - /** - * This function is used to wait for the object handle to be set to the - * signalled state. This function blocks and does not return until the object - * handle has been set to the signalled state. - * - * @param ec Set to indicate what error occurred, if any. - */ - void wait(asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), ec); - } - - /// Start an asynchronous wait on the object handle. - /** - * This function is be used to initiate an asynchronous wait against the - * object handle. It always returns immediately. - * - * @param handler The handler to be called when the object handle is set to - * the signalled state. Copies will be made of the handler as required. The - * function signature of the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(ASIO_MOVE_ARG(WaitHandler) handler) - { - asio::async_completion init(handler); - - this->get_service().async_wait(this->get_implementation(), - init.completion_handler); - - return init.result.get(); - } -}; -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#undef ASIO_SVC_T - -#endif // defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_WINDOWS_OBJECT_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/object_handle_service.hpp b/Sources/Vendor/asio/include/asio/windows/object_handle_service.hpp deleted file mode 100644 index 95436d7..0000000 --- a/Sources/Vendor/asio/include/asio/windows/object_handle_service.hpp +++ /dev/null @@ -1,183 +0,0 @@ -// -// windows/object_handle_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2011 Boris Schaeling (boris@highscore.de) -// -// Distributed under the 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 ASIO_WINDOWS_OBJECT_HANDLE_SERVICE_HPP -#define ASIO_WINDOWS_OBJECT_HANDLE_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/async_result.hpp" -#include "asio/detail/win_object_handle_service.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Default service implementation for an object handle. -class object_handle_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - -private: - // The type of the platform-specific implementation. - typedef detail::win_object_handle_service service_impl_type; - -public: - /// The type of an object handle implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef service_impl_type::implementation_type implementation_type; -#endif - - /// The native handle type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new object handle service for the specified io_context. - explicit object_handle_service(asio::io_context& io_context) - : asio::detail::service_base(io_context), - service_impl_(io_context) - { - } - - /// Construct a new object handle implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new object handle implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another object handle implementation. - void move_assign(implementation_type& impl, - object_handle_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy an object handle implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Assign an existing native handle to an object handle. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec) - { - service_impl_.assign(impl, handle, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close an object handle implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native handle implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the handle. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - // Wait for a signaled state. - void wait(implementation_type& impl, asio::error_code& ec) - { - service_impl_.wait(impl, ec); - } - - /// Start an asynchronous wait. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, - ASIO_MOVE_ARG(WaitHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_wait(impl, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_OBJECT_HANDLE_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/overlapped_handle.hpp b/Sources/Vendor/asio/include/asio/windows/overlapped_handle.hpp deleted file mode 100644 index 3d479ba..0000000 --- a/Sources/Vendor/asio/include/asio/windows/overlapped_handle.hpp +++ /dev/null @@ -1,331 +0,0 @@ -// -// windows/overlapped_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_WINDOWS_OVERLAPPED_HANDLE_HPP -#define ASIO_WINDOWS_OVERLAPPED_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \ - || defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_iocp_handle_service.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#define ASIO_SVC_T asio::detail::win_iocp_handle_service - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Provides Windows handle functionality for objects that support -/// overlapped I/O. -/** - * The windows::overlapped_handle class provides the ability to wrap a Windows - * handle. The underlying object referred to by the handle must support - * overlapped I/O. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class overlapped_handle - : ASIO_SVC_ACCESS basic_io_object -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The native representation of a handle. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef ASIO_SVC_T::native_handle_type native_handle_type; -#endif - - /// An overlapped_handle is always the lowest layer. - typedef overlapped_handle lowest_layer_type; - - /// Construct an overlapped_handle without opening it. - /** - * This constructor creates a handle without opening it. - * - * @param io_context The io_context object that the handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - */ - explicit overlapped_handle(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct an overlapped_handle on an existing native handle. - /** - * This constructor creates a handle object to hold an existing native handle. - * - * @param io_context The io_context object that the handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - * - * @param handle A native handle. - * - * @throws asio::system_error Thrown on failure. - */ - overlapped_handle(asio::io_context& io_context, - const native_handle_type& handle) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), handle, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct an overlapped_handle from another. - /** - * This constructor moves a handle from one object to another. - * - * @param other The other overlapped_handle object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c overlapped_handle(io_context&) constructor. - */ - overlapped_handle(overlapped_handle&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign an overlapped_handle from another. - /** - * This assignment operator moves a handle from one object to another. - * - * @param other The other overlapped_handle object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c overlapped_handle(io_context&) constructor. - */ - overlapped_handle& operator=(overlapped_handle&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since an overlapped_handle cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since an overlapped_handle cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Assign an existing native handle to the handle. - /* - * This function opens the handle to hold an existing native handle. - * - * @param handle A native handle. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& handle) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), handle, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native handle to the handle. - /* - * This function opens the handle to hold an existing native handle. - * - * @param handle A native handle. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const native_handle_type& handle, - asio::error_code& ec) - { - this->get_service().assign(this->get_implementation(), handle, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the handle is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the handle. - /** - * This function is used to close the handle. Any asynchronous read or write - * operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the handle. - /** - * This function is used to close the handle. Any asynchronous read or write - * operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native handle representation. - /** - * This function may be used to obtain the underlying representation of the - * handle. This is intended to allow access to native handle functionality - * that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the handle. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the handle. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - -protected: - /// Protected destructor to prevent deletion through this type. - /** - * This function destroys the handle, cancelling any outstanding asynchronous - * wait operations associated with the handle as if by calling @c cancel. - */ - ~overlapped_handle() - { - } -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#undef ASIO_SVC_T - -#endif // defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - // || defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_OVERLAPPED_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/overlapped_ptr.hpp b/Sources/Vendor/asio/include/asio/windows/overlapped_ptr.hpp deleted file mode 100644 index ce0b2a4..0000000 --- a/Sources/Vendor/asio/include/asio/windows/overlapped_ptr.hpp +++ /dev/null @@ -1,116 +0,0 @@ -// -// windows/overlapped_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_WINDOWS_OVERLAPPED_PTR_HPP -#define ASIO_WINDOWS_OVERLAPPED_PTR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_WINDOWS_OVERLAPPED_PTR) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/win_iocp_overlapped_ptr.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Wraps a handler to create an OVERLAPPED object for use with overlapped I/O. -/** - * A special-purpose smart pointer used to wrap an application handler so that - * it can be passed as the LPOVERLAPPED argument to overlapped I/O functions. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class overlapped_ptr - : private noncopyable -{ -public: - /// Construct an empty overlapped_ptr. - overlapped_ptr() - : impl_() - { - } - - /// Construct an overlapped_ptr to contain the specified handler. - template - explicit overlapped_ptr(asio::io_context& io_context, - ASIO_MOVE_ARG(Handler) handler) - : impl_(io_context, ASIO_MOVE_CAST(Handler)(handler)) - { - } - - /// Destructor automatically frees the OVERLAPPED object unless released. - ~overlapped_ptr() - { - } - - /// Reset to empty. - void reset() - { - impl_.reset(); - } - - /// Reset to contain the specified handler, freeing any current OVERLAPPED - /// object. - template - void reset(asio::io_context& io_context, - ASIO_MOVE_ARG(Handler) handler) - { - impl_.reset(io_context, ASIO_MOVE_CAST(Handler)(handler)); - } - - /// Get the contained OVERLAPPED object. - OVERLAPPED* get() - { - return impl_.get(); - } - - /// Get the contained OVERLAPPED object. - const OVERLAPPED* get() const - { - return impl_.get(); - } - - /// Release ownership of the OVERLAPPED object. - OVERLAPPED* release() - { - return impl_.release(); - } - - /// Post completion notification for overlapped operation. Releases ownership. - void complete(const asio::error_code& ec, - std::size_t bytes_transferred) - { - impl_.complete(ec, bytes_transferred); - } - -private: - detail::win_iocp_overlapped_ptr impl_; -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_OVERLAPPED_PTR) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_WINDOWS_OVERLAPPED_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/random_access_handle.hpp b/Sources/Vendor/asio/include/asio/windows/random_access_handle.hpp deleted file mode 100644 index 301d5f8..0000000 --- a/Sources/Vendor/asio/include/asio/windows/random_access_handle.hpp +++ /dev/null @@ -1,378 +0,0 @@ -// -// windows/random_access_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_HPP -#define ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/windows/overlapped_handle.hpp" - -#if defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/windows/basic_random_access_handle.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -#if defined(ASIO_ENABLE_OLD_SERVICES) -// Typedef for the typical usage of a random-access handle. -typedef basic_random_access_handle<> random_access_handle; -#else // defined(ASIO_ENABLE_OLD_SERVICES) -/// Provides random-access handle functionality. -/** - * The windows::random_access_handle class provides asynchronous and - * blocking random-access handle functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class random_access_handle - : public overlapped_handle -{ -public: - /// Construct a random_access_handle without opening 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. - * - * @param io_context The io_context object that the random-access handle will - * use to dispatch handlers for any asynchronous operations performed on the - * handle. - */ - explicit random_access_handle(asio::io_context& io_context) - : overlapped_handle(io_context) - { - } - - /// Construct a random_access_handle on an existing native handle. - /** - * This constructor creates a random-access handle object to hold an existing - * native handle. - * - * @param io_context The io_context object that the random-access handle will - * use to dispatch handlers for any asynchronous operations performed on the - * handle. - * - * @param handle The new underlying handle implementation. - * - * @throws asio::system_error Thrown on failure. - */ - random_access_handle(asio::io_context& io_context, - const native_handle_type& handle) - : overlapped_handle(io_context, handle) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a random_access_handle from another. - /** - * This constructor moves a random-access handle from one object to another. - * - * @param other The other random_access_handle object from which the - * move will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c random_access_handle(io_context&) - * constructor. - */ - random_access_handle(random_access_handle&& other) - : overlapped_handle(std::move(other)) - { - } - - /// Move-assign a random_access_handle from another. - /** - * This assignment operator moves a random-access handle from one object to - * another. - * - * @param other The other random_access_handle object from which the - * move will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c random_access_handle(io_context&) - * constructor. - */ - random_access_handle& operator=(random_access_handle&& other) - { - overlapped_handle::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Write some data to the handle at the specified offset. - /** - * This function is used to write data to the random-access handle. The - * function call will block until one or more bytes of the data has been - * written successfully, or until an error occurs. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some_at operation may not write all of the data. Consider - * using the @ref write_at function if you need to ensure that all data is - * written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.write_some_at(42, asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some_at(uint64_t offset, - const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some_at( - this->get_implementation(), offset, buffers, ec); - asio::detail::throw_error(ec, "write_some_at"); - return s; - } - - /// Write some data to the handle at the specified offset. - /** - * This function is used to write data to the random-access handle. The - * function call will block until one or more bytes of the data has been - * written successfully, or until an error occurs. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write_at function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some_at(uint64_t offset, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return this->get_service().write_some_at( - this->get_implementation(), offset, buffers, ec); - } - - /// Start an asynchronous write at the specified offset. - /** - * This function is used to asynchronously write data to the random-access - * handle. The function call always returns immediately. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write_at function if you need to ensure that - * all data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_write_some_at(42, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some_at(uint64_t offset, - const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - asio::async_completion init(handler); - - this->get_service().async_write_some_at(this->get_implementation(), - offset, buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the handle at the specified offset. - /** - * This function is used to read data from the random-access handle. The - * function call will block until one or more bytes of data has been read - * successfully, or until an error occurs. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read_at function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.read_some_at(42, asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some_at(uint64_t offset, - const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some_at( - this->get_implementation(), offset, buffers, ec); - asio::detail::throw_error(ec, "read_some_at"); - return s; - } - - /// Read some data from the handle at the specified offset. - /** - * This function is used to read data from the random-access handle. The - * function call will block until one or more bytes of data has been read - * successfully, or until an error occurs. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read_at function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some_at(uint64_t offset, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return this->get_service().read_some_at( - this->get_implementation(), offset, buffers, ec); - } - - /// Start an asynchronous read at the specified offset. - /** - * This function is used to asynchronously read data from the random-access - * handle. The function call always returns immediately. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read_at function if you need to ensure that - * the requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_read_some_at(42, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some_at(uint64_t offset, - const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - asio::async_completion init(handler); - - this->get_service().async_read_some_at(this->get_implementation(), - offset, buffers, init.completion_handler); - - return init.result.get(); - } -}; -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/random_access_handle_service.hpp b/Sources/Vendor/asio/include/asio/windows/random_access_handle_service.hpp deleted file mode 100644 index ebccf3e..0000000 --- a/Sources/Vendor/asio/include/asio/windows/random_access_handle_service.hpp +++ /dev/null @@ -1,214 +0,0 @@ -// -// windows/random_access_handle_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_SERVICE_HPP -#define ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/cstdint.hpp" -#include "asio/detail/win_iocp_handle_service.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Default service implementation for a random-access handle. -class random_access_handle_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - -private: - // The type of the platform-specific implementation. - typedef detail::win_iocp_handle_service service_impl_type; - -public: - /// The type of a random-access handle implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef service_impl_type::implementation_type implementation_type; -#endif - - /// The native handle type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new random-access handle service for the specified io_context. - explicit random_access_handle_service(asio::io_context& io_context) - : asio::detail::service_base< - random_access_handle_service>(io_context), - service_impl_(io_context) - { - } - - /// Construct a new random-access handle implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new random-access handle implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another random-access handle implementation. - void move_assign(implementation_type& impl, - random_access_handle_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a random-access handle implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Assign an existing native handle to a random-access handle. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec) - { - service_impl_.assign(impl, handle, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a random-access handle implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native handle implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the handle. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Write the given data at the specified offset. - template - std::size_t write_some_at(implementation_type& impl, uint64_t offset, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.write_some_at(impl, offset, buffers, ec); - } - - /// Start an asynchronous write at the specified offset. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some_at(implementation_type& impl, - uint64_t offset, const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_write_some_at(impl, - offset, buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the specified offset. - template - std::size_t read_some_at(implementation_type& impl, uint64_t offset, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.read_some_at(impl, offset, buffers, ec); - } - - /// Start an asynchronous read at the specified offset. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some_at(implementation_type& impl, - uint64_t offset, const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_read_some_at(impl, - offset, buffers, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/stream_handle.hpp b/Sources/Vendor/asio/include/asio/windows/stream_handle.hpp deleted file mode 100644 index 8f0a21b..0000000 --- a/Sources/Vendor/asio/include/asio/windows/stream_handle.hpp +++ /dev/null @@ -1,362 +0,0 @@ -// -// windows/stream_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_WINDOWS_STREAM_HANDLE_HPP -#define ASIO_WINDOWS_STREAM_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/windows/overlapped_handle.hpp" - -#if defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/windows/basic_stream_handle.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -#if defined(ASIO_ENABLE_OLD_SERVICES) -// Typedef for the typical usage of a stream-oriented handle. -typedef basic_stream_handle<> stream_handle; -#else // defined(ASIO_ENABLE_OLD_SERVICES) -/// Provides stream-oriented handle functionality. -/** - * The windows::stream_handle class provides asynchronous and blocking - * stream-oriented handle functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -class stream_handle - : public overlapped_handle -{ -public: - /// Construct a stream_handle without opening it. - /** - * This constructor creates a stream handle without opening it. The handle - * needs to be opened and then connected or accepted before data can be sent - * or received on it. - * - * @param io_context The io_context object that the stream handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - */ - explicit stream_handle(asio::io_context& io_context) - : overlapped_handle(io_context) - { - } - - /// Construct a stream_handle on an existing native handle. - /** - * This constructor creates a stream handle object to hold an existing native - * handle. - * - * @param io_context The io_context object that the stream handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - * - * @param handle The new underlying handle implementation. - * - * @throws asio::system_error Thrown on failure. - */ - stream_handle(asio::io_context& io_context, - const native_handle_type& handle) - : overlapped_handle(io_context, handle) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a stream_handle from another. - /** - * This constructor moves a stream handle from one object to another. - * - * @param other The other stream_handle object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c stream_handle(io_context&) constructor. - */ - stream_handle(stream_handle&& other) - : overlapped_handle(std::move(other)) - { - } - - /// Move-assign a stream_handle from another. - /** - * This assignment operator moves a stream handle from one object to - * another. - * - * @param other The other stream_handle object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c stream_handle(io_context&) constructor. - */ - stream_handle& operator=(stream_handle&& other) - { - overlapped_handle::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Write some data to the handle. - /** - * This function is used to write data to the stream handle. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.write_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the handle. - /** - * This function is used to write data to the stream handle. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().write_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the stream handle. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the handle. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_write_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - asio::async_completion init(handler); - - this->get_service().async_write_some( - this->get_implementation(), buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the handle. - /** - * This function is used to read data from the stream handle. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.read_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the handle. - /** - * This function is used to read data from the stream handle. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().read_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the stream handle. - * The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_read_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - asio::async_completion init(handler); - - this->get_service().async_read_some( - this->get_implementation(), buffers, init.completion_handler); - - return init.result.get(); - } -}; -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_WINDOWS_STREAM_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/stream_handle_service.hpp b/Sources/Vendor/asio/include/asio/windows/stream_handle_service.hpp deleted file mode 100644 index 1c665d5..0000000 --- a/Sources/Vendor/asio/include/asio/windows/stream_handle_service.hpp +++ /dev/null @@ -1,210 +0,0 @@ -// -// windows/stream_handle_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_WINDOWS_STREAM_HANDLE_SERVICE_HPP -#define ASIO_WINDOWS_STREAM_HANDLE_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/win_iocp_handle_service.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Default service implementation for a stream handle. -class stream_handle_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - -private: - // The type of the platform-specific implementation. - typedef detail::win_iocp_handle_service service_impl_type; - -public: - /// The type of a stream handle implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef service_impl_type::implementation_type implementation_type; -#endif - - /// The native handle type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new stream handle service for the specified io_context. - explicit stream_handle_service(asio::io_context& io_context) - : asio::detail::service_base(io_context), - service_impl_(io_context) - { - } - - /// Construct a new stream handle implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new stream handle implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another stream handle implementation. - void move_assign(implementation_type& impl, - stream_handle_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a stream handle implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Assign an existing native handle to a stream handle. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec) - { - service_impl_.assign(impl, handle, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a stream handle implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native handle implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the handle. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Write the given data to the stream. - template - std::size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.write_some(impl, buffers, ec); - } - - /// Start an asynchronous write. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_write_some(impl, buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the stream. - template - std::size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.read_some(impl, buffers, ec); - } - - /// Start an asynchronous read. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_read_some(impl, buffers, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_STREAM_HANDLE_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/write.hpp b/Sources/Vendor/asio/include/asio/write.hpp deleted file mode 100644 index 7f9251a..0000000 --- a/Sources/Vendor/asio/include/asio/write.hpp +++ /dev/null @@ -1,928 +0,0 @@ -// -// write.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_WRITE_HPP -#define ASIO_WRITE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/buffer.hpp" -#include "asio/error.hpp" - -#if !defined(ASIO_NO_EXTENSIONS) -# include "asio/basic_streambuf_fwd.hpp" -#endif // !defined(ASIO_NO_EXTENSIONS) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/** - * @defgroup write asio::write - * - * @brief The @c write function is a composed operation that writes a certain - * amount of data to a stream before returning. - */ -/*@{*/ - -/// Write all of the supplied data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * stream. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::write(s, asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::write( - * s, buffers, - * asio::transfer_all()); @endcode - */ -template -std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - typename enable_if< - is_const_buffer_sequence::value - >::type* = 0); - -/// Write all of the supplied data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * stream. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::write(s, asio::buffer(data, size), ec); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::write( - * s, buffers, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - asio::error_code& ec, - typename enable_if< - is_const_buffer_sequence::value - >::type* = 0); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * stream. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::write(s, asio::buffer(data, size), - * asio::transfer_at_least(32)); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, - typename enable_if< - is_const_buffer_sequence::value - >::type* = 0); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * stream. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_const_buffer_sequence::value - >::type* = 0); - -/// Write all of the supplied data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied dynamic buffer sequence has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers The dynamic buffer sequence from which data will be written. - * Successfully written data is automatically consumed from the buffers. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code asio::write( - * s, buffers, - * asio::transfer_all()); @endcode - */ -template -std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Write all of the supplied data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied dynamic buffer sequence has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers The dynamic buffer sequence from which data will be written. - * Successfully written data is automatically consumed from the buffers. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @note This overload is equivalent to calling: - * @code asio::write( - * s, buffers, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied dynamic buffer sequence has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers The dynamic buffer sequence from which data will be written. - * Successfully written data is automatically consumed from the buffers. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - */ -template -std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied dynamic buffer sequence has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers The dynamic buffer sequence from which data will be written. - * Successfully written data is automatically consumed from the buffers. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Write all of the supplied data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param b The basic_streambuf object from which data will be written. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code asio::write( - * s, b, - * asio::transfer_all()); @endcode - */ -template -std::size_t write(SyncWriteStream& s, basic_streambuf& b); - -/// Write all of the supplied data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @note This overload is equivalent to calling: - * @code asio::write( - * s, b, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t write(SyncWriteStream& s, basic_streambuf& b, - asio::error_code& ec); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - */ -template -std::size_t write(SyncWriteStream& s, basic_streambuf& b, - CompletionCondition completion_condition); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t write(SyncWriteStream& s, basic_streambuf& b, - CompletionCondition completion_condition, asio::error_code& ec); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ -/** - * @defgroup async_write asio::async_write - * - * @brief The @c async_write function is a composed asynchronous operation that - * writes a certain amount of data to a stream before completion. - */ -/*@{*/ - -/// Start an asynchronous operation to write all of the supplied data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li 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. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * asio::async_write(s, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_const_buffer_sequence::value - >::type* = 0); - -/// Start an asynchronous operation to write a certain amount of data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li 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. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's async_write_some function. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::async_write(s, - * asio::buffer(data, size), - * asio::transfer_at_least(32), - * handler); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_const_buffer_sequence::value - >::type* = 0); - -/// Start an asynchronous operation to write all of the supplied data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied dynamic buffer sequence has been written. - * - * @li 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. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param buffers The dynamic buffer sequence from which data will be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. Successfully written - * data is automatically consumed from the buffers. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Start an asynchronous operation to write a certain amount of data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied dynamic buffer sequence has been written. - * - * @li 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. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param buffers The dynamic buffer sequence from which data will be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. Successfully written - * data is automatically consumed from the buffers. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's async_write_some function. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Start an asynchronous operation to write all of the supplied data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li 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. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param b A basic_streambuf object from which data will be written. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, basic_streambuf& b, - ASIO_MOVE_ARG(WriteHandler) handler); - -/// Start an asynchronous operation to write a certain amount of data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li 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. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param b A basic_streambuf object from which data will be written. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's async_write_some function. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, basic_streambuf& b, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/write.hpp" - -#endif // ASIO_WRITE_HPP diff --git a/Sources/Vendor/asio/include/asio/write_at.hpp b/Sources/Vendor/asio/include/asio/write_at.hpp deleted file mode 100644 index b7e5da4..0000000 --- a/Sources/Vendor/asio/include/asio/write_at.hpp +++ /dev/null @@ -1,679 +0,0 @@ -// -// write_at.hpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ASIO_WRITE_AT_HPP -#define ASIO_WRITE_AT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/detail/cstdint.hpp" -#include "asio/error.hpp" - -#if !defined(ASIO_NO_EXTENSIONS) -# include "asio/basic_streambuf_fwd.hpp" -#endif // !defined(ASIO_NO_EXTENSIONS) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/** - * @defgroup write_at asio::write_at - * - * @brief The @c write_at function is a composed operation that writes a - * certain amount of data at a specified offset before returning. - */ -/*@{*/ - -/// Write all of the supplied data at the specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * device. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::write_at(d, 42, asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::write_at( - * d, offset, buffers, - * asio::transfer_all()); @endcode - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers); - -/// Write all of the supplied data at the specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * device. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::write_at(d, 42, - * asio::buffer(data, size), ec); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::write_at( - * d, offset, buffers, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - asio::error_code& ec); - -/// Write a certain amount of data at a specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * device. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's write_some_at function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::write_at(d, 42, asio::buffer(data, size), - * asio::transfer_at_least(32)); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition); - -/// Write a certain amount of data at a specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * device. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's write_some_at function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Write all of the supplied data at the specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b The basic_streambuf object from which data will be written. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code asio::write_at( - * d, 42, b, - * asio::transfer_all()); @endcode - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, basic_streambuf& b); - -/// Write all of the supplied data at the specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @note This overload is equivalent to calling: - * @code asio::write_at( - * d, 42, b, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, basic_streambuf& b, - asio::error_code& ec); - -/// Write a certain amount of data at a specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's write_some_at function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, uint64_t offset, - basic_streambuf& b, CompletionCondition completion_condition); - -/// Write a certain amount of data at a specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's write_some_at function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, uint64_t offset, - basic_streambuf& b, CompletionCondition completion_condition, - asio::error_code& ec); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ -/** - * @defgroup async_write_at asio::async_write_at - * - * @brief The @c async_write_at function is a composed asynchronous operation - * that writes a certain amount of data at the specified offset before - * completion. - */ -/*@{*/ - -/// Start an asynchronous operation to write all of the supplied data at the -/// specified offset. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a random access device at a specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * 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. - * - * @param d The device to which the data is to be written. The type must support - * the AsyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes written from the buffers. If an error - * // occurred, this will be less than the sum of the buffer sizes. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * asio::async_write_at(d, 42, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, uint64_t offset, - const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler); - -/// Start an asynchronous operation to write a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a random access device at a specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li 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, 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. - * - * @param d The device to which the data is to be written. The type must support - * the AsyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_write_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's async_write_some_at function. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes written from the buffers. If an error - * // occurred, this will be less than the sum of the buffer sizes. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::async_write_at(d, 42, - * asio::buffer(data, size), - * asio::transfer_at_least(32), - * handler); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Start an asynchronous operation to write all of the supplied data at the -/// specified offset. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a random access device at a specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * 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. - * - * @param d The device to which the data is to be written. The type must support - * the AsyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b A basic_streambuf object from which data will be written. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes written from the buffers. If an error - * // occurred, this will be less than the sum of the buffer sizes. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, uint64_t offset, - basic_streambuf& b, ASIO_MOVE_ARG(WriteHandler) handler); - -/// Start an asynchronous operation to write a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a random access device at a specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li 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, 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. - * - * @param d The device to which the data is to be written. The type must support - * the AsyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b A basic_streambuf object from which data will be written. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_write_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's async_write_some_at function. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes written from the buffers. If an error - * // occurred, this will be less than the sum of the buffer sizes. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, uint64_t offset, - basic_streambuf& b, CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/write_at.hpp" - -#endif // ASIO_WRITE_AT_HPP diff --git a/Sources/Vendor/asio/include/asio/yield.hpp b/Sources/Vendor/asio/include/asio/yield.hpp deleted file mode 100644 index b527ac9..0000000 --- a/Sources/Vendor/asio/include/asio/yield.hpp +++ /dev/null @@ -1,23 +0,0 @@ -// -// yield.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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) ASIO_CORO_REENTER(c) -#endif - -#ifndef yield -# define yield ASIO_CORO_YIELD -#endif - -#ifndef fork -# define fork ASIO_CORO_FORK -#endif diff --git a/Sources/Vendor/asio/install-sh b/Sources/Vendor/asio/install-sh deleted file mode 100755 index 8175c64..0000000 --- a/Sources/Vendor/asio/install-sh +++ /dev/null @@ -1,518 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2018-03-11.20; # UTC - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# 'make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -tab=' ' -nl=' -' -IFS=" $tab$nl" - -# Set DOITPROG to "echo" to test this script. - -doit=${DOITPROG-} -doit_exec=${doit:-exec} - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -chgrpprog=${CHGRPPROG-chgrp} -chmodprog=${CHMODPROG-chmod} -chownprog=${CHOWNPROG-chown} -cmpprog=${CMPPROG-cmp} -cpprog=${CPPROG-cp} -mkdirprog=${MKDIRPROG-mkdir} -mvprog=${MVPROG-mv} -rmprog=${RMPROG-rm} -stripprog=${STRIPPROG-strip} - -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chgrpcmd= -chmodcmd=$chmodprog -chowncmd= -mvcmd=$mvprog -rmcmd="$rmprog -f" -stripcmd= - -src= -dst= -dir_arg= -dst_arg= - -copy_on_change=false -is_target_a_directory=possibly - -usage="\ -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: - --help display this help and exit. - --version display version info and exit. - - -c (ignored) - -C install only if different (preserve the last data modification time) - -d create directories instead of installing files. - -g GROUP $chgrpprog installed files to GROUP. - -m MODE $chmodprog installed files to MODE. - -o USER $chownprog installed files to USER. - -s $stripprog installed files. - -t DIRECTORY install into DIRECTORY. - -T report an error if DSTFILE is a directory. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG - RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) ;; - - -C) copy_on_change=true;; - - -d) dir_arg=true;; - - -g) chgrpcmd="$chgrpprog $2" - shift;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - case $mode in - *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; - - -o) chowncmd="$chownprog $2" - shift;; - - -s) stripcmd=$stripprog;; - - -t) - is_target_a_directory=always - dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - shift;; - - -T) is_target_a_directory=never;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac - shift -done - -# We allow the use of options -d and -T together, by making -d -# take the precedence; this is for compatibility with GNU install. - -if test -n "$dir_arg"; then - if test -n "$dst_arg"; then - echo "$0: target directory not allowed when installing a directory." >&2 - exit 1 - fi -fi - -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dst_arg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dst_arg" - shift # fnord - fi - shift # arg - dst_arg=$arg - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - done -fi - -if test $# -eq 0; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call 'install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -if test -z "$dir_arg"; then - if test $# -gt 1 || test "$is_target_a_directory" = always; then - if test ! -d "$dst_arg"; then - echo "$0: $dst_arg: Is not a directory." >&2 - exit 1 - fi - fi -fi - -if test -z "$dir_arg"; then - do_exit='(exit $ret); exit $ret' - trap "ret=129; $do_exit" 1 - trap "ret=130; $do_exit" 2 - trap "ret=141; $do_exit" 13 - trap "ret=143; $do_exit" 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names problematic for 'test' and other utilities. - case $src in - -* | [=\(\)!]) src=./$src;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - else - - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dst_arg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - dst=$dst_arg - - # If destination is a directory, append the input filename. - if test -d "$dst"; then - if test "$is_target_a_directory" = never; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dstbase=`basename "$src"` - case $dst in - */) dst=$dst$dstbase;; - *) dst=$dst/$dstbase;; - esac - dstdir_status=0 - else - dstdir=`dirname "$dst"` - test -d "$dstdir" - dstdir_status=$? - fi - fi - - case $dstdir in - */) dstdirslash=$dstdir;; - *) dstdirslash=$dstdir/;; - esac - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - # Note that $RANDOM variable is not portable (e.g. dash); Use it - # here however when possible just to lower collision chance. - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - - trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 - - # Because "mkdir -p" follows existing symlinks and we likely work - # directly in world-writeable /tmp, make sure that the '$tmpdir' - # directory is successfully created first before we actually test - # 'mkdir -p' feature. - if (umask $mkdir_umask && - $mkdirprog $mkdir_mode "$tmpdir" && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - test_tmpdir="$tmpdir/a" - ls_ld_tmpdir=`ls -ld "$test_tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null - fi - trap '' 0;; - esac;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # The umask is ridiculous, or mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix='/';; - [-=\(\)!]*) prefix='./';; - *) prefix='';; - esac - - oIFS=$IFS - IFS=/ - set -f - set fnord $dstdir - shift - set +f - IFS=$oIFS - - prefixes= - - for d - do - test X"$d" = X && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # Make a couple of temp file names in the proper directory. - dsttmp=${dstdirslash}_inst.$$_ - rmtmp=${dstdirslash}_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && - { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && - { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && - - # If -C, don't bother to copy if it wouldn't change the file. - if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - set -f && - set X $old && old=:$2:$4:$5:$6 && - set X $new && new=:$2:$4:$5:$6 && - set +f && - test "$old" = "$new" && - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 - then - rm -f "$dsttmp" - else - # Rename the file to the real destination. - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || - - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - fi || exit 1 - - trap '' 0 - fi -done - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/Sources/Vendor/asio/missing b/Sources/Vendor/asio/missing deleted file mode 100755 index 625aeb1..0000000 --- a/Sources/Vendor/asio/missing +++ /dev/null @@ -1,215 +0,0 @@ -#! /bin/sh -# Common wrapper for a few potentially missing GNU programs. - -scriptversion=2018-03-07.03; # UTC - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. -# Originally written by Fran,cois Pinard , 1996. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try '$0 --help' for more information" - exit 1 -fi - -case $1 in - - --is-lightweight) - # Used by our autoconf macros to check whether the available missing - # script is modern enough. - exit 0 - ;; - - --run) - # Back-compat with the calling convention used by older automake. - shift - ;; - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due -to PROGRAM being missing or too old. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - -Supported PROGRAM values: - aclocal autoconf autoheader autom4te automake makeinfo - bison yacc flex lex help2man - -Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and -'g' are ignored when checking the name. - -Send bug reports to ." - exit $? - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - exit $? - ;; - - -*) - echo 1>&2 "$0: unknown '$1' option" - echo 1>&2 "Try '$0 --help' for more information" - exit 1 - ;; - -esac - -# Run the given program, remember its exit status. -"$@"; st=$? - -# If it succeeded, we are done. -test $st -eq 0 && exit 0 - -# Also exit now if we it failed (or wasn't found), and '--version' was -# passed; such an option is passed most likely to detect whether the -# program is present and works. -case $2 in --version|--help) exit $st;; esac - -# Exit code 63 means version mismatch. This often happens when the user -# tries to use an ancient version of a tool on a file that requires a -# minimum version. -if test $st -eq 63; then - msg="probably too old" -elif test $st -eq 127; then - # Program was missing. - msg="missing on your system" -else - # Program was found and executed, but failed. Give up. - exit $st -fi - -perl_URL=https://www.perl.org/ -flex_URL=https://github.com/westes/flex -gnu_software_URL=https://www.gnu.org/software - -program_details () -{ - case $1 in - aclocal|automake) - echo "The '$1' program is part of the GNU Automake package:" - echo "<$gnu_software_URL/automake>" - echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/autoconf>" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - autoconf|autom4te|autoheader) - echo "The '$1' program is part of the GNU Autoconf package:" - echo "<$gnu_software_URL/autoconf/>" - echo "It also requires GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - esac -} - -give_advice () -{ - # Normalize program name to check for. - normalized_program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - - printf '%s\n' "'$1' is $msg." - - configure_deps="'configure.ac' or m4 files included by 'configure.ac'" - case $normalized_program in - autoconf*) - echo "You should only need it if you modified 'configure.ac'," - echo "or m4 files included by it." - program_details 'autoconf' - ;; - autoheader*) - echo "You should only need it if you modified 'acconfig.h' or" - echo "$configure_deps." - program_details 'autoheader' - ;; - automake*) - echo "You should only need it if you modified 'Makefile.am' or" - echo "$configure_deps." - program_details 'automake' - ;; - aclocal*) - echo "You should only need it if you modified 'acinclude.m4' or" - echo "$configure_deps." - program_details 'aclocal' - ;; - autom4te*) - echo "You might have modified some maintainer files that require" - echo "the 'autom4te' program to be rebuilt." - program_details 'autom4te' - ;; - bison*|yacc*) - echo "You should only need it if you modified a '.y' file." - echo "You may want to install the GNU Bison package:" - echo "<$gnu_software_URL/bison/>" - ;; - lex*|flex*) - echo "You should only need it if you modified a '.l' file." - echo "You may want to install the Fast Lexical Analyzer package:" - echo "<$flex_URL>" - ;; - help2man*) - echo "You should only need it if you modified a dependency" \ - "of a man page." - echo "You may want to install the GNU Help2man package:" - echo "<$gnu_software_URL/help2man/>" - ;; - makeinfo*) - echo "You should only need it if you modified a '.texi' file, or" - echo "any other file indirectly affecting the aspect of the manual." - echo "You might want to install the Texinfo package:" - echo "<$gnu_software_URL/texinfo/>" - echo "The spurious makeinfo call might also be the consequence of" - echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" - echo "want to install GNU make:" - echo "<$gnu_software_URL/make/>" - ;; - *) - echo "You might have modified some files without having the proper" - echo "tools for further handling them. Check the 'README' file, it" - echo "often tells you about the needed prerequisites for installing" - echo "this package. You may also peek at any GNU archive site, in" - echo "case some other package contains this missing '$1' program." - ;; - esac -} - -give_advice "$1" | sed -e '1s/^/WARNING: /' \ - -e '2,$s/^/ /' >&2 - -# Propagate the correct exit status (expected to be 127 for a program -# not found, 63 for a program that failed due to version mismatch). -exit $st - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/Sources/Vendor/asio/src/Makefile.am b/Sources/Vendor/asio/src/Makefile.am deleted file mode 100644 index 4ec11cd..0000000 --- a/Sources/Vendor/asio/src/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -if !STANDALONE -EXAMPLES_CPP03 = examples/cpp03 -endif - -if HAVE_CXX11 -EXAMPLES_CPP11 = examples/cpp11 -endif - -if HAVE_CXX14 -EXAMPLES_CPP14 = examples/cpp14 -endif - -SUBDIRS = $(EXAMPLES_CPP03) $(EXAMPLES_CPP11) $(EXAMPLES_CPP14) tests - -DIST_SUBDIRS = examples/cpp03 examples/cpp11 examples/cpp14 examples/cpp17 tests - -EXTRA_DIST = \ - Makefile.mgw \ - Makefile.msc \ - tools/handlerviz.pl - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in diff --git a/Sources/Vendor/asio/src/Makefile.in b/Sources/Vendor/asio/src/Makefile.in deleted file mode 100644 index 144b2e7..0000000 --- a/Sources/Vendor/asio/src/Makefile.in +++ /dev/null @@ -1,605 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir distdir-am -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -@STANDALONE_FALSE@EXAMPLES_CPP03 = examples/cpp03 -@HAVE_CXX11_TRUE@EXAMPLES_CPP11 = examples/cpp11 -@HAVE_CXX14_TRUE@EXAMPLES_CPP14 = examples/cpp14 -SUBDIRS = $(EXAMPLES_CPP03) $(EXAMPLES_CPP11) $(EXAMPLES_CPP14) tests -DIST_SUBDIRS = examples/cpp03 examples/cpp11 examples/cpp14 examples/cpp17 tests -EXTRA_DIST = \ - Makefile.mgw \ - Makefile.msc \ - tools/handlerviz.pl - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in - -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-recursive - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(am__recursive_targets) install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-tags distdir dvi dvi-am \ - html html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/src/Makefile.mgw b/Sources/Vendor/asio/src/Makefile.mgw deleted file mode 100644 index babd6dc..0000000 --- a/Sources/Vendor/asio/src/Makefile.mgw +++ /dev/null @@ -1,223 +0,0 @@ -ifndef BOOSTDIR -BOOSTDIR = ../../boost_1_34_1 -endif - -CXXFLAGS = -g -O2 -Wall -mthreads -I../include -I$(BOOSTDIR) -LDFLAGS = -g -O2 -mthreads -LIBS = -lws2_32 -lmswsock -DEFINES = -D_WIN32_WINNT=0x0501 - -PERFORMANCE_TEST_EXES = \ - tests/performance/client.exe \ - tests/performance/server.exe - -UNIT_TEST_EXES = \ - tests/unit/basic_datagram_socket.exe \ - tests/unit/basic_deadline_timer.exe \ - tests/unit/basic_raw_socket.exe \ - tests/unit/basic_seq_packet_socket.exe \ - tests/unit/basic_serial_port.exe \ - tests/unit/basic_signal_set.exe \ - tests/unit/basic_socket_acceptor.exe \ - tests/unit/basic_stream_socket.exe \ - tests/unit/basic_streambuf.exe \ - tests/unit/basic_waitable_timer.exe \ - tests/unit/buffered_read_stream.exe \ - tests/unit/buffered_stream.exe \ - tests/unit/buffered_write_stream.exe \ - tests/unit/buffer.exe \ - tests/unit/buffers_iterator.exe \ - tests/unit/completion_condition.exe \ - tests/unit/connect.exe \ - tests/unit/coroutine.exe \ - tests/unit/datagram_socket_service.exe \ - tests/unit/deadline_timer_service.exe \ - tests/unit/deadline_timer.exe \ - tests/unit/error.exe \ - tests/unit/generic/basic_endpoint.exe \ - tests/unit/generic/datagram_protocol.exe \ - tests/unit/generic/raw_protocol.exe \ - tests/unit/generic/seq_packet_protocol.exe \ - tests/unit/generic/stream_protocol.exe \ - tests/unit/high_resolution_timer.exe \ - tests/unit/io_context.exe \ - tests/unit/ip/address.exe \ - tests/unit/ip/address_v4.exe \ - tests/unit/ip/address_v6.exe \ - tests/unit/ip/basic_endpoint.exe \ - tests/unit/ip/basic_resolver.exe \ - tests/unit/ip/basic_resolver_entry.exe \ - tests/unit/ip/basic_resolver_iterator.exe \ - tests/unit/ip/basic_resolver_query.exe \ - tests/unit/ip/host_name.exe \ - tests/unit/ip/icmp.exe \ - tests/unit/ip/multicast.exe \ - tests/unit/ip/resolver_query_base.exe \ - tests/unit/ip/resolver_service.exe \ - tests/unit/ip/tcp.exe \ - tests/unit/ip/udp.exe \ - tests/unit/ip/unicast.exe \ - tests/unit/ip/v6_only.exe \ - tests/unit/is_read_buffered.exe \ - tests/unit/is_write_buffered.exe \ - tests/unit/placeholders.exe \ - tests/unit/raw_socket_service.exe \ - tests/unit/read.exe \ - tests/unit/read_at.exe \ - tests/unit/read_until.exe \ - tests/unit/seq_packet_socket_service.exe \ - tests/unit/serial_port.exe \ - tests/unit/serial_port_base.exe \ - tests/unit/serial_port_service.exe \ - tests/unit/signal_set.exe \ - tests/unit/signal_set_service.exe \ - tests/unit/socket_acceptor_service.exe \ - tests/unit/socket_base.exe \ - tests/unit/steady_timer.exe \ - tests/unit/strand.exe \ - tests/unit/stream_socket_service.exe \ - tests/unit/streambuf.exe \ - tests/unit/system_executor.exe \ - tests/unit/system_context.exe \ - tests/unit/system_timer.exe \ - tests/unit/thread.exe \ - tests/unit/time_traits.exe \ - tests/unit/ts/buffer.exe \ - tests/unit/ts/executor.exe \ - tests/unit/ts/internet.exe \ - tests/unit/ts/io_context.exe \ - tests/unit/ts/net.exe \ - tests/unit/ts/netfwd.exe \ - tests/unit/ts/socket.exe \ - tests/unit/ts/timer.exe \ - tests/unit/waitable_timer_service.exe \ - tests/unit/windows/basic_handle.exe \ - tests/unit/windows/basic_object_handle.exe \ - tests/unit/windows/basic_random_access_handle.exe \ - tests/unit/windows/basic_stream_handle.exe \ - tests/unit/windows/object_handle.exe \ - tests/unit/windows/object_handle_service.exe \ - tests/unit/windows/overlapped_ptr.exe \ - tests/unit/windows/random_access_handle.exe \ - tests/unit/windows/random_access_handle_service.exe \ - tests/unit/windows/stream_handle.exe \ - tests/unit/windows/stream_handle_service.exe \ - tests/unit/write.exe \ - tests/unit/write_at.exe - -EXAMPLE_EXES = \ - examples/cpp03/allocation/server.exe \ - examples/cpp03/buffers/reference_counted.exe \ - examples/cpp03/chat/chat_client.exe \ - examples/cpp03/chat/chat_server.exe \ - examples/cpp03/echo/async_tcp_echo_server.exe \ - examples/cpp03/echo/async_udp_echo_server.exe \ - examples/cpp03/echo/blocking_tcp_echo_client.exe \ - examples/cpp03/echo/blocking_tcp_echo_server.exe \ - examples/cpp03/echo/blocking_udp_echo_client.exe \ - examples/cpp03/echo/blocking_udp_echo_server.exe \ - examples/cpp03/http/client/async_client.exe \ - examples/cpp03/http/client/sync_client.exe \ - examples/cpp03/icmp/ping.exe \ - examples/cpp03/invocation/prioritised_handlers.exe \ - examples/cpp03/iostreams/daytime_client.exe \ - examples/cpp03/iostreams/daytime_server.exe \ - examples/cpp03/iostreams/http_client.exe \ - examples/cpp03/multicast/receiver.exe \ - examples/cpp03/multicast/sender.exe \ - examples/cpp03/socks4/sync_client.exe \ - examples/cpp03/timeouts/async_tcp_client.exe \ - examples/cpp03/timeouts/blocking_tcp_client.exe \ - examples/cpp03/timeouts/blocking_token_tcp_client.exe \ - examples/cpp03/timeouts/blocking_udp_client.exe \ - examples/cpp03/timeouts/server.exe \ - examples/cpp03/timers/time_t_timer.exe \ - examples/cpp03/tutorial/timer1/timer.exe \ - examples/cpp03/tutorial/timer2/timer.exe \ - examples/cpp03/tutorial/timer3/timer.exe \ - examples/cpp03/tutorial/timer4/timer.exe \ - examples/cpp03/tutorial/timer5/timer.exe \ - examples/cpp03/tutorial/daytime1/client.exe \ - examples/cpp03/tutorial/daytime2/server.exe \ - examples/cpp03/tutorial/daytime3/server.exe \ - examples/cpp03/tutorial/daytime4/client.exe \ - examples/cpp03/tutorial/daytime5/server.exe \ - examples/cpp03/tutorial/daytime6/server.exe \ - examples/cpp03/tutorial/daytime7/server.exe \ - examples/cpp03/windows/transmit_file.exe - -OTHER_EXAMPLE_EXES = \ - examples/cpp03/http/server/http_server.exe \ - examples/cpp03/http/server2/http_server.exe \ - examples/cpp03/http/server3/http_server.exe \ - examples/cpp03/services/daytime_client.exe - -all: \ - $(PERFORMANCE_TEST_EXES) \ - $(UNIT_TEST_EXES) \ - $(EXAMPLE_EXES) \ - $(OTHER_EXAMPLE_EXES) - -check: $(UNIT_TEST_EXES) $(addprefix run.,$(UNIT_TEST_EXES)) - -$(addprefix run.,$(UNIT_TEST_EXES)):: - @echo === Running $(@:run.%=%) === - @$(@:run.%=%) - @echo. - -clean: - -rm -f $(PERFORMANCE_TEST_EXES) - -rm -f $(PERFORMANCE_TEST_EXES:.exe=.o) - -rm -f $(UNIT_TEST_OBJ) - -rm -f $(UNIT_TEST_EXES) - -rm -f $(UNIT_TEST_EXES:.exe=.o) - -rm -f $(EXAMPLE_EXES) - -rm -f $(EXAMPLE_EXES:.exe=.o) - -rm -f $(OTHER_EXAMPLE_EXES) - -rm -f $(OTHER_EXAMPLE_EXES:.exe=.o) - -$(UNIT_TEST_EXES): %.exe: %.o - g++ -o$@ $(LDFLAGS) $< $(LIBS) - -$(PERFORMANCE_TEST_EXES) $(EXAMPLE_EXES): %.exe: %.o - g++ -o$@ $(LDFLAGS) $< $(LIBS) - -examples/cpp03/http/server/http_server.exe: \ - examples/cpp03/http/server/connection.o \ - examples/cpp03/http/server/connection_manager.o \ - examples/cpp03/http/server/main.o \ - examples/cpp03/http/server/mime_types.o \ - examples/cpp03/http/server/reply.o \ - examples/cpp03/http/server/request_handler.o \ - examples/cpp03/http/server/request_parser.o \ - examples/cpp03/http/server/server.o - g++ -o$@ $(LDFLAGS) $^ $(LIBS) - -examples/cpp03/http/server2/http_server.exe: \ - examples/cpp03/http/server2/connection.o \ - examples/cpp03/http/server2/io_context_pool.o \ - examples/cpp03/http/server2/main.o \ - examples/cpp03/http/server2/mime_types.o \ - examples/cpp03/http/server2/reply.o \ - examples/cpp03/http/server2/request_handler.o \ - examples/cpp03/http/server2/request_parser.o \ - examples/cpp03/http/server2/server.o - g++ -o$@ $(LDFLAGS) $^ $(LIBS) - -examples/cpp03/http/server3/http_server.exe: \ - examples/cpp03/http/server3/connection.o \ - examples/cpp03/http/server3/main.o \ - examples/cpp03/http/server3/mime_types.o \ - examples/cpp03/http/server3/reply.o \ - examples/cpp03/http/server3/request_handler.o \ - examples/cpp03/http/server3/request_parser.o \ - examples/cpp03/http/server3/server.o - g++ -o$@ $(LDFLAGS) $^ $(LIBS) - -examples/cpp03/services/daytime_client.exe: \ - examples/cpp03/services/daytime_client.o \ - examples/cpp03/services/logger_service.o - g++ -o$@ $(LDFLAGS) $^ $(LIBS) - -.cpp.o: - g++ -o$@ -c $(CXXFLAGS) $(DEFINES) $< diff --git a/Sources/Vendor/asio/src/Makefile.msc b/Sources/Vendor/asio/src/Makefile.msc deleted file mode 100644 index 04fbe51..0000000 --- a/Sources/Vendor/asio/src/Makefile.msc +++ /dev/null @@ -1,469 +0,0 @@ -!ifndef BOOSTDIR -BOOSTDIR = ../../boost_1_34_1 -!endif - -COMMON_CXXFLAGS = -nologo -EHac -GR -I. -I../include - -!ifdef WARNINGS -WARNINGS_CXXFLAGS = -W4 -wd4512 -wd4447 -!endif - -!ifdef STATICRTL -! ifdef DEBUG -DEBUG_CXXFLAGS = -Zi -MTd -! else -DEBUG_CXXFLAGS = -O2 -MT -! endif -!else -! ifdef DEBUG -DEBUG_CXXFLAGS = -Zi -MDd -! else -DEBUG_CXXFLAGS = -O2 -MD -! endif -!endif - -!ifdef UNICODE -UNICODE_CXXFLAGS = -DUNICODE -D_UNICODE -!endif - -!ifdef TRACKING -TRACKING_CXXFLAGS = -DASIO_ENABLE_HANDLER_TRACKING -!endif - -!ifndef _WIN32_WINNT -! ifdef STORE -_WIN32_WINNT=0x0603 -! else -_WIN32_WINNT=0x0501 -! endif -!endif - -!ifdef WIN9X -DEFINES = \ - -DASIO_DISABLE_IOCP \ - -D_WIN32_WINNT=$(_WIN32_WINNT) \ - -DBOOST_ALL_NO_LIB \ - -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING -!else -! ifdef STORE -DEFINES = \ - -DWINAPI_FAMILY=WINAPI_FAMILY_PC_APP \ - -DBOOST_ALL_NO_LIB -D_WIN32_WINNT=$(_WIN32_WINNT) \ - -DUNICODE -D_UNICODE \ - -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING -! else -! ifdef WINRT -DEFINES = \ - -ZW -FI SDKDDKVer.h -FI winapifamily.h -DWINAPI_FAMILY=WINAPI_PARTITION_APP \ - -DBOOST_ALL_NO_LIB \ - -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING -! else -DEFINES = \ - -D_WIN32_WINNT=$(_WIN32_WINNT) \ - -DBOOST_ALL_NO_LIB \ - -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING -! endif -! endif -!endif - -!ifdef SEPARATE_COMPILATION -LIBS = asio.lib -SEPARATE_COMPILATION_CXXFLAGS = \ - -DASIO_SEPARATE_COMPILATION \ - -DASIO_ENABLE_CANCELIO -!endif - -!ifdef STANDALONE -STANDALONE_CXXFLAGS = -DASIO_STANDALONE -!else -STANDALONE_CXXFLAGS = -I$(BOOSTDIR) -!endif - -CXXFLAGS = \ - $(COMMON_CXXFLAGS) \ - $(WARNINGS_CXXFLAGS) \ - $(DEBUG_CXXFLAGS) \ - $(UNICODE_CXXFLAGS) \ - $(TRACKING_CXXFLAGS) \ - $(SEPARATE_COMPILATION_CXXFLAGS) \ - $(STANDALONE_CXXFLAGS) - -!ifndef SSLDIR -SSLDIR = ../../openssl-0.9.8g -!endif - -SSL_CXXFLAGS = -I$(SSLDIR)/inc32 - -SSL_LIBS = \ - $(SSLDIR)/out32/libeay32.lib \ - $(SSLDIR)/out32/ssleay32.lib \ - user32.lib advapi32.lib gdi32.lib - -LATENCY_TEST_EXES = \ - tests\latency\tcp_client.exe \ - tests\latency\tcp_server.exe \ - tests\latency\udp_client.exe \ - tests\latency\udp_server.exe - -PERFORMANCE_TEST_EXES = \ - tests\performance\client.exe \ - tests\performance\server.exe - -UNIT_TEST_EXES = \ - tests\unit\basic_datagram_socket.exe \ - tests\unit\basic_deadline_timer.exe \ - tests\unit\basic_raw_socket.exe \ - tests\unit\basic_seq_packet_socket.exe \ - tests\unit\basic_serial_port.exe \ - tests\unit\basic_signal_set.exe \ - tests\unit\basic_socket_acceptor.exe \ - tests\unit\basic_stream_socket.exe \ - tests\unit\basic_streambuf.exe \ - tests\unit\basic_waitable_timer.exe \ - tests\unit\buffered_read_stream.exe \ - tests\unit\buffered_stream.exe \ - tests\unit\buffered_write_stream.exe \ - tests\unit\buffer.exe \ - tests\unit\buffers_iterator.exe \ - tests\unit\completion_condition.exe \ - tests\unit\connect.exe \ - tests\unit\coroutine.exe \ - tests\unit\datagram_socket_service.exe \ - tests\unit\deadline_timer_service.exe \ - tests\unit\deadline_timer.exe \ - tests\unit\error.exe \ - tests\unit\generic\basic_endpoint.exe \ - tests\unit\generic\datagram_protocol.exe \ - tests\unit\generic\raw_protocol.exe \ - tests\unit\generic\seq_packet_protocol.exe \ - tests\unit\generic\stream_protocol.exe \ - tests\unit\high_resolution_timer.exe \ - tests\unit\io_context.exe \ - tests\unit\ip\address.exe \ - tests\unit\ip\address_v4.exe \ - tests\unit\ip\address_v6.exe \ - tests\unit\ip\basic_endpoint.exe \ - tests\unit\ip\basic_resolver.exe \ - tests\unit\ip\basic_resolver_entry.exe \ - tests\unit\ip\basic_resolver_iterator.exe \ - tests\unit\ip\basic_resolver_query.exe \ - tests\unit\ip\host_name.exe \ - tests\unit\ip\icmp.exe \ - tests\unit\ip\multicast.exe \ - tests\unit\ip\resolver_query_base.exe \ - tests\unit\ip\resolver_service.exe \ - tests\unit\ip\tcp.exe \ - tests\unit\ip\udp.exe \ - tests\unit\ip\unicast.exe \ - tests\unit\ip\v6_only.exe \ - tests\unit\is_read_buffered.exe \ - tests\unit\is_write_buffered.exe \ - tests\unit\placeholders.exe \ - tests\unit\raw_socket_service.exe \ - tests\unit\read.exe \ - tests\unit\read_at.exe \ - tests\unit\read_until.exe \ - tests\unit\seq_packet_socket_service.exe \ - tests\unit\serial_port.exe \ - tests\unit\serial_port_base.exe \ - tests\unit\serial_port_service.exe \ - tests\unit\signal_set.exe \ - tests\unit\signal_set_service.exe \ - tests\unit\socket_acceptor_service.exe \ - tests\unit\socket_base.exe \ - tests\unit\strand.exe \ - tests\unit\steady_timer.exe \ - tests\unit\stream_socket_service.exe \ - tests\unit\streambuf.exe \ - tests\unit\system_context.exe \ - tests\unit\system_executor.exe \ - tests\unit\system_timer.exe \ - tests\unit\thread.exe \ - tests\unit\time_traits.exe \ - tests\unit\ts\buffer.exe \ - tests\unit\ts\executor.exe \ - tests\unit\ts\internet.exe \ - tests\unit\ts\io_context.exe \ - tests\unit\ts\net.exe \ - tests\unit\ts\netfwd.exe \ - tests\unit\ts\socket.exe \ - tests\unit\ts\timer.exe \ - tests\unit\waitable_timer_service.exe \ - tests\unit\windows\basic_handle.exe \ - tests\unit\windows\basic_object_handle.exe \ - tests\unit\windows\basic_random_access_handle.exe \ - tests\unit\windows\basic_stream_handle.exe \ - tests\unit\windows\object_handle.exe \ - tests\unit\windows\object_handle_service.exe \ - tests\unit\windows\overlapped_ptr.exe \ - tests\unit\windows\random_access_handle.exe \ - tests\unit\windows\random_access_handle_service.exe \ - tests\unit\windows\stream_handle.exe \ - tests\unit\windows\stream_handle_service.exe \ - tests\unit\write.exe \ - tests\unit\write_at.exe - -CPP03_EXAMPLE_EXES = \ - examples\cpp03\allocation\server.exe \ - examples\cpp03\buffers\reference_counted.exe \ - examples\cpp03\chat\chat_client.exe \ - examples\cpp03\chat\chat_server.exe \ - examples\cpp03\echo\async_tcp_echo_server.exe \ - examples\cpp03\echo\async_udp_echo_server.exe \ - examples\cpp03\echo\blocking_tcp_echo_client.exe \ - examples\cpp03\echo\blocking_tcp_echo_server.exe \ - examples\cpp03\echo\blocking_udp_echo_client.exe \ - examples\cpp03\echo\blocking_udp_echo_server.exe \ - examples\cpp03\http\client\async_client.exe \ - examples\cpp03\http\client\sync_client.exe \ - examples\cpp03\http\server\http_server.exe \ - examples\cpp03\http\server2\http_server.exe \ - examples\cpp03\http\server3\http_server.exe \ - examples\cpp03\http\server4\http_server.exe \ - examples\cpp03\icmp\ping.exe \ - examples\cpp03\invocation\prioritised_handlers.exe \ - examples\cpp03\iostreams\daytime_client.exe \ - examples\cpp03\iostreams\daytime_server.exe \ - examples\cpp03\iostreams\http_client.exe \ - examples\cpp03\multicast\receiver.exe \ - examples\cpp03\multicast\sender.exe \ - examples\cpp03\nonblocking\third_party_lib.exe \ - examples\cpp03\porthopper\client.exe \ - examples\cpp03\porthopper\server.exe \ - examples\cpp03\services\daytime_client.exe \ - examples\cpp03\socks4\sync_client.exe \ - examples\cpp03\timeouts\async_tcp_client.exe \ - examples\cpp03\timeouts\blocking_tcp_client.exe \ - examples\cpp03\timeouts\blocking_token_tcp_client.exe \ - examples\cpp03\timeouts\blocking_udp_client.exe \ - examples\cpp03\timeouts\server.exe \ - examples\cpp03\timers\time_t_timer.exe \ - examples\cpp03\tutorial\timer1\timer.exe \ - examples\cpp03\tutorial\timer2\timer.exe \ - examples\cpp03\tutorial\timer3\timer.exe \ - examples\cpp03\tutorial\timer4\timer.exe \ - examples\cpp03\tutorial\timer5\timer.exe \ - examples\cpp03\tutorial\daytime1\client.exe \ - examples\cpp03\tutorial\daytime2\server.exe \ - examples\cpp03\tutorial\daytime3\server.exe \ - examples\cpp03\tutorial\daytime4\client.exe \ - examples\cpp03\tutorial\daytime5\server.exe \ - examples\cpp03\tutorial\daytime6\server.exe \ - examples\cpp03\tutorial\daytime7\server.exe \ - examples\cpp03\windows\transmit_file.exe - -SSL_UNIT_TEST_EXES = \ - tests\unit\ssl\basic_context.exe \ - tests\unit\ssl\context.exe \ - tests\unit\ssl\context_base.exe \ - tests\unit\ssl\context_service.exe \ - tests\unit\ssl\rfc2818_verification.exe \ - tests\unit\ssl\stream.exe \ - tests\unit\ssl\stream_base.exe \ - tests\unit\ssl\stream_service.exe - -SSL_EXAMPLE_EXES = \ - examples\cpp03\ssl\client.exe \ - examples\cpp03\ssl\server.exe - -!ifdef SEPARATE_COMPILATION -all: asio.lib -asio.lib: asio.cpp - cl -Fe$@ -Foasio.obj $(CXXFLAGS) $(DEFINES) -c asio.cpp - lib -name:asio.lib asio.obj -!endif - -!ifdef STANDALONE -all: \ - $(UNIT_TEST_EXES) -!else -all: \ - $(LATENCY_TEST_EXES) \ - $(PERFORMANCE_TEST_EXES) \ - $(UNIT_TEST_EXES) \ - $(CPP03_EXAMPLE_EXES) -!endif - -ssl: \ - $(SSL_UNIT_TEST_EXES) \ - $(SSL_EXAMPLE_EXES) - -check: $(UNIT_TEST_EXES) - !@echo === Running $** === && $** && echo. - -{tests\latency}.cpp{tests\latency}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{tests\performance}.cpp{tests\performance}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -tests\unit\unit_test.obj: tests\unit\unit_test.cpp - cl -Fe$@ -Fotests\unit\unit_test.obj $(CXXFLAGS) $(DEFINES) -c tests\unit\unit_test.cpp - -{tests\unit}.cpp{tests\unit}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{tests\unit\generic}.cpp{tests\unit\generic}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{tests\unit\ip}.cpp{tests\unit\ip}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{tests\unit\ssl}.cpp{tests\unit\ssl}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(SSL_CXXFLAGS) $(DEFINES) $< $(SSL_LIBS) $(LIBS) -link -opt:ref - -{tests\unit\ts}.cpp{tests\unit\ts}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{tests\unit\windows}.cpp{tests\unit\windows}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\allocation}.cpp{examples\cpp03\allocation}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\buffers}.cpp{examples\cpp03\buffers}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\chat}.cpp{examples\cpp03\chat}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\echo}.cpp{examples\cpp03\echo}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\http\client}.cpp{examples\cpp03\http\client}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\icmp}.cpp{examples\cpp03\icmp}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\invocation}.cpp{examples\cpp03\invocation}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\iostreams}.cpp{examples\cpp03\iostreams}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\multicast}.cpp{examples\cpp03\multicast}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\nonblocking}.cpp{examples\cpp03\nonblocking}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\porthopper}.cpp{examples\cpp03\porthopper}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\socks4}.cpp{examples\cpp03\socks4}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\ssl}.cpp{examples\cpp03\ssl}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(SSL_CXXFLAGS) $(DEFINES) $< $(SSL_LIBS) $(LIBS) -link -opt:ref - -{examples\cpp03\timeouts}.cpp{examples\cpp03\timeouts}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\timers}.cpp{examples\cpp03\timers}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\timer1}.cpp{examples\cpp03\tutorial\timer1}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\timer2}.cpp{examples\cpp03\tutorial\timer2}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\timer3}.cpp{examples\cpp03\tutorial\timer3}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\timer4}.cpp{examples\cpp03\tutorial\timer4}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\timer5}.cpp{examples\cpp03\tutorial\timer5}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\daytime1}.cpp{examples\cpp03\tutorial\daytime1}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\daytime2}.cpp{examples\cpp03\tutorial\daytime2}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\daytime3}.cpp{examples\cpp03\tutorial\daytime3}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\daytime4}.cpp{examples\cpp03\tutorial\daytime4}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\daytime5}.cpp{examples\cpp03\tutorial\daytime5}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\daytime6}.cpp{examples\cpp03\tutorial\daytime6}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\daytime7}.cpp{examples\cpp03\tutorial\daytime7}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\windows}.cpp{examples\cpp03\windows}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp11\executors}.cpp{examples\cpp11\executors}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -examples\cpp03\http\server\http_server.exe: \ - examples\cpp03\http\server\connection.cpp \ - examples\cpp03\http\server\connection_manager.cpp \ - examples\cpp03\http\server\main.cpp \ - examples\cpp03\http\server\mime_types.cpp \ - examples\cpp03\http\server\reply.cpp \ - examples\cpp03\http\server\request_handler.cpp \ - examples\cpp03\http\server\request_parser.cpp \ - examples\cpp03\http\server\server.cpp - cl -Fe$@ -Foexamples\cpp03\http\server\ $(CXXFLAGS) $(DEFINES) $** $(LIBS) -link -opt:ref - -examples\cpp03\http\server2\http_server.exe: \ - examples\cpp03\http\server2\connection.cpp \ - examples\cpp03\http\server2\io_context_pool.cpp \ - examples\cpp03\http\server2\main.cpp \ - examples\cpp03\http\server2\mime_types.cpp \ - examples\cpp03\http\server2\reply.cpp \ - examples\cpp03\http\server2\request_handler.cpp \ - examples\cpp03\http\server2\request_parser.cpp \ - examples\cpp03\http\server2\server.cpp - cl -Fe$@ -Foexamples\cpp03\http\server2\ $(CXXFLAGS) $(DEFINES) $** $(LIBS) -link -opt:ref - -examples\cpp03\http\server3\http_server.exe: \ - examples\cpp03\http\server3\connection.cpp \ - examples\cpp03\http\server3\main.cpp \ - examples\cpp03\http\server3\mime_types.cpp \ - examples\cpp03\http\server3\reply.cpp \ - examples\cpp03\http\server3\request_handler.cpp \ - examples\cpp03\http\server3\request_parser.cpp \ - examples\cpp03\http\server3\server.cpp - cl -Fe$@ -Foexamples\cpp03\http\server3\ $(CXXFLAGS) $(DEFINES) $** $(LIBS) -link -opt:ref - -examples\cpp03\http\server4\http_server.exe: \ - examples\cpp03\http\server4\file_handler.cpp \ - examples\cpp03\http\server4\main.cpp \ - examples\cpp03\http\server4\mime_types.cpp \ - examples\cpp03\http\server4\reply.cpp \ - examples\cpp03\http\server4\request_parser.cpp \ - examples\cpp03\http\server4\server.cpp - cl -Fe$@ -Foexamples\cpp03\http\server4\ $(CXXFLAGS) $(DEFINES) $** $(LIBS) -link -opt:ref - -examples\cpp03\services\daytime_client.exe: \ - examples\cpp03\services\daytime_client.cpp \ - examples\cpp03\services\logger_service.cpp - cl -Fe$@ -Foexamples\cpp03\services\ $(CXXFLAGS) $(DEFINES) $** $(LIBS) -link -opt:ref - -clean: - -del /q /s asio.lib - -del /q /s asio.obj - -del /q /s tests\*.exe - -del /q /s tests\*.exe.manifest - -del /q /s tests\*.exp - -del /q /s tests\*.ilk - -del /q /s tests\*.pdb - -del /q /s tests\*.obj - -del /q /s examples\*.exe - -del /q /s examples\*.exe.manifest - -del /q /s examples\*.exp - -del /q /s examples\*.ilk - -del /q /s examples\*.pdb - -del /q /s examples\*.obj - -del /q /s *.pdb diff --git a/Sources/Vendor/asio/src/asio.cpp b/Sources/Vendor/asio/src/asio.cpp deleted file mode 100644 index cccb6f8..0000000 --- a/Sources/Vendor/asio/src/asio.cpp +++ /dev/null @@ -1,11 +0,0 @@ -// -// asio.cpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "asio/impl/src.hpp" diff --git a/Sources/Vendor/asio/src/asio_ssl.cpp b/Sources/Vendor/asio/src/asio_ssl.cpp deleted file mode 100644 index dd3d6d3..0000000 --- a/Sources/Vendor/asio/src/asio_ssl.cpp +++ /dev/null @@ -1,11 +0,0 @@ -// -// asio_ssl.cpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "asio/ssl/impl/src.hpp" diff --git a/Sources/Vendor/asio/src/examples/cpp03/Makefile.am b/Sources/Vendor/asio/src/examples/cpp03/Makefile.am deleted file mode 100644 index 0e6e0d3..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/Makefile.am +++ /dev/null @@ -1,251 +0,0 @@ -AUTOMAKE_OPTIONS = subdir-objects - -if SEPARATE_COMPILATION -noinst_LIBRARIES = libasio.a -libasio_a_SOURCES = ../../asio.cpp -if HAVE_OPENSSL -libasio_a_SOURCES += ../../asio_ssl.cpp -endif -LDADD = libasio.a -endif - -noinst_PROGRAMS = \ - allocation/server \ - buffers/reference_counted \ - chat/chat_client \ - chat/chat_server \ - echo/async_tcp_echo_server \ - echo/async_udp_echo_server \ - echo/blocking_tcp_echo_client \ - echo/blocking_tcp_echo_server \ - echo/blocking_udp_echo_client \ - echo/blocking_udp_echo_server \ - http/client/async_client \ - http/client/sync_client \ - http/server/http_server \ - http/server2/http_server \ - http/server3/http_server \ - http/server4/http_server \ - icmp/ping \ - invocation/prioritised_handlers \ - iostreams/daytime_client \ - iostreams/daytime_server \ - iostreams/http_client \ - multicast/receiver \ - multicast/sender \ - nonblocking/third_party_lib \ - porthopper/client \ - porthopper/server \ - services/daytime_client \ - socks4/sync_client \ - timeouts/async_tcp_client \ - timeouts/blocking_tcp_client \ - timeouts/blocking_token_tcp_client \ - timeouts/blocking_udp_client \ - timeouts/server \ - timers/time_t_timer \ - tutorial/timer1/timer \ - tutorial/timer2/timer \ - tutorial/timer3/timer \ - tutorial/timer4/timer \ - tutorial/timer5/timer \ - tutorial/daytime1/client \ - tutorial/daytime2/server \ - tutorial/daytime3/server \ - tutorial/daytime4/client \ - tutorial/daytime5/server \ - tutorial/daytime6/server \ - tutorial/daytime7/server - -if !WINDOWS_TARGET -noinst_PROGRAMS += \ - chat/posix_chat_client \ - fork/daemon \ - fork/process_per_connection \ - local/connect_pair \ - local/iostream_client \ - local/stream_server \ - local/stream_client -endif - -if WINDOWS_TARGET -noinst_PROGRAMS += \ - windows/transmit_file -endif - -if HAVE_OPENSSL -noinst_PROGRAMS += \ - ssl/client \ - ssl/server -endif - -if HAVE_BOOST_COROUTINE -noinst_PROGRAMS += \ - spawn/echo_server \ - spawn/parallel_grep -endif - -noinst_HEADERS = \ - chat/chat_message.hpp \ - services/basic_logger.hpp \ - services/logger.hpp \ - services/logger_service.hpp - -AM_CXXFLAGS = -I$(srcdir)/../../../include - -allocation_server_SOURCES = allocation/server.cpp -buffers_reference_counted_SOURCES = buffers/reference_counted.cpp -chat_chat_client_SOURCES = chat/chat_client.cpp -chat_chat_server_SOURCES = chat/chat_server.cpp -echo_async_tcp_echo_server_SOURCES = echo/async_tcp_echo_server.cpp -echo_async_udp_echo_server_SOURCES = echo/async_udp_echo_server.cpp -echo_blocking_tcp_echo_client_SOURCES = echo/blocking_tcp_echo_client.cpp -echo_blocking_tcp_echo_server_SOURCES = echo/blocking_tcp_echo_server.cpp -echo_blocking_udp_echo_client_SOURCES = echo/blocking_udp_echo_client.cpp -echo_blocking_udp_echo_server_SOURCES = echo/blocking_udp_echo_server.cpp -http_client_async_client_SOURCES = http/client/async_client.cpp -http_client_sync_client_SOURCES = http/client/sync_client.cpp -http_server_http_server_SOURCES = \ - http/server/connection.cpp \ - http/server/connection_manager.cpp \ - http/server/main.cpp \ - http/server/mime_types.cpp \ - http/server/reply.cpp \ - http/server/request_handler.cpp \ - http/server/request_parser.cpp \ - http/server/server.cpp -http_server2_http_server_SOURCES = \ - http/server2/connection.cpp \ - http/server2/io_context_pool.cpp \ - http/server2/main.cpp \ - http/server2/mime_types.cpp \ - http/server2/reply.cpp \ - http/server2/request_handler.cpp \ - http/server2/request_parser.cpp \ - http/server2/server.cpp -http_server3_http_server_SOURCES = \ - http/server3/connection.cpp \ - http/server3/main.cpp \ - http/server3/mime_types.cpp \ - http/server3/reply.cpp \ - http/server3/request_handler.cpp \ - http/server3/request_parser.cpp \ - http/server3/server.cpp -http_server4_http_server_SOURCES = \ - http/server4/file_handler.cpp \ - http/server4/main.cpp \ - http/server4/mime_types.cpp \ - http/server4/reply.cpp \ - http/server4/request_parser.cpp \ - http/server4/server.cpp -icmp_ping_SOURCES = icmp/ping.cpp -invocation_prioritised_handlers_SOURCES = invocation/prioritised_handlers.cpp -iostreams_daytime_client_SOURCES = iostreams/daytime_client.cpp -iostreams_daytime_server_SOURCES = iostreams/daytime_server.cpp -iostreams_http_client_SOURCES = iostreams/http_client.cpp -multicast_receiver_SOURCES = multicast/receiver.cpp -multicast_sender_SOURCES = multicast/sender.cpp -nonblocking_third_party_lib_SOURCES = nonblocking/third_party_lib.cpp -porthopper_client_SOURCES = porthopper/client.cpp -porthopper_server_SOURCES = porthopper/server.cpp -services_daytime_client_SOURCES = \ - services/daytime_client.cpp \ - services/logger_service.cpp -socks4_sync_client_SOURCES = socks4/sync_client.cpp -timeouts_async_tcp_client_SOURCES = timeouts/async_tcp_client.cpp -timeouts_blocking_tcp_client_SOURCES = timeouts/blocking_tcp_client.cpp -timeouts_blocking_token_tcp_client_SOURCES = timeouts/blocking_token_tcp_client.cpp -timeouts_blocking_udp_client_SOURCES = timeouts/blocking_udp_client.cpp -timeouts_server_SOURCES = timeouts/server.cpp -timers_time_t_timer_SOURCES = timers/time_t_timer.cpp -tutorial_timer1_timer_SOURCES = tutorial/timer1/timer.cpp -tutorial_timer2_timer_SOURCES = tutorial/timer2/timer.cpp -tutorial_timer3_timer_SOURCES = tutorial/timer3/timer.cpp -tutorial_timer4_timer_SOURCES = tutorial/timer4/timer.cpp -tutorial_timer5_timer_SOURCES = tutorial/timer5/timer.cpp -tutorial_daytime1_client_SOURCES = tutorial/daytime1/client.cpp -tutorial_daytime2_server_SOURCES = tutorial/daytime2/server.cpp -tutorial_daytime3_server_SOURCES = tutorial/daytime3/server.cpp -tutorial_daytime4_client_SOURCES = tutorial/daytime4/client.cpp -tutorial_daytime5_server_SOURCES = tutorial/daytime5/server.cpp -tutorial_daytime6_server_SOURCES = tutorial/daytime6/server.cpp -tutorial_daytime7_server_SOURCES = tutorial/daytime7/server.cpp - -if !WINDOWS_TARGET -chat_posix_chat_client_SOURCES = chat/posix_chat_client.cpp -fork_daemon_SOURCES = fork/daemon.cpp -fork_process_per_connection_SOURCES = fork/process_per_connection.cpp -local_connect_pair_SOURCES = local/connect_pair.cpp -local_iostream_client_SOURCES = local/iostream_client.cpp -local_stream_server_SOURCES = local/stream_server.cpp -local_stream_client_SOURCES = local/stream_client.cpp -endif - -if WINDOWS_TARGET -windows_transmit_file_SOURCES = windows/transmit_file.cpp -endif - -if HAVE_OPENSSL -ssl_client_SOURCES = ssl/client.cpp -ssl_server_SOURCES = ssl/server.cpp -endif - -if HAVE_BOOST_COROUTINE -spawn_echo_server_SOURCES = spawn/echo_server.cpp -spawn_echo_server_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -spawn_parallel_grep_SOURCES = spawn/parallel_grep.cpp -spawn_parallel_grep_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -endif - -EXTRA_DIST = \ - http/server/connection.hpp \ - http/server/connection_manager.hpp \ - http/server/header.hpp \ - http/server/mime_types.hpp \ - http/server/reply.hpp \ - http/server/request.hpp \ - http/server/request_handler.hpp \ - http/server/request_parser.hpp \ - http/server/server.hpp \ - http/server2/connection.hpp \ - http/server2/io_context_pool.hpp \ - http/server2/header.hpp \ - http/server2/mime_types.hpp \ - http/server2/reply.hpp \ - http/server2/request.hpp \ - http/server2/request_handler.hpp \ - http/server2/request_parser.hpp \ - http/server2/server.hpp \ - http/server3/connection.hpp \ - http/server3/header.hpp \ - http/server3/mime_types.hpp \ - http/server3/reply.hpp \ - http/server3/request.hpp \ - http/server3/request_handler.hpp \ - http/server3/request_parser.hpp \ - http/server3/server.hpp \ - http/server4/file_handler.hpp \ - http/server4/header.hpp \ - http/server4/mime_types.hpp \ - http/server4/reply.hpp \ - http/server4/request.hpp \ - http/server4/request_parser.hpp \ - http/server4/server.hpp \ - icmp/icmp_header.hpp \ - icmp/ipv4_header.hpp \ - porthopper/protocol.hpp \ - serialization/client.cpp \ - serialization/server.cpp \ - serialization/connection.hpp \ - serialization/stock.hpp \ - services/basic_logger.hpp \ - services/logger.hpp \ - services/logger_service.hpp \ - socks4/socks4.hpp \ - ssl/README \ - ssl/ca.pem \ - ssl/server.pem \ - ssl/dh2048.pem - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in diff --git a/Sources/Vendor/asio/src/examples/cpp03/Makefile.in b/Sources/Vendor/asio/src/examples/cpp03/Makefile.in deleted file mode 100644 index 2fc8903..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/Makefile.in +++ /dev/null @@ -1,2339 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__append_1 = ../../asio_ssl.cpp -noinst_PROGRAMS = allocation/server$(EXEEXT) \ - buffers/reference_counted$(EXEEXT) chat/chat_client$(EXEEXT) \ - chat/chat_server$(EXEEXT) echo/async_tcp_echo_server$(EXEEXT) \ - echo/async_udp_echo_server$(EXEEXT) \ - echo/blocking_tcp_echo_client$(EXEEXT) \ - echo/blocking_tcp_echo_server$(EXEEXT) \ - echo/blocking_udp_echo_client$(EXEEXT) \ - echo/blocking_udp_echo_server$(EXEEXT) \ - http/client/async_client$(EXEEXT) \ - http/client/sync_client$(EXEEXT) \ - http/server/http_server$(EXEEXT) \ - http/server2/http_server$(EXEEXT) \ - http/server3/http_server$(EXEEXT) \ - http/server4/http_server$(EXEEXT) icmp/ping$(EXEEXT) \ - invocation/prioritised_handlers$(EXEEXT) \ - iostreams/daytime_client$(EXEEXT) \ - iostreams/daytime_server$(EXEEXT) \ - iostreams/http_client$(EXEEXT) multicast/receiver$(EXEEXT) \ - multicast/sender$(EXEEXT) nonblocking/third_party_lib$(EXEEXT) \ - porthopper/client$(EXEEXT) porthopper/server$(EXEEXT) \ - services/daytime_client$(EXEEXT) socks4/sync_client$(EXEEXT) \ - timeouts/async_tcp_client$(EXEEXT) \ - timeouts/blocking_tcp_client$(EXEEXT) \ - timeouts/blocking_token_tcp_client$(EXEEXT) \ - timeouts/blocking_udp_client$(EXEEXT) timeouts/server$(EXEEXT) \ - timers/time_t_timer$(EXEEXT) tutorial/timer1/timer$(EXEEXT) \ - tutorial/timer2/timer$(EXEEXT) tutorial/timer3/timer$(EXEEXT) \ - tutorial/timer4/timer$(EXEEXT) tutorial/timer5/timer$(EXEEXT) \ - tutorial/daytime1/client$(EXEEXT) \ - tutorial/daytime2/server$(EXEEXT) \ - tutorial/daytime3/server$(EXEEXT) \ - tutorial/daytime4/client$(EXEEXT) \ - tutorial/daytime5/server$(EXEEXT) \ - tutorial/daytime6/server$(EXEEXT) \ - tutorial/daytime7/server$(EXEEXT) $(am__EXEEXT_1) \ - $(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_4) -@WINDOWS_TARGET_FALSE@am__append_2 = \ -@WINDOWS_TARGET_FALSE@ chat/posix_chat_client \ -@WINDOWS_TARGET_FALSE@ fork/daemon \ -@WINDOWS_TARGET_FALSE@ fork/process_per_connection \ -@WINDOWS_TARGET_FALSE@ local/connect_pair \ -@WINDOWS_TARGET_FALSE@ local/iostream_client \ -@WINDOWS_TARGET_FALSE@ local/stream_server \ -@WINDOWS_TARGET_FALSE@ local/stream_client - -@WINDOWS_TARGET_TRUE@am__append_3 = \ -@WINDOWS_TARGET_TRUE@ windows/transmit_file - -@HAVE_OPENSSL_TRUE@am__append_4 = \ -@HAVE_OPENSSL_TRUE@ ssl/client \ -@HAVE_OPENSSL_TRUE@ ssl/server - -@HAVE_BOOST_COROUTINE_TRUE@am__append_5 = \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/echo_server \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/parallel_grep - -subdir = src/examples/cpp03 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -@WINDOWS_TARGET_FALSE@am__EXEEXT_1 = chat/posix_chat_client$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ fork/daemon$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ fork/process_per_connection$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/connect_pair$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/iostream_client$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/stream_server$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/stream_client$(EXEEXT) -@WINDOWS_TARGET_TRUE@am__EXEEXT_2 = windows/transmit_file$(EXEEXT) -@HAVE_OPENSSL_TRUE@am__EXEEXT_3 = ssl/client$(EXEEXT) \ -@HAVE_OPENSSL_TRUE@ ssl/server$(EXEEXT) -@HAVE_BOOST_COROUTINE_TRUE@am__EXEEXT_4 = spawn/echo_server$(EXEEXT) \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/parallel_grep$(EXEEXT) -PROGRAMS = $(noinst_PROGRAMS) -LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru -AM_V_AR = $(am__v_AR_@AM_V@) -am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = -libasio_a_AR = $(AR) $(ARFLAGS) -libasio_a_LIBADD = -am__libasio_a_SOURCES_DIST = ../../asio.cpp ../../asio_ssl.cpp -am__dirstamp = $(am__leading_dot)dirstamp -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__objects_1 = ../../asio_ssl.$(OBJEXT) -@SEPARATE_COMPILATION_TRUE@am_libasio_a_OBJECTS = \ -@SEPARATE_COMPILATION_TRUE@ ../../asio.$(OBJEXT) \ -@SEPARATE_COMPILATION_TRUE@ $(am__objects_1) -libasio_a_OBJECTS = $(am_libasio_a_OBJECTS) -am_allocation_server_OBJECTS = allocation/server.$(OBJEXT) -allocation_server_OBJECTS = $(am_allocation_server_OBJECTS) -allocation_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@allocation_server_DEPENDENCIES = libasio.a -am_buffers_reference_counted_OBJECTS = \ - buffers/reference_counted.$(OBJEXT) -buffers_reference_counted_OBJECTS = \ - $(am_buffers_reference_counted_OBJECTS) -buffers_reference_counted_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@buffers_reference_counted_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_chat_chat_client_OBJECTS = chat/chat_client.$(OBJEXT) -chat_chat_client_OBJECTS = $(am_chat_chat_client_OBJECTS) -chat_chat_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@chat_chat_client_DEPENDENCIES = libasio.a -am_chat_chat_server_OBJECTS = chat/chat_server.$(OBJEXT) -chat_chat_server_OBJECTS = $(am_chat_chat_server_OBJECTS) -chat_chat_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@chat_chat_server_DEPENDENCIES = libasio.a -am__chat_posix_chat_client_SOURCES_DIST = chat/posix_chat_client.cpp -@WINDOWS_TARGET_FALSE@am_chat_posix_chat_client_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ chat/posix_chat_client.$(OBJEXT) -chat_posix_chat_client_OBJECTS = $(am_chat_posix_chat_client_OBJECTS) -chat_posix_chat_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@chat_posix_chat_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_async_tcp_echo_server_OBJECTS = \ - echo/async_tcp_echo_server.$(OBJEXT) -echo_async_tcp_echo_server_OBJECTS = \ - $(am_echo_async_tcp_echo_server_OBJECTS) -echo_async_tcp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_async_tcp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_async_udp_echo_server_OBJECTS = \ - echo/async_udp_echo_server.$(OBJEXT) -echo_async_udp_echo_server_OBJECTS = \ - $(am_echo_async_udp_echo_server_OBJECTS) -echo_async_udp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_async_udp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_tcp_echo_client_OBJECTS = \ - echo/blocking_tcp_echo_client.$(OBJEXT) -echo_blocking_tcp_echo_client_OBJECTS = \ - $(am_echo_blocking_tcp_echo_client_OBJECTS) -echo_blocking_tcp_echo_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_tcp_echo_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_tcp_echo_server_OBJECTS = \ - echo/blocking_tcp_echo_server.$(OBJEXT) -echo_blocking_tcp_echo_server_OBJECTS = \ - $(am_echo_blocking_tcp_echo_server_OBJECTS) -echo_blocking_tcp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_tcp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_udp_echo_client_OBJECTS = \ - echo/blocking_udp_echo_client.$(OBJEXT) -echo_blocking_udp_echo_client_OBJECTS = \ - $(am_echo_blocking_udp_echo_client_OBJECTS) -echo_blocking_udp_echo_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_udp_echo_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_udp_echo_server_OBJECTS = \ - echo/blocking_udp_echo_server.$(OBJEXT) -echo_blocking_udp_echo_server_OBJECTS = \ - $(am_echo_blocking_udp_echo_server_OBJECTS) -echo_blocking_udp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_udp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__fork_daemon_SOURCES_DIST = fork/daemon.cpp -@WINDOWS_TARGET_FALSE@am_fork_daemon_OBJECTS = fork/daemon.$(OBJEXT) -fork_daemon_OBJECTS = $(am_fork_daemon_OBJECTS) -fork_daemon_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@fork_daemon_DEPENDENCIES = libasio.a -am__fork_process_per_connection_SOURCES_DIST = \ - fork/process_per_connection.cpp -@WINDOWS_TARGET_FALSE@am_fork_process_per_connection_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ fork/process_per_connection.$(OBJEXT) -fork_process_per_connection_OBJECTS = \ - $(am_fork_process_per_connection_OBJECTS) -fork_process_per_connection_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@fork_process_per_connection_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_http_client_async_client_OBJECTS = \ - http/client/async_client.$(OBJEXT) -http_client_async_client_OBJECTS = \ - $(am_http_client_async_client_OBJECTS) -http_client_async_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@http_client_async_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_http_client_sync_client_OBJECTS = \ - http/client/sync_client.$(OBJEXT) -http_client_sync_client_OBJECTS = \ - $(am_http_client_sync_client_OBJECTS) -http_client_sync_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@http_client_sync_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_http_server_http_server_OBJECTS = http/server/connection.$(OBJEXT) \ - http/server/connection_manager.$(OBJEXT) \ - http/server/main.$(OBJEXT) http/server/mime_types.$(OBJEXT) \ - http/server/reply.$(OBJEXT) \ - http/server/request_handler.$(OBJEXT) \ - http/server/request_parser.$(OBJEXT) \ - http/server/server.$(OBJEXT) -http_server_http_server_OBJECTS = \ - $(am_http_server_http_server_OBJECTS) -http_server_http_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@http_server_http_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_http_server2_http_server_OBJECTS = \ - http/server2/connection.$(OBJEXT) \ - http/server2/io_context_pool.$(OBJEXT) \ - http/server2/main.$(OBJEXT) http/server2/mime_types.$(OBJEXT) \ - http/server2/reply.$(OBJEXT) \ - http/server2/request_handler.$(OBJEXT) \ - http/server2/request_parser.$(OBJEXT) \ - http/server2/server.$(OBJEXT) -http_server2_http_server_OBJECTS = \ - $(am_http_server2_http_server_OBJECTS) -http_server2_http_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@http_server2_http_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_http_server3_http_server_OBJECTS = \ - http/server3/connection.$(OBJEXT) http/server3/main.$(OBJEXT) \ - http/server3/mime_types.$(OBJEXT) http/server3/reply.$(OBJEXT) \ - http/server3/request_handler.$(OBJEXT) \ - http/server3/request_parser.$(OBJEXT) \ - http/server3/server.$(OBJEXT) -http_server3_http_server_OBJECTS = \ - $(am_http_server3_http_server_OBJECTS) -http_server3_http_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@http_server3_http_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_http_server4_http_server_OBJECTS = \ - http/server4/file_handler.$(OBJEXT) \ - http/server4/main.$(OBJEXT) http/server4/mime_types.$(OBJEXT) \ - http/server4/reply.$(OBJEXT) \ - http/server4/request_parser.$(OBJEXT) \ - http/server4/server.$(OBJEXT) -http_server4_http_server_OBJECTS = \ - $(am_http_server4_http_server_OBJECTS) -http_server4_http_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@http_server4_http_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_icmp_ping_OBJECTS = icmp/ping.$(OBJEXT) -icmp_ping_OBJECTS = $(am_icmp_ping_OBJECTS) -icmp_ping_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@icmp_ping_DEPENDENCIES = libasio.a -am_invocation_prioritised_handlers_OBJECTS = \ - invocation/prioritised_handlers.$(OBJEXT) -invocation_prioritised_handlers_OBJECTS = \ - $(am_invocation_prioritised_handlers_OBJECTS) -invocation_prioritised_handlers_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@invocation_prioritised_handlers_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_iostreams_daytime_client_OBJECTS = \ - iostreams/daytime_client.$(OBJEXT) -iostreams_daytime_client_OBJECTS = \ - $(am_iostreams_daytime_client_OBJECTS) -iostreams_daytime_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@iostreams_daytime_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_iostreams_daytime_server_OBJECTS = \ - iostreams/daytime_server.$(OBJEXT) -iostreams_daytime_server_OBJECTS = \ - $(am_iostreams_daytime_server_OBJECTS) -iostreams_daytime_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@iostreams_daytime_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_iostreams_http_client_OBJECTS = iostreams/http_client.$(OBJEXT) -iostreams_http_client_OBJECTS = $(am_iostreams_http_client_OBJECTS) -iostreams_http_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@iostreams_http_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_connect_pair_SOURCES_DIST = local/connect_pair.cpp -@WINDOWS_TARGET_FALSE@am_local_connect_pair_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/connect_pair.$(OBJEXT) -local_connect_pair_OBJECTS = $(am_local_connect_pair_OBJECTS) -local_connect_pair_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_connect_pair_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_iostream_client_SOURCES_DIST = local/iostream_client.cpp -@WINDOWS_TARGET_FALSE@am_local_iostream_client_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/iostream_client.$(OBJEXT) -local_iostream_client_OBJECTS = $(am_local_iostream_client_OBJECTS) -local_iostream_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_iostream_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_stream_client_SOURCES_DIST = local/stream_client.cpp -@WINDOWS_TARGET_FALSE@am_local_stream_client_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/stream_client.$(OBJEXT) -local_stream_client_OBJECTS = $(am_local_stream_client_OBJECTS) -local_stream_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_stream_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_stream_server_SOURCES_DIST = local/stream_server.cpp -@WINDOWS_TARGET_FALSE@am_local_stream_server_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/stream_server.$(OBJEXT) -local_stream_server_OBJECTS = $(am_local_stream_server_OBJECTS) -local_stream_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_stream_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_multicast_receiver_OBJECTS = multicast/receiver.$(OBJEXT) -multicast_receiver_OBJECTS = $(am_multicast_receiver_OBJECTS) -multicast_receiver_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@multicast_receiver_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_multicast_sender_OBJECTS = multicast/sender.$(OBJEXT) -multicast_sender_OBJECTS = $(am_multicast_sender_OBJECTS) -multicast_sender_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@multicast_sender_DEPENDENCIES = libasio.a -am_nonblocking_third_party_lib_OBJECTS = \ - nonblocking/third_party_lib.$(OBJEXT) -nonblocking_third_party_lib_OBJECTS = \ - $(am_nonblocking_third_party_lib_OBJECTS) -nonblocking_third_party_lib_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@nonblocking_third_party_lib_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_porthopper_client_OBJECTS = porthopper/client.$(OBJEXT) -porthopper_client_OBJECTS = $(am_porthopper_client_OBJECTS) -porthopper_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@porthopper_client_DEPENDENCIES = libasio.a -am_porthopper_server_OBJECTS = porthopper/server.$(OBJEXT) -porthopper_server_OBJECTS = $(am_porthopper_server_OBJECTS) -porthopper_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@porthopper_server_DEPENDENCIES = libasio.a -am_services_daytime_client_OBJECTS = \ - services/daytime_client.$(OBJEXT) \ - services/logger_service.$(OBJEXT) -services_daytime_client_OBJECTS = \ - $(am_services_daytime_client_OBJECTS) -services_daytime_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@services_daytime_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_socks4_sync_client_OBJECTS = socks4/sync_client.$(OBJEXT) -socks4_sync_client_OBJECTS = $(am_socks4_sync_client_OBJECTS) -socks4_sync_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@socks4_sync_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__spawn_echo_server_SOURCES_DIST = spawn/echo_server.cpp -@HAVE_BOOST_COROUTINE_TRUE@am_spawn_echo_server_OBJECTS = \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/echo_server.$(OBJEXT) -spawn_echo_server_OBJECTS = $(am_spawn_echo_server_OBJECTS) -@HAVE_BOOST_COROUTINE_TRUE@spawn_echo_server_DEPENDENCIES = $(LDADD) -am__spawn_parallel_grep_SOURCES_DIST = spawn/parallel_grep.cpp -@HAVE_BOOST_COROUTINE_TRUE@am_spawn_parallel_grep_OBJECTS = \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/parallel_grep.$(OBJEXT) -spawn_parallel_grep_OBJECTS = $(am_spawn_parallel_grep_OBJECTS) -@HAVE_BOOST_COROUTINE_TRUE@spawn_parallel_grep_DEPENDENCIES = \ -@HAVE_BOOST_COROUTINE_TRUE@ $(LDADD) -am__ssl_client_SOURCES_DIST = ssl/client.cpp -@HAVE_OPENSSL_TRUE@am_ssl_client_OBJECTS = ssl/client.$(OBJEXT) -ssl_client_OBJECTS = $(am_ssl_client_OBJECTS) -ssl_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@ssl_client_DEPENDENCIES = libasio.a -am__ssl_server_SOURCES_DIST = ssl/server.cpp -@HAVE_OPENSSL_TRUE@am_ssl_server_OBJECTS = ssl/server.$(OBJEXT) -ssl_server_OBJECTS = $(am_ssl_server_OBJECTS) -ssl_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@ssl_server_DEPENDENCIES = libasio.a -am_timeouts_async_tcp_client_OBJECTS = \ - timeouts/async_tcp_client.$(OBJEXT) -timeouts_async_tcp_client_OBJECTS = \ - $(am_timeouts_async_tcp_client_OBJECTS) -timeouts_async_tcp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_async_tcp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_blocking_tcp_client_OBJECTS = \ - timeouts/blocking_tcp_client.$(OBJEXT) -timeouts_blocking_tcp_client_OBJECTS = \ - $(am_timeouts_blocking_tcp_client_OBJECTS) -timeouts_blocking_tcp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_blocking_tcp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_blocking_token_tcp_client_OBJECTS = \ - timeouts/blocking_token_tcp_client.$(OBJEXT) -timeouts_blocking_token_tcp_client_OBJECTS = \ - $(am_timeouts_blocking_token_tcp_client_OBJECTS) -timeouts_blocking_token_tcp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_blocking_token_tcp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_blocking_udp_client_OBJECTS = \ - timeouts/blocking_udp_client.$(OBJEXT) -timeouts_blocking_udp_client_OBJECTS = \ - $(am_timeouts_blocking_udp_client_OBJECTS) -timeouts_blocking_udp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_blocking_udp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_server_OBJECTS = timeouts/server.$(OBJEXT) -timeouts_server_OBJECTS = $(am_timeouts_server_OBJECTS) -timeouts_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_server_DEPENDENCIES = libasio.a -am_timers_time_t_timer_OBJECTS = timers/time_t_timer.$(OBJEXT) -timers_time_t_timer_OBJECTS = $(am_timers_time_t_timer_OBJECTS) -timers_time_t_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timers_time_t_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_daytime1_client_OBJECTS = \ - tutorial/daytime1/client.$(OBJEXT) -tutorial_daytime1_client_OBJECTS = \ - $(am_tutorial_daytime1_client_OBJECTS) -tutorial_daytime1_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_daytime1_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_daytime2_server_OBJECTS = \ - tutorial/daytime2/server.$(OBJEXT) -tutorial_daytime2_server_OBJECTS = \ - $(am_tutorial_daytime2_server_OBJECTS) -tutorial_daytime2_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_daytime2_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_daytime3_server_OBJECTS = \ - tutorial/daytime3/server.$(OBJEXT) -tutorial_daytime3_server_OBJECTS = \ - $(am_tutorial_daytime3_server_OBJECTS) -tutorial_daytime3_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_daytime3_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_daytime4_client_OBJECTS = \ - tutorial/daytime4/client.$(OBJEXT) -tutorial_daytime4_client_OBJECTS = \ - $(am_tutorial_daytime4_client_OBJECTS) -tutorial_daytime4_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_daytime4_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_daytime5_server_OBJECTS = \ - tutorial/daytime5/server.$(OBJEXT) -tutorial_daytime5_server_OBJECTS = \ - $(am_tutorial_daytime5_server_OBJECTS) -tutorial_daytime5_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_daytime5_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_daytime6_server_OBJECTS = \ - tutorial/daytime6/server.$(OBJEXT) -tutorial_daytime6_server_OBJECTS = \ - $(am_tutorial_daytime6_server_OBJECTS) -tutorial_daytime6_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_daytime6_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_daytime7_server_OBJECTS = \ - tutorial/daytime7/server.$(OBJEXT) -tutorial_daytime7_server_OBJECTS = \ - $(am_tutorial_daytime7_server_OBJECTS) -tutorial_daytime7_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_daytime7_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_timer1_timer_OBJECTS = tutorial/timer1/timer.$(OBJEXT) -tutorial_timer1_timer_OBJECTS = $(am_tutorial_timer1_timer_OBJECTS) -tutorial_timer1_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_timer1_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_timer2_timer_OBJECTS = tutorial/timer2/timer.$(OBJEXT) -tutorial_timer2_timer_OBJECTS = $(am_tutorial_timer2_timer_OBJECTS) -tutorial_timer2_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_timer2_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_timer3_timer_OBJECTS = tutorial/timer3/timer.$(OBJEXT) -tutorial_timer3_timer_OBJECTS = $(am_tutorial_timer3_timer_OBJECTS) -tutorial_timer3_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_timer3_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_timer4_timer_OBJECTS = tutorial/timer4/timer.$(OBJEXT) -tutorial_timer4_timer_OBJECTS = $(am_tutorial_timer4_timer_OBJECTS) -tutorial_timer4_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_timer4_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_timer5_timer_OBJECTS = tutorial/timer5/timer.$(OBJEXT) -tutorial_timer5_timer_OBJECTS = $(am_tutorial_timer5_timer_OBJECTS) -tutorial_timer5_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_timer5_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__windows_transmit_file_SOURCES_DIST = windows/transmit_file.cpp -@WINDOWS_TARGET_TRUE@am_windows_transmit_file_OBJECTS = \ -@WINDOWS_TARGET_TRUE@ windows/transmit_file.$(OBJEXT) -windows_transmit_file_OBJECTS = $(am_windows_transmit_file_OBJECTS) -windows_transmit_file_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@windows_transmit_file_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ../../$(DEPDIR)/asio.Po \ - ../../$(DEPDIR)/asio_ssl.Po allocation/$(DEPDIR)/server.Po \ - buffers/$(DEPDIR)/reference_counted.Po \ - chat/$(DEPDIR)/chat_client.Po chat/$(DEPDIR)/chat_server.Po \ - chat/$(DEPDIR)/posix_chat_client.Po \ - echo/$(DEPDIR)/async_tcp_echo_server.Po \ - echo/$(DEPDIR)/async_udp_echo_server.Po \ - echo/$(DEPDIR)/blocking_tcp_echo_client.Po \ - echo/$(DEPDIR)/blocking_tcp_echo_server.Po \ - echo/$(DEPDIR)/blocking_udp_echo_client.Po \ - echo/$(DEPDIR)/blocking_udp_echo_server.Po \ - fork/$(DEPDIR)/daemon.Po \ - fork/$(DEPDIR)/process_per_connection.Po \ - http/client/$(DEPDIR)/async_client.Po \ - http/client/$(DEPDIR)/sync_client.Po \ - http/server/$(DEPDIR)/connection.Po \ - http/server/$(DEPDIR)/connection_manager.Po \ - http/server/$(DEPDIR)/main.Po \ - http/server/$(DEPDIR)/mime_types.Po \ - http/server/$(DEPDIR)/reply.Po \ - http/server/$(DEPDIR)/request_handler.Po \ - http/server/$(DEPDIR)/request_parser.Po \ - http/server/$(DEPDIR)/server.Po \ - http/server2/$(DEPDIR)/connection.Po \ - http/server2/$(DEPDIR)/io_context_pool.Po \ - http/server2/$(DEPDIR)/main.Po \ - http/server2/$(DEPDIR)/mime_types.Po \ - http/server2/$(DEPDIR)/reply.Po \ - http/server2/$(DEPDIR)/request_handler.Po \ - http/server2/$(DEPDIR)/request_parser.Po \ - http/server2/$(DEPDIR)/server.Po \ - http/server3/$(DEPDIR)/connection.Po \ - http/server3/$(DEPDIR)/main.Po \ - http/server3/$(DEPDIR)/mime_types.Po \ - http/server3/$(DEPDIR)/reply.Po \ - http/server3/$(DEPDIR)/request_handler.Po \ - http/server3/$(DEPDIR)/request_parser.Po \ - http/server3/$(DEPDIR)/server.Po \ - http/server4/$(DEPDIR)/file_handler.Po \ - http/server4/$(DEPDIR)/main.Po \ - http/server4/$(DEPDIR)/mime_types.Po \ - http/server4/$(DEPDIR)/reply.Po \ - http/server4/$(DEPDIR)/request_parser.Po \ - http/server4/$(DEPDIR)/server.Po icmp/$(DEPDIR)/ping.Po \ - invocation/$(DEPDIR)/prioritised_handlers.Po \ - iostreams/$(DEPDIR)/daytime_client.Po \ - iostreams/$(DEPDIR)/daytime_server.Po \ - iostreams/$(DEPDIR)/http_client.Po \ - local/$(DEPDIR)/connect_pair.Po \ - local/$(DEPDIR)/iostream_client.Po \ - local/$(DEPDIR)/stream_client.Po \ - local/$(DEPDIR)/stream_server.Po \ - multicast/$(DEPDIR)/receiver.Po multicast/$(DEPDIR)/sender.Po \ - nonblocking/$(DEPDIR)/third_party_lib.Po \ - porthopper/$(DEPDIR)/client.Po porthopper/$(DEPDIR)/server.Po \ - services/$(DEPDIR)/daytime_client.Po \ - services/$(DEPDIR)/logger_service.Po \ - socks4/$(DEPDIR)/sync_client.Po spawn/$(DEPDIR)/echo_server.Po \ - spawn/$(DEPDIR)/parallel_grep.Po ssl/$(DEPDIR)/client.Po \ - ssl/$(DEPDIR)/server.Po timeouts/$(DEPDIR)/async_tcp_client.Po \ - timeouts/$(DEPDIR)/blocking_tcp_client.Po \ - timeouts/$(DEPDIR)/blocking_token_tcp_client.Po \ - timeouts/$(DEPDIR)/blocking_udp_client.Po \ - timeouts/$(DEPDIR)/server.Po timers/$(DEPDIR)/time_t_timer.Po \ - tutorial/daytime1/$(DEPDIR)/client.Po \ - tutorial/daytime2/$(DEPDIR)/server.Po \ - tutorial/daytime3/$(DEPDIR)/server.Po \ - tutorial/daytime4/$(DEPDIR)/client.Po \ - tutorial/daytime5/$(DEPDIR)/server.Po \ - tutorial/daytime6/$(DEPDIR)/server.Po \ - tutorial/daytime7/$(DEPDIR)/server.Po \ - tutorial/timer1/$(DEPDIR)/timer.Po \ - tutorial/timer2/$(DEPDIR)/timer.Po \ - tutorial/timer3/$(DEPDIR)/timer.Po \ - tutorial/timer4/$(DEPDIR)/timer.Po \ - tutorial/timer5/$(DEPDIR)/timer.Po \ - windows/$(DEPDIR)/transmit_file.Po -am__mv = mv -f -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -AM_V_CXX = $(am__v_CXX_@AM_V@) -am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) -am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = -SOURCES = $(libasio_a_SOURCES) $(allocation_server_SOURCES) \ - $(buffers_reference_counted_SOURCES) \ - $(chat_chat_client_SOURCES) $(chat_chat_server_SOURCES) \ - $(chat_posix_chat_client_SOURCES) \ - $(echo_async_tcp_echo_server_SOURCES) \ - $(echo_async_udp_echo_server_SOURCES) \ - $(echo_blocking_tcp_echo_client_SOURCES) \ - $(echo_blocking_tcp_echo_server_SOURCES) \ - $(echo_blocking_udp_echo_client_SOURCES) \ - $(echo_blocking_udp_echo_server_SOURCES) \ - $(fork_daemon_SOURCES) $(fork_process_per_connection_SOURCES) \ - $(http_client_async_client_SOURCES) \ - $(http_client_sync_client_SOURCES) \ - $(http_server_http_server_SOURCES) \ - $(http_server2_http_server_SOURCES) \ - $(http_server3_http_server_SOURCES) \ - $(http_server4_http_server_SOURCES) $(icmp_ping_SOURCES) \ - $(invocation_prioritised_handlers_SOURCES) \ - $(iostreams_daytime_client_SOURCES) \ - $(iostreams_daytime_server_SOURCES) \ - $(iostreams_http_client_SOURCES) $(local_connect_pair_SOURCES) \ - $(local_iostream_client_SOURCES) \ - $(local_stream_client_SOURCES) $(local_stream_server_SOURCES) \ - $(multicast_receiver_SOURCES) $(multicast_sender_SOURCES) \ - $(nonblocking_third_party_lib_SOURCES) \ - $(porthopper_client_SOURCES) $(porthopper_server_SOURCES) \ - $(services_daytime_client_SOURCES) \ - $(socks4_sync_client_SOURCES) $(spawn_echo_server_SOURCES) \ - $(spawn_parallel_grep_SOURCES) $(ssl_client_SOURCES) \ - $(ssl_server_SOURCES) $(timeouts_async_tcp_client_SOURCES) \ - $(timeouts_blocking_tcp_client_SOURCES) \ - $(timeouts_blocking_token_tcp_client_SOURCES) \ - $(timeouts_blocking_udp_client_SOURCES) \ - $(timeouts_server_SOURCES) $(timers_time_t_timer_SOURCES) \ - $(tutorial_daytime1_client_SOURCES) \ - $(tutorial_daytime2_server_SOURCES) \ - $(tutorial_daytime3_server_SOURCES) \ - $(tutorial_daytime4_client_SOURCES) \ - $(tutorial_daytime5_server_SOURCES) \ - $(tutorial_daytime6_server_SOURCES) \ - $(tutorial_daytime7_server_SOURCES) \ - $(tutorial_timer1_timer_SOURCES) \ - $(tutorial_timer2_timer_SOURCES) \ - $(tutorial_timer3_timer_SOURCES) \ - $(tutorial_timer4_timer_SOURCES) \ - $(tutorial_timer5_timer_SOURCES) \ - $(windows_transmit_file_SOURCES) -DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ - $(allocation_server_SOURCES) \ - $(buffers_reference_counted_SOURCES) \ - $(chat_chat_client_SOURCES) $(chat_chat_server_SOURCES) \ - $(am__chat_posix_chat_client_SOURCES_DIST) \ - $(echo_async_tcp_echo_server_SOURCES) \ - $(echo_async_udp_echo_server_SOURCES) \ - $(echo_blocking_tcp_echo_client_SOURCES) \ - $(echo_blocking_tcp_echo_server_SOURCES) \ - $(echo_blocking_udp_echo_client_SOURCES) \ - $(echo_blocking_udp_echo_server_SOURCES) \ - $(am__fork_daemon_SOURCES_DIST) \ - $(am__fork_process_per_connection_SOURCES_DIST) \ - $(http_client_async_client_SOURCES) \ - $(http_client_sync_client_SOURCES) \ - $(http_server_http_server_SOURCES) \ - $(http_server2_http_server_SOURCES) \ - $(http_server3_http_server_SOURCES) \ - $(http_server4_http_server_SOURCES) $(icmp_ping_SOURCES) \ - $(invocation_prioritised_handlers_SOURCES) \ - $(iostreams_daytime_client_SOURCES) \ - $(iostreams_daytime_server_SOURCES) \ - $(iostreams_http_client_SOURCES) \ - $(am__local_connect_pair_SOURCES_DIST) \ - $(am__local_iostream_client_SOURCES_DIST) \ - $(am__local_stream_client_SOURCES_DIST) \ - $(am__local_stream_server_SOURCES_DIST) \ - $(multicast_receiver_SOURCES) $(multicast_sender_SOURCES) \ - $(nonblocking_third_party_lib_SOURCES) \ - $(porthopper_client_SOURCES) $(porthopper_server_SOURCES) \ - $(services_daytime_client_SOURCES) \ - $(socks4_sync_client_SOURCES) \ - $(am__spawn_echo_server_SOURCES_DIST) \ - $(am__spawn_parallel_grep_SOURCES_DIST) \ - $(am__ssl_client_SOURCES_DIST) $(am__ssl_server_SOURCES_DIST) \ - $(timeouts_async_tcp_client_SOURCES) \ - $(timeouts_blocking_tcp_client_SOURCES) \ - $(timeouts_blocking_token_tcp_client_SOURCES) \ - $(timeouts_blocking_udp_client_SOURCES) \ - $(timeouts_server_SOURCES) $(timers_time_t_timer_SOURCES) \ - $(tutorial_daytime1_client_SOURCES) \ - $(tutorial_daytime2_server_SOURCES) \ - $(tutorial_daytime3_server_SOURCES) \ - $(tutorial_daytime4_client_SOURCES) \ - $(tutorial_daytime5_server_SOURCES) \ - $(tutorial_daytime6_server_SOURCES) \ - $(tutorial_daytime7_server_SOURCES) \ - $(tutorial_timer1_timer_SOURCES) \ - $(tutorial_timer2_timer_SOURCES) \ - $(tutorial_timer3_timer_SOURCES) \ - $(tutorial_timer4_timer_SOURCES) \ - $(tutorial_timer5_timer_SOURCES) \ - $(am__windows_transmit_file_SOURCES_DIST) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -HEADERS = $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = subdir-objects -@SEPARATE_COMPILATION_TRUE@noinst_LIBRARIES = libasio.a -@SEPARATE_COMPILATION_TRUE@libasio_a_SOURCES = ../../asio.cpp \ -@SEPARATE_COMPILATION_TRUE@ $(am__append_1) -@SEPARATE_COMPILATION_TRUE@LDADD = libasio.a -noinst_HEADERS = \ - chat/chat_message.hpp \ - services/basic_logger.hpp \ - services/logger.hpp \ - services/logger_service.hpp - -AM_CXXFLAGS = -I$(srcdir)/../../../include -allocation_server_SOURCES = allocation/server.cpp -buffers_reference_counted_SOURCES = buffers/reference_counted.cpp -chat_chat_client_SOURCES = chat/chat_client.cpp -chat_chat_server_SOURCES = chat/chat_server.cpp -echo_async_tcp_echo_server_SOURCES = echo/async_tcp_echo_server.cpp -echo_async_udp_echo_server_SOURCES = echo/async_udp_echo_server.cpp -echo_blocking_tcp_echo_client_SOURCES = echo/blocking_tcp_echo_client.cpp -echo_blocking_tcp_echo_server_SOURCES = echo/blocking_tcp_echo_server.cpp -echo_blocking_udp_echo_client_SOURCES = echo/blocking_udp_echo_client.cpp -echo_blocking_udp_echo_server_SOURCES = echo/blocking_udp_echo_server.cpp -http_client_async_client_SOURCES = http/client/async_client.cpp -http_client_sync_client_SOURCES = http/client/sync_client.cpp -http_server_http_server_SOURCES = \ - http/server/connection.cpp \ - http/server/connection_manager.cpp \ - http/server/main.cpp \ - http/server/mime_types.cpp \ - http/server/reply.cpp \ - http/server/request_handler.cpp \ - http/server/request_parser.cpp \ - http/server/server.cpp - -http_server2_http_server_SOURCES = \ - http/server2/connection.cpp \ - http/server2/io_context_pool.cpp \ - http/server2/main.cpp \ - http/server2/mime_types.cpp \ - http/server2/reply.cpp \ - http/server2/request_handler.cpp \ - http/server2/request_parser.cpp \ - http/server2/server.cpp - -http_server3_http_server_SOURCES = \ - http/server3/connection.cpp \ - http/server3/main.cpp \ - http/server3/mime_types.cpp \ - http/server3/reply.cpp \ - http/server3/request_handler.cpp \ - http/server3/request_parser.cpp \ - http/server3/server.cpp - -http_server4_http_server_SOURCES = \ - http/server4/file_handler.cpp \ - http/server4/main.cpp \ - http/server4/mime_types.cpp \ - http/server4/reply.cpp \ - http/server4/request_parser.cpp \ - http/server4/server.cpp - -icmp_ping_SOURCES = icmp/ping.cpp -invocation_prioritised_handlers_SOURCES = invocation/prioritised_handlers.cpp -iostreams_daytime_client_SOURCES = iostreams/daytime_client.cpp -iostreams_daytime_server_SOURCES = iostreams/daytime_server.cpp -iostreams_http_client_SOURCES = iostreams/http_client.cpp -multicast_receiver_SOURCES = multicast/receiver.cpp -multicast_sender_SOURCES = multicast/sender.cpp -nonblocking_third_party_lib_SOURCES = nonblocking/third_party_lib.cpp -porthopper_client_SOURCES = porthopper/client.cpp -porthopper_server_SOURCES = porthopper/server.cpp -services_daytime_client_SOURCES = \ - services/daytime_client.cpp \ - services/logger_service.cpp - -socks4_sync_client_SOURCES = socks4/sync_client.cpp -timeouts_async_tcp_client_SOURCES = timeouts/async_tcp_client.cpp -timeouts_blocking_tcp_client_SOURCES = timeouts/blocking_tcp_client.cpp -timeouts_blocking_token_tcp_client_SOURCES = timeouts/blocking_token_tcp_client.cpp -timeouts_blocking_udp_client_SOURCES = timeouts/blocking_udp_client.cpp -timeouts_server_SOURCES = timeouts/server.cpp -timers_time_t_timer_SOURCES = timers/time_t_timer.cpp -tutorial_timer1_timer_SOURCES = tutorial/timer1/timer.cpp -tutorial_timer2_timer_SOURCES = tutorial/timer2/timer.cpp -tutorial_timer3_timer_SOURCES = tutorial/timer3/timer.cpp -tutorial_timer4_timer_SOURCES = tutorial/timer4/timer.cpp -tutorial_timer5_timer_SOURCES = tutorial/timer5/timer.cpp -tutorial_daytime1_client_SOURCES = tutorial/daytime1/client.cpp -tutorial_daytime2_server_SOURCES = tutorial/daytime2/server.cpp -tutorial_daytime3_server_SOURCES = tutorial/daytime3/server.cpp -tutorial_daytime4_client_SOURCES = tutorial/daytime4/client.cpp -tutorial_daytime5_server_SOURCES = tutorial/daytime5/server.cpp -tutorial_daytime6_server_SOURCES = tutorial/daytime6/server.cpp -tutorial_daytime7_server_SOURCES = tutorial/daytime7/server.cpp -@WINDOWS_TARGET_FALSE@chat_posix_chat_client_SOURCES = chat/posix_chat_client.cpp -@WINDOWS_TARGET_FALSE@fork_daemon_SOURCES = fork/daemon.cpp -@WINDOWS_TARGET_FALSE@fork_process_per_connection_SOURCES = fork/process_per_connection.cpp -@WINDOWS_TARGET_FALSE@local_connect_pair_SOURCES = local/connect_pair.cpp -@WINDOWS_TARGET_FALSE@local_iostream_client_SOURCES = local/iostream_client.cpp -@WINDOWS_TARGET_FALSE@local_stream_server_SOURCES = local/stream_server.cpp -@WINDOWS_TARGET_FALSE@local_stream_client_SOURCES = local/stream_client.cpp -@WINDOWS_TARGET_TRUE@windows_transmit_file_SOURCES = windows/transmit_file.cpp -@HAVE_OPENSSL_TRUE@ssl_client_SOURCES = ssl/client.cpp -@HAVE_OPENSSL_TRUE@ssl_server_SOURCES = ssl/server.cpp -@HAVE_BOOST_COROUTINE_TRUE@spawn_echo_server_SOURCES = spawn/echo_server.cpp -@HAVE_BOOST_COROUTINE_TRUE@spawn_echo_server_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -@HAVE_BOOST_COROUTINE_TRUE@spawn_parallel_grep_SOURCES = spawn/parallel_grep.cpp -@HAVE_BOOST_COROUTINE_TRUE@spawn_parallel_grep_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -EXTRA_DIST = \ - http/server/connection.hpp \ - http/server/connection_manager.hpp \ - http/server/header.hpp \ - http/server/mime_types.hpp \ - http/server/reply.hpp \ - http/server/request.hpp \ - http/server/request_handler.hpp \ - http/server/request_parser.hpp \ - http/server/server.hpp \ - http/server2/connection.hpp \ - http/server2/io_context_pool.hpp \ - http/server2/header.hpp \ - http/server2/mime_types.hpp \ - http/server2/reply.hpp \ - http/server2/request.hpp \ - http/server2/request_handler.hpp \ - http/server2/request_parser.hpp \ - http/server2/server.hpp \ - http/server3/connection.hpp \ - http/server3/header.hpp \ - http/server3/mime_types.hpp \ - http/server3/reply.hpp \ - http/server3/request.hpp \ - http/server3/request_handler.hpp \ - http/server3/request_parser.hpp \ - http/server3/server.hpp \ - http/server4/file_handler.hpp \ - http/server4/header.hpp \ - http/server4/mime_types.hpp \ - http/server4/reply.hpp \ - http/server4/request.hpp \ - http/server4/request_parser.hpp \ - http/server4/server.hpp \ - icmp/icmp_header.hpp \ - icmp/ipv4_header.hpp \ - porthopper/protocol.hpp \ - serialization/client.cpp \ - serialization/server.cpp \ - serialization/connection.hpp \ - serialization/stock.hpp \ - services/basic_logger.hpp \ - services/logger.hpp \ - services/logger_service.hpp \ - socks4/socks4.hpp \ - ssl/README \ - ssl/ca.pem \ - ssl/server.pem \ - ssl/dh2048.pem - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in - -all: all-am - -.SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/examples/cpp03/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/examples/cpp03/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) - -clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -../../$(am__dirstamp): - @$(MKDIR_P) ../.. - @: > ../../$(am__dirstamp) -../../$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../../$(DEPDIR) - @: > ../../$(DEPDIR)/$(am__dirstamp) -../../asio.$(OBJEXT): ../../$(am__dirstamp) \ - ../../$(DEPDIR)/$(am__dirstamp) -../../asio_ssl.$(OBJEXT): ../../$(am__dirstamp) \ - ../../$(DEPDIR)/$(am__dirstamp) - -libasio.a: $(libasio_a_OBJECTS) $(libasio_a_DEPENDENCIES) $(EXTRA_libasio_a_DEPENDENCIES) - $(AM_V_at)-rm -f libasio.a - $(AM_V_AR)$(libasio_a_AR) libasio.a $(libasio_a_OBJECTS) $(libasio_a_LIBADD) - $(AM_V_at)$(RANLIB) libasio.a -allocation/$(am__dirstamp): - @$(MKDIR_P) allocation - @: > allocation/$(am__dirstamp) -allocation/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) allocation/$(DEPDIR) - @: > allocation/$(DEPDIR)/$(am__dirstamp) -allocation/server.$(OBJEXT): allocation/$(am__dirstamp) \ - allocation/$(DEPDIR)/$(am__dirstamp) - -allocation/server$(EXEEXT): $(allocation_server_OBJECTS) $(allocation_server_DEPENDENCIES) $(EXTRA_allocation_server_DEPENDENCIES) allocation/$(am__dirstamp) - @rm -f allocation/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(allocation_server_OBJECTS) $(allocation_server_LDADD) $(LIBS) -buffers/$(am__dirstamp): - @$(MKDIR_P) buffers - @: > buffers/$(am__dirstamp) -buffers/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) buffers/$(DEPDIR) - @: > buffers/$(DEPDIR)/$(am__dirstamp) -buffers/reference_counted.$(OBJEXT): buffers/$(am__dirstamp) \ - buffers/$(DEPDIR)/$(am__dirstamp) - -buffers/reference_counted$(EXEEXT): $(buffers_reference_counted_OBJECTS) $(buffers_reference_counted_DEPENDENCIES) $(EXTRA_buffers_reference_counted_DEPENDENCIES) buffers/$(am__dirstamp) - @rm -f buffers/reference_counted$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(buffers_reference_counted_OBJECTS) $(buffers_reference_counted_LDADD) $(LIBS) -chat/$(am__dirstamp): - @$(MKDIR_P) chat - @: > chat/$(am__dirstamp) -chat/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) chat/$(DEPDIR) - @: > chat/$(DEPDIR)/$(am__dirstamp) -chat/chat_client.$(OBJEXT): chat/$(am__dirstamp) \ - chat/$(DEPDIR)/$(am__dirstamp) - -chat/chat_client$(EXEEXT): $(chat_chat_client_OBJECTS) $(chat_chat_client_DEPENDENCIES) $(EXTRA_chat_chat_client_DEPENDENCIES) chat/$(am__dirstamp) - @rm -f chat/chat_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(chat_chat_client_OBJECTS) $(chat_chat_client_LDADD) $(LIBS) -chat/chat_server.$(OBJEXT): chat/$(am__dirstamp) \ - chat/$(DEPDIR)/$(am__dirstamp) - -chat/chat_server$(EXEEXT): $(chat_chat_server_OBJECTS) $(chat_chat_server_DEPENDENCIES) $(EXTRA_chat_chat_server_DEPENDENCIES) chat/$(am__dirstamp) - @rm -f chat/chat_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(chat_chat_server_OBJECTS) $(chat_chat_server_LDADD) $(LIBS) -chat/posix_chat_client.$(OBJEXT): chat/$(am__dirstamp) \ - chat/$(DEPDIR)/$(am__dirstamp) - -chat/posix_chat_client$(EXEEXT): $(chat_posix_chat_client_OBJECTS) $(chat_posix_chat_client_DEPENDENCIES) $(EXTRA_chat_posix_chat_client_DEPENDENCIES) chat/$(am__dirstamp) - @rm -f chat/posix_chat_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(chat_posix_chat_client_OBJECTS) $(chat_posix_chat_client_LDADD) $(LIBS) -echo/$(am__dirstamp): - @$(MKDIR_P) echo - @: > echo/$(am__dirstamp) -echo/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) echo/$(DEPDIR) - @: > echo/$(DEPDIR)/$(am__dirstamp) -echo/async_tcp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/async_tcp_echo_server$(EXEEXT): $(echo_async_tcp_echo_server_OBJECTS) $(echo_async_tcp_echo_server_DEPENDENCIES) $(EXTRA_echo_async_tcp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/async_tcp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_async_tcp_echo_server_OBJECTS) $(echo_async_tcp_echo_server_LDADD) $(LIBS) -echo/async_udp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/async_udp_echo_server$(EXEEXT): $(echo_async_udp_echo_server_OBJECTS) $(echo_async_udp_echo_server_DEPENDENCIES) $(EXTRA_echo_async_udp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/async_udp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_async_udp_echo_server_OBJECTS) $(echo_async_udp_echo_server_LDADD) $(LIBS) -echo/blocking_tcp_echo_client.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_tcp_echo_client$(EXEEXT): $(echo_blocking_tcp_echo_client_OBJECTS) $(echo_blocking_tcp_echo_client_DEPENDENCIES) $(EXTRA_echo_blocking_tcp_echo_client_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_tcp_echo_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_tcp_echo_client_OBJECTS) $(echo_blocking_tcp_echo_client_LDADD) $(LIBS) -echo/blocking_tcp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_tcp_echo_server$(EXEEXT): $(echo_blocking_tcp_echo_server_OBJECTS) $(echo_blocking_tcp_echo_server_DEPENDENCIES) $(EXTRA_echo_blocking_tcp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_tcp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_tcp_echo_server_OBJECTS) $(echo_blocking_tcp_echo_server_LDADD) $(LIBS) -echo/blocking_udp_echo_client.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_udp_echo_client$(EXEEXT): $(echo_blocking_udp_echo_client_OBJECTS) $(echo_blocking_udp_echo_client_DEPENDENCIES) $(EXTRA_echo_blocking_udp_echo_client_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_udp_echo_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_udp_echo_client_OBJECTS) $(echo_blocking_udp_echo_client_LDADD) $(LIBS) -echo/blocking_udp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_udp_echo_server$(EXEEXT): $(echo_blocking_udp_echo_server_OBJECTS) $(echo_blocking_udp_echo_server_DEPENDENCIES) $(EXTRA_echo_blocking_udp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_udp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_udp_echo_server_OBJECTS) $(echo_blocking_udp_echo_server_LDADD) $(LIBS) -fork/$(am__dirstamp): - @$(MKDIR_P) fork - @: > fork/$(am__dirstamp) -fork/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) fork/$(DEPDIR) - @: > fork/$(DEPDIR)/$(am__dirstamp) -fork/daemon.$(OBJEXT): fork/$(am__dirstamp) \ - fork/$(DEPDIR)/$(am__dirstamp) - -fork/daemon$(EXEEXT): $(fork_daemon_OBJECTS) $(fork_daemon_DEPENDENCIES) $(EXTRA_fork_daemon_DEPENDENCIES) fork/$(am__dirstamp) - @rm -f fork/daemon$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(fork_daemon_OBJECTS) $(fork_daemon_LDADD) $(LIBS) -fork/process_per_connection.$(OBJEXT): fork/$(am__dirstamp) \ - fork/$(DEPDIR)/$(am__dirstamp) - -fork/process_per_connection$(EXEEXT): $(fork_process_per_connection_OBJECTS) $(fork_process_per_connection_DEPENDENCIES) $(EXTRA_fork_process_per_connection_DEPENDENCIES) fork/$(am__dirstamp) - @rm -f fork/process_per_connection$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(fork_process_per_connection_OBJECTS) $(fork_process_per_connection_LDADD) $(LIBS) -http/client/$(am__dirstamp): - @$(MKDIR_P) http/client - @: > http/client/$(am__dirstamp) -http/client/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) http/client/$(DEPDIR) - @: > http/client/$(DEPDIR)/$(am__dirstamp) -http/client/async_client.$(OBJEXT): http/client/$(am__dirstamp) \ - http/client/$(DEPDIR)/$(am__dirstamp) - -http/client/async_client$(EXEEXT): $(http_client_async_client_OBJECTS) $(http_client_async_client_DEPENDENCIES) $(EXTRA_http_client_async_client_DEPENDENCIES) http/client/$(am__dirstamp) - @rm -f http/client/async_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(http_client_async_client_OBJECTS) $(http_client_async_client_LDADD) $(LIBS) -http/client/sync_client.$(OBJEXT): http/client/$(am__dirstamp) \ - http/client/$(DEPDIR)/$(am__dirstamp) - -http/client/sync_client$(EXEEXT): $(http_client_sync_client_OBJECTS) $(http_client_sync_client_DEPENDENCIES) $(EXTRA_http_client_sync_client_DEPENDENCIES) http/client/$(am__dirstamp) - @rm -f http/client/sync_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(http_client_sync_client_OBJECTS) $(http_client_sync_client_LDADD) $(LIBS) -http/server/$(am__dirstamp): - @$(MKDIR_P) http/server - @: > http/server/$(am__dirstamp) -http/server/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) http/server/$(DEPDIR) - @: > http/server/$(DEPDIR)/$(am__dirstamp) -http/server/connection.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/connection_manager.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/main.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/mime_types.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/reply.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/request_handler.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/request_parser.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/server.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) - -http/server/http_server$(EXEEXT): $(http_server_http_server_OBJECTS) $(http_server_http_server_DEPENDENCIES) $(EXTRA_http_server_http_server_DEPENDENCIES) http/server/$(am__dirstamp) - @rm -f http/server/http_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(http_server_http_server_OBJECTS) $(http_server_http_server_LDADD) $(LIBS) -http/server2/$(am__dirstamp): - @$(MKDIR_P) http/server2 - @: > http/server2/$(am__dirstamp) -http/server2/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) http/server2/$(DEPDIR) - @: > http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/connection.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/io_context_pool.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/main.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/mime_types.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/reply.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/request_handler.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/request_parser.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/server.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) - -http/server2/http_server$(EXEEXT): $(http_server2_http_server_OBJECTS) $(http_server2_http_server_DEPENDENCIES) $(EXTRA_http_server2_http_server_DEPENDENCIES) http/server2/$(am__dirstamp) - @rm -f http/server2/http_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(http_server2_http_server_OBJECTS) $(http_server2_http_server_LDADD) $(LIBS) -http/server3/$(am__dirstamp): - @$(MKDIR_P) http/server3 - @: > http/server3/$(am__dirstamp) -http/server3/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) http/server3/$(DEPDIR) - @: > http/server3/$(DEPDIR)/$(am__dirstamp) -http/server3/connection.$(OBJEXT): http/server3/$(am__dirstamp) \ - http/server3/$(DEPDIR)/$(am__dirstamp) -http/server3/main.$(OBJEXT): http/server3/$(am__dirstamp) \ - http/server3/$(DEPDIR)/$(am__dirstamp) -http/server3/mime_types.$(OBJEXT): http/server3/$(am__dirstamp) \ - http/server3/$(DEPDIR)/$(am__dirstamp) -http/server3/reply.$(OBJEXT): http/server3/$(am__dirstamp) \ - http/server3/$(DEPDIR)/$(am__dirstamp) -http/server3/request_handler.$(OBJEXT): http/server3/$(am__dirstamp) \ - http/server3/$(DEPDIR)/$(am__dirstamp) -http/server3/request_parser.$(OBJEXT): http/server3/$(am__dirstamp) \ - http/server3/$(DEPDIR)/$(am__dirstamp) -http/server3/server.$(OBJEXT): http/server3/$(am__dirstamp) \ - http/server3/$(DEPDIR)/$(am__dirstamp) - -http/server3/http_server$(EXEEXT): $(http_server3_http_server_OBJECTS) $(http_server3_http_server_DEPENDENCIES) $(EXTRA_http_server3_http_server_DEPENDENCIES) http/server3/$(am__dirstamp) - @rm -f http/server3/http_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(http_server3_http_server_OBJECTS) $(http_server3_http_server_LDADD) $(LIBS) -http/server4/$(am__dirstamp): - @$(MKDIR_P) http/server4 - @: > http/server4/$(am__dirstamp) -http/server4/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) http/server4/$(DEPDIR) - @: > http/server4/$(DEPDIR)/$(am__dirstamp) -http/server4/file_handler.$(OBJEXT): http/server4/$(am__dirstamp) \ - http/server4/$(DEPDIR)/$(am__dirstamp) -http/server4/main.$(OBJEXT): http/server4/$(am__dirstamp) \ - http/server4/$(DEPDIR)/$(am__dirstamp) -http/server4/mime_types.$(OBJEXT): http/server4/$(am__dirstamp) \ - http/server4/$(DEPDIR)/$(am__dirstamp) -http/server4/reply.$(OBJEXT): http/server4/$(am__dirstamp) \ - http/server4/$(DEPDIR)/$(am__dirstamp) -http/server4/request_parser.$(OBJEXT): http/server4/$(am__dirstamp) \ - http/server4/$(DEPDIR)/$(am__dirstamp) -http/server4/server.$(OBJEXT): http/server4/$(am__dirstamp) \ - http/server4/$(DEPDIR)/$(am__dirstamp) - -http/server4/http_server$(EXEEXT): $(http_server4_http_server_OBJECTS) $(http_server4_http_server_DEPENDENCIES) $(EXTRA_http_server4_http_server_DEPENDENCIES) http/server4/$(am__dirstamp) - @rm -f http/server4/http_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(http_server4_http_server_OBJECTS) $(http_server4_http_server_LDADD) $(LIBS) -icmp/$(am__dirstamp): - @$(MKDIR_P) icmp - @: > icmp/$(am__dirstamp) -icmp/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) icmp/$(DEPDIR) - @: > icmp/$(DEPDIR)/$(am__dirstamp) -icmp/ping.$(OBJEXT): icmp/$(am__dirstamp) \ - icmp/$(DEPDIR)/$(am__dirstamp) - -icmp/ping$(EXEEXT): $(icmp_ping_OBJECTS) $(icmp_ping_DEPENDENCIES) $(EXTRA_icmp_ping_DEPENDENCIES) icmp/$(am__dirstamp) - @rm -f icmp/ping$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(icmp_ping_OBJECTS) $(icmp_ping_LDADD) $(LIBS) -invocation/$(am__dirstamp): - @$(MKDIR_P) invocation - @: > invocation/$(am__dirstamp) -invocation/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) invocation/$(DEPDIR) - @: > invocation/$(DEPDIR)/$(am__dirstamp) -invocation/prioritised_handlers.$(OBJEXT): invocation/$(am__dirstamp) \ - invocation/$(DEPDIR)/$(am__dirstamp) - -invocation/prioritised_handlers$(EXEEXT): $(invocation_prioritised_handlers_OBJECTS) $(invocation_prioritised_handlers_DEPENDENCIES) $(EXTRA_invocation_prioritised_handlers_DEPENDENCIES) invocation/$(am__dirstamp) - @rm -f invocation/prioritised_handlers$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(invocation_prioritised_handlers_OBJECTS) $(invocation_prioritised_handlers_LDADD) $(LIBS) -iostreams/$(am__dirstamp): - @$(MKDIR_P) iostreams - @: > iostreams/$(am__dirstamp) -iostreams/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) iostreams/$(DEPDIR) - @: > iostreams/$(DEPDIR)/$(am__dirstamp) -iostreams/daytime_client.$(OBJEXT): iostreams/$(am__dirstamp) \ - iostreams/$(DEPDIR)/$(am__dirstamp) - -iostreams/daytime_client$(EXEEXT): $(iostreams_daytime_client_OBJECTS) $(iostreams_daytime_client_DEPENDENCIES) $(EXTRA_iostreams_daytime_client_DEPENDENCIES) iostreams/$(am__dirstamp) - @rm -f iostreams/daytime_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(iostreams_daytime_client_OBJECTS) $(iostreams_daytime_client_LDADD) $(LIBS) -iostreams/daytime_server.$(OBJEXT): iostreams/$(am__dirstamp) \ - iostreams/$(DEPDIR)/$(am__dirstamp) - -iostreams/daytime_server$(EXEEXT): $(iostreams_daytime_server_OBJECTS) $(iostreams_daytime_server_DEPENDENCIES) $(EXTRA_iostreams_daytime_server_DEPENDENCIES) iostreams/$(am__dirstamp) - @rm -f iostreams/daytime_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(iostreams_daytime_server_OBJECTS) $(iostreams_daytime_server_LDADD) $(LIBS) -iostreams/http_client.$(OBJEXT): iostreams/$(am__dirstamp) \ - iostreams/$(DEPDIR)/$(am__dirstamp) - -iostreams/http_client$(EXEEXT): $(iostreams_http_client_OBJECTS) $(iostreams_http_client_DEPENDENCIES) $(EXTRA_iostreams_http_client_DEPENDENCIES) iostreams/$(am__dirstamp) - @rm -f iostreams/http_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(iostreams_http_client_OBJECTS) $(iostreams_http_client_LDADD) $(LIBS) -local/$(am__dirstamp): - @$(MKDIR_P) local - @: > local/$(am__dirstamp) -local/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) local/$(DEPDIR) - @: > local/$(DEPDIR)/$(am__dirstamp) -local/connect_pair.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/connect_pair$(EXEEXT): $(local_connect_pair_OBJECTS) $(local_connect_pair_DEPENDENCIES) $(EXTRA_local_connect_pair_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/connect_pair$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_connect_pair_OBJECTS) $(local_connect_pair_LDADD) $(LIBS) -local/iostream_client.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/iostream_client$(EXEEXT): $(local_iostream_client_OBJECTS) $(local_iostream_client_DEPENDENCIES) $(EXTRA_local_iostream_client_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/iostream_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_iostream_client_OBJECTS) $(local_iostream_client_LDADD) $(LIBS) -local/stream_client.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/stream_client$(EXEEXT): $(local_stream_client_OBJECTS) $(local_stream_client_DEPENDENCIES) $(EXTRA_local_stream_client_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/stream_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_stream_client_OBJECTS) $(local_stream_client_LDADD) $(LIBS) -local/stream_server.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/stream_server$(EXEEXT): $(local_stream_server_OBJECTS) $(local_stream_server_DEPENDENCIES) $(EXTRA_local_stream_server_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/stream_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_stream_server_OBJECTS) $(local_stream_server_LDADD) $(LIBS) -multicast/$(am__dirstamp): - @$(MKDIR_P) multicast - @: > multicast/$(am__dirstamp) -multicast/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) multicast/$(DEPDIR) - @: > multicast/$(DEPDIR)/$(am__dirstamp) -multicast/receiver.$(OBJEXT): multicast/$(am__dirstamp) \ - multicast/$(DEPDIR)/$(am__dirstamp) - -multicast/receiver$(EXEEXT): $(multicast_receiver_OBJECTS) $(multicast_receiver_DEPENDENCIES) $(EXTRA_multicast_receiver_DEPENDENCIES) multicast/$(am__dirstamp) - @rm -f multicast/receiver$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(multicast_receiver_OBJECTS) $(multicast_receiver_LDADD) $(LIBS) -multicast/sender.$(OBJEXT): multicast/$(am__dirstamp) \ - multicast/$(DEPDIR)/$(am__dirstamp) - -multicast/sender$(EXEEXT): $(multicast_sender_OBJECTS) $(multicast_sender_DEPENDENCIES) $(EXTRA_multicast_sender_DEPENDENCIES) multicast/$(am__dirstamp) - @rm -f multicast/sender$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(multicast_sender_OBJECTS) $(multicast_sender_LDADD) $(LIBS) -nonblocking/$(am__dirstamp): - @$(MKDIR_P) nonblocking - @: > nonblocking/$(am__dirstamp) -nonblocking/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) nonblocking/$(DEPDIR) - @: > nonblocking/$(DEPDIR)/$(am__dirstamp) -nonblocking/third_party_lib.$(OBJEXT): nonblocking/$(am__dirstamp) \ - nonblocking/$(DEPDIR)/$(am__dirstamp) - -nonblocking/third_party_lib$(EXEEXT): $(nonblocking_third_party_lib_OBJECTS) $(nonblocking_third_party_lib_DEPENDENCIES) $(EXTRA_nonblocking_third_party_lib_DEPENDENCIES) nonblocking/$(am__dirstamp) - @rm -f nonblocking/third_party_lib$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(nonblocking_third_party_lib_OBJECTS) $(nonblocking_third_party_lib_LDADD) $(LIBS) -porthopper/$(am__dirstamp): - @$(MKDIR_P) porthopper - @: > porthopper/$(am__dirstamp) -porthopper/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) porthopper/$(DEPDIR) - @: > porthopper/$(DEPDIR)/$(am__dirstamp) -porthopper/client.$(OBJEXT): porthopper/$(am__dirstamp) \ - porthopper/$(DEPDIR)/$(am__dirstamp) - -porthopper/client$(EXEEXT): $(porthopper_client_OBJECTS) $(porthopper_client_DEPENDENCIES) $(EXTRA_porthopper_client_DEPENDENCIES) porthopper/$(am__dirstamp) - @rm -f porthopper/client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(porthopper_client_OBJECTS) $(porthopper_client_LDADD) $(LIBS) -porthopper/server.$(OBJEXT): porthopper/$(am__dirstamp) \ - porthopper/$(DEPDIR)/$(am__dirstamp) - -porthopper/server$(EXEEXT): $(porthopper_server_OBJECTS) $(porthopper_server_DEPENDENCIES) $(EXTRA_porthopper_server_DEPENDENCIES) porthopper/$(am__dirstamp) - @rm -f porthopper/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(porthopper_server_OBJECTS) $(porthopper_server_LDADD) $(LIBS) -services/$(am__dirstamp): - @$(MKDIR_P) services - @: > services/$(am__dirstamp) -services/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) services/$(DEPDIR) - @: > services/$(DEPDIR)/$(am__dirstamp) -services/daytime_client.$(OBJEXT): services/$(am__dirstamp) \ - services/$(DEPDIR)/$(am__dirstamp) -services/logger_service.$(OBJEXT): services/$(am__dirstamp) \ - services/$(DEPDIR)/$(am__dirstamp) - -services/daytime_client$(EXEEXT): $(services_daytime_client_OBJECTS) $(services_daytime_client_DEPENDENCIES) $(EXTRA_services_daytime_client_DEPENDENCIES) services/$(am__dirstamp) - @rm -f services/daytime_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(services_daytime_client_OBJECTS) $(services_daytime_client_LDADD) $(LIBS) -socks4/$(am__dirstamp): - @$(MKDIR_P) socks4 - @: > socks4/$(am__dirstamp) -socks4/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) socks4/$(DEPDIR) - @: > socks4/$(DEPDIR)/$(am__dirstamp) -socks4/sync_client.$(OBJEXT): socks4/$(am__dirstamp) \ - socks4/$(DEPDIR)/$(am__dirstamp) - -socks4/sync_client$(EXEEXT): $(socks4_sync_client_OBJECTS) $(socks4_sync_client_DEPENDENCIES) $(EXTRA_socks4_sync_client_DEPENDENCIES) socks4/$(am__dirstamp) - @rm -f socks4/sync_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(socks4_sync_client_OBJECTS) $(socks4_sync_client_LDADD) $(LIBS) -spawn/$(am__dirstamp): - @$(MKDIR_P) spawn - @: > spawn/$(am__dirstamp) -spawn/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) spawn/$(DEPDIR) - @: > spawn/$(DEPDIR)/$(am__dirstamp) -spawn/echo_server.$(OBJEXT): spawn/$(am__dirstamp) \ - spawn/$(DEPDIR)/$(am__dirstamp) - -spawn/echo_server$(EXEEXT): $(spawn_echo_server_OBJECTS) $(spawn_echo_server_DEPENDENCIES) $(EXTRA_spawn_echo_server_DEPENDENCIES) spawn/$(am__dirstamp) - @rm -f spawn/echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(spawn_echo_server_OBJECTS) $(spawn_echo_server_LDADD) $(LIBS) -spawn/parallel_grep.$(OBJEXT): spawn/$(am__dirstamp) \ - spawn/$(DEPDIR)/$(am__dirstamp) - -spawn/parallel_grep$(EXEEXT): $(spawn_parallel_grep_OBJECTS) $(spawn_parallel_grep_DEPENDENCIES) $(EXTRA_spawn_parallel_grep_DEPENDENCIES) spawn/$(am__dirstamp) - @rm -f spawn/parallel_grep$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(spawn_parallel_grep_OBJECTS) $(spawn_parallel_grep_LDADD) $(LIBS) -ssl/$(am__dirstamp): - @$(MKDIR_P) ssl - @: > ssl/$(am__dirstamp) -ssl/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ssl/$(DEPDIR) - @: > ssl/$(DEPDIR)/$(am__dirstamp) -ssl/client.$(OBJEXT): ssl/$(am__dirstamp) \ - ssl/$(DEPDIR)/$(am__dirstamp) - -ssl/client$(EXEEXT): $(ssl_client_OBJECTS) $(ssl_client_DEPENDENCIES) $(EXTRA_ssl_client_DEPENDENCIES) ssl/$(am__dirstamp) - @rm -f ssl/client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(ssl_client_OBJECTS) $(ssl_client_LDADD) $(LIBS) -ssl/server.$(OBJEXT): ssl/$(am__dirstamp) \ - ssl/$(DEPDIR)/$(am__dirstamp) - -ssl/server$(EXEEXT): $(ssl_server_OBJECTS) $(ssl_server_DEPENDENCIES) $(EXTRA_ssl_server_DEPENDENCIES) ssl/$(am__dirstamp) - @rm -f ssl/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(ssl_server_OBJECTS) $(ssl_server_LDADD) $(LIBS) -timeouts/$(am__dirstamp): - @$(MKDIR_P) timeouts - @: > timeouts/$(am__dirstamp) -timeouts/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) timeouts/$(DEPDIR) - @: > timeouts/$(DEPDIR)/$(am__dirstamp) -timeouts/async_tcp_client.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/async_tcp_client$(EXEEXT): $(timeouts_async_tcp_client_OBJECTS) $(timeouts_async_tcp_client_DEPENDENCIES) $(EXTRA_timeouts_async_tcp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/async_tcp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_async_tcp_client_OBJECTS) $(timeouts_async_tcp_client_LDADD) $(LIBS) -timeouts/blocking_tcp_client.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/blocking_tcp_client$(EXEEXT): $(timeouts_blocking_tcp_client_OBJECTS) $(timeouts_blocking_tcp_client_DEPENDENCIES) $(EXTRA_timeouts_blocking_tcp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/blocking_tcp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_blocking_tcp_client_OBJECTS) $(timeouts_blocking_tcp_client_LDADD) $(LIBS) -timeouts/blocking_token_tcp_client.$(OBJEXT): \ - timeouts/$(am__dirstamp) timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/blocking_token_tcp_client$(EXEEXT): $(timeouts_blocking_token_tcp_client_OBJECTS) $(timeouts_blocking_token_tcp_client_DEPENDENCIES) $(EXTRA_timeouts_blocking_token_tcp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/blocking_token_tcp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_blocking_token_tcp_client_OBJECTS) $(timeouts_blocking_token_tcp_client_LDADD) $(LIBS) -timeouts/blocking_udp_client.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/blocking_udp_client$(EXEEXT): $(timeouts_blocking_udp_client_OBJECTS) $(timeouts_blocking_udp_client_DEPENDENCIES) $(EXTRA_timeouts_blocking_udp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/blocking_udp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_blocking_udp_client_OBJECTS) $(timeouts_blocking_udp_client_LDADD) $(LIBS) -timeouts/server.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/server$(EXEEXT): $(timeouts_server_OBJECTS) $(timeouts_server_DEPENDENCIES) $(EXTRA_timeouts_server_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_server_OBJECTS) $(timeouts_server_LDADD) $(LIBS) -timers/$(am__dirstamp): - @$(MKDIR_P) timers - @: > timers/$(am__dirstamp) -timers/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) timers/$(DEPDIR) - @: > timers/$(DEPDIR)/$(am__dirstamp) -timers/time_t_timer.$(OBJEXT): timers/$(am__dirstamp) \ - timers/$(DEPDIR)/$(am__dirstamp) - -timers/time_t_timer$(EXEEXT): $(timers_time_t_timer_OBJECTS) $(timers_time_t_timer_DEPENDENCIES) $(EXTRA_timers_time_t_timer_DEPENDENCIES) timers/$(am__dirstamp) - @rm -f timers/time_t_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timers_time_t_timer_OBJECTS) $(timers_time_t_timer_LDADD) $(LIBS) -tutorial/daytime1/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime1 - @: > tutorial/daytime1/$(am__dirstamp) -tutorial/daytime1/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime1/$(DEPDIR) - @: > tutorial/daytime1/$(DEPDIR)/$(am__dirstamp) -tutorial/daytime1/client.$(OBJEXT): tutorial/daytime1/$(am__dirstamp) \ - tutorial/daytime1/$(DEPDIR)/$(am__dirstamp) - -tutorial/daytime1/client$(EXEEXT): $(tutorial_daytime1_client_OBJECTS) $(tutorial_daytime1_client_DEPENDENCIES) $(EXTRA_tutorial_daytime1_client_DEPENDENCIES) tutorial/daytime1/$(am__dirstamp) - @rm -f tutorial/daytime1/client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_daytime1_client_OBJECTS) $(tutorial_daytime1_client_LDADD) $(LIBS) -tutorial/daytime2/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime2 - @: > tutorial/daytime2/$(am__dirstamp) -tutorial/daytime2/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime2/$(DEPDIR) - @: > tutorial/daytime2/$(DEPDIR)/$(am__dirstamp) -tutorial/daytime2/server.$(OBJEXT): tutorial/daytime2/$(am__dirstamp) \ - tutorial/daytime2/$(DEPDIR)/$(am__dirstamp) - -tutorial/daytime2/server$(EXEEXT): $(tutorial_daytime2_server_OBJECTS) $(tutorial_daytime2_server_DEPENDENCIES) $(EXTRA_tutorial_daytime2_server_DEPENDENCIES) tutorial/daytime2/$(am__dirstamp) - @rm -f tutorial/daytime2/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_daytime2_server_OBJECTS) $(tutorial_daytime2_server_LDADD) $(LIBS) -tutorial/daytime3/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime3 - @: > tutorial/daytime3/$(am__dirstamp) -tutorial/daytime3/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime3/$(DEPDIR) - @: > tutorial/daytime3/$(DEPDIR)/$(am__dirstamp) -tutorial/daytime3/server.$(OBJEXT): tutorial/daytime3/$(am__dirstamp) \ - tutorial/daytime3/$(DEPDIR)/$(am__dirstamp) - -tutorial/daytime3/server$(EXEEXT): $(tutorial_daytime3_server_OBJECTS) $(tutorial_daytime3_server_DEPENDENCIES) $(EXTRA_tutorial_daytime3_server_DEPENDENCIES) tutorial/daytime3/$(am__dirstamp) - @rm -f tutorial/daytime3/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_daytime3_server_OBJECTS) $(tutorial_daytime3_server_LDADD) $(LIBS) -tutorial/daytime4/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime4 - @: > tutorial/daytime4/$(am__dirstamp) -tutorial/daytime4/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime4/$(DEPDIR) - @: > tutorial/daytime4/$(DEPDIR)/$(am__dirstamp) -tutorial/daytime4/client.$(OBJEXT): tutorial/daytime4/$(am__dirstamp) \ - tutorial/daytime4/$(DEPDIR)/$(am__dirstamp) - -tutorial/daytime4/client$(EXEEXT): $(tutorial_daytime4_client_OBJECTS) $(tutorial_daytime4_client_DEPENDENCIES) $(EXTRA_tutorial_daytime4_client_DEPENDENCIES) tutorial/daytime4/$(am__dirstamp) - @rm -f tutorial/daytime4/client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_daytime4_client_OBJECTS) $(tutorial_daytime4_client_LDADD) $(LIBS) -tutorial/daytime5/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime5 - @: > tutorial/daytime5/$(am__dirstamp) -tutorial/daytime5/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime5/$(DEPDIR) - @: > tutorial/daytime5/$(DEPDIR)/$(am__dirstamp) -tutorial/daytime5/server.$(OBJEXT): tutorial/daytime5/$(am__dirstamp) \ - tutorial/daytime5/$(DEPDIR)/$(am__dirstamp) - -tutorial/daytime5/server$(EXEEXT): $(tutorial_daytime5_server_OBJECTS) $(tutorial_daytime5_server_DEPENDENCIES) $(EXTRA_tutorial_daytime5_server_DEPENDENCIES) tutorial/daytime5/$(am__dirstamp) - @rm -f tutorial/daytime5/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_daytime5_server_OBJECTS) $(tutorial_daytime5_server_LDADD) $(LIBS) -tutorial/daytime6/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime6 - @: > tutorial/daytime6/$(am__dirstamp) -tutorial/daytime6/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime6/$(DEPDIR) - @: > tutorial/daytime6/$(DEPDIR)/$(am__dirstamp) -tutorial/daytime6/server.$(OBJEXT): tutorial/daytime6/$(am__dirstamp) \ - tutorial/daytime6/$(DEPDIR)/$(am__dirstamp) - -tutorial/daytime6/server$(EXEEXT): $(tutorial_daytime6_server_OBJECTS) $(tutorial_daytime6_server_DEPENDENCIES) $(EXTRA_tutorial_daytime6_server_DEPENDENCIES) tutorial/daytime6/$(am__dirstamp) - @rm -f tutorial/daytime6/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_daytime6_server_OBJECTS) $(tutorial_daytime6_server_LDADD) $(LIBS) -tutorial/daytime7/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime7 - @: > tutorial/daytime7/$(am__dirstamp) -tutorial/daytime7/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime7/$(DEPDIR) - @: > tutorial/daytime7/$(DEPDIR)/$(am__dirstamp) -tutorial/daytime7/server.$(OBJEXT): tutorial/daytime7/$(am__dirstamp) \ - tutorial/daytime7/$(DEPDIR)/$(am__dirstamp) - -tutorial/daytime7/server$(EXEEXT): $(tutorial_daytime7_server_OBJECTS) $(tutorial_daytime7_server_DEPENDENCIES) $(EXTRA_tutorial_daytime7_server_DEPENDENCIES) tutorial/daytime7/$(am__dirstamp) - @rm -f tutorial/daytime7/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_daytime7_server_OBJECTS) $(tutorial_daytime7_server_LDADD) $(LIBS) -tutorial/timer1/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer1 - @: > tutorial/timer1/$(am__dirstamp) -tutorial/timer1/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer1/$(DEPDIR) - @: > tutorial/timer1/$(DEPDIR)/$(am__dirstamp) -tutorial/timer1/timer.$(OBJEXT): tutorial/timer1/$(am__dirstamp) \ - tutorial/timer1/$(DEPDIR)/$(am__dirstamp) - -tutorial/timer1/timer$(EXEEXT): $(tutorial_timer1_timer_OBJECTS) $(tutorial_timer1_timer_DEPENDENCIES) $(EXTRA_tutorial_timer1_timer_DEPENDENCIES) tutorial/timer1/$(am__dirstamp) - @rm -f tutorial/timer1/timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_timer1_timer_OBJECTS) $(tutorial_timer1_timer_LDADD) $(LIBS) -tutorial/timer2/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer2 - @: > tutorial/timer2/$(am__dirstamp) -tutorial/timer2/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer2/$(DEPDIR) - @: > tutorial/timer2/$(DEPDIR)/$(am__dirstamp) -tutorial/timer2/timer.$(OBJEXT): tutorial/timer2/$(am__dirstamp) \ - tutorial/timer2/$(DEPDIR)/$(am__dirstamp) - -tutorial/timer2/timer$(EXEEXT): $(tutorial_timer2_timer_OBJECTS) $(tutorial_timer2_timer_DEPENDENCIES) $(EXTRA_tutorial_timer2_timer_DEPENDENCIES) tutorial/timer2/$(am__dirstamp) - @rm -f tutorial/timer2/timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_timer2_timer_OBJECTS) $(tutorial_timer2_timer_LDADD) $(LIBS) -tutorial/timer3/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer3 - @: > tutorial/timer3/$(am__dirstamp) -tutorial/timer3/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer3/$(DEPDIR) - @: > tutorial/timer3/$(DEPDIR)/$(am__dirstamp) -tutorial/timer3/timer.$(OBJEXT): tutorial/timer3/$(am__dirstamp) \ - tutorial/timer3/$(DEPDIR)/$(am__dirstamp) - -tutorial/timer3/timer$(EXEEXT): $(tutorial_timer3_timer_OBJECTS) $(tutorial_timer3_timer_DEPENDENCIES) $(EXTRA_tutorial_timer3_timer_DEPENDENCIES) tutorial/timer3/$(am__dirstamp) - @rm -f tutorial/timer3/timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_timer3_timer_OBJECTS) $(tutorial_timer3_timer_LDADD) $(LIBS) -tutorial/timer4/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer4 - @: > tutorial/timer4/$(am__dirstamp) -tutorial/timer4/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer4/$(DEPDIR) - @: > tutorial/timer4/$(DEPDIR)/$(am__dirstamp) -tutorial/timer4/timer.$(OBJEXT): tutorial/timer4/$(am__dirstamp) \ - tutorial/timer4/$(DEPDIR)/$(am__dirstamp) - -tutorial/timer4/timer$(EXEEXT): $(tutorial_timer4_timer_OBJECTS) $(tutorial_timer4_timer_DEPENDENCIES) $(EXTRA_tutorial_timer4_timer_DEPENDENCIES) tutorial/timer4/$(am__dirstamp) - @rm -f tutorial/timer4/timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_timer4_timer_OBJECTS) $(tutorial_timer4_timer_LDADD) $(LIBS) -tutorial/timer5/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer5 - @: > tutorial/timer5/$(am__dirstamp) -tutorial/timer5/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer5/$(DEPDIR) - @: > tutorial/timer5/$(DEPDIR)/$(am__dirstamp) -tutorial/timer5/timer.$(OBJEXT): tutorial/timer5/$(am__dirstamp) \ - tutorial/timer5/$(DEPDIR)/$(am__dirstamp) - -tutorial/timer5/timer$(EXEEXT): $(tutorial_timer5_timer_OBJECTS) $(tutorial_timer5_timer_DEPENDENCIES) $(EXTRA_tutorial_timer5_timer_DEPENDENCIES) tutorial/timer5/$(am__dirstamp) - @rm -f tutorial/timer5/timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_timer5_timer_OBJECTS) $(tutorial_timer5_timer_LDADD) $(LIBS) -windows/$(am__dirstamp): - @$(MKDIR_P) windows - @: > windows/$(am__dirstamp) -windows/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) windows/$(DEPDIR) - @: > windows/$(DEPDIR)/$(am__dirstamp) -windows/transmit_file.$(OBJEXT): windows/$(am__dirstamp) \ - windows/$(DEPDIR)/$(am__dirstamp) - -windows/transmit_file$(EXEEXT): $(windows_transmit_file_OBJECTS) $(windows_transmit_file_DEPENDENCIES) $(EXTRA_windows_transmit_file_DEPENDENCIES) windows/$(am__dirstamp) - @rm -f windows/transmit_file$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(windows_transmit_file_OBJECTS) $(windows_transmit_file_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f ../../*.$(OBJEXT) - -rm -f allocation/*.$(OBJEXT) - -rm -f buffers/*.$(OBJEXT) - -rm -f chat/*.$(OBJEXT) - -rm -f echo/*.$(OBJEXT) - -rm -f fork/*.$(OBJEXT) - -rm -f http/client/*.$(OBJEXT) - -rm -f http/server/*.$(OBJEXT) - -rm -f http/server2/*.$(OBJEXT) - -rm -f http/server3/*.$(OBJEXT) - -rm -f http/server4/*.$(OBJEXT) - -rm -f icmp/*.$(OBJEXT) - -rm -f invocation/*.$(OBJEXT) - -rm -f iostreams/*.$(OBJEXT) - -rm -f local/*.$(OBJEXT) - -rm -f multicast/*.$(OBJEXT) - -rm -f nonblocking/*.$(OBJEXT) - -rm -f porthopper/*.$(OBJEXT) - -rm -f services/*.$(OBJEXT) - -rm -f socks4/*.$(OBJEXT) - -rm -f spawn/*.$(OBJEXT) - -rm -f ssl/*.$(OBJEXT) - -rm -f timeouts/*.$(OBJEXT) - -rm -f timers/*.$(OBJEXT) - -rm -f tutorial/daytime1/*.$(OBJEXT) - -rm -f tutorial/daytime2/*.$(OBJEXT) - -rm -f tutorial/daytime3/*.$(OBJEXT) - -rm -f tutorial/daytime4/*.$(OBJEXT) - -rm -f tutorial/daytime5/*.$(OBJEXT) - -rm -f tutorial/daytime6/*.$(OBJEXT) - -rm -f tutorial/daytime7/*.$(OBJEXT) - -rm -f tutorial/timer1/*.$(OBJEXT) - -rm -f tutorial/timer2/*.$(OBJEXT) - -rm -f tutorial/timer3/*.$(OBJEXT) - -rm -f tutorial/timer4/*.$(OBJEXT) - -rm -f tutorial/timer5/*.$(OBJEXT) - -rm -f windows/*.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@../../$(DEPDIR)/asio.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@../../$(DEPDIR)/asio_ssl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@allocation/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@buffers/$(DEPDIR)/reference_counted.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@chat/$(DEPDIR)/chat_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@chat/$(DEPDIR)/chat_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@chat/$(DEPDIR)/posix_chat_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/async_tcp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/async_udp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_tcp_echo_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_tcp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_udp_echo_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_udp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@fork/$(DEPDIR)/daemon.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@fork/$(DEPDIR)/process_per_connection.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/client/$(DEPDIR)/async_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/client/$(DEPDIR)/sync_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/connection.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/connection_manager.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/main.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/mime_types.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/reply.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/request_handler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/request_parser.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/connection.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/io_context_pool.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/main.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/mime_types.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/reply.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/request_handler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/request_parser.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server3/$(DEPDIR)/connection.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server3/$(DEPDIR)/main.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server3/$(DEPDIR)/mime_types.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server3/$(DEPDIR)/reply.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server3/$(DEPDIR)/request_handler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server3/$(DEPDIR)/request_parser.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server3/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server4/$(DEPDIR)/file_handler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server4/$(DEPDIR)/main.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server4/$(DEPDIR)/mime_types.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server4/$(DEPDIR)/reply.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server4/$(DEPDIR)/request_parser.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server4/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@icmp/$(DEPDIR)/ping.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@invocation/$(DEPDIR)/prioritised_handlers.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@iostreams/$(DEPDIR)/daytime_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@iostreams/$(DEPDIR)/daytime_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@iostreams/$(DEPDIR)/http_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/connect_pair.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/iostream_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/stream_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/stream_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@multicast/$(DEPDIR)/receiver.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@multicast/$(DEPDIR)/sender.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@nonblocking/$(DEPDIR)/third_party_lib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@porthopper/$(DEPDIR)/client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@porthopper/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@services/$(DEPDIR)/daytime_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@services/$(DEPDIR)/logger_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@socks4/$(DEPDIR)/sync_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@spawn/$(DEPDIR)/echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@spawn/$(DEPDIR)/parallel_grep.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@ssl/$(DEPDIR)/client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@ssl/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/async_tcp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/blocking_tcp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/blocking_token_tcp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/blocking_udp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timers/$(DEPDIR)/time_t_timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/daytime1/$(DEPDIR)/client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/daytime2/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/daytime3/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/daytime4/$(DEPDIR)/client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/daytime5/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/daytime6/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/daytime7/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/timer1/$(DEPDIR)/timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/timer2/$(DEPDIR)/timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/timer3/$(DEPDIR)/timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/timer4/$(DEPDIR)/timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/timer5/$(DEPDIR)/timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@windows/$(DEPDIR)/transmit_file.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.cpp.o: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) $(LIBRARIES) $(HEADERS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f ../../$(DEPDIR)/$(am__dirstamp) - -rm -f ../../$(am__dirstamp) - -rm -f allocation/$(DEPDIR)/$(am__dirstamp) - -rm -f allocation/$(am__dirstamp) - -rm -f buffers/$(DEPDIR)/$(am__dirstamp) - -rm -f buffers/$(am__dirstamp) - -rm -f chat/$(DEPDIR)/$(am__dirstamp) - -rm -f chat/$(am__dirstamp) - -rm -f echo/$(DEPDIR)/$(am__dirstamp) - -rm -f echo/$(am__dirstamp) - -rm -f fork/$(DEPDIR)/$(am__dirstamp) - -rm -f fork/$(am__dirstamp) - -rm -f http/client/$(DEPDIR)/$(am__dirstamp) - -rm -f http/client/$(am__dirstamp) - -rm -f http/server/$(DEPDIR)/$(am__dirstamp) - -rm -f http/server/$(am__dirstamp) - -rm -f http/server2/$(DEPDIR)/$(am__dirstamp) - -rm -f http/server2/$(am__dirstamp) - -rm -f http/server3/$(DEPDIR)/$(am__dirstamp) - -rm -f http/server3/$(am__dirstamp) - -rm -f http/server4/$(DEPDIR)/$(am__dirstamp) - -rm -f http/server4/$(am__dirstamp) - -rm -f icmp/$(DEPDIR)/$(am__dirstamp) - -rm -f icmp/$(am__dirstamp) - -rm -f invocation/$(DEPDIR)/$(am__dirstamp) - -rm -f invocation/$(am__dirstamp) - -rm -f iostreams/$(DEPDIR)/$(am__dirstamp) - -rm -f iostreams/$(am__dirstamp) - -rm -f local/$(DEPDIR)/$(am__dirstamp) - -rm -f local/$(am__dirstamp) - -rm -f multicast/$(DEPDIR)/$(am__dirstamp) - -rm -f multicast/$(am__dirstamp) - -rm -f nonblocking/$(DEPDIR)/$(am__dirstamp) - -rm -f nonblocking/$(am__dirstamp) - -rm -f porthopper/$(DEPDIR)/$(am__dirstamp) - -rm -f porthopper/$(am__dirstamp) - -rm -f services/$(DEPDIR)/$(am__dirstamp) - -rm -f services/$(am__dirstamp) - -rm -f socks4/$(DEPDIR)/$(am__dirstamp) - -rm -f socks4/$(am__dirstamp) - -rm -f spawn/$(DEPDIR)/$(am__dirstamp) - -rm -f spawn/$(am__dirstamp) - -rm -f ssl/$(DEPDIR)/$(am__dirstamp) - -rm -f ssl/$(am__dirstamp) - -rm -f timeouts/$(DEPDIR)/$(am__dirstamp) - -rm -f timeouts/$(am__dirstamp) - -rm -f timers/$(DEPDIR)/$(am__dirstamp) - -rm -f timers/$(am__dirstamp) - -rm -f tutorial/daytime1/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/daytime1/$(am__dirstamp) - -rm -f tutorial/daytime2/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/daytime2/$(am__dirstamp) - -rm -f tutorial/daytime3/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/daytime3/$(am__dirstamp) - -rm -f tutorial/daytime4/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/daytime4/$(am__dirstamp) - -rm -f tutorial/daytime5/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/daytime5/$(am__dirstamp) - -rm -f tutorial/daytime6/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/daytime6/$(am__dirstamp) - -rm -f tutorial/daytime7/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/daytime7/$(am__dirstamp) - -rm -f tutorial/timer1/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/timer1/$(am__dirstamp) - -rm -f tutorial/timer2/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/timer2/$(am__dirstamp) - -rm -f tutorial/timer3/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/timer3/$(am__dirstamp) - -rm -f tutorial/timer4/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/timer4/$(am__dirstamp) - -rm -f tutorial/timer5/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/timer5/$(am__dirstamp) - -rm -f windows/$(DEPDIR)/$(am__dirstamp) - -rm -f windows/$(am__dirstamp) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -f ../../$(DEPDIR)/asio.Po - -rm -f ../../$(DEPDIR)/asio_ssl.Po - -rm -f allocation/$(DEPDIR)/server.Po - -rm -f buffers/$(DEPDIR)/reference_counted.Po - -rm -f chat/$(DEPDIR)/chat_client.Po - -rm -f chat/$(DEPDIR)/chat_server.Po - -rm -f chat/$(DEPDIR)/posix_chat_client.Po - -rm -f echo/$(DEPDIR)/async_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/async_udp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_server.Po - -rm -f fork/$(DEPDIR)/daemon.Po - -rm -f fork/$(DEPDIR)/process_per_connection.Po - -rm -f http/client/$(DEPDIR)/async_client.Po - -rm -f http/client/$(DEPDIR)/sync_client.Po - -rm -f http/server/$(DEPDIR)/connection.Po - -rm -f http/server/$(DEPDIR)/connection_manager.Po - -rm -f http/server/$(DEPDIR)/main.Po - -rm -f http/server/$(DEPDIR)/mime_types.Po - -rm -f http/server/$(DEPDIR)/reply.Po - -rm -f http/server/$(DEPDIR)/request_handler.Po - -rm -f http/server/$(DEPDIR)/request_parser.Po - -rm -f http/server/$(DEPDIR)/server.Po - -rm -f http/server2/$(DEPDIR)/connection.Po - -rm -f http/server2/$(DEPDIR)/io_context_pool.Po - -rm -f http/server2/$(DEPDIR)/main.Po - -rm -f http/server2/$(DEPDIR)/mime_types.Po - -rm -f http/server2/$(DEPDIR)/reply.Po - -rm -f http/server2/$(DEPDIR)/request_handler.Po - -rm -f http/server2/$(DEPDIR)/request_parser.Po - -rm -f http/server2/$(DEPDIR)/server.Po - -rm -f http/server3/$(DEPDIR)/connection.Po - -rm -f http/server3/$(DEPDIR)/main.Po - -rm -f http/server3/$(DEPDIR)/mime_types.Po - -rm -f http/server3/$(DEPDIR)/reply.Po - -rm -f http/server3/$(DEPDIR)/request_handler.Po - -rm -f http/server3/$(DEPDIR)/request_parser.Po - -rm -f http/server3/$(DEPDIR)/server.Po - -rm -f http/server4/$(DEPDIR)/file_handler.Po - -rm -f http/server4/$(DEPDIR)/main.Po - -rm -f http/server4/$(DEPDIR)/mime_types.Po - -rm -f http/server4/$(DEPDIR)/reply.Po - -rm -f http/server4/$(DEPDIR)/request_parser.Po - -rm -f http/server4/$(DEPDIR)/server.Po - -rm -f icmp/$(DEPDIR)/ping.Po - -rm -f invocation/$(DEPDIR)/prioritised_handlers.Po - -rm -f iostreams/$(DEPDIR)/daytime_client.Po - -rm -f iostreams/$(DEPDIR)/daytime_server.Po - -rm -f iostreams/$(DEPDIR)/http_client.Po - -rm -f local/$(DEPDIR)/connect_pair.Po - -rm -f local/$(DEPDIR)/iostream_client.Po - -rm -f local/$(DEPDIR)/stream_client.Po - -rm -f local/$(DEPDIR)/stream_server.Po - -rm -f multicast/$(DEPDIR)/receiver.Po - -rm -f multicast/$(DEPDIR)/sender.Po - -rm -f nonblocking/$(DEPDIR)/third_party_lib.Po - -rm -f porthopper/$(DEPDIR)/client.Po - -rm -f porthopper/$(DEPDIR)/server.Po - -rm -f services/$(DEPDIR)/daytime_client.Po - -rm -f services/$(DEPDIR)/logger_service.Po - -rm -f socks4/$(DEPDIR)/sync_client.Po - -rm -f spawn/$(DEPDIR)/echo_server.Po - -rm -f spawn/$(DEPDIR)/parallel_grep.Po - -rm -f ssl/$(DEPDIR)/client.Po - -rm -f ssl/$(DEPDIR)/server.Po - -rm -f timeouts/$(DEPDIR)/async_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_token_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_udp_client.Po - -rm -f timeouts/$(DEPDIR)/server.Po - -rm -f timers/$(DEPDIR)/time_t_timer.Po - -rm -f tutorial/daytime1/$(DEPDIR)/client.Po - -rm -f tutorial/daytime2/$(DEPDIR)/server.Po - -rm -f tutorial/daytime3/$(DEPDIR)/server.Po - -rm -f tutorial/daytime4/$(DEPDIR)/client.Po - -rm -f tutorial/daytime5/$(DEPDIR)/server.Po - -rm -f tutorial/daytime6/$(DEPDIR)/server.Po - -rm -f tutorial/daytime7/$(DEPDIR)/server.Po - -rm -f tutorial/timer1/$(DEPDIR)/timer.Po - -rm -f tutorial/timer2/$(DEPDIR)/timer.Po - -rm -f tutorial/timer3/$(DEPDIR)/timer.Po - -rm -f tutorial/timer4/$(DEPDIR)/timer.Po - -rm -f tutorial/timer5/$(DEPDIR)/timer.Po - -rm -f windows/$(DEPDIR)/transmit_file.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ../../$(DEPDIR)/asio.Po - -rm -f ../../$(DEPDIR)/asio_ssl.Po - -rm -f allocation/$(DEPDIR)/server.Po - -rm -f buffers/$(DEPDIR)/reference_counted.Po - -rm -f chat/$(DEPDIR)/chat_client.Po - -rm -f chat/$(DEPDIR)/chat_server.Po - -rm -f chat/$(DEPDIR)/posix_chat_client.Po - -rm -f echo/$(DEPDIR)/async_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/async_udp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_server.Po - -rm -f fork/$(DEPDIR)/daemon.Po - -rm -f fork/$(DEPDIR)/process_per_connection.Po - -rm -f http/client/$(DEPDIR)/async_client.Po - -rm -f http/client/$(DEPDIR)/sync_client.Po - -rm -f http/server/$(DEPDIR)/connection.Po - -rm -f http/server/$(DEPDIR)/connection_manager.Po - -rm -f http/server/$(DEPDIR)/main.Po - -rm -f http/server/$(DEPDIR)/mime_types.Po - -rm -f http/server/$(DEPDIR)/reply.Po - -rm -f http/server/$(DEPDIR)/request_handler.Po - -rm -f http/server/$(DEPDIR)/request_parser.Po - -rm -f http/server/$(DEPDIR)/server.Po - -rm -f http/server2/$(DEPDIR)/connection.Po - -rm -f http/server2/$(DEPDIR)/io_context_pool.Po - -rm -f http/server2/$(DEPDIR)/main.Po - -rm -f http/server2/$(DEPDIR)/mime_types.Po - -rm -f http/server2/$(DEPDIR)/reply.Po - -rm -f http/server2/$(DEPDIR)/request_handler.Po - -rm -f http/server2/$(DEPDIR)/request_parser.Po - -rm -f http/server2/$(DEPDIR)/server.Po - -rm -f http/server3/$(DEPDIR)/connection.Po - -rm -f http/server3/$(DEPDIR)/main.Po - -rm -f http/server3/$(DEPDIR)/mime_types.Po - -rm -f http/server3/$(DEPDIR)/reply.Po - -rm -f http/server3/$(DEPDIR)/request_handler.Po - -rm -f http/server3/$(DEPDIR)/request_parser.Po - -rm -f http/server3/$(DEPDIR)/server.Po - -rm -f http/server4/$(DEPDIR)/file_handler.Po - -rm -f http/server4/$(DEPDIR)/main.Po - -rm -f http/server4/$(DEPDIR)/mime_types.Po - -rm -f http/server4/$(DEPDIR)/reply.Po - -rm -f http/server4/$(DEPDIR)/request_parser.Po - -rm -f http/server4/$(DEPDIR)/server.Po - -rm -f icmp/$(DEPDIR)/ping.Po - -rm -f invocation/$(DEPDIR)/prioritised_handlers.Po - -rm -f iostreams/$(DEPDIR)/daytime_client.Po - -rm -f iostreams/$(DEPDIR)/daytime_server.Po - -rm -f iostreams/$(DEPDIR)/http_client.Po - -rm -f local/$(DEPDIR)/connect_pair.Po - -rm -f local/$(DEPDIR)/iostream_client.Po - -rm -f local/$(DEPDIR)/stream_client.Po - -rm -f local/$(DEPDIR)/stream_server.Po - -rm -f multicast/$(DEPDIR)/receiver.Po - -rm -f multicast/$(DEPDIR)/sender.Po - -rm -f nonblocking/$(DEPDIR)/third_party_lib.Po - -rm -f porthopper/$(DEPDIR)/client.Po - -rm -f porthopper/$(DEPDIR)/server.Po - -rm -f services/$(DEPDIR)/daytime_client.Po - -rm -f services/$(DEPDIR)/logger_service.Po - -rm -f socks4/$(DEPDIR)/sync_client.Po - -rm -f spawn/$(DEPDIR)/echo_server.Po - -rm -f spawn/$(DEPDIR)/parallel_grep.Po - -rm -f ssl/$(DEPDIR)/client.Po - -rm -f ssl/$(DEPDIR)/server.Po - -rm -f timeouts/$(DEPDIR)/async_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_token_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_udp_client.Po - -rm -f timeouts/$(DEPDIR)/server.Po - -rm -f timers/$(DEPDIR)/time_t_timer.Po - -rm -f tutorial/daytime1/$(DEPDIR)/client.Po - -rm -f tutorial/daytime2/$(DEPDIR)/server.Po - -rm -f tutorial/daytime3/$(DEPDIR)/server.Po - -rm -f tutorial/daytime4/$(DEPDIR)/client.Po - -rm -f tutorial/daytime5/$(DEPDIR)/server.Po - -rm -f tutorial/daytime6/$(DEPDIR)/server.Po - -rm -f tutorial/daytime7/$(DEPDIR)/server.Po - -rm -f tutorial/timer1/$(DEPDIR)/timer.Po - -rm -f tutorial/timer2/$(DEPDIR)/timer.Po - -rm -f tutorial/timer3/$(DEPDIR)/timer.Po - -rm -f tutorial/timer4/$(DEPDIR)/timer.Po - -rm -f tutorial/timer5/$(DEPDIR)/timer.Po - -rm -f windows/$(DEPDIR)/transmit_file.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \ - cscopelist-am ctags ctags-am distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/src/examples/cpp03/allocation/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/allocation/server.cpp deleted file mode 100644 index d2a3aca..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/allocation/server.cpp +++ /dev/null @@ -1,285 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include "asio.hpp" - -using 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_memory - : private boost::noncopyable -{ -public: - handler_memory() - : in_use_(false) - { - } - - void* allocate(std::size_t size) - { - if (!in_use_ && size < storage_.size) - { - in_use_ = true; - return storage_.address(); - } - else - { - return ::operator new(size); - } - } - - void deallocate(void* pointer) - { - if (pointer == storage_.address()) - { - in_use_ = false; - } - else - { - ::operator delete(pointer); - } - } - -private: - // Storage space used for handler-based custom memory allocation. - boost::aligned_storage<1024> storage_; - - // Whether the handler-based custom allocation storage has been used. - bool in_use_; -}; - -// The allocator to be associated with the handler objects. This allocator only -// needs to satisfy the C++11 minimal allocator requirements, plus rebind when -// targeting C++03. -template -class handler_allocator -{ -public: - typedef T value_type; - - explicit handler_allocator(handler_memory& mem) - : memory_(mem) - { - } - - template - handler_allocator(const handler_allocator& other) - : memory_(other.memory_) - { - } - - template - struct rebind - { - typedef handler_allocator other; - }; - - bool operator==(const handler_allocator& other) const - { - return &memory_ == &other.memory_; - } - - bool operator!=(const handler_allocator& other) const - { - return &memory_ != &other.memory_; - } - - T* allocate(std::size_t n) const - { - return static_cast(memory_.allocate(sizeof(T) * n)); - } - - void deallocate(T* p, std::size_t /*n*/) const - { - return memory_.deallocate(p); - } - -//private: - // The underlying memory. - handler_memory& memory_; -}; - -// Wrapper class template for handler objects to allow handler memory -// allocation to be customised. The allocator_type typedef and get_allocator() -// member function are used by the asynchronous operations to obtain the -// allocator. Calls to operator() are forwarded to the encapsulated handler. -template -class custom_alloc_handler -{ -public: - typedef handler_allocator allocator_type; - - custom_alloc_handler(handler_memory& m, Handler h) - : memory_(m), - handler_(h) - { - } - - allocator_type get_allocator() const - { - return allocator_type(memory_); - } - - template - void operator()(Arg1 arg1) - { - handler_(arg1); - } - - template - void operator()(Arg1 arg1, Arg2 arg2) - { - handler_(arg1, arg2); - } - -private: - handler_memory& memory_; - Handler handler_; -}; - -// Helper function to wrap a handler object to add custom allocation. -template -inline custom_alloc_handler make_custom_alloc_handler( - handler_memory& m, Handler h) -{ - return custom_alloc_handler(m, h); -} - -class session - : public boost::enable_shared_from_this -{ -public: - session(asio::io_context& io_context) - : socket_(io_context) - { - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - socket_.async_read_some(asio::buffer(data_), - make_custom_alloc_handler(handler_memory_, - boost::bind(&session::handle_read, - shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred))); - } - - void handle_read(const asio::error_code& error, - size_t bytes_transferred) - { - if (!error) - { - asio::async_write(socket_, - asio::buffer(data_, bytes_transferred), - make_custom_alloc_handler(handler_memory_, - boost::bind(&session::handle_write, - shared_from_this(), - asio::placeholders::error))); - } - } - - void handle_write(const asio::error_code& error) - { - if (!error) - { - socket_.async_read_some(asio::buffer(data_), - make_custom_alloc_handler(handler_memory_, - boost::bind(&session::handle_read, - shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred))); - } - } - -private: - // The socket used to communicate with the client. - tcp::socket socket_; - - // Buffer used to store data received from the client. - boost::array data_; - - // The memory to use for handler-based custom memory allocation. - handler_memory handler_memory_; -}; - -typedef boost::shared_ptr session_ptr; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : io_context_(io_context), - acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) - { - session_ptr new_session(new session(io_context_)); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - - void handle_accept(session_ptr new_session, - const asio::error_code& error) - { - if (!error) - { - new_session->start(); - } - - new_session.reset(new session(io_context_)); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - -private: - asio::io_context& io_context_; - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/buffers/reference_counted.cpp b/Sources/Vendor/asio/src/examples/cpp03/buffers/reference_counted.cpp deleted file mode 100644 index 24ee02b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/buffers/reference_counted.cpp +++ /dev/null @@ -1,131 +0,0 @@ -// -// reference_counted.cpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include - -using 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(data.begin(), data.end())), - buffer_(asio::buffer(*data_)) - { - } - - // Implement the ConstBufferSequence requirements. - typedef asio::const_buffer value_type; - typedef const asio::const_buffer* const_iterator; - const asio::const_buffer* begin() const { return &buffer_; } - const asio::const_buffer* end() const { return &buffer_ + 1; } - -private: - boost::shared_ptr > data_; - asio::const_buffer buffer_; -}; - -class session - : public boost::enable_shared_from_this -{ -public: - session(asio::io_context& io_context) - : socket_(io_context) - { - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - using namespace std; // For time_t, time and ctime. - time_t now = time(0); - shared_const_buffer buffer(ctime(&now)); - asio::async_write(socket_, buffer, - boost::bind(&session::handle_write, shared_from_this())); - } - - void handle_write() - { - } - -private: - // The socket used to communicate with the client. - tcp::socket socket_; -}; - -typedef boost::shared_ptr session_ptr; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : io_context_(io_context), - acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) - { - session_ptr new_session(new session(io_context_)); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - - void handle_accept(session_ptr new_session, - const asio::error_code& error) - { - if (!error) - { - new_session->start(); - } - - new_session.reset(new session(io_context_)); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - -private: - asio::io_context& io_context_; - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: reference_counted \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/chat/chat_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/chat/chat_client.cpp deleted file mode 100644 index 6011f53..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/chat/chat_client.cpp +++ /dev/null @@ -1,177 +0,0 @@ -// -// chat_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include "asio.hpp" -#include "chat_message.hpp" - -using asio::ip::tcp; - -typedef std::deque chat_message_queue; - -class chat_client -{ -public: - chat_client(asio::io_context& io_context, - const tcp::resolver::results_type& endpoints) - : io_context_(io_context), - socket_(io_context) - { - asio::async_connect(socket_, endpoints, - boost::bind(&chat_client::handle_connect, this, - asio::placeholders::error)); - } - - void write(const chat_message& msg) - { - asio::post(io_context_, - boost::bind(&chat_client::do_write, this, msg)); - } - - void close() - { - asio::post(io_context_, - boost::bind(&chat_client::do_close, this)); - } - -private: - - void handle_connect(const asio::error_code& error) - { - if (!error) - { - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - boost::bind(&chat_client::handle_read_header, this, - asio::placeholders::error)); - } - } - - void handle_read_header(const asio::error_code& error) - { - if (!error && read_msg_.decode_header()) - { - asio::async_read(socket_, - asio::buffer(read_msg_.body(), read_msg_.body_length()), - boost::bind(&chat_client::handle_read_body, this, - asio::placeholders::error)); - } - else - { - do_close(); - } - } - - void handle_read_body(const asio::error_code& error) - { - if (!error) - { - std::cout.write(read_msg_.body(), read_msg_.body_length()); - std::cout << "\n"; - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - boost::bind(&chat_client::handle_read_header, this, - asio::placeholders::error)); - } - else - { - do_close(); - } - } - - void do_write(chat_message msg) - { - bool write_in_progress = !write_msgs_.empty(); - write_msgs_.push_back(msg); - if (!write_in_progress) - { - asio::async_write(socket_, - asio::buffer(write_msgs_.front().data(), - write_msgs_.front().length()), - boost::bind(&chat_client::handle_write, this, - asio::placeholders::error)); - } - } - - void handle_write(const asio::error_code& error) - { - if (!error) - { - write_msgs_.pop_front(); - if (!write_msgs_.empty()) - { - asio::async_write(socket_, - asio::buffer(write_msgs_.front().data(), - write_msgs_.front().length()), - boost::bind(&chat_client::handle_write, this, - asio::placeholders::error)); - } - } - else - { - do_close(); - } - } - - void do_close() - { - socket_.close(); - } - -private: - asio::io_context& io_context_; - 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 \n"; - return 1; - } - - asio::io_context io_context; - - tcp::resolver resolver(io_context); - tcp::resolver::results_type endpoints = resolver.resolve(argv[1], argv[2]); - - chat_client c(io_context, endpoints); - - asio::thread t(boost::bind(&asio::io_context::run, &io_context)); - - char line[chat_message::max_body_length + 1]; - while (std::cin.getline(line, chat_message::max_body_length + 1)) - { - using namespace std; // For strlen and memcpy. - chat_message msg; - msg.body_length(strlen(line)); - 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/Sources/Vendor/asio/src/examples/cpp03/chat/chat_message.hpp b/Sources/Vendor/asio/src/examples/cpp03/chat/chat_message.hpp deleted file mode 100644 index 942b480..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/chat/chat_message.hpp +++ /dev/null @@ -1,93 +0,0 @@ -// -// chat_message.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include - -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_; - } - - size_t length() const - { - return header_length + body_length_; - } - - const char* body() const - { - return data_ + header_length; - } - - char* body() - { - return data_ + header_length; - } - - size_t body_length() const - { - return body_length_; - } - - void body_length(size_t new_length) - { - body_length_ = new_length; - if (body_length_ > max_body_length) - body_length_ = max_body_length; - } - - bool decode_header() - { - using namespace std; // For strncat and atoi. - char header[header_length + 1] = ""; - strncat(header, data_, header_length); - body_length_ = atoi(header); - if (body_length_ > max_body_length) - { - body_length_ = 0; - return false; - } - return true; - } - - void encode_header() - { - using namespace std; // For sprintf and memcpy. - char header[header_length + 1] = ""; - sprintf(header, "%4d", static_cast(body_length_)); - memcpy(data_, header, header_length); - } - -private: - char data_[header_length + max_body_length]; - size_t body_length_; -}; - -#endif // CHAT_MESSAGE_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/chat/chat_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/chat/chat_server.cpp deleted file mode 100644 index adec6aa..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/chat/chat_server.cpp +++ /dev/null @@ -1,247 +0,0 @@ -// -// chat_server.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include "asio.hpp" -#include "chat_message.hpp" - -using asio::ip::tcp; - -//---------------------------------------------------------------------- - -typedef std::deque chat_message_queue; - -//---------------------------------------------------------------------- - -class chat_participant -{ -public: - virtual ~chat_participant() {} - virtual void deliver(const chat_message& msg) = 0; -}; - -typedef boost::shared_ptr chat_participant_ptr; - -//---------------------------------------------------------------------- - -class chat_room -{ -public: - void join(chat_participant_ptr participant) - { - participants_.insert(participant); - std::for_each(recent_msgs_.begin(), recent_msgs_.end(), - boost::bind(&chat_participant::deliver, participant, _1)); - } - - 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(); - - std::for_each(participants_.begin(), participants_.end(), - boost::bind(&chat_participant::deliver, _1, boost::ref(msg))); - } - -private: - std::set participants_; - enum { max_recent_msgs = 100 }; - chat_message_queue recent_msgs_; -}; - -//---------------------------------------------------------------------- - -class chat_session - : public chat_participant, - public boost::enable_shared_from_this -{ -public: - chat_session(asio::io_context& io_context, chat_room& room) - : socket_(io_context), - room_(room) - { - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - room_.join(shared_from_this()); - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - boost::bind( - &chat_session::handle_read_header, shared_from_this(), - asio::placeholders::error)); - } - - void deliver(const chat_message& msg) - { - bool write_in_progress = !write_msgs_.empty(); - write_msgs_.push_back(msg); - if (!write_in_progress) - { - asio::async_write(socket_, - asio::buffer(write_msgs_.front().data(), - write_msgs_.front().length()), - boost::bind(&chat_session::handle_write, shared_from_this(), - asio::placeholders::error)); - } - } - - void handle_read_header(const asio::error_code& error) - { - if (!error && read_msg_.decode_header()) - { - asio::async_read(socket_, - asio::buffer(read_msg_.body(), read_msg_.body_length()), - boost::bind(&chat_session::handle_read_body, shared_from_this(), - asio::placeholders::error)); - } - else - { - room_.leave(shared_from_this()); - } - } - - void handle_read_body(const asio::error_code& error) - { - if (!error) - { - room_.deliver(read_msg_); - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - boost::bind(&chat_session::handle_read_header, shared_from_this(), - asio::placeholders::error)); - } - else - { - room_.leave(shared_from_this()); - } - } - - void handle_write(const asio::error_code& error) - { - if (!error) - { - write_msgs_.pop_front(); - if (!write_msgs_.empty()) - { - asio::async_write(socket_, - asio::buffer(write_msgs_.front().data(), - write_msgs_.front().length()), - boost::bind(&chat_session::handle_write, shared_from_this(), - asio::placeholders::error)); - } - } - else - { - room_.leave(shared_from_this()); - } - } - -private: - tcp::socket socket_; - chat_room& room_; - chat_message read_msg_; - chat_message_queue write_msgs_; -}; - -typedef boost::shared_ptr chat_session_ptr; - -//---------------------------------------------------------------------- - -class chat_server -{ -public: - chat_server(asio::io_context& io_context, - const tcp::endpoint& endpoint) - : io_context_(io_context), - acceptor_(io_context, endpoint) - { - start_accept(); - } - - void start_accept() - { - chat_session_ptr new_session(new chat_session(io_context_, room_)); - acceptor_.async_accept(new_session->socket(), - boost::bind(&chat_server::handle_accept, this, new_session, - asio::placeholders::error)); - } - - void handle_accept(chat_session_ptr session, - const asio::error_code& error) - { - if (!error) - { - session->start(); - } - - start_accept(); - } - -private: - asio::io_context& io_context_; - tcp::acceptor acceptor_; - chat_room room_; -}; - -typedef boost::shared_ptr chat_server_ptr; -typedef std::list chat_server_list; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - if (argc < 2) - { - std::cerr << "Usage: chat_server [ ...]\n"; - return 1; - } - - asio::io_context io_context; - - chat_server_list servers; - for (int i = 1; i < argc; ++i) - { - using namespace std; // For atoi. - tcp::endpoint endpoint(tcp::v4(), atoi(argv[i])); - chat_server_ptr server(new chat_server(io_context, endpoint)); - servers.push_back(server); - } - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/chat/posix_chat_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/chat/posix_chat_client.cpp deleted file mode 100644 index 80d885d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/chat/posix_chat_client.cpp +++ /dev/null @@ -1,204 +0,0 @@ -// -// posix_chat_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include "asio.hpp" -#include "chat_message.hpp" - -#if defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - -using asio::ip::tcp; -namespace posix = asio::posix; - -class posix_chat_client -{ -public: - posix_chat_client(asio::io_context& io_context, - const tcp::resolver::results_type& endpoints) - : socket_(io_context), - input_(io_context, ::dup(STDIN_FILENO)), - output_(io_context, ::dup(STDOUT_FILENO)), - input_buffer_(chat_message::max_body_length) - { - asio::async_connect(socket_, endpoints, - boost::bind(&posix_chat_client::handle_connect, this, - asio::placeholders::error)); - } - -private: - - void handle_connect(const asio::error_code& error) - { - if (!error) - { - // Read the fixed-length header of the next message from the server. - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - boost::bind(&posix_chat_client::handle_read_header, this, - asio::placeholders::error)); - - // Read a line of input entered by the user. - asio::async_read_until(input_, input_buffer_, '\n', - boost::bind(&posix_chat_client::handle_read_input, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - } - - void handle_read_header(const asio::error_code& error) - { - if (!error && read_msg_.decode_header()) - { - // Read the variable-length body of the message from the server. - asio::async_read(socket_, - asio::buffer(read_msg_.body(), read_msg_.body_length()), - boost::bind(&posix_chat_client::handle_read_body, this, - asio::placeholders::error)); - } - else - { - close(); - } - } - - void handle_read_body(const asio::error_code& error) - { - if (!error) - { - // Write out the message we just received, terminated by a newline. - static char eol[] = { '\n' }; - boost::array buffers = {{ - asio::buffer(read_msg_.body(), read_msg_.body_length()), - asio::buffer(eol) }}; - asio::async_write(output_, buffers, - boost::bind(&posix_chat_client::handle_write_output, this, - asio::placeholders::error)); - } - else - { - close(); - } - } - - void handle_write_output(const asio::error_code& error) - { - if (!error) - { - // Read the fixed-length header of the next message from the server. - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - boost::bind(&posix_chat_client::handle_read_header, this, - asio::placeholders::error)); - } - else - { - close(); - } - } - - void handle_read_input(const asio::error_code& error, - std::size_t length) - { - if (!error) - { - // Write the message (minus the newline) to the server. - write_msg_.body_length(length - 1); - input_buffer_.sgetn(write_msg_.body(), length - 1); - input_buffer_.consume(1); // Remove newline from input. - write_msg_.encode_header(); - asio::async_write(socket_, - asio::buffer(write_msg_.data(), write_msg_.length()), - boost::bind(&posix_chat_client::handle_write, this, - asio::placeholders::error)); - } - else if (error == asio::error::not_found) - { - // Didn't get a newline. Send whatever we have. - write_msg_.body_length(input_buffer_.size()); - input_buffer_.sgetn(write_msg_.body(), input_buffer_.size()); - write_msg_.encode_header(); - asio::async_write(socket_, - asio::buffer(write_msg_.data(), write_msg_.length()), - boost::bind(&posix_chat_client::handle_write, this, - asio::placeholders::error)); - } - else - { - close(); - } - } - - void handle_write(const asio::error_code& error) - { - if (!error) - { - // Read a line of input entered by the user. - asio::async_read_until(input_, input_buffer_, '\n', - boost::bind(&posix_chat_client::handle_read_input, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - close(); - } - } - - void close() - { - // Cancel all outstanding asynchronous operations. - socket_.close(); - input_.close(); - output_.close(); - } - -private: - tcp::socket socket_; - posix::stream_descriptor input_; - posix::stream_descriptor output_; - chat_message read_msg_; - chat_message write_msg_; - asio::streambuf input_buffer_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: posix_chat_client \n"; - return 1; - } - - asio::io_context io_context; - - tcp::resolver resolver(io_context); - tcp::resolver::results_type endpoints = resolver.resolve(argv[1], argv[2]); - - posix_chat_client c(io_context, endpoints); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} - -#else // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) -int main() {} -#endif // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) diff --git a/Sources/Vendor/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp deleted file mode 100644 index c5d3395..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp +++ /dev/null @@ -1,137 +0,0 @@ -// -// async_tcp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -class session -{ -public: - session(asio::io_context& io_context) - : socket_(io_context) - { - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - socket_.async_read_some(asio::buffer(data_, max_length), - boost::bind(&session::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - -private: - void handle_read(const asio::error_code& error, - size_t bytes_transferred) - { - if (!error) - { - asio::async_write(socket_, - asio::buffer(data_, bytes_transferred), - boost::bind(&session::handle_write, this, - asio::placeholders::error)); - } - else - { - delete this; - } - } - - void handle_write(const asio::error_code& error) - { - if (!error) - { - socket_.async_read_some(asio::buffer(data_, max_length), - boost::bind(&session::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - delete this; - } - } - - tcp::socket socket_; - enum { max_length = 1024 }; - char data_[max_length]; -}; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : io_context_(io_context), - acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) - { - start_accept(); - } - -private: - void start_accept() - { - session* new_session = new session(io_context_); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - - void handle_accept(session* new_session, - const asio::error_code& error) - { - if (!error) - { - new_session->start(); - } - else - { - delete new_session; - } - - start_accept(); - } - - asio::io_context& io_context_; - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: async_tcp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp deleted file mode 100644 index af6c68d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp +++ /dev/null @@ -1,92 +0,0 @@ -// -// async_udp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" - -using asio::ip::udp; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : socket_(io_context, udp::endpoint(udp::v4(), port)) - { - socket_.async_receive_from( - asio::buffer(data_, max_length), sender_endpoint_, - boost::bind(&server::handle_receive_from, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - - void handle_receive_from(const asio::error_code& error, - size_t bytes_recvd) - { - if (!error && bytes_recvd > 0) - { - socket_.async_send_to( - asio::buffer(data_, bytes_recvd), sender_endpoint_, - boost::bind(&server::handle_send_to, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - socket_.async_receive_from( - asio::buffer(data_, max_length), sender_endpoint_, - boost::bind(&server::handle_receive_from, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - } - - void handle_send_to(const asio::error_code& /*error*/, - size_t /*bytes_sent*/) - { - socket_.async_receive_from( - asio::buffer(data_, max_length), sender_endpoint_, - boost::bind(&server::handle_receive_from, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - -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 \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp deleted file mode 100644 index cfb5c69..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// blocking_tcp_echo_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: blocking_tcp_echo_client \n"; - return 1; - } - - asio::io_context io_context; - - tcp::resolver resolver(io_context); - tcp::resolver::results_type endpoints = - resolver.resolve(tcp::v4(), argv[1], argv[2]); - - tcp::socket s(io_context); - asio::connect(s, endpoints); - - using namespace std; // For strlen. - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t request_length = strlen(request); - asio::write(s, asio::buffer(request, request_length)); - - char reply[max_length]; - size_t reply_length = asio::read(s, - 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/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp deleted file mode 100644 index 52e9ace..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp +++ /dev/null @@ -1,79 +0,0 @@ -// -// blocking_tcp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -const int max_length = 1024; - -typedef boost::shared_ptr socket_ptr; - -void session(socket_ptr sock) -{ - try - { - for (;;) - { - char data[max_length]; - - asio::error_code error; - size_t length = sock->read_some(asio::buffer(data), error); - if (error == asio::error::eof) - break; // Connection closed cleanly by peer. - else if (error) - throw asio::system_error(error); // Some other error. - - asio::write(*sock, asio::buffer(data, length)); - } - } - catch (std::exception& e) - { - std::cerr << "Exception in thread: " << e.what() << "\n"; - } -} - -void server(asio::io_context& io_context, unsigned short port) -{ - tcp::acceptor a(io_context, tcp::endpoint(tcp::v4(), port)); - for (;;) - { - socket_ptr sock(new tcp::socket(io_context)); - a.accept(*sock); - asio::thread t(boost::bind(session, sock)); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: blocking_tcp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server(io_context, atoi(argv[1])); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp deleted file mode 100644 index 1a28385..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// blocking_udp_echo_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" - -using asio::ip::udp; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: blocking_udp_echo_client \n"; - return 1; - } - - asio::io_context io_context; - - udp::socket s(io_context, udp::endpoint(udp::v4(), 0)); - - udp::resolver resolver(io_context); - udp::resolver::results_type endpoints = - resolver.resolve(udp::v4(), argv[1], argv[2]); - - using namespace std; // For strlen. - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t request_length = strlen(request); - s.send_to(asio::buffer(request, request_length), *endpoints.begin()); - - char reply[max_length]; - udp::endpoint sender_endpoint; - size_t reply_length = s.receive_from( - 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/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp deleted file mode 100644 index 149f648..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// blocking_udp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include "asio.hpp" - -using asio::ip::udp; - -enum { max_length = 1024 }; - -void server(asio::io_context& io_context, unsigned short port) -{ - udp::socket sock(io_context, udp::endpoint(udp::v4(), port)); - for (;;) - { - char data[max_length]; - udp::endpoint sender_endpoint; - size_t length = sock.receive_from( - asio::buffer(data, max_length), sender_endpoint); - sock.send_to(asio::buffer(data, length), sender_endpoint); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: blocking_udp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server(io_context, atoi(argv[1])); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/fork/daemon.cpp b/Sources/Vendor/asio/src/examples/cpp03/fork/daemon.cpp deleted file mode 100644 index a634a5d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/fork/daemon.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// -// daemon.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::udp; - -class udp_daytime_server -{ -public: - udp_daytime_server(asio::io_context& io_context) - : socket_(io_context, udp::endpoint(udp::v4(), 13)) - { - start_receive(); - } - -private: - void start_receive() - { - socket_.async_receive_from( - asio::buffer(recv_buffer_), remote_endpoint_, - boost::bind(&udp_daytime_server::handle_receive, this, _1)); - } - - void handle_receive(const asio::error_code& ec) - { - if (!ec) - { - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - std::string message = ctime(&now); - - asio::error_code ignored_ec; - socket_.send_to(asio::buffer(message), - remote_endpoint_, 0, ignored_ec); - } - - start_receive(); - } - - udp::socket socket_; - udp::endpoint remote_endpoint_; - boost::array recv_buffer_; -}; - -int main() -{ - try - { - asio::io_context io_context; - - // Initialise the server before becoming a daemon. If the process is - // started from a shell, this means any errors will be reported back to the - // user. - udp_daytime_server server(io_context); - - // Register signal handlers so that the daemon may be shut down. You may - // also want to register for other signals, such as SIGHUP to trigger a - // re-read of a configuration file. - asio::signal_set signals(io_context, SIGINT, SIGTERM); - signals.async_wait( - boost::bind(&asio::io_context::stop, &io_context)); - - // Inform the io_context that we are about to become a daemon. The - // io_context cleans up any internal resources, such as threads, that may - // interfere with forking. - io_context.notify_fork(asio::io_context::fork_prepare); - - // Fork the process and have the parent exit. If the process was started - // from a shell, this returns control to the user. Forking a new process is - // also a prerequisite for the subsequent call to setsid(). - if (pid_t pid = fork()) - { - if (pid > 0) - { - // We're in the parent process and need to exit. - // - // When the exit() function is used, the program terminates without - // invoking local variables' destructors. Only global variables are - // destroyed. As the io_context object is a local variable, this means - // we do not have to call: - // - // io_context.notify_fork(asio::io_context::fork_parent); - // - // However, this line should be added before each call to exit() if - // using a global io_context object. An additional call: - // - // io_context.notify_fork(asio::io_context::fork_prepare); - // - // should also precede the second fork(). - exit(0); - } - else - { - syslog(LOG_ERR | LOG_USER, "First fork failed: %m"); - return 1; - } - } - - // Make the process a new session leader. This detaches it from the - // terminal. - setsid(); - - // A process inherits its working directory from its parent. This could be - // on a mounted filesystem, which means that the running daemon would - // prevent this filesystem from being unmounted. Changing to the root - // directory avoids this problem. - chdir("/"); - - // The file mode creation mask is also inherited from the parent process. - // We don't want to restrict the permissions on files created by the - // daemon, so the mask is cleared. - umask(0); - - // A second fork ensures the process cannot acquire a controlling terminal. - if (pid_t pid = fork()) - { - if (pid > 0) - { - exit(0); - } - else - { - syslog(LOG_ERR | LOG_USER, "Second fork failed: %m"); - return 1; - } - } - - // Close the standard streams. This decouples the daemon from the terminal - // that started it. - close(0); - close(1); - close(2); - - // We don't want the daemon to have any standard input. - if (open("/dev/null", O_RDONLY) < 0) - { - syslog(LOG_ERR | LOG_USER, "Unable to open /dev/null: %m"); - return 1; - } - - // Send standard output to a log file. - const char* output = "/tmp/asio.daemon.out"; - const int flags = O_WRONLY | O_CREAT | O_APPEND; - const mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH; - if (open(output, flags, mode) < 0) - { - syslog(LOG_ERR | LOG_USER, "Unable to open output file %s: %m", output); - return 1; - } - - // Also send standard error to the same log file. - if (dup(1) < 0) - { - syslog(LOG_ERR | LOG_USER, "Unable to dup output descriptor: %m"); - return 1; - } - - // Inform the io_context that we have finished becoming a daemon. The - // io_context uses this opportunity to create any internal file descriptors - // that need to be private to the new process. - io_context.notify_fork(asio::io_context::fork_child); - - // The io_context can now be used normally. - syslog(LOG_INFO | LOG_USER, "Daemon started"); - io_context.run(); - syslog(LOG_INFO | LOG_USER, "Daemon stopped"); - } - catch (std::exception& e) - { - syslog(LOG_ERR | LOG_USER, "Exception: %s", e.what()); - std::cerr << "Exception: " << e.what() << std::endl; - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/fork/process_per_connection.cpp b/Sources/Vendor/asio/src/examples/cpp03/fork/process_per_connection.cpp deleted file mode 100644 index 2b11171..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/fork/process_per_connection.cpp +++ /dev/null @@ -1,160 +0,0 @@ -// -// process_per_connection.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -class server -{ -public: - server(asio::io_context& io_context, unsigned short port) - : io_context_(io_context), - signal_(io_context, SIGCHLD), - acceptor_(io_context, tcp::endpoint(tcp::v4(), port)), - socket_(io_context) - { - start_signal_wait(); - start_accept(); - } - -private: - void start_signal_wait() - { - signal_.async_wait(boost::bind(&server::handle_signal_wait, this)); - } - - void handle_signal_wait() - { - // Only the parent process should check for this signal. We can determine - // whether we are in the parent by checking if the acceptor is still open. - if (acceptor_.is_open()) - { - // Reap completed child processes so that we don't end up with zombies. - int status = 0; - while (waitpid(-1, &status, WNOHANG) > 0) {} - - start_signal_wait(); - } - } - - void start_accept() - { - acceptor_.async_accept(socket_, - boost::bind(&server::handle_accept, this, _1)); - } - - void handle_accept(const asio::error_code& ec) - { - if (!ec) - { - // Inform the io_context that we are about to fork. The io_context cleans - // up any internal resources, such as threads, that may interfere with - // forking. - io_context_.notify_fork(asio::io_context::fork_prepare); - - if (fork() == 0) - { - // Inform the io_context that the fork is finished and that this is the - // child process. The io_context uses this opportunity to create any - // internal file descriptors that must be private to the new process. - io_context_.notify_fork(asio::io_context::fork_child); - - // The child won't be accepting new connections, so we can close the - // acceptor. It remains open in the parent. - acceptor_.close(); - - // The child process is not interested in processing the SIGCHLD signal. - signal_.cancel(); - - start_read(); - } - else - { - // Inform the io_context that the fork is finished (or failed) and that - // this is the parent process. The io_context uses this opportunity to - // recreate any internal resources that were cleaned up during - // preparation for the fork. - io_context_.notify_fork(asio::io_context::fork_parent); - - socket_.close(); - start_accept(); - } - } - else - { - std::cerr << "Accept error: " << ec.message() << std::endl; - start_accept(); - } - } - - void start_read() - { - socket_.async_read_some(asio::buffer(data_), - boost::bind(&server::handle_read, this, _1, _2)); - } - - void handle_read(const asio::error_code& ec, std::size_t length) - { - if (!ec) - start_write(length); - } - - void start_write(std::size_t length) - { - asio::async_write(socket_, asio::buffer(data_, length), - boost::bind(&server::handle_write, this, _1)); - } - - void handle_write(const asio::error_code& ec) - { - if (!ec) - start_read(); - } - - asio::io_context& io_context_; - asio::signal_set signal_; - tcp::acceptor acceptor_; - tcp::socket socket_; - boost::array data_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: process_per_connection \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << std::endl; - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/client/async_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/client/async_client.cpp deleted file mode 100644 index bb10c83..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/client/async_client.cpp +++ /dev/null @@ -1,204 +0,0 @@ -// -// async_client.cpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -class client -{ -public: - client(asio::io_context& io_context, - const std::string& server, const std::string& path) - : resolver_(io_context), - socket_(io_context) - { - // Form the request. We specify the "Connection: close" header so that the - // server will close the socket after transmitting the response. This will - // allow us to treat all data up until the EOF as the content. - std::ostream request_stream(&request_); - request_stream << "GET " << path << " HTTP/1.0\r\n"; - request_stream << "Host: " << server << "\r\n"; - request_stream << "Accept: */*\r\n"; - request_stream << "Connection: close\r\n\r\n"; - - // Start an asynchronous resolve to translate the server and service names - // into a list of endpoints. - resolver_.async_resolve(server, "http", - boost::bind(&client::handle_resolve, this, - asio::placeholders::error, - asio::placeholders::results)); - } - -private: - void handle_resolve(const asio::error_code& err, - const tcp::resolver::results_type& endpoints) - { - if (!err) - { - // Attempt a connection to each endpoint in the list until we - // successfully establish a connection. - asio::async_connect(socket_, endpoints, - boost::bind(&client::handle_connect, this, - asio::placeholders::error)); - } - else - { - std::cout << "Error: " << err.message() << "\n"; - } - } - - void handle_connect(const asio::error_code& err) - { - if (!err) - { - // The connection was successful. Send the request. - asio::async_write(socket_, request_, - boost::bind(&client::handle_write_request, this, - asio::placeholders::error)); - } - else - { - std::cout << "Error: " << err.message() << "\n"; - } - } - - void handle_write_request(const asio::error_code& err) - { - if (!err) - { - // Read the response status line. The response_ streambuf will - // automatically grow to accommodate the entire line. The growth may be - // limited by passing a maximum size to the streambuf constructor. - asio::async_read_until(socket_, response_, "\r\n", - boost::bind(&client::handle_read_status_line, this, - asio::placeholders::error)); - } - else - { - std::cout << "Error: " << err.message() << "\n"; - } - } - - void handle_read_status_line(const asio::error_code& err) - { - if (!err) - { - // Check that response is OK. - std::istream response_stream(&response_); - std::string http_version; - response_stream >> http_version; - unsigned int status_code; - response_stream >> status_code; - std::string status_message; - std::getline(response_stream, status_message); - if (!response_stream || http_version.substr(0, 5) != "HTTP/") - { - std::cout << "Invalid response\n"; - return; - } - if (status_code != 200) - { - std::cout << "Response returned with status code "; - std::cout << status_code << "\n"; - return; - } - - // Read the response headers, which are terminated by a blank line. - asio::async_read_until(socket_, response_, "\r\n\r\n", - boost::bind(&client::handle_read_headers, this, - asio::placeholders::error)); - } - else - { - std::cout << "Error: " << err << "\n"; - } - } - - void handle_read_headers(const asio::error_code& err) - { - if (!err) - { - // Process the response headers. - std::istream response_stream(&response_); - std::string header; - while (std::getline(response_stream, header) && header != "\r") - std::cout << header << "\n"; - std::cout << "\n"; - - // Write whatever content we already have to output. - if (response_.size() > 0) - std::cout << &response_; - - // Start reading remaining data until EOF. - asio::async_read(socket_, response_, - asio::transfer_at_least(1), - boost::bind(&client::handle_read_content, this, - asio::placeholders::error)); - } - else - { - std::cout << "Error: " << err << "\n"; - } - } - - void handle_read_content(const asio::error_code& err) - { - if (!err) - { - // Write all of the data that has been read so far. - std::cout << &response_; - - // Continue reading remaining data until EOF. - asio::async_read(socket_, response_, - asio::transfer_at_least(1), - boost::bind(&client::handle_read_content, this, - asio::placeholders::error)); - } - else if (err != asio::error::eof) - { - std::cout << "Error: " << err << "\n"; - } - } - - tcp::resolver resolver_; - tcp::socket socket_; - asio::streambuf request_; - asio::streambuf response_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cout << "Usage: async_client \n"; - std::cout << "Example:\n"; - std::cout << " async_client www.boost.org /LICENSE_1_0.txt\n"; - return 1; - } - - asio::io_context io_context; - client c(io_context, argv[1], argv[2]); - io_context.run(); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/client/sync_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/client/sync_client.cpp deleted file mode 100644 index e27c977..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/client/sync_client.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// sync_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cout << "Usage: sync_client \n"; - std::cout << "Example:\n"; - std::cout << " sync_client www.boost.org /LICENSE_1_0.txt\n"; - return 1; - } - - asio::io_context io_context; - - // Get a list of endpoints corresponding to the server name. - tcp::resolver resolver(io_context); - tcp::resolver::results_type endpoints = resolver.resolve(argv[1], "http"); - - // Try each endpoint until we successfully establish a connection. - tcp::socket socket(io_context); - asio::connect(socket, endpoints); - - // Form the request. We specify the "Connection: close" header so that the - // server will close the socket after transmitting the response. This will - // allow us to treat all data up until the EOF as the content. - asio::streambuf request; - std::ostream request_stream(&request); - request_stream << "GET " << argv[2] << " HTTP/1.0\r\n"; - request_stream << "Host: " << argv[1] << "\r\n"; - request_stream << "Accept: */*\r\n"; - request_stream << "Connection: close\r\n\r\n"; - - // Send the request. - asio::write(socket, request); - - // Read the response status line. The response streambuf will automatically - // grow to accommodate the entire line. The growth may be limited by passing - // a maximum size to the streambuf constructor. - asio::streambuf response; - asio::read_until(socket, response, "\r\n"); - - // Check that response is OK. - std::istream response_stream(&response); - std::string http_version; - response_stream >> http_version; - unsigned int status_code; - response_stream >> status_code; - std::string status_message; - std::getline(response_stream, status_message); - if (!response_stream || http_version.substr(0, 5) != "HTTP/") - { - std::cout << "Invalid response\n"; - return 1; - } - if (status_code != 200) - { - std::cout << "Response returned with status code " << status_code << "\n"; - return 1; - } - - // Read the response headers, which are terminated by a blank line. - asio::read_until(socket, response, "\r\n\r\n"); - - // Process the response headers. - std::string header; - while (std::getline(response_stream, header) && header != "\r") - std::cout << header << "\n"; - std::cout << "\n"; - - // Write whatever content we already have to output. - if (response.size() > 0) - std::cout << &response; - - // Read until EOF, writing data to output as we go. - asio::error_code error; - while (asio::read(socket, response, - asio::transfer_at_least(1), error)) - std::cout << &response; - if (error != asio::error::eof) - throw asio::system_error(error); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/connection.cpp deleted file mode 100644 index 191adda..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection.cpp +++ /dev/null @@ -1,99 +0,0 @@ -// -// connection.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include "connection_manager.hpp" -#include "request_handler.hpp" - -namespace http { -namespace server { - -connection::connection(asio::io_context& io_context, - connection_manager& manager, request_handler& handler) - : socket_(io_context), - connection_manager_(manager), - request_handler_(handler) -{ -} - -asio::ip::tcp::socket& connection::socket() -{ - return socket_; -} - -void connection::start() -{ - socket_.async_read_some(asio::buffer(buffer_), - boost::bind(&connection::handle_read, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); -} - -void connection::stop() -{ - socket_.close(); -} - -void connection::handle_read(const asio::error_code& e, - std::size_t bytes_transferred) -{ - if (!e) - { - boost::tribool result; - boost::tie(result, boost::tuples::ignore) = request_parser_.parse( - request_, buffer_.data(), buffer_.data() + bytes_transferred); - - if (result) - { - request_handler_.handle_request(request_, reply_); - asio::async_write(socket_, reply_.to_buffers(), - boost::bind(&connection::handle_write, shared_from_this(), - asio::placeholders::error)); - } - else if (!result) - { - reply_ = reply::stock_reply(reply::bad_request); - asio::async_write(socket_, reply_.to_buffers(), - boost::bind(&connection::handle_write, shared_from_this(), - asio::placeholders::error)); - } - else - { - socket_.async_read_some(asio::buffer(buffer_), - boost::bind(&connection::handle_read, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - } - else if (e != asio::error::operation_aborted) - { - connection_manager_.stop(shared_from_this()); - } -} - -void connection::handle_write(const asio::error_code& e) -{ - if (!e) - { - // Initiate graceful connection closure. - asio::error_code ignored_ec; - socket_.shutdown(asio::ip::tcp::socket::shutdown_both, ignored_ec); - } - - if (e != asio::error::operation_aborted) - { - connection_manager_.stop(shared_from_this()); - } -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/connection.hpp deleted file mode 100644 index ca1d7cc..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// -// connection.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#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 boost::enable_shared_from_this, - private boost::noncopyable -{ -public: - /// Construct a connection with the given io_context. - explicit connection(asio::io_context& io_context, - connection_manager& manager, request_handler& handler); - - /// Get the socket associated with the connection. - asio::ip::tcp::socket& socket(); - - /// Start the first asynchronous operation for the connection. - void start(); - - /// Stop all asynchronous operations associated with the connection. - void stop(); - -private: - /// Handle completion of a read operation. - void handle_read(const asio::error_code& e, - std::size_t bytes_transferred); - - /// Handle completion of a write operation. - void handle_write(const asio::error_code& e); - - /// Socket for the connection. - 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. - boost::array 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 boost::shared_ptr connection_ptr; - -} // namespace server -} // namespace http - -#endif // HTTP_CONNECTION_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection_manager.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/connection_manager.cpp deleted file mode 100644 index b7eb24e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection_manager.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// -// connection_manager.cpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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" -#include -#include - -namespace http { -namespace server { - -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() -{ - std::for_each(connections_.begin(), connections_.end(), - boost::bind(&connection::stop, _1)); - connections_.clear(); -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection_manager.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/connection_manager.hpp deleted file mode 100644 index 1e18e44..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection_manager.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// -// connection_manager.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#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 - : private boost::noncopyable -{ -public: - /// 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 connections_; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_CONNECTION_MANAGER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/header.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/header.hpp deleted file mode 100644 index 18bad98..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/header.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// header.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 - -namespace http { -namespace server { - -struct header -{ - std::string name; - std::string value; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_HEADER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/main.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/main.cpp deleted file mode 100644 index 1f0c7f0..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/main.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// -// main.cpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include "server.hpp" - -int main(int argc, char* argv[]) -{ - try - { - // Check command line arguments. - if (argc != 4) - { - std::cerr << "Usage: http_server
\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/Sources/Vendor/asio/src/examples/cpp03/http/server/mime_types.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/mime_types.cpp deleted file mode 100644 index 8a66683..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/mime_types.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// mime_types.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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" }, - { 0, 0 } // Marks end of list. -}; - -std::string extension_to_type(const std::string& extension) -{ - for (mapping* m = mappings; m->extension; ++m) - { - if (m->extension == extension) - { - return m->mime_type; - } - } - - return "text/plain"; -} - -} // namespace mime_types -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/mime_types.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/mime_types.hpp deleted file mode 100644 index a5f352e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/mime_types.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// mime_types.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 - -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/Sources/Vendor/asio/src/examples/cpp03/http/server/reply.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/reply.cpp deleted file mode 100644 index e66897c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/reply.cpp +++ /dev/null @@ -1,256 +0,0 @@ -// -// reply.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include - -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"; - -asio::const_buffer to_buffer(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return asio::buffer(ok); - case reply::created: - return asio::buffer(created); - case reply::accepted: - return asio::buffer(accepted); - case reply::no_content: - return asio::buffer(no_content); - case reply::multiple_choices: - return asio::buffer(multiple_choices); - case reply::moved_permanently: - return asio::buffer(moved_permanently); - case reply::moved_temporarily: - return asio::buffer(moved_temporarily); - case reply::not_modified: - return asio::buffer(not_modified); - case reply::bad_request: - return asio::buffer(bad_request); - case reply::unauthorized: - return asio::buffer(unauthorized); - case reply::forbidden: - return asio::buffer(forbidden); - case reply::not_found: - return asio::buffer(not_found); - case reply::internal_server_error: - return asio::buffer(internal_server_error); - case reply::not_implemented: - return asio::buffer(not_implemented); - case reply::bad_gateway: - return asio::buffer(bad_gateway); - case reply::service_unavailable: - return asio::buffer(service_unavailable); - default: - return 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 reply::to_buffers() -{ - std::vector 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(asio::buffer(h.name)); - buffers.push_back(asio::buffer(misc_strings::name_value_separator)); - buffers.push_back(asio::buffer(h.value)); - buffers.push_back(asio::buffer(misc_strings::crlf)); - } - buffers.push_back(asio::buffer(misc_strings::crlf)); - buffers.push_back(asio::buffer(content)); - return buffers; -} - -namespace stock_replies { - -const char ok[] = ""; -const char created[] = - "" - "Created" - "

201 Created

" - ""; -const char accepted[] = - "" - "Accepted" - "

202 Accepted

" - ""; -const char no_content[] = - "" - "No Content" - "

204 Content

" - ""; -const char multiple_choices[] = - "" - "Multiple Choices" - "

300 Multiple Choices

" - ""; -const char moved_permanently[] = - "" - "Moved Permanently" - "

301 Moved Permanently

" - ""; -const char moved_temporarily[] = - "" - "Moved Temporarily" - "

302 Moved Temporarily

" - ""; -const char not_modified[] = - "" - "Not Modified" - "

304 Not Modified

" - ""; -const char bad_request[] = - "" - "Bad Request" - "

400 Bad Request

" - ""; -const char unauthorized[] = - "" - "Unauthorized" - "

401 Unauthorized

" - ""; -const char forbidden[] = - "" - "Forbidden" - "

403 Forbidden

" - ""; -const char not_found[] = - "" - "Not Found" - "

404 Not Found

" - ""; -const char internal_server_error[] = - "" - "Internal Server Error" - "

500 Internal Server Error

" - ""; -const char not_implemented[] = - "" - "Not Implemented" - "

501 Not Implemented

" - ""; -const char bad_gateway[] = - "" - "Bad Gateway" - "

502 Bad Gateway

" - ""; -const char service_unavailable[] = - "" - "Service Unavailable" - "

503 Service Unavailable

" - ""; - -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 = boost::lexical_cast(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = "text/html"; - return rep; -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/reply.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/reply.hpp deleted file mode 100644 index 078e55c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/reply.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// reply.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#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
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 to_buffers(); - - /// Get a stock reply. - static reply stock_reply(status_type status); -}; - -} // namespace server -} // namespace http - -#endif // HTTP_REPLY_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/request.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/request.hpp deleted file mode 100644 index 6488b1d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/request.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// request.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#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
headers; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_REQUEST_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/request_handler.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/request_handler.cpp deleted file mode 100644 index a8a5a55..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/request_handler.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// request_handler.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#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 = boost::lexical_cast(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(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/Sources/Vendor/asio/src/examples/cpp03/http/server/request_handler.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/request_handler.hpp deleted file mode 100644 index 7d05dbc..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/request_handler.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// request_handler.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include - -namespace http { -namespace server { - -struct reply; -struct request; - -/// The common handler for all incoming requests. -class request_handler - : private boost::noncopyable -{ -public: - /// 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/Sources/Vendor/asio/src/examples/cpp03/http/server/request_parser.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/request_parser.cpp deleted file mode 100644 index 7ce45dd..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/request_parser.cpp +++ /dev/null @@ -1,315 +0,0 @@ -// -// request_parser.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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; -} - -boost::tribool request_parser::consume(request& req, char input) -{ - switch (state_) - { - case method_start: - if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - state_ = method; - req.method.push_back(input); - return boost::indeterminate; - } - case method: - if (input == ' ') - { - state_ = uri; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.method.push_back(input); - return boost::indeterminate; - } - case uri: - if (input == ' ') - { - state_ = http_version_h; - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - req.uri.push_back(input); - return boost::indeterminate; - } - case http_version_h: - if (input == 'H') - { - state_ = http_version_t_1; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_t_1: - if (input == 'T') - { - state_ = http_version_t_2; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_t_2: - if (input == 'T') - { - state_ = http_version_p; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_p: - if (input == 'P') - { - state_ = http_version_slash; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_slash: - if (input == '/') - { - req.http_version_major = 0; - req.http_version_minor = 0; - state_ = http_version_major_start; - return boost::indeterminate; - } - else - { - return false; - } - 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 boost::indeterminate; - } - else - { - return false; - } - case http_version_major: - if (input == '.') - { - state_ = http_version_minor_start; - return boost::indeterminate; - } - else if (is_digit(input)) - { - req.http_version_major = req.http_version_major * 10 + input - '0'; - return boost::indeterminate; - } - else - { - return false; - } - 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 boost::indeterminate; - } - else - { - return false; - } - case http_version_minor: - if (input == '\r') - { - state_ = expecting_newline_1; - return boost::indeterminate; - } - else if (is_digit(input)) - { - req.http_version_minor = req.http_version_minor * 10 + input - '0'; - return boost::indeterminate; - } - else - { - return false; - } - case expecting_newline_1: - if (input == '\n') - { - state_ = header_line_start; - return boost::indeterminate; - } - else - { - return false; - } - case header_line_start: - if (input == '\r') - { - state_ = expecting_newline_3; - return boost::indeterminate; - } - else if (!req.headers.empty() && (input == ' ' || input == '\t')) - { - state_ = header_lws; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.headers.push_back(header()); - req.headers.back().name.push_back(input); - state_ = header_name; - return boost::indeterminate; - } - case header_lws: - if (input == '\r') - { - state_ = expecting_newline_2; - return boost::indeterminate; - } - else if (input == ' ' || input == '\t') - { - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - state_ = header_value; - req.headers.back().value.push_back(input); - return boost::indeterminate; - } - case header_name: - if (input == ':') - { - state_ = space_before_header_value; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.headers.back().name.push_back(input); - return boost::indeterminate; - } - case space_before_header_value: - if (input == ' ') - { - state_ = header_value; - return boost::indeterminate; - } - else - { - return false; - } - case header_value: - if (input == '\r') - { - state_ = expecting_newline_2; - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - req.headers.back().value.push_back(input); - return boost::indeterminate; - } - case expecting_newline_2: - if (input == '\n') - { - state_ = header_line_start; - return boost::indeterminate; - } - else - { - return false; - } - case expecting_newline_3: - return (input == '\n'); - default: - return false; - } -} - -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/Sources/Vendor/asio/src/examples/cpp03/http/server/request_parser.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/request_parser.hpp deleted file mode 100644 index ecda685..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/request_parser.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// -// request_parser.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include - -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(); - - /// Parse some data. The tribool return value is true when a complete request - /// has been parsed, false 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 - boost::tuple parse(request& req, - InputIterator begin, InputIterator end) - { - while (begin != end) - { - boost::tribool result = consume(req, *begin++); - if (result || !result) - return boost::make_tuple(result, begin); - } - boost::tribool result = boost::indeterminate; - return boost::make_tuple(result, begin); - } - -private: - /// Handle the next character of input. - boost::tribool 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/Sources/Vendor/asio/src/examples/cpp03/http/server/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/server.cpp deleted file mode 100644 index e366060..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/server.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include - -namespace http { -namespace server { - -server::server(const std::string& address, const std::string& port, - const std::string& doc_root) - : io_context_(), - signals_(io_context_), - acceptor_(io_context_), - connection_manager_(), - new_connection_(), - 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) - signals_.async_wait(boost::bind(&server::handle_stop, this)); - - // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR). - asio::ip::tcp::resolver resolver(io_context_); - asio::ip::tcp::endpoint endpoint = - *resolver.resolve(address, port).begin(); - acceptor_.open(endpoint.protocol()); - acceptor_.set_option(asio::ip::tcp::acceptor::reuse_address(true)); - acceptor_.bind(endpoint); - acceptor_.listen(); - - start_accept(); -} - -void server::run() -{ - // The io_context::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_context_.run(); -} - -void server::start_accept() -{ - new_connection_.reset(new connection(io_context_, - connection_manager_, request_handler_)); - acceptor_.async_accept(new_connection_->socket(), - boost::bind(&server::handle_accept, this, - asio::placeholders::error)); -} - -void server::handle_accept(const asio::error_code& e) -{ - // Check whether the server was stopped by a signal before this completion - // handler had a chance to run. - if (!acceptor_.is_open()) - { - return; - } - - if (!e) - { - connection_manager_.start(new_connection_); - } - - start_accept(); -} - -void server::handle_stop() -{ - // The server is stopped by cancelling all outstanding asynchronous - // operations. Once all operations have finished the io_context::run() call - // will exit. - acceptor_.close(); - connection_manager_.stop_all(); -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/server.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/server.hpp deleted file mode 100644 index e320c6e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/server.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// server.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#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 - : private boost::noncopyable -{ -public: - /// 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_context loop. - void run(); - -private: - /// Initiate an asynchronous accept operation. - void start_accept(); - - /// Handle completion of an asynchronous accept operation. - void handle_accept(const asio::error_code& e); - - /// Handle a request to stop the server. - void handle_stop(); - - /// The io_context used to perform asynchronous operations. - asio::io_context io_context_; - - /// The signal_set is used to register for process termination notifications. - asio::signal_set signals_; - - /// Acceptor used to listen for incoming connections. - asio::ip::tcp::acceptor acceptor_; - - /// The connection manager which owns all live connections. - connection_manager connection_manager_; - - /// The next connection to be accepted. - connection_ptr new_connection_; - - /// The handler for all incoming requests. - request_handler request_handler_; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_SERVER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/connection.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/connection.cpp deleted file mode 100644 index 655bcee..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/connection.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// -// connection.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include "request_handler.hpp" - -namespace http { -namespace server2 { - -connection::connection(asio::io_context& io_context, - request_handler& handler) - : socket_(io_context), - request_handler_(handler) -{ -} - -asio::ip::tcp::socket& connection::socket() -{ - return socket_; -} - -void connection::start() -{ - socket_.async_read_some(asio::buffer(buffer_), - boost::bind(&connection::handle_read, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); -} - -void connection::handle_read(const asio::error_code& e, - std::size_t bytes_transferred) -{ - if (!e) - { - boost::tribool result; - boost::tie(result, boost::tuples::ignore) = request_parser_.parse( - request_, buffer_.data(), buffer_.data() + bytes_transferred); - - if (result) - { - request_handler_.handle_request(request_, reply_); - asio::async_write(socket_, reply_.to_buffers(), - boost::bind(&connection::handle_write, shared_from_this(), - asio::placeholders::error)); - } - else if (!result) - { - reply_ = reply::stock_reply(reply::bad_request); - asio::async_write(socket_, reply_.to_buffers(), - boost::bind(&connection::handle_write, shared_from_this(), - asio::placeholders::error)); - } - else - { - socket_.async_read_some(asio::buffer(buffer_), - boost::bind(&connection::handle_read, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - } - - // If an error occurs then no new asynchronous operations are started. This - // means that all shared_ptr references to the connection object will - // disappear and the object will be destroyed automatically after this - // handler returns. The connection class's destructor closes the socket. -} - -void connection::handle_write(const asio::error_code& e) -{ - if (!e) - { - // Initiate graceful connection closure. - asio::error_code ignored_ec; - socket_.shutdown(asio::ip::tcp::socket::shutdown_both, ignored_ec); - } - - // No new asynchronous operations are started. This means that all shared_ptr - // references to the connection object will disappear and the object will be - // destroyed automatically after this handler returns. The connection class's - // destructor closes the socket. -} - -} // namespace server2 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/connection.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/connection.hpp deleted file mode 100644 index 6d1b17f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/connection.hpp +++ /dev/null @@ -1,75 +0,0 @@ -// -// connection.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER2_CONNECTION_HPP -#define HTTP_SERVER2_CONNECTION_HPP - -#include -#include -#include -#include -#include -#include "reply.hpp" -#include "request.hpp" -#include "request_handler.hpp" -#include "request_parser.hpp" - -namespace http { -namespace server2 { - -/// Represents a single connection from a client. -class connection - : public boost::enable_shared_from_this, - private boost::noncopyable -{ -public: - /// Construct a connection with the given io_context. - explicit connection(asio::io_context& io_context, - request_handler& handler); - - /// Get the socket associated with the connection. - asio::ip::tcp::socket& socket(); - - /// Start the first asynchronous operation for the connection. - void start(); - -private: - /// Handle completion of a read operation. - void handle_read(const asio::error_code& e, - std::size_t bytes_transferred); - - /// Handle completion of a write operation. - void handle_write(const asio::error_code& e); - - /// Socket for the connection. - asio::ip::tcp::socket socket_; - - /// The handler used to process the incoming request. - request_handler& request_handler_; - - /// Buffer for incoming data. - boost::array 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 boost::shared_ptr connection_ptr; - -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_CONNECTION_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/header.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/header.hpp deleted file mode 100644 index 559c5c1..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/header.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// header.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER2_HEADER_HPP -#define HTTP_SERVER2_HEADER_HPP - -#include - -namespace http { -namespace server2 { - -struct header -{ - std::string name; - std::string value; -}; - -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_HEADER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/io_context_pool.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/io_context_pool.cpp deleted file mode 100644 index 2dfa7ae..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/io_context_pool.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// io_context_pool.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include - -namespace http { -namespace server2 { - -io_context_pool::io_context_pool(std::size_t pool_size) - : next_io_context_(0) -{ - if (pool_size == 0) - throw std::runtime_error("io_context_pool size is 0"); - - // Give all the io_contexts work to do so that their run() functions will not - // exit until they are explicitly stopped. - for (std::size_t i = 0; i < pool_size; ++i) - { - io_context_ptr io_context(new asio::io_context); - io_contexts_.push_back(io_context); - work_.push_back(asio::make_work_guard(*io_context)); - } -} - -void io_context_pool::run() -{ - // Create a pool of threads to run all of the io_contexts. - std::vector > threads; - for (std::size_t i = 0; i < io_contexts_.size(); ++i) - { - boost::shared_ptr thread(new asio::thread( - boost::bind(&asio::io_context::run, io_contexts_[i]))); - threads.push_back(thread); - } - - // Wait for all threads in the pool to exit. - for (std::size_t i = 0; i < threads.size(); ++i) - threads[i]->join(); -} - -void io_context_pool::stop() -{ - // Explicitly stop all io_contexts. - for (std::size_t i = 0; i < io_contexts_.size(); ++i) - io_contexts_[i]->stop(); -} - -asio::io_context& io_context_pool::get_io_context() -{ - // Use a round-robin scheme to choose the next io_context to use. - asio::io_context& io_context = *io_contexts_[next_io_context_]; - ++next_io_context_; - if (next_io_context_ == io_contexts_.size()) - next_io_context_ = 0; - return io_context; -} - -} // namespace server2 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/io_context_pool.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/io_context_pool.hpp deleted file mode 100644 index 31a0fe3..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/io_context_pool.hpp +++ /dev/null @@ -1,58 +0,0 @@ -// -// io_context_pool.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER2_IO_SERVICE_POOL_HPP -#define HTTP_SERVER2_IO_SERVICE_POOL_HPP - -#include -#include -#include -#include -#include - -namespace http { -namespace server2 { - -/// A pool of io_context objects. -class io_context_pool - : private boost::noncopyable -{ -public: - /// Construct the io_context pool. - explicit io_context_pool(std::size_t pool_size); - - /// Run all io_context objects in the pool. - void run(); - - /// Stop all io_context objects in the pool. - void stop(); - - /// Get an io_context to use. - asio::io_context& get_io_context(); - -private: - typedef boost::shared_ptr io_context_ptr; - typedef asio::executor_work_guard< - asio::io_context::executor_type> io_context_work; - - /// The pool of io_contexts. - std::vector io_contexts_; - - /// The work that keeps the io_contexts running. - std::list work_; - - /// The next io_context to use for a connection. - std::size_t next_io_context_; -}; - -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_IO_SERVICE_POOL_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/main.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/main.cpp deleted file mode 100644 index 1e74410..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/main.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// main.cpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include "server.hpp" - -int main(int argc, char* argv[]) -{ - try - { - // Check command line arguments. - if (argc != 5) - { - std::cerr << "Usage: http_server
\n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " receiver 0.0.0.0 80 1 .\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " receiver 0::0 80 1 .\n"; - return 1; - } - - // Initialise the server. - std::size_t num_threads = boost::lexical_cast(argv[3]); - http::server2::server s(argv[1], argv[2], argv[4], num_threads); - - // Run the server until stopped. - s.run(); - } - catch (std::exception& e) - { - std::cerr << "exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/mime_types.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/mime_types.cpp deleted file mode 100644 index 0fdd731..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/mime_types.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// mime_types.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 server2 { -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" }, - { 0, 0 } // Marks end of list. -}; - -std::string extension_to_type(const std::string& extension) -{ - for (mapping* m = mappings; m->extension; ++m) - { - if (m->extension == extension) - { - return m->mime_type; - } - } - - return "text/plain"; -} - -} // namespace mime_types -} // namespace server2 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/mime_types.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/mime_types.hpp deleted file mode 100644 index c11280b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/mime_types.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// mime_types.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER2_MIME_TYPES_HPP -#define HTTP_SERVER2_MIME_TYPES_HPP - -#include - -namespace http { -namespace server2 { -namespace mime_types { - -/// Convert a file extension into a MIME type. -std::string extension_to_type(const std::string& extension); - -} // namespace mime_types -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_MIME_TYPES_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/reply.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/reply.cpp deleted file mode 100644 index 36de10a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/reply.cpp +++ /dev/null @@ -1,256 +0,0 @@ -// -// reply.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include - -namespace http { -namespace server2 { - -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"; - -asio::const_buffer to_buffer(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return asio::buffer(ok); - case reply::created: - return asio::buffer(created); - case reply::accepted: - return asio::buffer(accepted); - case reply::no_content: - return asio::buffer(no_content); - case reply::multiple_choices: - return asio::buffer(multiple_choices); - case reply::moved_permanently: - return asio::buffer(moved_permanently); - case reply::moved_temporarily: - return asio::buffer(moved_temporarily); - case reply::not_modified: - return asio::buffer(not_modified); - case reply::bad_request: - return asio::buffer(bad_request); - case reply::unauthorized: - return asio::buffer(unauthorized); - case reply::forbidden: - return asio::buffer(forbidden); - case reply::not_found: - return asio::buffer(not_found); - case reply::internal_server_error: - return asio::buffer(internal_server_error); - case reply::not_implemented: - return asio::buffer(not_implemented); - case reply::bad_gateway: - return asio::buffer(bad_gateway); - case reply::service_unavailable: - return asio::buffer(service_unavailable); - default: - return 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 reply::to_buffers() -{ - std::vector 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(asio::buffer(h.name)); - buffers.push_back(asio::buffer(misc_strings::name_value_separator)); - buffers.push_back(asio::buffer(h.value)); - buffers.push_back(asio::buffer(misc_strings::crlf)); - } - buffers.push_back(asio::buffer(misc_strings::crlf)); - buffers.push_back(asio::buffer(content)); - return buffers; -} - -namespace stock_replies { - -const char ok[] = ""; -const char created[] = - "" - "Created" - "

201 Created

" - ""; -const char accepted[] = - "" - "Accepted" - "

202 Accepted

" - ""; -const char no_content[] = - "" - "No Content" - "

204 Content

" - ""; -const char multiple_choices[] = - "" - "Multiple Choices" - "

300 Multiple Choices

" - ""; -const char moved_permanently[] = - "" - "Moved Permanently" - "

301 Moved Permanently

" - ""; -const char moved_temporarily[] = - "" - "Moved Temporarily" - "

302 Moved Temporarily

" - ""; -const char not_modified[] = - "" - "Not Modified" - "

304 Not Modified

" - ""; -const char bad_request[] = - "" - "Bad Request" - "

400 Bad Request

" - ""; -const char unauthorized[] = - "" - "Unauthorized" - "

401 Unauthorized

" - ""; -const char forbidden[] = - "" - "Forbidden" - "

403 Forbidden

" - ""; -const char not_found[] = - "" - "Not Found" - "

404 Not Found

" - ""; -const char internal_server_error[] = - "" - "Internal Server Error" - "

500 Internal Server Error

" - ""; -const char not_implemented[] = - "" - "Not Implemented" - "

501 Not Implemented

" - ""; -const char bad_gateway[] = - "" - "Bad Gateway" - "

502 Bad Gateway

" - ""; -const char service_unavailable[] = - "" - "Service Unavailable" - "

503 Service Unavailable

" - ""; - -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 = boost::lexical_cast(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = "text/html"; - return rep; -} - -} // namespace server2 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/reply.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/reply.hpp deleted file mode 100644 index b140b99..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/reply.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// reply.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER2_REPLY_HPP -#define HTTP_SERVER2_REPLY_HPP - -#include -#include -#include -#include "header.hpp" - -namespace http { -namespace server2 { - -/// 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
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 to_buffers(); - - /// Get a stock reply. - static reply stock_reply(status_type status); -}; - -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_REPLY_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/request.hpp deleted file mode 100644 index 3eb3494..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// request.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER2_REQUEST_HPP -#define HTTP_SERVER2_REQUEST_HPP - -#include -#include -#include "header.hpp" - -namespace http { -namespace server2 { - -/// A request received from a client. -struct request -{ - std::string method; - std::string uri; - int http_version_major; - int http_version_minor; - std::vector
headers; -}; - -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_REQUEST_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_handler.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_handler.cpp deleted file mode 100644 index acac4d1..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_handler.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// request_handler.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include "mime_types.hpp" -#include "reply.hpp" -#include "request.hpp" - -namespace http { -namespace server2 { - -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 = boost::lexical_cast(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(value); - i += 2; - } - else - { - return false; - } - } - else - { - return false; - } - } - else if (in[i] == '+') - { - out += ' '; - } - else - { - out += in[i]; - } - } - return true; -} - -} // namespace server2 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_handler.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_handler.hpp deleted file mode 100644 index 3f9c743..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_handler.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// request_handler.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER2_REQUEST_HANDLER_HPP -#define HTTP_SERVER2_REQUEST_HANDLER_HPP - -#include -#include - -namespace http { -namespace server2 { - -struct reply; -struct request; - -/// The common handler for all incoming requests. -class request_handler - : private boost::noncopyable -{ -public: - /// 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 server2 -} // namespace http - -#endif // HTTP_SERVER2_REQUEST_HANDLER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_parser.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_parser.cpp deleted file mode 100644 index b7e7d64..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_parser.cpp +++ /dev/null @@ -1,315 +0,0 @@ -// -// request_parser.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 server2 { - -request_parser::request_parser() - : state_(method_start) -{ -} - -void request_parser::reset() -{ - state_ = method_start; -} - -boost::tribool request_parser::consume(request& req, char input) -{ - switch (state_) - { - case method_start: - if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - state_ = method; - req.method.push_back(input); - return boost::indeterminate; - } - case method: - if (input == ' ') - { - state_ = uri; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.method.push_back(input); - return boost::indeterminate; - } - case uri: - if (input == ' ') - { - state_ = http_version_h; - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - req.uri.push_back(input); - return boost::indeterminate; - } - case http_version_h: - if (input == 'H') - { - state_ = http_version_t_1; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_t_1: - if (input == 'T') - { - state_ = http_version_t_2; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_t_2: - if (input == 'T') - { - state_ = http_version_p; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_p: - if (input == 'P') - { - state_ = http_version_slash; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_slash: - if (input == '/') - { - req.http_version_major = 0; - req.http_version_minor = 0; - state_ = http_version_major_start; - return boost::indeterminate; - } - else - { - return false; - } - 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 boost::indeterminate; - } - else - { - return false; - } - case http_version_major: - if (input == '.') - { - state_ = http_version_minor_start; - return boost::indeterminate; - } - else if (is_digit(input)) - { - req.http_version_major = req.http_version_major * 10 + input - '0'; - return boost::indeterminate; - } - else - { - return false; - } - 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 boost::indeterminate; - } - else - { - return false; - } - case http_version_minor: - if (input == '\r') - { - state_ = expecting_newline_1; - return boost::indeterminate; - } - else if (is_digit(input)) - { - req.http_version_minor = req.http_version_minor * 10 + input - '0'; - return boost::indeterminate; - } - else - { - return false; - } - case expecting_newline_1: - if (input == '\n') - { - state_ = header_line_start; - return boost::indeterminate; - } - else - { - return false; - } - case header_line_start: - if (input == '\r') - { - state_ = expecting_newline_3; - return boost::indeterminate; - } - else if (!req.headers.empty() && (input == ' ' || input == '\t')) - { - state_ = header_lws; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.headers.push_back(header()); - req.headers.back().name.push_back(input); - state_ = header_name; - return boost::indeterminate; - } - case header_lws: - if (input == '\r') - { - state_ = expecting_newline_2; - return boost::indeterminate; - } - else if (input == ' ' || input == '\t') - { - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - state_ = header_value; - req.headers.back().value.push_back(input); - return boost::indeterminate; - } - case header_name: - if (input == ':') - { - state_ = space_before_header_value; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.headers.back().name.push_back(input); - return boost::indeterminate; - } - case space_before_header_value: - if (input == ' ') - { - state_ = header_value; - return boost::indeterminate; - } - else - { - return false; - } - case header_value: - if (input == '\r') - { - state_ = expecting_newline_2; - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - req.headers.back().value.push_back(input); - return boost::indeterminate; - } - case expecting_newline_2: - if (input == '\n') - { - state_ = header_line_start; - return boost::indeterminate; - } - else - { - return false; - } - case expecting_newline_3: - return (input == '\n'); - default: - return false; - } -} - -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 server2 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_parser.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_parser.hpp deleted file mode 100644 index a986720..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_parser.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// -// request_parser.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER2_REQUEST_PARSER_HPP -#define HTTP_SERVER2_REQUEST_PARSER_HPP - -#include -#include - -namespace http { -namespace server2 { - -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(); - - /// Parse some data. The tribool return value is true when a complete request - /// has been parsed, false 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 - boost::tuple parse(request& req, - InputIterator begin, InputIterator end) - { - while (begin != end) - { - boost::tribool result = consume(req, *begin++); - if (result || !result) - return boost::make_tuple(result, begin); - } - boost::tribool result = boost::indeterminate; - return boost::make_tuple(result, begin); - } - -private: - /// Handle the next character of input. - boost::tribool 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 server2 -} // namespace http - -#endif // HTTP_SERVER2_REQUEST_PARSER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/server.cpp deleted file mode 100644 index 310cbac..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/server.cpp +++ /dev/null @@ -1,77 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 - -namespace http { -namespace server2 { - -server::server(const std::string& address, const std::string& port, - const std::string& doc_root, std::size_t io_context_pool_size) - : io_context_pool_(io_context_pool_size), - signals_(io_context_pool_.get_io_context()), - acceptor_(io_context_pool_.get_io_context()), - new_connection_(), - 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) - signals_.async_wait(boost::bind(&server::handle_stop, this)); - - // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR). - asio::ip::tcp::resolver resolver(acceptor_.get_executor().context()); - asio::ip::tcp::endpoint endpoint = - *resolver.resolve(address, port).begin(); - acceptor_.open(endpoint.protocol()); - acceptor_.set_option(asio::ip::tcp::acceptor::reuse_address(true)); - acceptor_.bind(endpoint); - acceptor_.listen(); - - start_accept(); -} - -void server::run() -{ - io_context_pool_.run(); -} - -void server::start_accept() -{ - new_connection_.reset(new connection( - io_context_pool_.get_io_context(), request_handler_)); - acceptor_.async_accept(new_connection_->socket(), - boost::bind(&server::handle_accept, this, - asio::placeholders::error)); -} - -void server::handle_accept(const asio::error_code& e) -{ - if (!e) - { - new_connection_->start(); - } - - start_accept(); -} - -void server::handle_stop() -{ - io_context_pool_.stop(); -} - -} // namespace server2 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/server.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/server.hpp deleted file mode 100644 index 83b2a61..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/server.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// -// server.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER2_SERVER_HPP -#define HTTP_SERVER2_SERVER_HPP - -#include -#include -#include -#include -#include -#include "connection.hpp" -#include "io_context_pool.hpp" -#include "request_handler.hpp" - -namespace http { -namespace server2 { - -/// The top-level class of the HTTP server. -class server - : private boost::noncopyable -{ -public: - /// 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, std::size_t io_context_pool_size); - - /// Run the server's io_context loop. - void run(); - -private: - /// Initiate an asynchronous accept operation. - void start_accept(); - - /// Handle completion of an asynchronous accept operation. - void handle_accept(const asio::error_code& e); - - /// Handle a request to stop the server. - void handle_stop(); - - /// The pool of io_context objects used to perform asynchronous operations. - io_context_pool io_context_pool_; - - /// The signal_set is used to register for process termination notifications. - asio::signal_set signals_; - - /// Acceptor used to listen for incoming connections. - asio::ip::tcp::acceptor acceptor_; - - /// The next connection to be accepted. - connection_ptr new_connection_; - - /// The handler for all incoming requests. - request_handler request_handler_; -}; - -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_SERVER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/connection.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/connection.cpp deleted file mode 100644 index 5555c03..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/connection.cpp +++ /dev/null @@ -1,98 +0,0 @@ -// -// connection.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include "request_handler.hpp" - -namespace http { -namespace server3 { - -connection::connection(asio::io_context& io_context, - request_handler& handler) - : strand_(io_context), - socket_(io_context), - request_handler_(handler) -{ -} - -asio::ip::tcp::socket& connection::socket() -{ - return socket_; -} - -void connection::start() -{ - socket_.async_read_some(asio::buffer(buffer_), - asio::bind_executor(strand_, - boost::bind(&connection::handle_read, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred))); -} - -void connection::handle_read(const asio::error_code& e, - std::size_t bytes_transferred) -{ - if (!e) - { - boost::tribool result; - boost::tie(result, boost::tuples::ignore) = request_parser_.parse( - request_, buffer_.data(), buffer_.data() + bytes_transferred); - - if (result) - { - request_handler_.handle_request(request_, reply_); - asio::async_write(socket_, reply_.to_buffers(), - asio::bind_executor(strand_, - boost::bind(&connection::handle_write, shared_from_this(), - asio::placeholders::error))); - } - else if (!result) - { - reply_ = reply::stock_reply(reply::bad_request); - asio::async_write(socket_, reply_.to_buffers(), - asio::bind_executor(strand_, - boost::bind(&connection::handle_write, shared_from_this(), - asio::placeholders::error))); - } - else - { - socket_.async_read_some(asio::buffer(buffer_), - asio::bind_executor(strand_, - boost::bind(&connection::handle_read, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred))); - } - } - - // If an error occurs then no new asynchronous operations are started. This - // means that all shared_ptr references to the connection object will - // disappear and the object will be destroyed automatically after this - // handler returns. The connection class's destructor closes the socket. -} - -void connection::handle_write(const asio::error_code& e) -{ - if (!e) - { - // Initiate graceful connection closure. - asio::error_code ignored_ec; - socket_.shutdown(asio::ip::tcp::socket::shutdown_both, ignored_ec); - } - - // No new asynchronous operations are started. This means that all shared_ptr - // references to the connection object will disappear and the object will be - // destroyed automatically after this handler returns. The connection class's - // destructor closes the socket. -} - -} // namespace server3 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/connection.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/connection.hpp deleted file mode 100644 index 453333b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/connection.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// connection.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER3_CONNECTION_HPP -#define HTTP_SERVER3_CONNECTION_HPP - -#include -#include -#include -#include -#include -#include "reply.hpp" -#include "request.hpp" -#include "request_handler.hpp" -#include "request_parser.hpp" - -namespace http { -namespace server3 { - -/// Represents a single connection from a client. -class connection - : public boost::enable_shared_from_this, - private boost::noncopyable -{ -public: - /// Construct a connection with the given io_context. - explicit connection(asio::io_context& io_context, - request_handler& handler); - - /// Get the socket associated with the connection. - asio::ip::tcp::socket& socket(); - - /// Start the first asynchronous operation for the connection. - void start(); - -private: - /// Handle completion of a read operation. - void handle_read(const asio::error_code& e, - std::size_t bytes_transferred); - - /// Handle completion of a write operation. - void handle_write(const asio::error_code& e); - - /// Strand to ensure the connection's handlers are not called concurrently. - asio::io_context::strand strand_; - - /// Socket for the connection. - asio::ip::tcp::socket socket_; - - /// The handler used to process the incoming request. - request_handler& request_handler_; - - /// Buffer for incoming data. - boost::array 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 boost::shared_ptr connection_ptr; - -} // namespace server3 -} // namespace http - -#endif // HTTP_SERVER3_CONNECTION_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/header.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/header.hpp deleted file mode 100644 index d53fede..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/header.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// header.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER3_HEADER_HPP -#define HTTP_SERVER3_HEADER_HPP - -#include - -namespace http { -namespace server3 { - -struct header -{ - std::string name; - std::string value; -}; - -} // namespace server3 -} // namespace http - -#endif // HTTP_SERVER3_HEADER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/main.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/main.cpp deleted file mode 100644 index dc52ff1..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/main.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// main.cpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include "server.hpp" - -int main(int argc, char* argv[]) -{ - try - { - // Check command line arguments. - if (argc != 5) - { - std::cerr << "Usage: http_server
\n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " receiver 0.0.0.0 80 1 .\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " receiver 0::0 80 1 .\n"; - return 1; - } - - // Initialise the server. - std::size_t num_threads = boost::lexical_cast(argv[3]); - http::server3::server s(argv[1], argv[2], argv[4], num_threads); - - // Run the server until stopped. - s.run(); - } - catch (std::exception& e) - { - std::cerr << "exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/mime_types.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/mime_types.cpp deleted file mode 100644 index 8bc6cd4..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/mime_types.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// mime_types.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 server3 { -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" }, - { 0, 0 } // Marks end of list. -}; - -std::string extension_to_type(const std::string& extension) -{ - for (mapping* m = mappings; m->extension; ++m) - { - if (m->extension == extension) - { - return m->mime_type; - } - } - - return "text/plain"; -} - -} // namespace mime_types -} // namespace server3 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/mime_types.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/mime_types.hpp deleted file mode 100644 index 5593806..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/mime_types.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// mime_types.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER3_MIME_TYPES_HPP -#define HTTP_SERVER3_MIME_TYPES_HPP - -#include - -namespace http { -namespace server3 { -namespace mime_types { - -/// Convert a file extension into a MIME type. -std::string extension_to_type(const std::string& extension); - -} // namespace mime_types -} // namespace server3 -} // namespace http - -#endif // HTTP_SERVER3_MIME_TYPES_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/reply.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/reply.cpp deleted file mode 100644 index 1ae932b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/reply.cpp +++ /dev/null @@ -1,256 +0,0 @@ -// -// reply.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include - -namespace http { -namespace server3 { - -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"; - -asio::const_buffer to_buffer(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return asio::buffer(ok); - case reply::created: - return asio::buffer(created); - case reply::accepted: - return asio::buffer(accepted); - case reply::no_content: - return asio::buffer(no_content); - case reply::multiple_choices: - return asio::buffer(multiple_choices); - case reply::moved_permanently: - return asio::buffer(moved_permanently); - case reply::moved_temporarily: - return asio::buffer(moved_temporarily); - case reply::not_modified: - return asio::buffer(not_modified); - case reply::bad_request: - return asio::buffer(bad_request); - case reply::unauthorized: - return asio::buffer(unauthorized); - case reply::forbidden: - return asio::buffer(forbidden); - case reply::not_found: - return asio::buffer(not_found); - case reply::internal_server_error: - return asio::buffer(internal_server_error); - case reply::not_implemented: - return asio::buffer(not_implemented); - case reply::bad_gateway: - return asio::buffer(bad_gateway); - case reply::service_unavailable: - return asio::buffer(service_unavailable); - default: - return 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 reply::to_buffers() -{ - std::vector 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(asio::buffer(h.name)); - buffers.push_back(asio::buffer(misc_strings::name_value_separator)); - buffers.push_back(asio::buffer(h.value)); - buffers.push_back(asio::buffer(misc_strings::crlf)); - } - buffers.push_back(asio::buffer(misc_strings::crlf)); - buffers.push_back(asio::buffer(content)); - return buffers; -} - -namespace stock_replies { - -const char ok[] = ""; -const char created[] = - "" - "Created" - "

201 Created

" - ""; -const char accepted[] = - "" - "Accepted" - "

202 Accepted

" - ""; -const char no_content[] = - "" - "No Content" - "

204 Content

" - ""; -const char multiple_choices[] = - "" - "Multiple Choices" - "

300 Multiple Choices

" - ""; -const char moved_permanently[] = - "" - "Moved Permanently" - "

301 Moved Permanently

" - ""; -const char moved_temporarily[] = - "" - "Moved Temporarily" - "

302 Moved Temporarily

" - ""; -const char not_modified[] = - "" - "Not Modified" - "

304 Not Modified

" - ""; -const char bad_request[] = - "" - "Bad Request" - "

400 Bad Request

" - ""; -const char unauthorized[] = - "" - "Unauthorized" - "

401 Unauthorized

" - ""; -const char forbidden[] = - "" - "Forbidden" - "

403 Forbidden

" - ""; -const char not_found[] = - "" - "Not Found" - "

404 Not Found

" - ""; -const char internal_server_error[] = - "" - "Internal Server Error" - "

500 Internal Server Error

" - ""; -const char not_implemented[] = - "" - "Not Implemented" - "

501 Not Implemented

" - ""; -const char bad_gateway[] = - "" - "Bad Gateway" - "

502 Bad Gateway

" - ""; -const char service_unavailable[] = - "" - "Service Unavailable" - "

503 Service Unavailable

" - ""; - -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 = boost::lexical_cast(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = "text/html"; - return rep; -} - -} // namespace server3 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/reply.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/reply.hpp deleted file mode 100644 index 7f6847e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/reply.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// reply.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER3_REPLY_HPP -#define HTTP_SERVER3_REPLY_HPP - -#include -#include -#include -#include "header.hpp" - -namespace http { -namespace server3 { - -/// 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
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 to_buffers(); - - /// Get a stock reply. - static reply stock_reply(status_type status); -}; - -} // namespace server3 -} // namespace http - -#endif // HTTP_SERVER3_REPLY_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/request.hpp deleted file mode 100644 index 92ef781..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// request.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER3_REQUEST_HPP -#define HTTP_SERVER3_REQUEST_HPP - -#include -#include -#include "header.hpp" - -namespace http { -namespace server3 { - -/// A request received from a client. -struct request -{ - std::string method; - std::string uri; - int http_version_major; - int http_version_minor; - std::vector
headers; -}; - -} // namespace server3 -} // namespace http - -#endif // HTTP_SERVER3_REQUEST_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_handler.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_handler.cpp deleted file mode 100644 index e13d21d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_handler.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// request_handler.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include "mime_types.hpp" -#include "reply.hpp" -#include "request.hpp" - -namespace http { -namespace server3 { - -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 = boost::lexical_cast(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(value); - i += 2; - } - else - { - return false; - } - } - else - { - return false; - } - } - else if (in[i] == '+') - { - out += ' '; - } - else - { - out += in[i]; - } - } - return true; -} - -} // namespace server3 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_handler.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_handler.hpp deleted file mode 100644 index 8697fbc..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_handler.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// request_handler.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER3_REQUEST_HANDLER_HPP -#define HTTP_SERVER3_REQUEST_HANDLER_HPP - -#include -#include - -namespace http { -namespace server3 { - -struct reply; -struct request; - -/// The common handler for all incoming requests. -class request_handler - : private boost::noncopyable -{ -public: - /// 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 server3 -} // namespace http - -#endif // HTTP_SERVER3_REQUEST_HANDLER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_parser.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_parser.cpp deleted file mode 100644 index 1623443..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_parser.cpp +++ /dev/null @@ -1,315 +0,0 @@ -// -// request_parser.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 server3 { - -request_parser::request_parser() - : state_(method_start) -{ -} - -void request_parser::reset() -{ - state_ = method_start; -} - -boost::tribool request_parser::consume(request& req, char input) -{ - switch (state_) - { - case method_start: - if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - state_ = method; - req.method.push_back(input); - return boost::indeterminate; - } - case method: - if (input == ' ') - { - state_ = uri; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.method.push_back(input); - return boost::indeterminate; - } - case uri: - if (input == ' ') - { - state_ = http_version_h; - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - req.uri.push_back(input); - return boost::indeterminate; - } - case http_version_h: - if (input == 'H') - { - state_ = http_version_t_1; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_t_1: - if (input == 'T') - { - state_ = http_version_t_2; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_t_2: - if (input == 'T') - { - state_ = http_version_p; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_p: - if (input == 'P') - { - state_ = http_version_slash; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_slash: - if (input == '/') - { - req.http_version_major = 0; - req.http_version_minor = 0; - state_ = http_version_major_start; - return boost::indeterminate; - } - else - { - return false; - } - 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 boost::indeterminate; - } - else - { - return false; - } - case http_version_major: - if (input == '.') - { - state_ = http_version_minor_start; - return boost::indeterminate; - } - else if (is_digit(input)) - { - req.http_version_major = req.http_version_major * 10 + input - '0'; - return boost::indeterminate; - } - else - { - return false; - } - 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 boost::indeterminate; - } - else - { - return false; - } - case http_version_minor: - if (input == '\r') - { - state_ = expecting_newline_1; - return boost::indeterminate; - } - else if (is_digit(input)) - { - req.http_version_minor = req.http_version_minor * 10 + input - '0'; - return boost::indeterminate; - } - else - { - return false; - } - case expecting_newline_1: - if (input == '\n') - { - state_ = header_line_start; - return boost::indeterminate; - } - else - { - return false; - } - case header_line_start: - if (input == '\r') - { - state_ = expecting_newline_3; - return boost::indeterminate; - } - else if (!req.headers.empty() && (input == ' ' || input == '\t')) - { - state_ = header_lws; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.headers.push_back(header()); - req.headers.back().name.push_back(input); - state_ = header_name; - return boost::indeterminate; - } - case header_lws: - if (input == '\r') - { - state_ = expecting_newline_2; - return boost::indeterminate; - } - else if (input == ' ' || input == '\t') - { - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - state_ = header_value; - req.headers.back().value.push_back(input); - return boost::indeterminate; - } - case header_name: - if (input == ':') - { - state_ = space_before_header_value; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.headers.back().name.push_back(input); - return boost::indeterminate; - } - case space_before_header_value: - if (input == ' ') - { - state_ = header_value; - return boost::indeterminate; - } - else - { - return false; - } - case header_value: - if (input == '\r') - { - state_ = expecting_newline_2; - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - req.headers.back().value.push_back(input); - return boost::indeterminate; - } - case expecting_newline_2: - if (input == '\n') - { - state_ = header_line_start; - return boost::indeterminate; - } - else - { - return false; - } - case expecting_newline_3: - return (input == '\n'); - default: - return false; - } -} - -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 server3 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_parser.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_parser.hpp deleted file mode 100644 index 19cfa1c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_parser.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// -// request_parser.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER3_REQUEST_PARSER_HPP -#define HTTP_SERVER3_REQUEST_PARSER_HPP - -#include -#include - -namespace http { -namespace server3 { - -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(); - - /// Parse some data. The tribool return value is true when a complete request - /// has been parsed, false 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 - boost::tuple parse(request& req, - InputIterator begin, InputIterator end) - { - while (begin != end) - { - boost::tribool result = consume(req, *begin++); - if (result || !result) - return boost::make_tuple(result, begin); - } - boost::tribool result = boost::indeterminate; - return boost::make_tuple(result, begin); - } - -private: - /// Handle the next character of input. - boost::tribool 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 server3 -} // namespace http - -#endif // HTTP_SERVER3_REQUEST_PARSER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/server.cpp deleted file mode 100644 index ab66f72..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/server.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include - -namespace http { -namespace server3 { - -server::server(const std::string& address, const std::string& port, - const std::string& doc_root, std::size_t thread_pool_size) - : thread_pool_size_(thread_pool_size), - signals_(io_context_), - acceptor_(io_context_), - new_connection_(), - 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) - signals_.async_wait(boost::bind(&server::handle_stop, this)); - - // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR). - asio::ip::tcp::resolver resolver(io_context_); - asio::ip::tcp::endpoint endpoint = - *resolver.resolve(address, port).begin(); - acceptor_.open(endpoint.protocol()); - acceptor_.set_option(asio::ip::tcp::acceptor::reuse_address(true)); - acceptor_.bind(endpoint); - acceptor_.listen(); - - start_accept(); -} - -void server::run() -{ - // Create a pool of threads to run all of the io_contexts. - std::vector > threads; - for (std::size_t i = 0; i < thread_pool_size_; ++i) - { - boost::shared_ptr thread(new asio::thread( - boost::bind(&asio::io_context::run, &io_context_))); - threads.push_back(thread); - } - - // Wait for all threads in the pool to exit. - for (std::size_t i = 0; i < threads.size(); ++i) - threads[i]->join(); -} - -void server::start_accept() -{ - new_connection_.reset(new connection(io_context_, request_handler_)); - acceptor_.async_accept(new_connection_->socket(), - boost::bind(&server::handle_accept, this, - asio::placeholders::error)); -} - -void server::handle_accept(const asio::error_code& e) -{ - if (!e) - { - new_connection_->start(); - } - - start_accept(); -} - -void server::handle_stop() -{ - io_context_.stop(); -} - -} // namespace server3 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/server.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/server.hpp deleted file mode 100644 index 812ce32..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/server.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// -// server.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER3_SERVER_HPP -#define HTTP_SERVER3_SERVER_HPP - -#include -#include -#include -#include -#include -#include "connection.hpp" -#include "request_handler.hpp" - -namespace http { -namespace server3 { - -/// The top-level class of the HTTP server. -class server - : private boost::noncopyable -{ -public: - /// 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, std::size_t thread_pool_size); - - /// Run the server's io_context loop. - void run(); - -private: - /// Initiate an asynchronous accept operation. - void start_accept(); - - /// Handle completion of an asynchronous accept operation. - void handle_accept(const asio::error_code& e); - - /// Handle a request to stop the server. - void handle_stop(); - - /// The number of threads that will call io_context::run(). - std::size_t thread_pool_size_; - - /// The io_context used to perform asynchronous operations. - asio::io_context io_context_; - - /// The signal_set is used to register for process termination notifications. - asio::signal_set signals_; - - /// Acceptor used to listen for incoming connections. - asio::ip::tcp::acceptor acceptor_; - - /// The next connection to be accepted. - connection_ptr new_connection_; - - /// The handler for all incoming requests. - request_handler request_handler_; -}; - -} // namespace server3 -} // namespace http - -#endif // HTTP_SERVER3_SERVER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/file_handler.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/file_handler.cpp deleted file mode 100644 index 1a4bb6c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/file_handler.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// file_handler.cpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "file_handler.hpp" -#include -#include -#include -#include -#include "mime_types.hpp" -#include "reply.hpp" -#include "request.hpp" - -namespace http { -namespace server4 { - -file_handler::file_handler(const std::string& doc_root) - : doc_root_(doc_root) -{ -} - -void file_handler::operator()(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 = boost::lexical_cast(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = mime_types::extension_to_type(extension); -} - -bool file_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(value); - i += 2; - } - else - { - return false; - } - } - else - { - return false; - } - } - else if (in[i] == '+') - { - out += ' '; - } - else - { - out += in[i]; - } - } - return true; -} - -} // namespace server4 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/file_handler.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/file_handler.hpp deleted file mode 100644 index 1835922..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/file_handler.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// -// file_handler.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER4_FILE_HANDLER_HPP -#define HTTP_SERVER4_FILE_HANDLER_HPP - -#include - -namespace http { -namespace server4 { - -struct reply; -struct request; - -/// The common handler for all incoming requests. -class file_handler -{ -public: - /// Construct with a directory containing files to be served. - explicit file_handler(const std::string& doc_root); - - /// Handle a request and produce a reply. - void operator()(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 server4 -} // namespace http - -#endif // HTTP_SERVER4_FILE_HANDLER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/header.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/header.hpp deleted file mode 100644 index 8fa2512..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/header.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// header.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER4_HEADER_HPP -#define HTTP_SERVER4_HEADER_HPP - -#include - -namespace http { -namespace server4 { - -struct header -{ - std::string name; - std::string value; -}; - -} // namespace server4 -} // namespace http - -#endif // HTTP_SERVER4_HEADER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/main.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/main.cpp deleted file mode 100644 index 263fa89..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/main.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// -// main.cpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include "server.hpp" -#include "file_handler.hpp" - -int main(int argc, char* argv[]) -{ - try - { - // Check command line arguments. - if (argc != 4) - { - std::cerr << "Usage: http_server
\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; - } - - asio::io_context io_context; - - // Launch the initial server coroutine. - http::server4::server(io_context, argv[1], argv[2], - http::server4::file_handler(argv[3]))(); - - // Wait for signals indicating time to shut down. - asio::signal_set signals(io_context); - signals.add(SIGINT); - signals.add(SIGTERM); -#if defined(SIGQUIT) - signals.add(SIGQUIT); -#endif // defined(SIGQUIT) - signals.async_wait(boost::bind( - &asio::io_context::stop, &io_context)); - - // Run the server. - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/mime_types.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/mime_types.cpp deleted file mode 100644 index 7b30ffb..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/mime_types.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// mime_types.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 server4 { -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" }, - { 0, 0 } // Marks end of list. -}; - -std::string extension_to_type(const std::string& extension) -{ - for (mapping* m = mappings; m->extension; ++m) - { - if (m->extension == extension) - { - return m->mime_type; - } - } - - return "text/plain"; -} - -} // namespace mime_types -} // namespace server4 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/mime_types.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/mime_types.hpp deleted file mode 100644 index 6eae007..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/mime_types.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// mime_types.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER4_MIME_TYPES_HPP -#define HTTP_SERVER4_MIME_TYPES_HPP - -#include - -namespace http { -namespace server4 { -namespace mime_types { - -/// Convert a file extension into a MIME type. -std::string extension_to_type(const std::string& extension); - -} // namespace mime_types -} // namespace server4 -} // namespace http - -#endif // HTTP_SERVER4_MIME_TYPES_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/reply.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/reply.cpp deleted file mode 100644 index 78c017e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/reply.cpp +++ /dev/null @@ -1,256 +0,0 @@ -// -// reply.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include - -namespace http { -namespace server4 { - -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"; - -asio::const_buffer to_buffer(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return asio::buffer(ok); - case reply::created: - return asio::buffer(created); - case reply::accepted: - return asio::buffer(accepted); - case reply::no_content: - return asio::buffer(no_content); - case reply::multiple_choices: - return asio::buffer(multiple_choices); - case reply::moved_permanently: - return asio::buffer(moved_permanently); - case reply::moved_temporarily: - return asio::buffer(moved_temporarily); - case reply::not_modified: - return asio::buffer(not_modified); - case reply::bad_request: - return asio::buffer(bad_request); - case reply::unauthorized: - return asio::buffer(unauthorized); - case reply::forbidden: - return asio::buffer(forbidden); - case reply::not_found: - return asio::buffer(not_found); - case reply::internal_server_error: - return asio::buffer(internal_server_error); - case reply::not_implemented: - return asio::buffer(not_implemented); - case reply::bad_gateway: - return asio::buffer(bad_gateway); - case reply::service_unavailable: - return asio::buffer(service_unavailable); - default: - return 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 reply::to_buffers() -{ - std::vector 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(asio::buffer(h.name)); - buffers.push_back(asio::buffer(misc_strings::name_value_separator)); - buffers.push_back(asio::buffer(h.value)); - buffers.push_back(asio::buffer(misc_strings::crlf)); - } - buffers.push_back(asio::buffer(misc_strings::crlf)); - buffers.push_back(asio::buffer(content)); - return buffers; -} - -namespace stock_replies { - -const char ok[] = ""; -const char created[] = - "" - "Created" - "

201 Created

" - ""; -const char accepted[] = - "" - "Accepted" - "

202 Accepted

" - ""; -const char no_content[] = - "" - "No Content" - "

204 Content

" - ""; -const char multiple_choices[] = - "" - "Multiple Choices" - "

300 Multiple Choices

" - ""; -const char moved_permanently[] = - "" - "Moved Permanently" - "

301 Moved Permanently

" - ""; -const char moved_temporarily[] = - "" - "Moved Temporarily" - "

302 Moved Temporarily

" - ""; -const char not_modified[] = - "" - "Not Modified" - "

304 Not Modified

" - ""; -const char bad_request[] = - "" - "Bad Request" - "

400 Bad Request

" - ""; -const char unauthorized[] = - "" - "Unauthorized" - "

401 Unauthorized

" - ""; -const char forbidden[] = - "" - "Forbidden" - "

403 Forbidden

" - ""; -const char not_found[] = - "" - "Not Found" - "

404 Not Found

" - ""; -const char internal_server_error[] = - "" - "Internal Server Error" - "

500 Internal Server Error

" - ""; -const char not_implemented[] = - "" - "Not Implemented" - "

501 Not Implemented

" - ""; -const char bad_gateway[] = - "" - "Bad Gateway" - "

502 Bad Gateway

" - ""; -const char service_unavailable[] = - "" - "Service Unavailable" - "

503 Service Unavailable

" - ""; - -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 = boost::lexical_cast(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = "text/html"; - return rep; -} - -} // namespace server4 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/reply.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/reply.hpp deleted file mode 100644 index 98fa367..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/reply.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// reply.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER4_REPLY_HPP -#define HTTP_SERVER4_REPLY_HPP - -#include -#include -#include -#include "header.hpp" - -namespace http { -namespace server4 { - -/// 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
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 to_buffers(); - - /// Get a stock reply. - static reply stock_reply(status_type status); -}; - -} // namespace server4 -} // namespace http - -#endif // HTTP_SERVER4_REPLY_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/request.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/request.hpp deleted file mode 100644 index 902212a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/request.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// request.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER4_REQUEST_HPP -#define HTTP_SERVER4_REQUEST_HPP - -#include -#include -#include "header.hpp" - -namespace http { -namespace server4 { - -/// A request received from a client. -struct request -{ - /// The request method, e.g. "GET", "POST". - std::string method; - - /// The requested URI, such as a path to a file. - std::string uri; - - /// Major version number, usually 1. - int http_version_major; - - /// Minor version number, usually 0 or 1. - int http_version_minor; - - /// The headers included with the request. - std::vector
headers; - - /// The optional content sent with the request. - std::string content; -}; - -} // namespace server4 -} // namespace http - -#endif // HTTP_SERVER4_REQUEST_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/request_parser.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/request_parser.cpp deleted file mode 100644 index a7beb56..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/request_parser.cpp +++ /dev/null @@ -1,226 +0,0 @@ -// -// request_parser.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "request.hpp" - -namespace http { -namespace server4 { - -// Enable the pseudo-keywords reenter, yield and fork. -#include - -std::string request_parser::content_length_name_ = "Content-Length"; - -boost::tribool request_parser::consume(request& req, char c) -{ - reenter (this) - { - req.method.clear(); - req.uri.clear(); - req.http_version_major = 0; - req.http_version_minor = 0; - req.headers.clear(); - req.content.clear(); - content_length_ = 0; - - // Request method. - while (is_char(c) && !is_ctl(c) && !is_tspecial(c) && c != ' ') - { - req.method.push_back(c); - yield return boost::indeterminate; - } - if (req.method.empty()) - return false; - - // Space. - if (c != ' ') return false; - yield return boost::indeterminate; - - // URI. - while (!is_ctl(c) && c != ' ') - { - req.uri.push_back(c); - yield return boost::indeterminate; - } - if (req.uri.empty()) return false; - - // Space. - if (c != ' ') return false; - yield return boost::indeterminate; - - // HTTP protocol identifier. - if (c != 'H') return false; - yield return boost::indeterminate; - if (c != 'T') return false; - yield return boost::indeterminate; - if (c != 'T') return false; - yield return boost::indeterminate; - if (c != 'P') return false; - yield return boost::indeterminate; - - // Slash. - if (c != '/') return false; - yield return boost::indeterminate; - - // Major version number. - if (!is_digit(c)) return false; - while (is_digit(c)) - { - req.http_version_major = req.http_version_major * 10 + c - '0'; - yield return boost::indeterminate; - } - - // Dot. - if (c != '.') return false; - yield return boost::indeterminate; - - // Minor version number. - if (!is_digit(c)) return false; - while (is_digit(c)) - { - req.http_version_minor = req.http_version_minor * 10 + c - '0'; - yield return boost::indeterminate; - } - - // CRLF. - if (c != '\r') return false; - yield return boost::indeterminate; - if (c != '\n') return false; - yield return boost::indeterminate; - - // Headers. - while ((is_char(c) && !is_ctl(c) && !is_tspecial(c) && c != '\r') - || (c == ' ' || c == '\t')) - { - if (c == ' ' || c == '\t') - { - // Leading whitespace. Must be continuation of previous header's value. - if (req.headers.empty()) return false; - while (c == ' ' || c == '\t') - yield return boost::indeterminate; - } - else - { - // Start the next header. - req.headers.push_back(header()); - - // Header name. - while (is_char(c) && !is_ctl(c) && !is_tspecial(c) && c != ':') - { - req.headers.back().name.push_back(c); - yield return boost::indeterminate; - } - - // Colon and space separates the header name from the header value. - if (c != ':') return false; - yield return boost::indeterminate; - if (c != ' ') return false; - yield return boost::indeterminate; - } - - // Header value. - while (is_char(c) && !is_ctl(c) && c != '\r') - { - req.headers.back().value.push_back(c); - yield return boost::indeterminate; - } - - // CRLF. - if (c != '\r') return false; - yield return boost::indeterminate; - if (c != '\n') return false; - yield return boost::indeterminate; - } - - // CRLF. - if (c != '\r') return false; - yield return boost::indeterminate; - if (c != '\n') return false; - - // Check for optional Content-Length header. - for (std::size_t i = 0; i < req.headers.size(); ++i) - { - if (headers_equal(req.headers[i].name, content_length_name_)) - { - try - { - content_length_ = - boost::lexical_cast(req.headers[i].value); - } - catch (boost::bad_lexical_cast&) - { - return false; - } - } - } - - // Content. - while (req.content.size() < content_length_) - { - yield return boost::indeterminate; - req.content.push_back(c); - } - } - - return true; -} - -// Disable the pseudo-keywords reenter, yield and fork. -#include - -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'; -} - -bool request_parser::tolower_compare(char a, char b) -{ - return std::tolower(a) == std::tolower(b); -} - -bool request_parser::headers_equal(const std::string& a, const std::string& b) -{ - if (a.length() != b.length()) - return false; - - return std::equal(a.begin(), a.end(), b.begin(), - &request_parser::tolower_compare); -} - -} // namespace server4 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/request_parser.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/request_parser.hpp deleted file mode 100644 index 2de0637..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/request_parser.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// request_parser.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER4_REQUEST_PARSER_HPP -#define HTTP_SERVER4_REQUEST_PARSER_HPP - -#include -#include -#include -#include - -namespace http { -namespace server4 { - -struct request; - -/// Parser for incoming requests. -class request_parser : asio::coroutine -{ -public: - /// Parse some data. The tribool return value is true when a complete request - /// has been parsed, false 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 - boost::tuple parse(request& req, - InputIterator begin, InputIterator end) - { - while (begin != end) - { - boost::tribool result = consume(req, *begin++); - if (result || !result) - return boost::make_tuple(result, begin); - } - boost::tribool result = boost::indeterminate; - return boost::make_tuple(result, begin); - } - -private: - /// The name of the content length header. - static std::string content_length_name_; - - /// Content length as decoded from headers. Defaults to 0. - std::size_t content_length_; - - /// Handle the next character of input. - boost::tribool 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); - - /// Check if two characters are equal, without regard to case. - static bool tolower_compare(char a, char b); - - /// Check whether the two request header names match. - bool headers_equal(const std::string& a, const std::string& b); -}; - -} // namespace server4 -} // namespace http - -#endif // HTTP_SERVER4_REQUEST_PARSER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/server.cpp deleted file mode 100644 index b476bc2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/server.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "request.hpp" -#include "reply.hpp" - -namespace http { -namespace server4 { - -server::server(asio::io_context& io_context, - const std::string& address, const std::string& port, - boost::function request_handler) - : request_handler_(request_handler) -{ - tcp::resolver resolver(io_context); - asio::ip::tcp::endpoint endpoint = - *resolver.resolve(address, port).begin(); - acceptor_.reset(new tcp::acceptor(io_context, endpoint)); -} - -// Enable the pseudo-keywords reenter, yield and fork. -#include - -void server::operator()(asio::error_code ec, std::size_t length) -{ - // In this example we keep the error handling code in one place by - // hoisting it outside the coroutine. An alternative approach would be to - // check the value of ec after each yield for an asynchronous operation. - if (!ec) - { - // On reentering a coroutine, control jumps to the location of the last - // yield or fork. The argument to the "reenter" pseudo-keyword can be a - // pointer or reference to an object of type coroutine. - reenter (this) - { - // Loop to accept incoming connections. - do - { - // Create a new socket for the next incoming connection. - socket_.reset(new tcp::socket(acceptor_->get_executor().context())); - - // Accept a new connection. The "yield" pseudo-keyword saves the current - // line number and exits the coroutine's "reenter" block. We use the - // server coroutine as the completion handler for the async_accept - // operation. When the asynchronous operation completes, the io_context - // invokes the function call operator, we "reenter" the coroutine, and - // then control resumes at the following line. - yield acceptor_->async_accept(*socket_, *this); - - // We "fork" by cloning a new server coroutine to handle the connection. - // After forking we have a parent coroutine and a child coroutine. Both - // parent and child continue execution at the following line. They can - // be distinguished using the functions coroutine::is_parent() and - // coroutine::is_child(). - fork server(*this)(); - - // The parent continues looping to accept the next incoming connection. - // The child exits the loop and processes the connection. - } while (is_parent()); - - // Create the objects needed to receive a request on the connection. - buffer_.reset(new boost::array); - request_.reset(new request); - - // Loop until a complete request (or an invalid one) has been received. - do - { - // Receive some more data. When control resumes at the following line, - // the ec and length parameters reflect the result of the asynchronous - // operation. - yield socket_->async_read_some(asio::buffer(*buffer_), *this); - - // Parse the data we just received. - boost::tie(valid_request_, boost::tuples::ignore) - = request_parser_.parse(*request_, - buffer_->data(), buffer_->data() + length); - - // An indeterminate result means we need more data, so keep looping. - } while (boost::indeterminate(valid_request_)); - - // Create the reply object that will be sent back to the client. - reply_.reset(new reply); - - if (valid_request_) - { - // A valid request was received. Call the user-supplied function object - // to process the request and compose a reply. - request_handler_(*request_, *reply_); - } - else - { - // The request was invalid. - *reply_ = reply::stock_reply(reply::bad_request); - } - - // Send the reply back to the client. - yield asio::async_write(*socket_, reply_->to_buffers(), *this); - - // Initiate graceful connection closure. - socket_->shutdown(tcp::socket::shutdown_both, ec); - } - } - - // If an error occurs then the coroutine is not reentered. Consequently, no - // new asynchronous operations are started. This means that all shared_ptr - // references will disappear and the resources associated with the coroutine - // will be destroyed automatically after this function call returns. -} - -// Disable the pseudo-keywords reenter, yield and fork. -#include - -} // namespace server4 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/server.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/server.hpp deleted file mode 100644 index a6db450..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/server.hpp +++ /dev/null @@ -1,73 +0,0 @@ -// -// server.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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_SERVER4_SERVER_HPP -#define HTTP_SERVER4_SERVER_HPP - -#include -#include -#include -#include -#include -#include "request_parser.hpp" - -namespace http { -namespace server4 { - -struct request; -struct reply; - -/// The top-level coroutine of the HTTP server. -class server : asio::coroutine -{ -public: - /// Construct the server to listen on the specified TCP address and port, and - /// serve up files from the given directory. - explicit server(asio::io_context& io_context, - const std::string& address, const std::string& port, - boost::function request_handler); - - /// Perform work associated with the server. - void operator()( - asio::error_code ec = asio::error_code(), - std::size_t length = 0); - -private: - typedef asio::ip::tcp tcp; - - /// The user-supplied handler for all incoming requests. - boost::function request_handler_; - - /// Acceptor used to listen for incoming connections. - boost::shared_ptr acceptor_; - - /// The current connection from a client. - boost::shared_ptr socket_; - - /// Buffer for incoming data. - boost::shared_ptr > buffer_; - - /// The incoming request. - boost::shared_ptr request_; - - /// Whether the request is valid or not. - boost::tribool valid_request_; - - /// The parser for the incoming request. - request_parser request_parser_; - - /// The reply to be sent back to the client. - boost::shared_ptr reply_; -}; - -} // namespace server4 -} // namespace http - -#endif // HTTP_SERVER4_SERVER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/icmp/icmp_header.hpp b/Sources/Vendor/asio/src/examples/cpp03/icmp/icmp_header.hpp deleted file mode 100644 index 2e6f46b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/icmp/icmp_header.hpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// icmp_header.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ICMP_HEADER_HPP -#define ICMP_HEADER_HPP - -#include -#include -#include - -// ICMP header for both IPv4 and IPv6. -// -// The wire format of an ICMP header is: -// -// 0 8 16 31 -// +---------------+---------------+------------------------------+ --- -// | | | | ^ -// | type | code | checksum | | -// | | | | | -// +---------------+---------------+------------------------------+ 8 bytes -// | | | | -// | identifier | sequence number | | -// | | | v -// +-------------------------------+------------------------------+ --- - -class icmp_header -{ -public: - enum { echo_reply = 0, destination_unreachable = 3, source_quench = 4, - redirect = 5, echo_request = 8, time_exceeded = 11, parameter_problem = 12, - timestamp_request = 13, timestamp_reply = 14, info_request = 15, - info_reply = 16, address_request = 17, address_reply = 18 }; - - icmp_header() { std::fill(rep_, rep_ + sizeof(rep_), 0); } - - unsigned char type() const { return rep_[0]; } - unsigned char code() const { return rep_[1]; } - unsigned short checksum() const { return decode(2, 3); } - unsigned short identifier() const { return decode(4, 5); } - unsigned short sequence_number() const { return decode(6, 7); } - - void type(unsigned char n) { rep_[0] = n; } - void code(unsigned char n) { rep_[1] = n; } - void checksum(unsigned short n) { encode(2, 3, n); } - void identifier(unsigned short n) { encode(4, 5, n); } - void sequence_number(unsigned short n) { encode(6, 7, n); } - - friend std::istream& operator>>(std::istream& is, icmp_header& header) - { return is.read(reinterpret_cast(header.rep_), 8); } - - friend std::ostream& operator<<(std::ostream& os, const icmp_header& header) - { return os.write(reinterpret_cast(header.rep_), 8); } - -private: - unsigned short decode(int a, int b) const - { return (rep_[a] << 8) + rep_[b]; } - - void encode(int a, int b, unsigned short n) - { - rep_[a] = static_cast(n >> 8); - rep_[b] = static_cast(n & 0xFF); - } - - unsigned char rep_[8]; -}; - -template -void compute_checksum(icmp_header& header, - Iterator body_begin, Iterator body_end) -{ - unsigned int sum = (header.type() << 8) + header.code() - + header.identifier() + header.sequence_number(); - - Iterator body_iter = body_begin; - while (body_iter != body_end) - { - sum += (static_cast(*body_iter++) << 8); - if (body_iter != body_end) - sum += static_cast(*body_iter++); - } - - sum = (sum >> 16) + (sum & 0xFFFF); - sum += (sum >> 16); - header.checksum(static_cast(~sum)); -} - -#endif // ICMP_HEADER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/icmp/ipv4_header.hpp b/Sources/Vendor/asio/src/examples/cpp03/icmp/ipv4_header.hpp deleted file mode 100644 index 719cbbf..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/icmp/ipv4_header.hpp +++ /dev/null @@ -1,102 +0,0 @@ -// -// ipv4_header.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 IPV4_HEADER_HPP -#define IPV4_HEADER_HPP - -#include -#include - -// Packet header for IPv4. -// -// The wire format of an IPv4 header is: -// -// 0 8 16 31 -// +-------+-------+---------------+------------------------------+ --- -// | | | | | ^ -// |version|header | type of | total length in bytes | | -// | (4) | length| service | | | -// +-------+-------+---------------+-+-+-+------------------------+ | -// | | | | | | | -// | identification |0|D|M| fragment offset | | -// | | |F|F| | | -// +---------------+---------------+-+-+-+------------------------+ | -// | | | | | -// | time to live | protocol | header checksum | 20 bytes -// | | | | | -// +---------------+---------------+------------------------------+ | -// | | | -// | source IPv4 address | | -// | | | -// +--------------------------------------------------------------+ | -// | | | -// | destination IPv4 address | | -// | | v -// +--------------------------------------------------------------+ --- -// | | ^ -// | | | -// / options (if any) / 0 - 40 -// / / bytes -// | | | -// | | v -// +--------------------------------------------------------------+ --- - -class ipv4_header -{ -public: - ipv4_header() { std::fill(rep_, rep_ + sizeof(rep_), 0); } - - unsigned char version() const { return (rep_[0] >> 4) & 0xF; } - unsigned short header_length() const { return (rep_[0] & 0xF) * 4; } - unsigned char type_of_service() const { return rep_[1]; } - unsigned short total_length() const { return decode(2, 3); } - unsigned short identification() const { return decode(4, 5); } - bool dont_fragment() const { return (rep_[6] & 0x40) != 0; } - bool more_fragments() const { return (rep_[6] & 0x20) != 0; } - unsigned short fragment_offset() const { return decode(6, 7) & 0x1FFF; } - unsigned int time_to_live() const { return rep_[8]; } - unsigned char protocol() const { return rep_[9]; } - unsigned short header_checksum() const { return decode(10, 11); } - - asio::ip::address_v4 source_address() const - { - asio::ip::address_v4::bytes_type bytes - = { { rep_[12], rep_[13], rep_[14], rep_[15] } }; - return asio::ip::address_v4(bytes); - } - - asio::ip::address_v4 destination_address() const - { - asio::ip::address_v4::bytes_type bytes - = { { rep_[16], rep_[17], rep_[18], rep_[19] } }; - return asio::ip::address_v4(bytes); - } - - friend std::istream& operator>>(std::istream& is, ipv4_header& header) - { - is.read(reinterpret_cast(header.rep_), 20); - if (header.version() != 4) - is.setstate(std::ios::failbit); - std::streamsize options_length = header.header_length() - 20; - if (options_length < 0 || options_length > 40) - is.setstate(std::ios::failbit); - else - is.read(reinterpret_cast(header.rep_) + 20, options_length); - return is; - } - -private: - unsigned short decode(int a, int b) const - { return (rep_[a] << 8) + rep_[b]; } - - unsigned char rep_[60]; -}; - -#endif // IPV4_HEADER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/icmp/ping.cpp b/Sources/Vendor/asio/src/examples/cpp03/icmp/ping.cpp deleted file mode 100644 index 4c5dd36..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/icmp/ping.cpp +++ /dev/null @@ -1,163 +0,0 @@ -// -// ping.cpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include - -#include "icmp_header.hpp" -#include "ipv4_header.hpp" - -using asio::ip::icmp; -using asio::steady_timer; -namespace chrono = asio::chrono; - -class pinger -{ -public: - pinger(asio::io_context& io_context, const char* destination) - : resolver_(io_context), socket_(io_context, icmp::v4()), - timer_(io_context), sequence_number_(0), num_replies_(0) - { - destination_ = *resolver_.resolve(icmp::v4(), destination, "").begin(); - - start_send(); - start_receive(); - } - -private: - void start_send() - { - std::string body("\"Hello!\" from Asio ping."); - - // Create an ICMP header for an echo request. - icmp_header echo_request; - echo_request.type(icmp_header::echo_request); - echo_request.code(0); - echo_request.identifier(get_identifier()); - echo_request.sequence_number(++sequence_number_); - compute_checksum(echo_request, body.begin(), body.end()); - - // Encode the request packet. - asio::streambuf request_buffer; - std::ostream os(&request_buffer); - os << echo_request << body; - - // Send the request. - time_sent_ = steady_timer::clock_type::now(); - socket_.send_to(request_buffer.data(), destination_); - - // Wait up to five seconds for a reply. - num_replies_ = 0; - timer_.expires_at(time_sent_ + chrono::seconds(5)); - timer_.async_wait(boost::bind(&pinger::handle_timeout, this)); - } - - void handle_timeout() - { - if (num_replies_ == 0) - std::cout << "Request timed out" << std::endl; - - // Requests must be sent no less than one second apart. - timer_.expires_at(time_sent_ + chrono::seconds(1)); - timer_.async_wait(boost::bind(&pinger::start_send, this)); - } - - void start_receive() - { - // Discard any data already in the buffer. - reply_buffer_.consume(reply_buffer_.size()); - - // Wait for a reply. We prepare the buffer to receive up to 64KB. - socket_.async_receive(reply_buffer_.prepare(65536), - boost::bind(&pinger::handle_receive, this, _2)); - } - - void handle_receive(std::size_t length) - { - // The actual number of bytes received is committed to the buffer so that we - // can extract it using a std::istream object. - reply_buffer_.commit(length); - - // Decode the reply packet. - std::istream is(&reply_buffer_); - ipv4_header ipv4_hdr; - icmp_header icmp_hdr; - is >> ipv4_hdr >> icmp_hdr; - - // We can receive all ICMP packets received by the host, so we need to - // filter out only the echo replies that match the our identifier and - // expected sequence number. - if (is && icmp_hdr.type() == icmp_header::echo_reply - && icmp_hdr.identifier() == get_identifier() - && icmp_hdr.sequence_number() == sequence_number_) - { - // If this is the first reply, interrupt the five second timeout. - if (num_replies_++ == 0) - timer_.cancel(); - - // Print out some information about the reply packet. - chrono::steady_clock::time_point now = chrono::steady_clock::now(); - chrono::steady_clock::duration elapsed = now - time_sent_; - std::cout << length - ipv4_hdr.header_length() - << " bytes from " << ipv4_hdr.source_address() - << ": icmp_seq=" << icmp_hdr.sequence_number() - << ", ttl=" << ipv4_hdr.time_to_live() - << ", time=" - << chrono::duration_cast(elapsed).count() - << std::endl; - } - - start_receive(); - } - - static unsigned short get_identifier() - { -#if defined(ASIO_WINDOWS) - return static_cast(::GetCurrentProcessId()); -#else - return static_cast(::getpid()); -#endif - } - - icmp::resolver resolver_; - icmp::endpoint destination_; - icmp::socket socket_; - steady_timer timer_; - unsigned short sequence_number_; - chrono::steady_clock::time_point time_sent_; - asio::streambuf reply_buffer_; - std::size_t num_replies_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: ping " << std::endl; -#if !defined(ASIO_WINDOWS) - std::cerr << "(You may need to run this program as root.)" << std::endl; -#endif - return 1; - } - - asio::io_context io_context; - pinger p(io_context, argv[1]); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << std::endl; - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp b/Sources/Vendor/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp deleted file mode 100644 index 6009447..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp +++ /dev/null @@ -1,171 +0,0 @@ -// -// prioritised_handlers.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "asio.hpp" -#include -#include -#include - -using asio::ip::tcp; - -class handler_priority_queue : public asio::execution_context -{ -public: - void add(int priority, boost::function function) - { - handlers_.push(queued_handler(priority, function)); - } - - void execute_all() - { - while (!handlers_.empty()) - { - queued_handler handler = handlers_.top(); - handler.execute(); - handlers_.pop(); - } - } - - class executor - { - public: - executor(handler_priority_queue& q, int p) - : context_(q), priority_(p) - { - } - - handler_priority_queue& context() const - { - return context_; - } - - template - void dispatch(const Function& f, const Allocator&) const - { - context_.add(priority_, f); - } - - template - void post(const Function& f, const Allocator&) const - { - context_.add(priority_, f); - } - - template - void defer(const Function& f, const Allocator&) const - { - context_.add(priority_, f); - } - - void on_work_started() const {} - void on_work_finished() const {} - - bool operator==(const executor& other) const - { - return &context_ == &other.context_ && priority_ == other.priority_; - } - - bool operator!=(const executor& other) const - { - return !operator==(other); - } - - private: - handler_priority_queue& context_; - int priority_; - }; - - template - asio::executor_binder - wrap(int priority, Handler handler) - { - return asio::bind_executor(executor(*this, priority), handler); - } - -private: - class queued_handler - { - public: - queued_handler(int p, boost::function f) - : priority_(p), function_(f) - { - } - - void execute() - { - function_(); - } - - friend bool operator<(const queued_handler& a, - const queued_handler& b) - { - return a.priority_ < b.priority_; - } - - private: - int priority_; - boost::function function_; - }; - - std::priority_queue handlers_; -}; - -//---------------------------------------------------------------------- - -void high_priority_handler(const asio::error_code& /*ec*/) -{ - std::cout << "High priority handler\n"; -} - -void middle_priority_handler(const asio::error_code& /*ec*/) -{ - std::cout << "Middle priority handler\n"; -} - -void low_priority_handler() -{ - std::cout << "Low priority handler\n"; -} - -int main() -{ - asio::io_context io_context; - - handler_priority_queue pri_queue; - - // Post a completion handler to be run immediately. - asio::post(io_context, pri_queue.wrap(0, low_priority_handler)); - - // Start an asynchronous accept that will complete immediately. - tcp::endpoint endpoint(asio::ip::address_v4::loopback(), 0); - tcp::acceptor acceptor(io_context, endpoint); - tcp::socket server_socket(io_context); - acceptor.async_accept(server_socket, - pri_queue.wrap(100, high_priority_handler)); - tcp::socket client_socket(io_context); - client_socket.connect(acceptor.local_endpoint()); - - // Set a deadline timer to expire immediately. - asio::steady_timer timer(io_context); - timer.expires_at(asio::steady_timer::time_point::min()); - timer.async_wait(pri_queue.wrap(42, middle_priority_handler)); - - while (io_context.run_one()) - { - // The custom invocation hook adds the handlers to the priority queue - // rather than executing them from within the poll_one() call. - while (io_context.poll_one()) - ; - - pri_queue.execute_all(); - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/iostreams/daytime_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/iostreams/daytime_client.cpp deleted file mode 100644 index 9f46e3b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/iostreams/daytime_client.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// -// daytime_client.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: daytime_client " << std::endl; - return 1; - } - - tcp::iostream s(argv[1], "daytime"); - if (!s) - { - std::cout << "Unable to connect: " << s.error().message() << std::endl; - return 1; - } - - std::string line; - std::getline(s, line); - std::cout << line << std::endl; - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/iostreams/daytime_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/iostreams/daytime_server.cpp deleted file mode 100644 index 7c9ae95..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/iostreams/daytime_server.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// -// daytime_server.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include - -using asio::ip::tcp; - -std::string make_daytime_string() -{ - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - return ctime(&now); -} - -int main() -{ - try - { - asio::io_context io_context; - - tcp::endpoint endpoint(tcp::v4(), 13); - tcp::acceptor acceptor(io_context, endpoint); - - for (;;) - { - tcp::iostream stream; - asio::error_code ec; - acceptor.accept(stream.socket(), ec); - if (!ec) - { - stream << make_daytime_string(); - } - } - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/iostreams/http_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/iostreams/http_client.cpp deleted file mode 100644 index 06f7b00..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/iostreams/http_client.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// http_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cout << "Usage: http_client \n"; - std::cout << "Example:\n"; - std::cout << " http_client www.boost.org /LICENSE_1_0.txt\n"; - return 1; - } - - asio::ip::tcp::iostream s; - - // The entire sequence of I/O operations must complete within 60 seconds. - // If an expiry occurs, the socket is automatically closed and the stream - // becomes bad. - s.expires_after(asio::chrono::seconds(60)); - - // Establish a connection to the server. - s.connect(argv[1], "http"); - if (!s) - { - std::cout << "Unable to connect: " << s.error().message() << "\n"; - return 1; - } - - // Send the request. We specify the "Connection: close" header so that the - // server will close the socket after transmitting the response. This will - // allow us to treat all data up until the EOF as the content. - s << "GET " << argv[2] << " HTTP/1.0\r\n"; - s << "Host: " << argv[1] << "\r\n"; - s << "Accept: */*\r\n"; - s << "Connection: close\r\n\r\n"; - - // By default, the stream is tied with itself. This means that the stream - // automatically flush the buffered output before attempting a read. It is - // not necessary not explicitly flush the stream at this point. - - // Check that response is OK. - std::string http_version; - s >> http_version; - unsigned int status_code; - s >> status_code; - std::string status_message; - std::getline(s, status_message); - if (!s || http_version.substr(0, 5) != "HTTP/") - { - std::cout << "Invalid response\n"; - return 1; - } - if (status_code != 200) - { - std::cout << "Response returned with status code " << status_code << "\n"; - return 1; - } - - // Process the response headers, which are terminated by a blank line. - std::string header; - while (std::getline(s, header) && header != "\r") - std::cout << header << "\n"; - std::cout << "\n"; - - // Write the remaining data to output. - std::cout << s.rdbuf(); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/local/connect_pair.cpp b/Sources/Vendor/asio/src/examples/cpp03/local/connect_pair.cpp deleted file mode 100644 index 923ff4f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/local/connect_pair.cpp +++ /dev/null @@ -1,141 +0,0 @@ -// -// connect_pair.cpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -class uppercase_filter -{ -public: - uppercase_filter(asio::io_context& io_context) - : socket_(io_context) - { - } - - stream_protocol::socket& socket() - { - return socket_; - } - - void start() - { - // Wait for request. - socket_.async_read_some(asio::buffer(data_), - boost::bind(&uppercase_filter::handle_read, - this, asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - -private: - void handle_read(const asio::error_code& ec, std::size_t size) - { - if (!ec) - { - // Compute result. - for (std::size_t i = 0; i < size; ++i) - data_[i] = std::toupper(data_[i]); - - // Send result. - asio::async_write(socket_, asio::buffer(data_, size), - boost::bind(&uppercase_filter::handle_write, - this, asio::placeholders::error)); - } - else - { - throw asio::system_error(ec); - } - } - - void handle_write(const asio::error_code& ec) - { - if (!ec) - { - // Wait for request. - socket_.async_read_some(asio::buffer(data_), - boost::bind(&uppercase_filter::handle_read, - this, asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - throw asio::system_error(ec); - } - } - - stream_protocol::socket socket_; - boost::array data_; -}; - -void run(asio::io_context* io_context) -{ - try - { - io_context->run(); - } - catch (std::exception& e) - { - std::cerr << "Exception in thread: " << e.what() << "\n"; - std::exit(1); - } -} - -int main() -{ - try - { - asio::io_context io_context; - - // Create filter and establish a connection to it. - uppercase_filter filter(io_context); - stream_protocol::socket socket(io_context); - asio::local::connect_pair(socket, filter.socket()); - filter.start(); - - // The io_context runs in a background thread to perform filtering. - asio::thread thread(boost::bind(run, &io_context)); - - for (;;) - { - // Collect request from user. - std::cout << "Enter a string: "; - std::string request; - std::getline(std::cin, request); - - // Send request to filter. - asio::write(socket, asio::buffer(request)); - - // Wait for reply from filter. - std::vector reply(request.size()); - asio::read(socket, asio::buffer(reply)); - - // Show reply to user. - std::cout << "Result: "; - std::cout.write(&reply[0], request.size()); - std::cout << std::endl; - } - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - std::exit(1); - } -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp03/local/iostream_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/local/iostream_client.cpp deleted file mode 100644 index 6387e99..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/local/iostream_client.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// -// stream_client.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include "asio.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: iostream_client \n"; - return 1; - } - - stream_protocol::endpoint ep(argv[1]); - stream_protocol::iostream s(ep); - if (!s) - { - std::cerr << "Unable to connect: " << s.error().message() << std::endl; - return 1; - } - - using namespace std; // For strlen. - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t length = strlen(request); - s << request; - - char reply[max_length]; - s.read(reply, length); - std::cout << "Reply is: "; - std::cout.write(reply, length); - std::cout << "\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp03/local/stream_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/local/stream_client.cpp deleted file mode 100644 index 44f64d2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/local/stream_client.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// -// stream_client.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: stream_client \n"; - return 1; - } - - asio::io_context io_context; - - stream_protocol::socket s(io_context); - s.connect(stream_protocol::endpoint(argv[1])); - - using namespace std; // For strlen. - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t request_length = strlen(request); - asio::write(s, asio::buffer(request, request_length)); - - char reply[max_length]; - size_t reply_length = asio::read(s, - 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; -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp03/local/stream_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/local/stream_server.cpp deleted file mode 100644 index 2fef9a0..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/local/stream_server.cpp +++ /dev/null @@ -1,141 +0,0 @@ -// -// stream_server.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include "asio.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -class session - : public boost::enable_shared_from_this -{ -public: - session(asio::io_context& io_context) - : socket_(io_context) - { - } - - stream_protocol::socket& socket() - { - return socket_; - } - - void start() - { - socket_.async_read_some(asio::buffer(data_), - boost::bind(&session::handle_read, - shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - - void handle_read(const asio::error_code& error, - size_t bytes_transferred) - { - if (!error) - { - asio::async_write(socket_, - asio::buffer(data_, bytes_transferred), - boost::bind(&session::handle_write, - shared_from_this(), - asio::placeholders::error)); - } - } - - void handle_write(const asio::error_code& error) - { - if (!error) - { - socket_.async_read_some(asio::buffer(data_), - boost::bind(&session::handle_read, - shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - } - -private: - // The socket used to communicate with the client. - stream_protocol::socket socket_; - - // Buffer used to store data received from the client. - boost::array data_; -}; - -typedef boost::shared_ptr session_ptr; - -class server -{ -public: - server(asio::io_context& io_context, const std::string& file) - : io_context_(io_context), - acceptor_(io_context, stream_protocol::endpoint(file)) - { - session_ptr new_session(new session(io_context_)); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - - void handle_accept(session_ptr new_session, - const asio::error_code& error) - { - if (!error) - { - new_session->start(); - } - - new_session.reset(new session(io_context_)); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - -private: - asio::io_context& io_context_; - stream_protocol::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: stream_server \n"; - std::cerr << "*** WARNING: existing file is removed ***\n"; - return 1; - } - - asio::io_context io_context; - - std::remove(argv[1]); - server s(io_context, argv[1]); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp03/multicast/receiver.cpp b/Sources/Vendor/asio/src/examples/cpp03/multicast/receiver.cpp deleted file mode 100644 index 61c9528..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/multicast/receiver.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// -// receiver.cpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include "asio.hpp" -#include "boost/bind.hpp" - -const short multicast_port = 30001; - -class receiver -{ -public: - receiver(asio::io_context& io_context, - const asio::ip::address& listen_address, - const asio::ip::address& multicast_address) - : socket_(io_context) - { - // Create the socket so that multiple may be bound to the same address. - asio::ip::udp::endpoint listen_endpoint( - listen_address, multicast_port); - socket_.open(listen_endpoint.protocol()); - socket_.set_option(asio::ip::udp::socket::reuse_address(true)); - socket_.bind(listen_endpoint); - - // Join the multicast group. - socket_.set_option( - asio::ip::multicast::join_group(multicast_address)); - - socket_.async_receive_from( - asio::buffer(data_, max_length), sender_endpoint_, - boost::bind(&receiver::handle_receive_from, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - - void handle_receive_from(const asio::error_code& error, - size_t bytes_recvd) - { - if (!error) - { - std::cout.write(data_, bytes_recvd); - std::cout << std::endl; - - socket_.async_receive_from( - asio::buffer(data_, max_length), sender_endpoint_, - boost::bind(&receiver::handle_receive_from, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - } - -private: - asio::ip::udp::socket socket_; - asio::ip::udp::endpoint sender_endpoint_; - enum { max_length = 1024 }; - char data_[max_length]; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: receiver \n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " receiver 0.0.0.0 239.255.0.1\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " receiver 0::0 ff31::8000:1234\n"; - return 1; - } - - asio::io_context io_context; - receiver r(io_context, - asio::ip::make_address(argv[1]), - asio::ip::make_address(argv[2])); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/multicast/sender.cpp b/Sources/Vendor/asio/src/examples/cpp03/multicast/sender.cpp deleted file mode 100644 index a84871d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/multicast/sender.cpp +++ /dev/null @@ -1,98 +0,0 @@ -// -// sender.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" -#include "boost/bind.hpp" - -const short multicast_port = 30001; -const int max_message_count = 10; - -class sender -{ -public: - sender(asio::io_context& io_context, - const asio::ip::address& multicast_address) - : endpoint_(multicast_address, multicast_port), - socket_(io_context, endpoint_.protocol()), - timer_(io_context), - message_count_(0) - { - std::ostringstream os; - os << "Message " << message_count_++; - message_ = os.str(); - - socket_.async_send_to( - asio::buffer(message_), endpoint_, - boost::bind(&sender::handle_send_to, this, - asio::placeholders::error)); - } - - void handle_send_to(const asio::error_code& error) - { - if (!error && message_count_ < max_message_count) - { - timer_.expires_after(asio::chrono::seconds(1)); - timer_.async_wait( - boost::bind(&sender::handle_timeout, this, - asio::placeholders::error)); - } - } - - void handle_timeout(const asio::error_code& error) - { - if (!error) - { - std::ostringstream os; - os << "Message " << message_count_++; - message_ = os.str(); - - socket_.async_send_to( - asio::buffer(message_), endpoint_, - boost::bind(&sender::handle_send_to, this, - asio::placeholders::error)); - } - } - -private: - asio::ip::udp::endpoint endpoint_; - asio::ip::udp::socket socket_; - asio::steady_timer timer_; - int message_count_; - std::string message_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: sender \n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " sender 239.255.0.1\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " sender ff31::8000:1234\n"; - return 1; - } - - asio::io_context io_context; - sender s(io_context, asio::ip::make_address(argv[1])); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp b/Sources/Vendor/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp deleted file mode 100644 index 30d4ac4..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp +++ /dev/null @@ -1,240 +0,0 @@ -// -// third_party_lib.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -namespace third_party_lib { - -// Simulation of a third party library that wants to perform read and write -// operations directly on a socket. It needs to be polled to determine whether -// it requires a read or write operation, and notified when the socket is ready -// for reading or writing. -class session -{ -public: - session(tcp::socket& socket) - : socket_(socket), - state_(reading) - { - } - - // Returns true if the third party library wants to be notified when the - // socket is ready for reading. - bool want_read() const - { - return state_ == reading; - } - - // Notify that third party library that it should perform its read operation. - void do_read(asio::error_code& ec) - { - if (std::size_t len = socket_.read_some(asio::buffer(data_), ec)) - { - write_buffer_ = asio::buffer(data_, len); - state_ = writing; - } - } - - // Returns true if the third party library wants to be notified when the - // socket is ready for writing. - bool want_write() const - { - return state_ == writing; - } - - // Notify that third party library that it should perform its write operation. - void do_write(asio::error_code& ec) - { - if (std::size_t len = socket_.write_some( - asio::buffer(write_buffer_), ec)) - { - write_buffer_ = write_buffer_ + len; - state_ = asio::buffer_size(write_buffer_) > 0 ? writing : reading; - } - } - -private: - tcp::socket& socket_; - enum { reading, writing } state_; - boost::array data_; - asio::const_buffer write_buffer_; -}; - -} // namespace third_party_lib - -// The glue between asio's sockets and the third party library. -class connection - : public boost::enable_shared_from_this -{ -public: - typedef boost::shared_ptr pointer; - - static pointer create(asio::io_context& io_context) - { - return pointer(new connection(io_context)); - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - // Put the socket into non-blocking mode. - socket_.non_blocking(true); - - start_operations(); - } - -private: - connection(asio::io_context& io_context) - : socket_(io_context), - session_impl_(socket_), - read_in_progress_(false), - write_in_progress_(false) - { - } - - void start_operations() - { - // Start a read operation if the third party library wants one. - if (session_impl_.want_read() && !read_in_progress_) - { - read_in_progress_ = true; - socket_.async_wait(tcp::socket::wait_read, - boost::bind(&connection::handle_read, - shared_from_this(), - asio::placeholders::error)); - } - - // Start a write operation if the third party library wants one. - if (session_impl_.want_write() && !write_in_progress_) - { - write_in_progress_ = true; - socket_.async_wait(tcp::socket::wait_write, - boost::bind(&connection::handle_write, - shared_from_this(), - asio::placeholders::error)); - } - } - - void handle_read(asio::error_code ec) - { - read_in_progress_ = false; - - // Notify third party library that it can perform a read. - if (!ec) - session_impl_.do_read(ec); - - // The third party library successfully performed a read on the socket. - // Start new read or write operations based on what it now wants. - if (!ec || ec == asio::error::would_block) - start_operations(); - - // Otherwise, an error occurred. Closing the socket cancels any outstanding - // asynchronous read or write operations. The connection object will be - // destroyed automatically once those outstanding operations complete. - else - socket_.close(); - } - - void handle_write(asio::error_code ec) - { - write_in_progress_ = false; - - // Notify third party library that it can perform a write. - if (!ec) - session_impl_.do_write(ec); - - // The third party library successfully performed a write on the socket. - // Start new read or write operations based on what it now wants. - if (!ec || ec == asio::error::would_block) - start_operations(); - - // Otherwise, an error occurred. Closing the socket cancels any outstanding - // asynchronous read or write operations. The connection object will be - // destroyed automatically once those outstanding operations complete. - else - socket_.close(); - } - -private: - tcp::socket socket_; - third_party_lib::session session_impl_; - bool read_in_progress_; - bool write_in_progress_; -}; - -class server -{ -public: - server(asio::io_context& io_context, unsigned short port) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) - { - start_accept(); - } - -private: - void start_accept() - { - connection::pointer new_connection = - connection::create(acceptor_.get_executor().context()); - - acceptor_.async_accept(new_connection->socket(), - boost::bind(&server::handle_accept, this, new_connection, - asio::placeholders::error)); - } - - void handle_accept(connection::pointer new_connection, - const asio::error_code& error) - { - if (!error) - { - new_connection->start(); - } - - start_accept(); - } - - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: third_party_lib \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/porthopper/client.cpp b/Sources/Vendor/asio/src/examples/cpp03/porthopper/client.cpp deleted file mode 100644 index a916638..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/porthopper/client.cpp +++ /dev/null @@ -1,192 +0,0 @@ -// -// client.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "protocol.hpp" - -using namespace boost; -using asio::ip::tcp; -using asio::ip::udp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: client \n"; - return 1; - } - using namespace std; // For atoi. - std::string host_name = argv[1]; - std::string port = argv[2]; - - asio::io_context io_context; - - // Determine the location of the server. - tcp::resolver resolver(io_context); - tcp::endpoint remote_endpoint = *resolver.resolve(host_name, port).begin(); - - // Establish the control connection to the server. - tcp::socket control_socket(io_context); - control_socket.connect(remote_endpoint); - - // Create a datagram socket to receive data from the server. - boost::shared_ptr data_socket( - new udp::socket(io_context, udp::endpoint(udp::v4(), 0))); - - // Determine what port we will receive data on. - udp::endpoint data_endpoint = data_socket->local_endpoint(); - - // Ask the server to start sending us data. - control_request start = control_request::start(data_endpoint.port()); - asio::write(control_socket, start.to_buffers()); - - unsigned long last_frame_number = 0; - for (;;) - { - // Receive 50 messages on the current data socket. - for (int i = 0; i < 50; ++i) - { - // Receive a frame from the server. - frame f; - data_socket->receive(f.to_buffers(), 0); - if (f.number() > last_frame_number) - { - last_frame_number = f.number(); - std::cout << "\n" << f.payload(); - } - } - - // Time to switch to a new socket. To ensure seamless handover we will - // continue to receive packets using the old socket until data arrives on - // the new one. - std::cout << " Starting renegotiation"; - - // Create the new data socket. - boost::shared_ptr new_data_socket( - new udp::socket(io_context, udp::endpoint(udp::v4(), 0))); - - // Determine the new port we will use to receive data. - udp::endpoint new_data_endpoint = new_data_socket->local_endpoint(); - - // Ask the server to switch over to the new port. - control_request change = control_request::change( - data_endpoint.port(), new_data_endpoint.port()); - asio::error_code control_result; - asio::async_write(control_socket, change.to_buffers(), - ( - lambda::var(control_result) = lambda::_1 - )); - - // Try to receive a frame from the server on the new data socket. If we - // successfully receive a frame on this new data socket we can consider - // the renegotation complete. In that case we will close the old data - // socket, which will cause any outstanding receive operation on it to be - // cancelled. - frame f1; - asio::error_code new_data_socket_result; - new_data_socket->async_receive(f1.to_buffers(), - ( - // Note: lambda::_1 is the first argument to the callback handler, - // which in this case is the error code for the operation. - lambda::var(new_data_socket_result) = lambda::_1, - lambda::if_(!lambda::_1) - [ - // We have successfully received a frame on the new data socket, - // so we can close the old data socket. This will cancel any - // outstanding receive operation on the old data socket. - lambda::var(data_socket) = boost::shared_ptr() - ] - )); - - // This loop will continue until we have successfully completed the - // renegotiation (i.e. received a frame on the new data socket), or some - // unrecoverable error occurs. - bool done = false; - while (!done) - { - // Even though we're performing a renegotation, we want to continue - // receiving data as smoothly as possible. Therefore we will continue to - // try to receive a frame from the server on the old data socket. If we - // receive a frame on this socket we will interrupt the io_context, - // print the frame, and resume waiting for the other operations to - // complete. - frame f2; - done = true; // Let's be optimistic. - if (data_socket) // Might have been closed by new_data_socket's handler. - { - data_socket->async_receive(f2.to_buffers(), 0, - ( - lambda::if_(!lambda::_1) - [ - // We have successfully received a frame on the old data - // socket. Stop the io_context so that we can print it. - lambda::bind(&asio::io_context::stop, &io_context), - lambda::var(done) = false - ] - )); - } - - // Run the operations in parallel. This will block until all operations - // have finished, or until the io_context is interrupted. (No threads!) - io_context.restart(); - io_context.run(); - - // If the io_context.run() was interrupted then we have received a frame - // on the old data socket. We need to keep waiting for the renegotation - // operations to complete. - if (!done) - { - if (f2.number() > last_frame_number) - { - last_frame_number = f2.number(); - std::cout << "\n" << f2.payload(); - } - } - } - - // Since the loop has finished, we have either successfully completed - // the renegotation, or an error has occurred. First we'll check for - // errors. - if (control_result) - throw asio::system_error(control_result); - if (new_data_socket_result) - throw asio::system_error(new_data_socket_result); - - // If we get here it means we have successfully started receiving data on - // the new data socket. This new data socket will be used from now on - // (until the next time we renegotiate). - std::cout << " Renegotiation complete"; - data_socket = new_data_socket; - data_endpoint = new_data_endpoint; - if (f1.number() > last_frame_number) - { - last_frame_number = f1.number(); - std::cout << "\n" << f1.payload(); - } - } - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/porthopper/protocol.hpp b/Sources/Vendor/asio/src/examples/cpp03/porthopper/protocol.hpp deleted file mode 100644 index 1a1332f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/porthopper/protocol.hpp +++ /dev/null @@ -1,156 +0,0 @@ -// -// protocol.hpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 PORTHOPPER_PROTOCOL_HPP -#define PORTHOPPER_PROTOCOL_HPP - -#include -#include -#include -#include -#include -#include - -// This request is sent by the client to the server over a TCP connection. -// The client uses it to perform three functions: -// - To request that data start being sent to a given port. -// - To request that data is no longer sent to a given port. -// - To change the target port to another. -class control_request -{ -public: - // Construct an empty request. Used when receiving. - control_request() - { - } - - // Create a request to start sending data to a given port. - static const control_request start(unsigned short port) - { - return control_request(0, port); - } - - // Create a request to stop sending data to a given port. - static const control_request stop(unsigned short port) - { - return control_request(port, 0); - } - - // Create a request to change the port that data is sent to. - static const control_request change( - unsigned short old_port, unsigned short new_port) - { - return control_request(old_port, new_port); - } - - // Get the old port. Returns 0 for start requests. - unsigned short old_port() const - { - std::istrstream is(data_, encoded_port_size); - unsigned short port = 0; - is >> std::setw(encoded_port_size) >> std::hex >> port; - return port; - } - - // Get the new port. Returns 0 for stop requests. - unsigned short new_port() const - { - std::istrstream is(data_ + encoded_port_size, encoded_port_size); - unsigned short port = 0; - is >> std::setw(encoded_port_size) >> std::hex >> port; - return port; - } - - // Obtain buffers for reading from or writing to a socket. - boost::array to_buffers() - { - boost::array buffers - = { { asio::buffer(data_) } }; - return buffers; - } - -private: - // Construct with specified old and new ports. - control_request(unsigned short old_port_number, - unsigned short new_port_number) - { - std::ostrstream os(data_, control_request_size); - os << std::setw(encoded_port_size) << std::hex << old_port_number; - os << std::setw(encoded_port_size) << std::hex << new_port_number; - } - - // The length in bytes of a control_request and its components. - enum - { - encoded_port_size = 4, // 16-bit port in hex. - control_request_size = encoded_port_size * 2 - }; - - // The encoded request data. - char data_[control_request_size]; -}; - -// This frame is sent from the server to subscribed clients over UDP. -class frame -{ -public: - // The maximum allowable length of the payload. - enum { payload_size = 32 }; - - // Construct an empty frame. Used when receiving. - frame() - { - } - - // Construct a frame with specified frame number and payload. - frame(unsigned long frame_number, const std::string& payload_data) - { - std::ostrstream os(data_, frame_size); - os << std::setw(encoded_number_size) << std::hex << frame_number; - os << std::setw(payload_size) - << std::setfill(' ') << payload_data.substr(0, payload_size); - } - - // Get the frame number. - unsigned long number() const - { - std::istrstream is(data_, encoded_number_size); - unsigned long frame_number = 0; - is >> std::setw(encoded_number_size) >> std::hex >> frame_number; - return frame_number; - } - - // Get the payload data. - const std::string payload() const - { - return std::string(data_ + encoded_number_size, payload_size); - } - - // Obtain buffers for reading from or writing to a socket. - boost::array to_buffers() - { - boost::array buffers - = { { asio::buffer(data_) } }; - return buffers; - } - -private: - // The length in bytes of a frame and its components. - enum - { - encoded_number_size = 8, // Frame number in hex. - frame_size = encoded_number_size + payload_size - }; - - // The encoded frame data. - char data_[frame_size]; -}; - -#endif // PORTHOPPER_PROTOCOL_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/porthopper/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/porthopper/server.cpp deleted file mode 100644 index 5ff740b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/porthopper/server.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include "protocol.hpp" - -using asio::ip::tcp; -using asio::ip::udp; - -typedef boost::shared_ptr tcp_socket_ptr; -typedef boost::shared_ptr timer_ptr; -typedef boost::shared_ptr control_request_ptr; - -class server -{ -public: - // Construct the server to wait for incoming control connections. - server(asio::io_context& io_context, unsigned short port) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)), - timer_(io_context), - udp_socket_(io_context, udp::endpoint(udp::v4(), 0)), - next_frame_number_(1) - { - // Start waiting for a new control connection. - tcp_socket_ptr new_socket( - new tcp::socket(acceptor_.get_executor().context())); - acceptor_.async_accept(*new_socket, - boost::bind(&server::handle_accept, this, - asio::placeholders::error, new_socket)); - - // Start the timer used to generate outgoing frames. - timer_.expires_after(asio::chrono::milliseconds(100)); - timer_.async_wait(boost::bind(&server::handle_timer, this)); - } - - // Handle a new control connection. - void handle_accept(const asio::error_code& ec, tcp_socket_ptr socket) - { - if (!ec) - { - // Start receiving control requests on the connection. - control_request_ptr request(new control_request); - asio::async_read(*socket, request->to_buffers(), - boost::bind(&server::handle_control_request, this, - asio::placeholders::error, socket, request)); - } - - // Start waiting for a new control connection. - tcp_socket_ptr new_socket( - new tcp::socket(acceptor_.get_executor().context())); - acceptor_.async_accept(*new_socket, - boost::bind(&server::handle_accept, this, - asio::placeholders::error, new_socket)); - } - - // Handle a new control request. - void handle_control_request(const asio::error_code& ec, - tcp_socket_ptr socket, control_request_ptr request) - { - if (!ec) - { - // Delay handling of the control request to simulate network latency. - timer_ptr delay_timer( - new asio::steady_timer(acceptor_.get_executor().context())); - delay_timer->expires_after(asio::chrono::seconds(2)); - delay_timer->async_wait( - boost::bind(&server::handle_control_request_timer, this, - socket, request, delay_timer)); - } - } - - void handle_control_request_timer(tcp_socket_ptr socket, - control_request_ptr request, timer_ptr /*delay_timer*/) - { - // Determine what address this client is connected from, since - // subscriptions must be stored on the server as a complete endpoint, not - // just a port. We use the non-throwing overload of remote_endpoint() since - // it may fail if the socket is no longer connected. - asio::error_code ec; - tcp::endpoint remote_endpoint = socket->remote_endpoint(ec); - if (!ec) - { - // Remove old port subscription, if any. - if (unsigned short old_port = request->old_port()) - { - udp::endpoint old_endpoint(remote_endpoint.address(), old_port); - subscribers_.erase(old_endpoint); - std::cout << "Removing subscription " << old_endpoint << std::endl; - } - - // Add new port subscription, if any. - if (unsigned short new_port = request->new_port()) - { - udp::endpoint new_endpoint(remote_endpoint.address(), new_port); - subscribers_.insert(new_endpoint); - std::cout << "Adding subscription " << new_endpoint << std::endl; - } - } - - // Wait for next control request on this connection. - asio::async_read(*socket, request->to_buffers(), - boost::bind(&server::handle_control_request, this, - asio::placeholders::error, socket, request)); - } - - // Every time the timer fires we will generate a new frame and send it to all - // subscribers. - void handle_timer() - { - // Generate payload. - double x = next_frame_number_ * 0.2; - double y = std::sin(x); - int char_index = static_cast((y + 1.0) * (frame::payload_size / 2)); - std::string payload; - for (int i = 0; i < frame::payload_size; ++i) - payload += (i == char_index ? '*' : '.'); - - // Create the frame to be sent to all subscribers. - frame f(next_frame_number_++, payload); - - // Send frame to all subscribers. We can use synchronous calls here since - // UDP send operations typically do not block. - std::set::iterator j; - for (j = subscribers_.begin(); j != subscribers_.end(); ++j) - { - asio::error_code ec; - udp_socket_.send_to(f.to_buffers(), *j, 0, ec); - } - - // Wait for next timeout. - timer_.expires_after(asio::chrono::milliseconds(100)); - timer_.async_wait(boost::bind(&server::handle_timer, this)); - } - -private: - // The acceptor used to accept incoming control connections. - tcp::acceptor acceptor_; - - // The timer used for generating data. - asio::steady_timer timer_; - - // The socket used to send data to subscribers. - udp::socket udp_socket_; - - // The next frame number. - unsigned long next_frame_number_; - - // The set of endpoints that are subscribed. - std::set subscribers_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/serialization/client.cpp b/Sources/Vendor/asio/src/examples/cpp03/serialization/client.cpp deleted file mode 100644 index 8b4532f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/serialization/client.cpp +++ /dev/null @@ -1,125 +0,0 @@ -// -// client.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include "connection.hpp" // Must come before boost/serialization headers. -#include -#include "stock.hpp" - -namespace s11n_example { - -/// Downloads stock quote information from a server. -class client -{ -public: - /// Constructor starts the asynchronous connect operation. - client(asio::io_context& io_context, - const std::string& host, const std::string& service) - : connection_(io_context) - { - // Resolve the host name into an IP address. - asio::ip::tcp::resolver resolver(io_context); - asio::ip::tcp::resolver::query query(host, service); - asio::ip::tcp::resolver::iterator endpoint_iterator = - resolver.resolve(query); - - // Start an asynchronous connect operation. - asio::async_connect(connection_.socket(), endpoint_iterator, - boost::bind(&client::handle_connect, this, - asio::placeholders::error)); - } - - /// Handle completion of a connect operation. - void handle_connect(const asio::error_code& e) - { - if (!e) - { - // Successfully established connection. Start operation to read the list - // of stocks. The connection::async_read() function will automatically - // decode the data that is read from the underlying socket. - connection_.async_read(stocks_, - boost::bind(&client::handle_read, this, - asio::placeholders::error)); - } - else - { - // An error occurred. Log it and return. Since we are not starting a new - // operation the io_context will run out of work to do and the client will - // exit. - std::cerr << e.message() << std::endl; - } - } - - /// Handle completion of a read operation. - void handle_read(const asio::error_code& e) - { - if (!e) - { - // Print out the data that was received. - for (std::size_t i = 0; i < stocks_.size(); ++i) - { - std::cout << "Stock number " << i << "\n"; - std::cout << " code: " << stocks_[i].code << "\n"; - std::cout << " name: " << stocks_[i].name << "\n"; - std::cout << " open_price: " << stocks_[i].open_price << "\n"; - std::cout << " high_price: " << stocks_[i].high_price << "\n"; - std::cout << " low_price: " << stocks_[i].low_price << "\n"; - std::cout << " last_price: " << stocks_[i].last_price << "\n"; - std::cout << " buy_price: " << stocks_[i].buy_price << "\n"; - std::cout << " buy_quantity: " << stocks_[i].buy_quantity << "\n"; - std::cout << " sell_price: " << stocks_[i].sell_price << "\n"; - std::cout << " sell_quantity: " << stocks_[i].sell_quantity << "\n"; - } - } - else - { - // An error occurred. - std::cerr << e.message() << std::endl; - } - - // Since we are not starting a new operation the io_context will run out of - // work to do and the client will exit. - } - -private: - /// The connection to the server. - connection connection_; - - /// The data received from the server. - std::vector stocks_; -}; - -} // namespace s11n_example - -int main(int argc, char* argv[]) -{ - try - { - // Check command line arguments. - if (argc != 3) - { - std::cerr << "Usage: client " << std::endl; - return 1; - } - - asio::io_context io_context; - s11n_example::client client(io_context, argv[1], argv[2]); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/serialization/connection.hpp b/Sources/Vendor/asio/src/examples/cpp03/serialization/connection.hpp deleted file mode 100644 index 7f2f5bc..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/serialization/connection.hpp +++ /dev/null @@ -1,188 +0,0 @@ -// -// connection.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 SERIALIZATION_CONNECTION_HPP -#define SERIALIZATION_CONNECTION_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace s11n_example { - -/// The connection class provides serialization primitives on top of a socket. -/** - * Each message sent using this class consists of: - * @li An 8-byte header containing the length of the serialized data in - * hexadecimal. - * @li The serialized data. - */ -class connection -{ -public: - /// Constructor. - connection(asio::io_context& io_context) - : socket_(io_context) - { - } - - /// Get the underlying socket. Used for making a connection or for accepting - /// an incoming connection. - asio::ip::tcp::socket& socket() - { - return socket_; - } - - /// Asynchronously write a data structure to the socket. - template - void async_write(const T& t, Handler handler) - { - // Serialize the data first so we know how large it is. - std::ostringstream archive_stream; - boost::archive::text_oarchive archive(archive_stream); - archive << t; - outbound_data_ = archive_stream.str(); - - // Format the header. - std::ostringstream header_stream; - header_stream << std::setw(header_length) - << std::hex << outbound_data_.size(); - if (!header_stream || header_stream.str().size() != header_length) - { - // Something went wrong, inform the caller. - asio::error_code error(asio::error::invalid_argument); - asio::post(socket_.get_executor(), boost::bind(handler, error)); - return; - } - outbound_header_ = header_stream.str(); - - // Write the serialized data to the socket. We use "gather-write" to send - // both the header and the data in a single write operation. - std::vector buffers; - buffers.push_back(asio::buffer(outbound_header_)); - buffers.push_back(asio::buffer(outbound_data_)); - asio::async_write(socket_, buffers, handler); - } - - /// Asynchronously read a data structure from the socket. - template - void async_read(T& t, Handler handler) - { - // Issue a read operation to read exactly the number of bytes in a header. - void (connection::*f)( - const asio::error_code&, - T&, boost::tuple) - = &connection::handle_read_header; - asio::async_read(socket_, asio::buffer(inbound_header_), - boost::bind(f, - this, asio::placeholders::error, boost::ref(t), - boost::make_tuple(handler))); - } - - /// Handle a completed read of a message header. The handler is passed using - /// a tuple since boost::bind seems to have trouble binding a function object - /// created using boost::bind as a parameter. - template - void handle_read_header(const asio::error_code& e, - T& t, boost::tuple handler) - { - if (e) - { - boost::get<0>(handler)(e); - } - else - { - // Determine the length of the serialized data. - std::istringstream is(std::string(inbound_header_, header_length)); - std::size_t inbound_data_size = 0; - if (!(is >> std::hex >> inbound_data_size)) - { - // Header doesn't seem to be valid. Inform the caller. - asio::error_code error(asio::error::invalid_argument); - boost::get<0>(handler)(error); - return; - } - - // Start an asynchronous call to receive the data. - inbound_data_.resize(inbound_data_size); - void (connection::*f)( - const asio::error_code&, - T&, boost::tuple) - = &connection::handle_read_data; - asio::async_read(socket_, asio::buffer(inbound_data_), - boost::bind(f, this, - asio::placeholders::error, boost::ref(t), handler)); - } - } - - /// Handle a completed read of message data. - template - void handle_read_data(const asio::error_code& e, - T& t, boost::tuple handler) - { - if (e) - { - boost::get<0>(handler)(e); - } - else - { - // Extract the data structure from the data just received. - try - { - std::string archive_data(&inbound_data_[0], inbound_data_.size()); - std::istringstream archive_stream(archive_data); - boost::archive::text_iarchive archive(archive_stream); - archive >> t; - } - catch (std::exception& e) - { - // Unable to decode data. - asio::error_code error(asio::error::invalid_argument); - boost::get<0>(handler)(error); - return; - } - - // Inform caller that data has been received ok. - boost::get<0>(handler)(e); - } - } - -private: - /// The underlying socket. - asio::ip::tcp::socket socket_; - - /// The size of a fixed length header. - enum { header_length = 8 }; - - /// Holds an outbound header. - std::string outbound_header_; - - /// Holds the outbound data. - std::string outbound_data_; - - /// Holds an inbound header. - char inbound_header_[header_length]; - - /// Holds the inbound data. - std::vector inbound_data_; -}; - -typedef boost::shared_ptr connection_ptr; - -} // namespace s11n_example - -#endif // SERIALIZATION_CONNECTION_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/serialization/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/serialization/server.cpp deleted file mode 100644 index 312653b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/serialization/server.cpp +++ /dev/null @@ -1,123 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include "connection.hpp" // Must come before boost/serialization headers. -#include -#include "stock.hpp" - -namespace s11n_example { - -/// Serves stock quote information to any client that connects to it. -class server -{ -public: - /// Constructor opens the acceptor and starts waiting for the first incoming - /// connection. - server(asio::io_context& io_context, unsigned short port) - : acceptor_(io_context, - asio::ip::tcp::endpoint(asio::ip::tcp::v4(), port)) - { - // Create the data to be sent to each client. - stock s; - s.code = "ABC"; - s.name = "A Big Company"; - s.open_price = 4.56; - s.high_price = 5.12; - s.low_price = 4.33; - s.last_price = 4.98; - s.buy_price = 4.96; - s.buy_quantity = 1000; - s.sell_price = 4.99; - s.sell_quantity = 2000; - stocks_.push_back(s); - s.code = "DEF"; - s.name = "Developer Entertainment Firm"; - s.open_price = 20.24; - s.high_price = 22.88; - s.low_price = 19.50; - s.last_price = 19.76; - s.buy_price = 19.72; - s.buy_quantity = 34000; - s.sell_price = 19.85; - s.sell_quantity = 45000; - stocks_.push_back(s); - - // Start an accept operation for a new connection. - connection_ptr new_conn(new connection(acceptor_.get_io_context())); - acceptor_.async_accept(new_conn->socket(), - boost::bind(&server::handle_accept, this, - asio::placeholders::error, new_conn)); - } - - /// Handle completion of a accept operation. - void handle_accept(const asio::error_code& e, connection_ptr conn) - { - if (!e) - { - // Successfully accepted a new connection. Send the list of stocks to the - // client. The connection::async_write() function will automatically - // serialize the data structure for us. - conn->async_write(stocks_, - boost::bind(&server::handle_write, this, - asio::placeholders::error, conn)); - } - - // Start an accept operation for a new connection. - connection_ptr new_conn(new connection(acceptor_.get_io_context())); - acceptor_.async_accept(new_conn->socket(), - boost::bind(&server::handle_accept, this, - asio::placeholders::error, new_conn)); - } - - /// Handle completion of a write operation. - void handle_write(const asio::error_code& e, connection_ptr conn) - { - // Nothing to do. The socket will be closed automatically when the last - // reference to the connection object goes away. - } - -private: - /// The acceptor object used to accept incoming socket connections. - asio::ip::tcp::acceptor acceptor_; - - /// The data to be sent to each client. - std::vector stocks_; -}; - -} // namespace s11n_example - -int main(int argc, char* argv[]) -{ - try - { - // Check command line arguments. - if (argc != 2) - { - std::cerr << "Usage: server " << std::endl; - return 1; - } - unsigned short port = boost::lexical_cast(argv[1]); - - asio::io_context io_context; - s11n_example::server server(io_context, port); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/serialization/stock.hpp b/Sources/Vendor/asio/src/examples/cpp03/serialization/stock.hpp deleted file mode 100644 index b1d1c60..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/serialization/stock.hpp +++ /dev/null @@ -1,50 +0,0 @@ -// -// stock.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 SERIALIZATION_STOCK_HPP -#define SERIALIZATION_STOCK_HPP - -#include - -namespace s11n_example { - -/// Structure to hold information about a single stock. -struct stock -{ - std::string code; - std::string name; - double open_price; - double high_price; - double low_price; - double last_price; - double buy_price; - int buy_quantity; - double sell_price; - int sell_quantity; - - template - void serialize(Archive& ar, const unsigned int version) - { - ar & code; - ar & name; - ar & open_price; - ar & high_price; - ar & low_price; - ar & last_price; - ar & buy_price; - ar & buy_quantity; - ar & sell_price; - ar & sell_quantity; - } -}; - -} // namespace s11n_example - -#endif // SERIALIZATION_STOCK_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/services/basic_logger.hpp b/Sources/Vendor/asio/src/examples/cpp03/services/basic_logger.hpp deleted file mode 100644 index f809e3e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/services/basic_logger.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// -// basic_logger.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 SERVICES_BASIC_LOGGER_HPP -#define SERVICES_BASIC_LOGGER_HPP - -#include -#include -#include - -namespace services { - -/// Class to provide simple logging functionality. Use the services::logger -/// typedef. -template -class basic_logger - : private boost::noncopyable -{ -public: - /// The type of the service that will be used to provide timer operations. - typedef Service service_type; - - /// The native implementation type of the timer. - typedef typename service_type::impl_type impl_type; - - /// Constructor. - /** - * This constructor creates a logger. - * - * @param io_context The io_context object used to locate the logger service. - * - * @param identifier An identifier for this logger. - */ - explicit basic_logger(asio::io_context& io_context, - const std::string& identifier) - : service_(asio::use_service(io_context)), - impl_(service_.null()) - { - service_.create(impl_, identifier); - } - - /// Destructor. - ~basic_logger() - { - service_.destroy(impl_); - } - - /// Get the io_context associated with the object. - asio::io_context& get_io_context() - { - return service_.get_io_context(); - } - - /// Set the output file for all logger instances. - void use_file(const std::string& file) - { - service_.use_file(impl_, file); - } - - /// Log a message. - void log(const std::string& message) - { - service_.log(impl_, message); - } - -private: - /// The backend service implementation. - service_type& service_; - - /// The underlying native implementation. - impl_type impl_; -}; - -} // namespace services - -#endif // SERVICES_BASIC_LOGGER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/services/daytime_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/services/daytime_client.cpp deleted file mode 100644 index 988f972..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/services/daytime_client.cpp +++ /dev/null @@ -1,97 +0,0 @@ -// -// daytime_client.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "logger.hpp" - -using asio::ip::tcp; - -char read_buffer[1024]; - -void read_handler(const asio::error_code& e, - std::size_t bytes_transferred, tcp::socket* s) -{ - if (!e) - { - std::cout.write(read_buffer, bytes_transferred); - - s->async_read_some(asio::buffer(read_buffer), - boost::bind(read_handler, asio::placeholders::error, - asio::placeholders::bytes_transferred, s)); - } - else - { - services::logger logger(s->get_executor().context(), "read_handler"); - - std::string msg = "Read error: "; - msg += e.message(); - logger.log(msg); - } -} - -void connect_handler(const asio::error_code& e, tcp::socket* s) -{ - services::logger logger(s->get_executor().context(), "connect_handler"); - - if (!e) - { - logger.log("Connection established"); - - s->async_read_some(asio::buffer(read_buffer), - boost::bind(read_handler, asio::placeholders::error, - asio::placeholders::bytes_transferred, s)); - } - else - { - std::string msg = "Unable to establish connection: "; - msg += e.message(); - logger.log(msg); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: daytime_client " << std::endl; - return 1; - } - - asio::io_context io_context; - - // Set the name of the file that all logger instances will use. - services::logger logger(io_context, ""); - logger.use_file("log.txt"); - - // Resolve the address corresponding to the given host. - tcp::resolver resolver(io_context); - tcp::resolver::results_type endpoints = - resolver.resolve(argv[1], "daytime"); - - // Start an asynchronous connect. - tcp::socket socket(io_context); - asio::async_connect(socket, endpoints, - boost::bind(connect_handler, - asio::placeholders::error, &socket)); - - // Run the io_context until all operations have finished. - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/services/logger.hpp b/Sources/Vendor/asio/src/examples/cpp03/services/logger.hpp deleted file mode 100644 index 71ec68d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/services/logger.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// -// logger.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 SERVICES_LOGGER_HPP -#define SERVICES_LOGGER_HPP - -#include "basic_logger.hpp" -#include "logger_service.hpp" - -namespace services { - -/// Typedef for typical logger usage. -typedef basic_logger logger; - -} // namespace services - -#endif // SERVICES_LOGGER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/services/logger_service.cpp b/Sources/Vendor/asio/src/examples/cpp03/services/logger_service.cpp deleted file mode 100644 index 975d2f4..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/services/logger_service.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// -// logger_service.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "logger_service.hpp" - -namespace services { - -asio::io_context::id logger_service::id; - -} // namespace services diff --git a/Sources/Vendor/asio/src/examples/cpp03/services/logger_service.hpp b/Sources/Vendor/asio/src/examples/cpp03/services/logger_service.hpp deleted file mode 100644 index 2b9faef..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/services/logger_service.hpp +++ /dev/null @@ -1,145 +0,0 @@ -// -// logger_service.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 SERVICES_LOGGER_SERVICE_HPP -#define SERVICES_LOGGER_SERVICE_HPP - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace services { - -/// Service implementation for the logger. -class logger_service - : public asio::io_context::service -{ -public: - /// The unique service identifier. - static asio::io_context::id id; - - /// The backend implementation of a logger. - struct logger_impl - { - explicit logger_impl(const std::string& ident) : identifier(ident) {} - std::string identifier; - }; - - /// The type for an implementation of the logger. - typedef logger_impl* impl_type; - - /// Constructor creates a thread to run a private io_context. - logger_service(asio::io_context& io_context) - : asio::io_context::service(io_context), - work_io_context_(), - work_(asio::make_work_guard(work_io_context_)), - work_thread_(new asio::thread( - boost::bind(&asio::io_context::run, &work_io_context_))) - { - } - - /// Destructor shuts down the private io_context. - ~logger_service() - { - /// Indicate that we have finished with the private io_context. Its - /// io_context::run() function will exit once all other work has completed. - work_.reset(); - if (work_thread_) - work_thread_->join(); - } - - /// Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - /// Return a null logger implementation. - impl_type null() const - { - return 0; - } - - /// Create a new logger implementation. - void create(impl_type& impl, const std::string& identifier) - { - impl = new logger_impl(identifier); - } - - /// Destroy a logger implementation. - void destroy(impl_type& impl) - { - delete impl; - impl = null(); - } - - /// Set the output file for the logger. The current implementation sets the - /// output file for all logger instances, and so the impl parameter is not - /// actually needed. It is retained here to illustrate how service functions - /// are typically defined. - void use_file(impl_type& /*impl*/, const std::string& file) - { - // Pass the work of opening the file to the background thread. - asio::post(work_io_context_, boost::bind( - &logger_service::use_file_impl, this, file)); - } - - /// Log a message. - void log(impl_type& impl, const std::string& message) - { - // Format the text to be logged. - std::ostringstream os; - os << impl->identifier << ": " << message; - - // Pass the work of writing to the file to the background thread. - asio::post(work_io_context_, boost::bind( - &logger_service::log_impl, this, os.str())); - } - -private: - /// Helper function used to open the output file from within the private - /// io_context's thread. - void use_file_impl(const std::string& file) - { - ofstream_.close(); - ofstream_.clear(); - ofstream_.open(file.c_str()); - } - - /// Helper function used to log a message from within the private io_context's - /// thread. - void log_impl(const std::string& text) - { - ofstream_ << text << std::endl; - } - - /// Private io_context used for performing logging operations. - asio::io_context work_io_context_; - - /// Work for the private io_context to perform. If we do not give the - /// io_context some work to do then the io_context::run() function will exit - /// immediately. - asio::executor_work_guard< - asio::io_context::executor_type> work_; - - /// Thread used for running the work io_context's run loop. - boost::scoped_ptr work_thread_; - - /// The file to which log messages will be written. - std::ofstream ofstream_; -}; - -} // namespace services - -#endif // SERVICES_LOGGER_SERVICE_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/socks4/socks4.hpp b/Sources/Vendor/asio/src/examples/cpp03/socks4/socks4.hpp deleted file mode 100644 index 92bc141..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/socks4/socks4.hpp +++ /dev/null @@ -1,144 +0,0 @@ -// -// socks4.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 SOCKS4_HPP -#define SOCKS4_HPP - -#include -#include -#include - -namespace socks4 { - -const unsigned char version = 0x04; - -class request -{ -public: - enum command_type - { - connect = 0x01, - bind = 0x02 - }; - - request(command_type cmd, const asio::ip::tcp::endpoint& endpoint, - const std::string& user_id) - : version_(version), - command_(cmd), - user_id_(user_id), - null_byte_(0) - { - // Only IPv4 is supported by the SOCKS 4 protocol. - if (endpoint.protocol() != asio::ip::tcp::v4()) - { - throw asio::system_error( - asio::error::address_family_not_supported); - } - - // Convert port number to network byte order. - unsigned short port = endpoint.port(); - port_high_byte_ = (port >> 8) & 0xff; - port_low_byte_ = port & 0xff; - - // Save IP address in network byte order. - address_ = endpoint.address().to_v4().to_bytes(); - } - - boost::array buffers() const - { - boost::array bufs = - { - { - asio::buffer(&version_, 1), - asio::buffer(&command_, 1), - asio::buffer(&port_high_byte_, 1), - asio::buffer(&port_low_byte_, 1), - asio::buffer(address_), - asio::buffer(user_id_), - asio::buffer(&null_byte_, 1) - } - }; - return bufs; - } - -private: - unsigned char version_; - unsigned char command_; - unsigned char port_high_byte_; - unsigned char port_low_byte_; - asio::ip::address_v4::bytes_type address_; - std::string user_id_; - unsigned char null_byte_; -}; - -class reply -{ -public: - enum status_type - { - request_granted = 0x5a, - request_failed = 0x5b, - request_failed_no_identd = 0x5c, - request_failed_bad_user_id = 0x5d - }; - - reply() - : null_byte_(0), - status_() - { - } - - boost::array buffers() - { - boost::array bufs = - { - { - asio::buffer(&null_byte_, 1), - asio::buffer(&status_, 1), - asio::buffer(&port_high_byte_, 1), - asio::buffer(&port_low_byte_, 1), - asio::buffer(address_) - } - }; - return bufs; - } - - bool success() const - { - return null_byte_ == 0 && status_ == request_granted; - } - - unsigned char status() const - { - return status_; - } - - asio::ip::tcp::endpoint endpoint() const - { - unsigned short port = port_high_byte_; - port = (port << 8) & 0xff00; - port = port | port_low_byte_; - - asio::ip::address_v4 address(address_); - - return asio::ip::tcp::endpoint(address, port); - } - -private: - unsigned char null_byte_; - unsigned char status_; - unsigned char port_high_byte_; - unsigned char port_low_byte_; - asio::ip::address_v4::bytes_type address_; -}; - -} // namespace socks4 - -#endif // SOCKS4_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/socks4/sync_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/socks4/sync_client.cpp deleted file mode 100644 index fceaf50..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/socks4/sync_client.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// sync_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include "socks4.hpp" - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 4) - { - std::cout << "Usage: sync_client \n"; - std::cout << "Examples:\n"; - std::cout << " sync_client 127.0.0.1 1080 chris\n"; - std::cout << " sync_client localhost socks chris\n"; - return 1; - } - - asio::io_context io_context; - - // Get a list of endpoints corresponding to the SOCKS 4 server name. - tcp::resolver resolver(io_context); - tcp::resolver::results_type endpoints = resolver.resolve(argv[1], argv[2]); - - // Try each endpoint until we successfully establish a connection to the - // SOCKS 4 server. - tcp::socket socket(io_context); - asio::connect(socket, endpoints); - - // Get an endpoint for the Boost website. This will be passed to the SOCKS - // 4 server. Explicitly specify IPv4 since SOCKS 4 does not support IPv6. - tcp::endpoint http_endpoint = - *resolver.resolve(tcp::v4(), "www.boost.org", "http").begin(); - - // Send the request to the SOCKS 4 server. - socks4::request socks_request( - socks4::request::connect, http_endpoint, argv[3]); - asio::write(socket, socks_request.buffers()); - - // Receive a response from the SOCKS 4 server. - socks4::reply socks_reply; - asio::read(socket, socks_reply.buffers()); - - // Check whether we successfully negotiated with the SOCKS 4 server. - if (!socks_reply.success()) - { - std::cout << "Connection failed.\n"; - std::cout << "status = 0x" << std::hex << socks_reply.status(); - return 1; - } - - // Form the HTTP request. We specify the "Connection: close" header so that - // the server will close the socket after transmitting the response. This - // will allow us to treat all data up until the EOF as the response. - std::string request = - "GET / HTTP/1.0\r\n" - "Host: www.boost.org\r\n" - "Accept: */*\r\n" - "Connection: close\r\n\r\n"; - - // Send the HTTP request. - asio::write(socket, asio::buffer(request)); - - // Read until EOF, writing data to output as we go. - boost::array response; - asio::error_code error; - while (std::size_t s = socket.read_some( - asio::buffer(response), error)) - std::cout.write(response.data(), s); - if (error != asio::error::eof) - throw asio::system_error(error); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/spawn/echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/spawn/echo_server.cpp deleted file mode 100644 index b1e28a5..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/spawn/echo_server.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// echo_server.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -class session : public boost::enable_shared_from_this -{ -public: - explicit session(asio::io_context& io_context) - : strand_(io_context), - socket_(io_context), - timer_(io_context) - { - } - - tcp::socket& socket() - { - return socket_; - } - - void go() - { - asio::spawn(strand_, - boost::bind(&session::echo, - shared_from_this(), _1)); - asio::spawn(strand_, - boost::bind(&session::timeout, - shared_from_this(), _1)); - } - -private: - void echo(asio::yield_context yield) - { - try - { - char data[128]; - for (;;) - { - timer_.expires_after(asio::chrono::seconds(10)); - std::size_t n = socket_.async_read_some(asio::buffer(data), yield); - asio::async_write(socket_, asio::buffer(data, n), yield); - } - } - catch (std::exception& e) - { - socket_.close(); - timer_.cancel(); - } - } - - void timeout(asio::yield_context yield) - { - while (socket_.is_open()) - { - asio::error_code ignored_ec; - timer_.async_wait(yield[ignored_ec]); - if (timer_.expiry() <= asio::steady_timer::clock_type::now()) - socket_.close(); - } - } - - asio::io_context::strand strand_; - tcp::socket socket_; - asio::steady_timer timer_; -}; - -void do_accept(asio::io_context& io_context, - unsigned short port, asio::yield_context yield) -{ - tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4(), port)); - - for (;;) - { - asio::error_code ec; - boost::shared_ptr new_session(new session(io_context)); - 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 \n"; - return 1; - } - - asio::io_context io_context; - - asio::spawn(io_context, - boost::bind(do_accept, - boost::ref(io_context), atoi(argv[1]), _1)); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/spawn/parallel_grep.cpp b/Sources/Vendor/asio/src/examples/cpp03/spawn/parallel_grep.cpp deleted file mode 100644 index 8fe1309..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/spawn/parallel_grep.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// parallel_grep.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::dispatch; -using asio::spawn; -using asio::strand; -using asio::thread_pool; -using asio::yield_context; - -void print_match(std::string input_file, std::string line) -{ - std::cout << input_file << ':' << line << std::endl; -} - -void search_file(std::string search_string, std::string input_file, - strand output_strand, yield_context yield) -{ - std::ifstream is(input_file.c_str()); - std::string line; - std::size_t line_num = 0; - while (std::getline(is, line)) - { - // If we find a match, send a message to the output. - if (line.find(search_string) != std::string::npos) - { - dispatch(output_strand, boost::bind(&print_match, input_file, line)); - } - - // Every so often we yield control to another coroutine. - if (++line_num % 10 == 0) - post(yield); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc < 2) - { - std::cerr << "Usage: parallel_grep \n"; - return 1; - } - - // We use a fixed size pool of threads for reading the input files. The - // number of threads is automatically determined based on the number of - // CPUs available in the system. - thread_pool pool; - - // To prevent the output from being garbled, we use a strand to synchronise - // printing. - strand output_strand(pool.get_executor()); - - // Spawn a new coroutine for each file specified on the command line. - std::string search_string = argv[1]; - for (int argn = 2; argn < argc; ++argn) - { - std::string input_file = argv[argn]; - spawn(pool, boost::bind(&search_file, - search_string, input_file, output_strand, _1)); - } - - // Join the thread pool to wait for all the spawned tasks to complete. - pool.join(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/ssl/README b/Sources/Vendor/asio/src/examples/cpp03/ssl/README deleted file mode 100644 index 3da5190..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/ssl/README +++ /dev/null @@ -1,8 +0,0 @@ -The passphrase for both the CA and server private keys is "test". - - -------------------------------------------------------------------------------- -Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) - -Distributed under the Boost Software License, Version 1.0. (See accompanying -file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/Sources/Vendor/asio/src/examples/cpp03/ssl/ca.pem b/Sources/Vendor/asio/src/examples/cpp03/ssl/ca.pem deleted file mode 100644 index 1ee5f2c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/ssl/ca.pem +++ /dev/null @@ -1,49 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDlzCCAn+gAwIBAgIJAMJYU3U6A0IRMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNV -BAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTENMAsGA1UEChME -YXNpbzAeFw0xNTExMTgyMjMzNDhaFw0yMDExMTYyMjMzNDhaMDsxCzAJBgNVBAYT -AkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTENMAsGA1UEChMEYXNp -bzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMcRJocHdVMdLUJ/pypY -QVSTC0t3IIgjwjazrK3kAaoIMvzPmDFxEXWcDx+nyz8kQ/E38Ir/ef2BCNGci5hu -wkfMSuMoW9l2N4hx3QCcF46tTDEZztFxWAH7QbE2wYMlMgKZSxWimNfq0YjxEEXb -QM0lGPLFh7Xoko29H0F3LKaaQV9u/vop3Hs0h12HeWlY4PiLp7QQTNGqbWcXycA0 -NZ/fyismireyEvPAgo6L8iXuAi7g0TVKVNlrticGGjMcMq6IMvxzEpSMkuMQ5rWj -pZjWOoBjSYBuXdblcBRvXhOr2Ws8jJLMZfehKq9q1reQfoGV6xMnbwmumSXbWRWT -0vkCAwEAAaOBnTCBmjAdBgNVHQ4EFgQUK/Zv/AVtfIeucJw8VEtux1dhI1YwawYD -VR0jBGQwYoAUK/Zv/AVtfIeucJw8VEtux1dhI1ahP6Q9MDsxCzAJBgNVBAYTAkFV -MQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTENMAsGA1UEChMEYXNpb4IJ -AMJYU3U6A0IRMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBABLYXimq -v/HLyIJi7Xn8AJUsICj8LKF/J24nwwiF+ibf7UkoChJURs4nN78bod/lpDVPTEVl -gTBdV/vBJs416sCEFfsGjqB9OBYj4gb0VaJDsQd0+NMvXp0faKv2y9wgScxG9/cg -aM7eRmyfMn1qjb6tpNxVOPpe/nFi8Vx/1orejBRaZr4zF5TkoPepfwLWQeXDUIdE -+QHZ60jZAkR5RXTVU4u3kOKcJs839pmJYyxM4H2VxpR18vy4/YdIVWkREIUM2OgT -5iznIQIIgR56QRGP85uef+I6n0BHzrBk6du69bkQFxrFjLVGlal4bIQqSg4KGWgx -dEdymMWzmMxpO9s= ------END CERTIFICATE----- ------BEGIN RSA PRIVATE KEY----- -MIIEpgIBAAKCAQEAxxEmhwd1Ux0tQn+nKlhBVJMLS3cgiCPCNrOsreQBqggy/M+Y -MXERdZwPH6fLPyRD8Tfwiv95/YEI0ZyLmG7CR8xK4yhb2XY3iHHdAJwXjq1MMRnO -0XFYAftBsTbBgyUyAplLFaKY1+rRiPEQRdtAzSUY8sWHteiSjb0fQXcspppBX27+ -+incezSHXYd5aVjg+IuntBBM0aptZxfJwDQ1n9/KKyaKt7IS88CCjovyJe4CLuDR -NUpU2Wu2JwYaMxwyrogy/HMSlIyS4xDmtaOlmNY6gGNJgG5d1uVwFG9eE6vZazyM -ksxl96Eqr2rWt5B+gZXrEydvCa6ZJdtZFZPS+QIDAQABAoIBAQCOma+SvPoDzvvU -DiPOxqgOEMPfjHfGbm86xl0luBalGfiEd6WbjVanfGKtF4MWOUFec+chez+FJMEP -fufVC0qrKiJfNVMOpYvEd2SMgkSx1VymM8me6WXVDYsSipn2+1cm228ZEYAR9Emj -oqQ4loaGLlP/3RaJbhBF7ruMJvXaZZQ4fZy74Z4tyRaaE1B659ua7Rjne7eNhQE8 -cR7cQDkxsNNN3LTbfLRwEc/gcDXWgLe5JlR/K4ZrdKc3lyivm+Uew3ubKs+fgkyY -kHmuI3RJGIjpnsZW0/So+pHm3b/fo6lmlhTXtNNd+tkkKn2K9ttbXT3Sc13Pc+4w -c4MLyUpdAoGBAOxTtGDpeF6U4s+GPuOCzHCwKQyzfOyCL/UTZv1UJX7Kn1FYycJH -eOjtBRtS661cGkGd1MPfjdX2VV84AmBGDUmRqJ2KfTI1NjLAEJ115ANTpmSTm3lF -UYncgbzl6aflLpjE1mgY+JTJykYeN5jhhO0r2bsdY7S+zaMCSI5NLuznAoGBANej -aMtqLg2qKoq+fUkNBHHLXelR5dBXFnKgSrTj++H4yeW9pYbl8bK3gTF3I5+dSjHW -DdC4+X09iPqY7p8vm8Gq/vgO8Bu+EnKNVr80PJSj7AzFGd6mk/CVrAzoY2XJWbAp -YFwpo1WfHjS5wBfQzBlXY7kWVB7fj32kk14PYmUfAoGBAJXfd7NGHPoOfdCSGGv8 -VV7ZuQ6+/WiYH4XS6iuaI7VHFsZmAn3dCcbeGbD8Y04r7NLUH0yhB7g7YmTihk87 -3c1cPIy8eS1QJbEFsQPK8fFSKWH7YkwEM/O0DesX+5hodaaYnkiiHXNujYLuQuAH -lV87wfcyajsEDjFkj1L/i9TdAoGBAKYfRUQv8HqmdU+doHb+iEYCHb75UMpHzQtR -YTwpxoo3V5Kdnz9lNeYwaF7rIY59ZgMunEYHumw5U6V625nW228/hF0lZOR6cUu+ -hu2WGHWKMvdDgMJ+IcpeA8WN4cUwcN+9gHZ/vUzg4CxOTSYLvLBpGnIkOXnvUGPC -vaTgxTSRAoGBAOHcuZ9hcUrPuVI1HVkjQQLu5mLZ3tz6linEbe/RCdJMK8JrRX4w -ubB7gFclMYGbLlDNAJVYkydJaCy/2NAI3rfsOda+VmDqGx6z4BbSGceHhomyU1Oo -1H7YaXsuzDkzl23HRsyp0pKJpTdghZdbVsGF8vAB8ygK3ehM233neSln ------END RSA PRIVATE KEY----- diff --git a/Sources/Vendor/asio/src/examples/cpp03/ssl/client.cpp b/Sources/Vendor/asio/src/examples/cpp03/ssl/client.cpp deleted file mode 100644 index 0b68acd..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/ssl/client.cpp +++ /dev/null @@ -1,156 +0,0 @@ -// -// client.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" -#include "asio/ssl.hpp" - -enum { max_length = 1024 }; - -class client -{ -public: - client(asio::io_context& io_context, - asio::ssl::context& context, - asio::ip::tcp::resolver::results_type endpoints) - : socket_(io_context, context) - { - socket_.set_verify_mode(asio::ssl::verify_peer); - socket_.set_verify_callback( - boost::bind(&client::verify_certificate, this, _1, _2)); - - asio::async_connect(socket_.lowest_layer(), endpoints, - boost::bind(&client::handle_connect, this, - asio::placeholders::error)); - } - - bool verify_certificate(bool preverified, - asio::ssl::verify_context& ctx) - { - // The verify callback can be used to check whether the certificate that is - // being presented is valid for the peer. For example, RFC 2818 describes - // the steps involved in doing this for HTTPS. Consult the OpenSSL - // documentation for more details. Note that the callback is called once - // for each certificate in the certificate chain, starting from the root - // certificate authority. - - // In this example we will simply print the certificate's subject name. - char subject_name[256]; - X509* cert = X509_STORE_CTX_get_current_cert(ctx.native_handle()); - X509_NAME_oneline(X509_get_subject_name(cert), subject_name, 256); - std::cout << "Verifying " << subject_name << "\n"; - - return preverified; - } - - void handle_connect(const asio::error_code& error) - { - if (!error) - { - socket_.async_handshake(asio::ssl::stream_base::client, - boost::bind(&client::handle_handshake, this, - asio::placeholders::error)); - } - else - { - std::cout << "Connect failed: " << error.message() << "\n"; - } - } - - void handle_handshake(const asio::error_code& error) - { - if (!error) - { - std::cout << "Enter message: "; - std::cin.getline(request_, max_length); - size_t request_length = strlen(request_); - - asio::async_write(socket_, - asio::buffer(request_, request_length), - boost::bind(&client::handle_write, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - std::cout << "Handshake failed: " << error.message() << "\n"; - } - } - - void handle_write(const asio::error_code& error, - size_t bytes_transferred) - { - if (!error) - { - asio::async_read(socket_, - asio::buffer(reply_, bytes_transferred), - boost::bind(&client::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - std::cout << "Write failed: " << error.message() << "\n"; - } - } - - void handle_read(const asio::error_code& error, - size_t bytes_transferred) - { - if (!error) - { - std::cout << "Reply: "; - std::cout.write(reply_, bytes_transferred); - std::cout << "\n"; - } - else - { - std::cout << "Read failed: " << error.message() << "\n"; - } - } - -private: - asio::ssl::stream socket_; - char request_[max_length]; - char reply_[max_length]; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: client \n"; - return 1; - } - - asio::io_context io_context; - - asio::ip::tcp::resolver resolver(io_context); - asio::ip::tcp::resolver::results_type endpoints = - resolver.resolve(argv[1], argv[2]); - - asio::ssl::context ctx(asio::ssl::context::sslv23); - ctx.load_verify_file("ca.pem"); - - client c(io_context, ctx, endpoints); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/ssl/dh2048.pem b/Sources/Vendor/asio/src/examples/cpp03/ssl/dh2048.pem deleted file mode 100644 index 07250cc..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/ssl/dh2048.pem +++ /dev/null @@ -1,8 +0,0 @@ ------BEGIN DH PARAMETERS----- -MIIBCAKCAQEAyNnxZSYc6J89mDNnqOH8bnwBiAJxcaUS3PkIEcwW8D9o2BlNq6EO -XKMIbdfwPFZi80GMpNu3YP2A2B42sAHmb7w7ZA92QDv3JjqzR0QuS/CkMv4CEjha -QBFwBDDWnnHBSj4w/t54ii0SH34mWcjBItI2eMtnM9J6fnvNiWqJxdt4iA4mZjZD -qZTjIRyjgKAevzkqAlBqQRoVUUgu+9Cf29wXjVl3bE+0VU5CdFeyT+Y9yunz88mq -rGyx1uPt+zbIfxuNLH+coY67y1ht7iZEL5WLd3wGCycRT+lYy2AL/rxGBPxStFIT -2bOkQao6sAfb4UdGEUlwHUXZrAV51oM30wIBAg== ------END DH PARAMETERS----- diff --git a/Sources/Vendor/asio/src/examples/cpp03/ssl/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/ssl/server.cpp deleted file mode 100644 index 8a11fb2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/ssl/server.cpp +++ /dev/null @@ -1,170 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" -#include "asio/ssl.hpp" - -typedef asio::ssl::stream ssl_socket; - -class session -{ -public: - session(asio::io_context& io_context, - asio::ssl::context& context) - : socket_(io_context, context) - { - } - - ssl_socket::lowest_layer_type& socket() - { - return socket_.lowest_layer(); - } - - void start() - { - socket_.async_handshake(asio::ssl::stream_base::server, - boost::bind(&session::handle_handshake, this, - asio::placeholders::error)); - } - - void handle_handshake(const asio::error_code& error) - { - if (!error) - { - socket_.async_read_some(asio::buffer(data_, max_length), - boost::bind(&session::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - delete this; - } - } - - void handle_read(const asio::error_code& error, - size_t bytes_transferred) - { - if (!error) - { - asio::async_write(socket_, - asio::buffer(data_, bytes_transferred), - boost::bind(&session::handle_write, this, - asio::placeholders::error)); - } - else - { - delete this; - } - } - - void handle_write(const asio::error_code& error) - { - if (!error) - { - socket_.async_read_some(asio::buffer(data_, max_length), - boost::bind(&session::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - delete this; - } - } - -private: - ssl_socket socket_; - enum { max_length = 1024 }; - char data_[max_length]; -}; - -class server -{ -public: - server(asio::io_context& io_context, unsigned short port) - : io_context_(io_context), - acceptor_(io_context, - asio::ip::tcp::endpoint(asio::ip::tcp::v4(), port)), - context_(asio::ssl::context::sslv23) - { - context_.set_options( - asio::ssl::context::default_workarounds - | asio::ssl::context::no_sslv2 - | asio::ssl::context::single_dh_use); - context_.set_password_callback(boost::bind(&server::get_password, this)); - context_.use_certificate_chain_file("server.pem"); - context_.use_private_key_file("server.pem", asio::ssl::context::pem); - context_.use_tmp_dh_file("dh2048.pem"); - - start_accept(); - } - - std::string get_password() const - { - return "test"; - } - - void start_accept() - { - session* new_session = new session(io_context_, context_); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - - void handle_accept(session* new_session, - const asio::error_code& error) - { - if (!error) - { - new_session->start(); - } - else - { - delete new_session; - } - - start_accept(); - } - -private: - asio::io_context& io_context_; - asio::ip::tcp::acceptor acceptor_; - asio::ssl::context context_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/ssl/server.pem b/Sources/Vendor/asio/src/examples/cpp03/ssl/server.pem deleted file mode 100644 index 37ea6e2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/ssl/server.pem +++ /dev/null @@ -1,71 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDAzCCAesCCQD9QcRiWk0y9TANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJB -VTEMMAoGA1UECBMDTlNXMQ8wDQYDVQQHEwZTeWRuZXkxDTALBgNVBAoTBGFzaW8w -HhcNMTUxMTE4MjIzNzMxWhcNMjAxMTE2MjIzNzMxWjBMMQswCQYDVQQGEwJBVTEM -MAoGA1UECBMDTlNXMQ8wDQYDVQQHEwZTeWRuZXkxDTALBgNVBAoTBGFzaW8xDzAN -BgNVBAsTBnNlcnZlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALr0 -+NXSklsGJR7HYHP/H4V5+KpYrmFKva/K7iiqi+XyWEjGnj+/iImJW26phhg9GouN -JJxdrP7/0LwpMsEC/9v09dMNAEewtYhPgD4kiUH/E/79wVmayMZZZGrpF9Rw+wWv -q58y3L1wKge3qilX6slVDdNhqU3vBiMKEJfsjE4PKcEVjPCjVJG2562eHK9FxyjQ -DykyH61lQKBQOiElilPQKzAO7U36yTvs+chWuUfK47B8EC+PJ5KcLEppli4ljlwE -w01HnGxwvjDLobKm2jL6CWi3aYGWudyTsNAd7YC5C7psktBypQLBcfp7uUrrR5Bb -PEjFHJUWIlyoYvm2OjMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAtceVW6tixFsB -ZRhjL5aRCcbx2iMwEXd54lcP6BWe1qOcDPHoSYI1zvvGzohbEvBfqUv78S9MtzaT -gMe5rIU9M1ZM09PyaM6ZutGpKHE8L4qcOslTt41GQFsSqPFdcbgSV20MvBzjGayR -AI/WV0avW3oasdetJPZCR7bRbCbMbWTgclUfv5F25ENcR+BhNuilfL15owL0s4sS -Wb4jOOHhXV9iXeS2dH0snFqv4BmQ9ZoA7zbM9lG3EU5DuxHESYkCnzJyEqqY3vWv -PFRViCxLp5LQLmkTQ3dglVQA4x6ZaonaewdPtdhjkLUuIqDvQx5+kIaOELbSws+c -bREYlnGrFw== ------END CERTIFICATE----- ------BEGIN RSA PRIVATE KEY----- -Proc-Type: 4,ENCRYPTED -DEK-Info: AES-256-CBC,D459676347D389E9135496D8AAFA7953 - -wbrjxr9NHur8kgxDsgXOY9qFGKpONIQLxkuahUrDD/H+s/l7ugsLWOPsOXbjNL/7 -QYUBAx85HKm9D8BQ5g78Y82qfArap3/3IIuysDfQDh4fQodhVtmGTFiCOvudlGEp -lq1niQRLThlxeRoFphH8KKiOTO9a/d8tdL7zRmiFwnVnhK4014mgVmgcSefA1AF5 -RbJAeMclUKddG6ltQK00ptg84CDXiMWQXFBGGmQ1av2lyFzC+xLP+qDqZAYTM9lZ -NFRo2oEZP1ozfOVNSbXTanJgZ0DSSmhGE1PcVrHSeE/v+k1kPh3oVKi9GV51kIDC -Zd9f/XltuDOzy1Ybn6gRy4nzNpzcwjSCIHEdSD5nxU5JfHfQ3OtnsEab7qf989iP -s2LbCSp5uGTMvfesMIkixIZAQp2FeahZTAgU2Vx+wi5Kks68rOqeywEfzACL/Um5 -7XZu8gDs4MgRRWnxK1BbJDPifICLvSJZvgB9FKX/hk4FHFF+MtcrkalehCuLooDV -3rfHNvRSbg7J97XQ3QC+k9ZDaumpy6n+LhaVv7BIJRBnBBtZ5Eg3DmPg6flqaHAU -Y/8d82wb/pCmbvR3B1/Ebgs84DPJ+uZnY9M5Iwx19oqlVSR2ts/Tx619LGAm+BiQ -7YDoC4CFmpAA8Uw0xnUbNgx94NdNmlnLeLtS50b0XlWpHKbVzmVbNYEjY6NHMlLt -aqxWHTYTa7g/c1bg2/nxF1Lbfu5VSTROGBUuer1c3yzVuyBrjcX92Jp4BJH78qOp -N6lY6MnH4HYRXHjzlt/S0ZzO0faPPe18Q8SWvnDVuE3fYzzL772B56d2t8eodc+/ -t6M3qJ60eXdsmgYOaPRLRUovN2xT2UUr0+biuguHyqfaVfcEU/adw+b9oUVE+5Nw -nZHI5qhPnhLxChyZqbBl68zMUyKlfff4OyLvRGpfcHwBw6DTGjduB+DDsqqkcIB9 -2VL6nps7ZVCwMPI18siUd6cttEOf6ZXrVqHg9wfDvJOlh2NNKNLxSAFubHc90Jlj -KejrWenXo2w6YkSUeTV4t4cWu7U8rXIkTJXDl1S6NO8DWqNDo5KjgJ2SK5NlSOJ7 -jgECn390ooneJOxxytPVQO2xppXQZZS65RHrvhB+ss5xUknly9q+ICyt6xTR9nqA -PKkeSE6qVY0J4JgFXpkgQxgwMnjSED3LKr3jlz28pr5cC6tsc5SSlekHjT2fcSrX -uccaVahaJRigf+q+4XzmJtdwbZU+YWGZRVMlQLA5yzPHQHDYkPpOeYU4WReND8S4 -TZRkPHaxOZ2lKQwJB93V8Vbt2MvwRy392452a33S4TcQLaWzoOljXjmZjrp2rvRz -prBaNe8LnO4V8Oliv+H+E0UWiWFDuI+HBy4X4O9plsbw/gk64Phl9qLiBwaX/AIR -66FXvC/czABo9oSt2jekcMtJofYr8Gr2bsJlt5ZX+GEOxz4jMv7xvz5/L3W7jVav -pHGIv4xfN9FrXzL47O7UuUF9xZg4Rp/fxwpgEDNZmX/3DnP0ewZQUcgUX0pdqNGQ -YVqJXcRF7KqG2NSQFuwPESZQnxU0WzSgRyUae7xg1WKfSuN8NVAzKhOgeqlD2IAo ------END RSA PRIVATE KEY----- ------BEGIN CERTIFICATE----- -MIIDlzCCAn+gAwIBAgIJAMJYU3U6A0IRMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNV -BAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTENMAsGA1UEChME -YXNpbzAeFw0xNTExMTgyMjMzNDhaFw0yMDExMTYyMjMzNDhaMDsxCzAJBgNVBAYT -AkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTENMAsGA1UEChMEYXNp -bzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMcRJocHdVMdLUJ/pypY -QVSTC0t3IIgjwjazrK3kAaoIMvzPmDFxEXWcDx+nyz8kQ/E38Ir/ef2BCNGci5hu -wkfMSuMoW9l2N4hx3QCcF46tTDEZztFxWAH7QbE2wYMlMgKZSxWimNfq0YjxEEXb -QM0lGPLFh7Xoko29H0F3LKaaQV9u/vop3Hs0h12HeWlY4PiLp7QQTNGqbWcXycA0 -NZ/fyismireyEvPAgo6L8iXuAi7g0TVKVNlrticGGjMcMq6IMvxzEpSMkuMQ5rWj -pZjWOoBjSYBuXdblcBRvXhOr2Ws8jJLMZfehKq9q1reQfoGV6xMnbwmumSXbWRWT -0vkCAwEAAaOBnTCBmjAdBgNVHQ4EFgQUK/Zv/AVtfIeucJw8VEtux1dhI1YwawYD -VR0jBGQwYoAUK/Zv/AVtfIeucJw8VEtux1dhI1ahP6Q9MDsxCzAJBgNVBAYTAkFV -MQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTENMAsGA1UEChMEYXNpb4IJ -AMJYU3U6A0IRMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBABLYXimq -v/HLyIJi7Xn8AJUsICj8LKF/J24nwwiF+ibf7UkoChJURs4nN78bod/lpDVPTEVl -gTBdV/vBJs416sCEFfsGjqB9OBYj4gb0VaJDsQd0+NMvXp0faKv2y9wgScxG9/cg -aM7eRmyfMn1qjb6tpNxVOPpe/nFi8Vx/1orejBRaZr4zF5TkoPepfwLWQeXDUIdE -+QHZ60jZAkR5RXTVU4u3kOKcJs839pmJYyxM4H2VxpR18vy4/YdIVWkREIUM2OgT -5iznIQIIgR56QRGP85uef+I6n0BHzrBk6du69bkQFxrFjLVGlal4bIQqSg4KGWgx -dEdymMWzmMxpO9s= ------END CERTIFICATE----- diff --git a/Sources/Vendor/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp deleted file mode 100644 index aac0e7a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp +++ /dev/null @@ -1,310 +0,0 @@ -// -// async_tcp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/read_until.hpp" -#include "asio/steady_timer.hpp" -#include "asio/write.hpp" -#include -#include -#include - -using asio::steady_timer; -using asio::ip::tcp; - -// -// This class manages socket timeouts by applying the concept of a deadline. -// Some asynchronous operations are given deadlines by which they must complete. -// Deadlines are enforced by an "actor" that persists for the lifetime of the -// client object: -// -// +----------------+ -// | | -// | check_deadline |<---+ -// | | | -// +----------------+ | async_wait() -// | | -// +---------+ -// -// If the deadline actor determines that the deadline has expired, the socket -// is closed and any outstanding operations are consequently cancelled. -// -// Connection establishment involves trying each endpoint in turn until a -// connection is successful, or the available endpoints are exhausted. If the -// deadline actor closes the socket, the connect actor is woken up and moves to -// the next endpoint. -// -// +---------------+ -// | | -// | start_connect |<---+ -// | | | -// +---------------+ | -// | | -// async_- | +----------------+ -// connect() | | | -// +--->| handle_connect | -// | | -// +----------------+ -// : -// Once a connection is : -// made, the connect : -// actor forks in two - : -// : -// an actor for reading : and an actor for -// inbound messages: : sending heartbeats: -// : -// +------------+ : +-------------+ -// | |<- - - - -+- - - - ->| | -// | start_read | | start_write |<---+ -// | |<---+ | | | -// +------------+ | +-------------+ | async_wait() -// | | | | -// async_- | +-------------+ async_- | +--------------+ -// read_- | | | write() | | | -// until() +--->| handle_read | +--->| handle_write | -// | | | | -// +-------------+ +--------------+ -// -// The input actor reads messages from the socket, where messages are delimited -// by the newline character. The deadline for a complete message is 30 seconds. -// -// The heartbeat actor sends a heartbeat (a message that consists of a single -// newline character) every 10 seconds. In this example, no deadline is applied -// to message sending. -// -class client -{ -public: - client(asio::io_context& io_context) - : stopped_(false), - socket_(io_context), - deadline_(io_context), - heartbeat_timer_(io_context) - { - } - - // Called by the user of the client class to initiate the connection process. - // The endpoints will have been obtained using a tcp::resolver. - void start(tcp::resolver::results_type endpoints) - { - // Start the connect actor. - endpoints_ = endpoints; - start_connect(endpoints_.begin()); - - // Start the deadline actor. You will note that we're not setting any - // particular deadline here. Instead, the connect and input actors will - // update the deadline prior to each asynchronous operation. - deadline_.async_wait(boost::bind(&client::check_deadline, this)); - } - - // This function terminates all the actors to shut down the connection. It - // may be called by the user of the client class, or by the class itself in - // response to graceful termination or an unrecoverable error. - void stop() - { - stopped_ = true; - asio::error_code ignored_ec; - socket_.close(ignored_ec); - deadline_.cancel(); - heartbeat_timer_.cancel(); - } - -private: - void start_connect(tcp::resolver::results_type::iterator endpoint_iter) - { - if (endpoint_iter != endpoints_.end()) - { - std::cout << "Trying " << endpoint_iter->endpoint() << "...\n"; - - // Set a deadline for the connect operation. - deadline_.expires_after(asio::chrono::seconds(60)); - - // Start the asynchronous connect operation. - socket_.async_connect(endpoint_iter->endpoint(), - boost::bind(&client::handle_connect, - this, _1, endpoint_iter)); - } - else - { - // There are no more endpoints to try. Shut down the client. - stop(); - } - } - - void handle_connect(const asio::error_code& ec, - tcp::resolver::results_type::iterator endpoint_iter) - { - if (stopped_) - return; - - // The async_connect() function automatically opens the socket at the start - // of the asynchronous operation. If the socket is closed at this time then - // the timeout handler must have run first. - if (!socket_.is_open()) - { - std::cout << "Connect timed out\n"; - - // Try the next available endpoint. - start_connect(++endpoint_iter); - } - - // Check if the connect operation failed before the deadline expired. - else if (ec) - { - std::cout << "Connect error: " << ec.message() << "\n"; - - // We need to close the socket used in the previous connection attempt - // before starting a new one. - socket_.close(); - - // Try the next available endpoint. - start_connect(++endpoint_iter); - } - - // Otherwise we have successfully established a connection. - else - { - std::cout << "Connected to " << endpoint_iter->endpoint() << "\n"; - - // Start the input actor. - start_read(); - - // Start the heartbeat actor. - start_write(); - } - } - - void start_read() - { - // Set a deadline for the read operation. - deadline_.expires_after(asio::chrono::seconds(30)); - - // Start an asynchronous operation to read a newline-delimited message. - asio::async_read_until(socket_, - asio::dynamic_buffer(input_buffer_), '\n', - boost::bind(&client::handle_read, this, _1, _2)); - } - - void handle_read(const asio::error_code& ec, std::size_t n) - { - if (stopped_) - return; - - if (!ec) - { - // Extract the newline-delimited message from the buffer. - std::string line(input_buffer_.substr(0, n - 1)); - input_buffer_.erase(0, n); - - // Empty messages are heartbeats and so ignored. - if (!line.empty()) - { - std::cout << "Received: " << line << "\n"; - } - - start_read(); - } - else - { - std::cout << "Error on receive: " << ec.message() << "\n"; - - stop(); - } - } - - void start_write() - { - if (stopped_) - return; - - // Start an asynchronous operation to send a heartbeat message. - asio::async_write(socket_, asio::buffer("\n", 1), - boost::bind(&client::handle_write, this, _1)); - } - - void handle_write(const asio::error_code& ec) - { - if (stopped_) - return; - - if (!ec) - { - // Wait 10 seconds before sending the next heartbeat. - heartbeat_timer_.expires_after(asio::chrono::seconds(10)); - heartbeat_timer_.async_wait(boost::bind(&client::start_write, this)); - } - else - { - std::cout << "Error on heartbeat: " << ec.message() << "\n"; - - stop(); - } - } - - void check_deadline() - { - if (stopped_) - return; - - // Check whether the deadline has passed. We compare the deadline against - // the current time since a new asynchronous operation may have moved the - // deadline before this actor had a chance to run. - if (deadline_.expiry() <= steady_timer::clock_type::now()) - { - // The deadline has passed. The socket is closed so that any outstanding - // asynchronous operations are cancelled. - socket_.close(); - - // There is no longer an active deadline. The expiry is set to the - // maximum time point so that the actor takes no action until a new - // deadline is set. - deadline_.expires_at(steady_timer::time_point::max()); - } - - // Put the actor back to sleep. - deadline_.async_wait(boost::bind(&client::check_deadline, this)); - } - -private: - bool stopped_; - tcp::resolver::results_type endpoints_; - tcp::socket socket_; - std::string input_buffer_; - steady_timer deadline_; - steady_timer heartbeat_timer_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: client \n"; - return 1; - } - - asio::io_context io_context; - tcp::resolver r(io_context); - client c(io_context); - - c.start(r.resolve(argv[1], argv[2])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp deleted file mode 100644 index 24b1329..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp +++ /dev/null @@ -1,191 +0,0 @@ -// -// blocking_tcp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "asio/buffer.hpp" -#include "asio/connect.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/read_until.hpp" -#include "asio/system_error.hpp" -#include "asio/write.hpp" -#include -#include -#include -#include -#include - -using asio::ip::tcp; -using boost::lambda::bind; -using boost::lambda::var; -using boost::lambda::_1; -using boost::lambda::_2; - -//---------------------------------------------------------------------- - -// -// This class manages socket timeouts by running the io_context using the timed -// io_context::run_for() member function. Each asynchronous operation is given -// a timeout within which it must complete. The socket operations themselves -// use boost::lambda function objects as completion handlers. For a given -// socket operation, the client object runs the io_context to block thread -// execution until the operation completes or the timeout is reached. If the -// io_context::run_for() function times out, the socket is closed and the -// outstanding asynchronous operation is cancelled. -// -class client -{ -public: - client() - : socket_(io_context_) - { - } - - void connect(const std::string& host, const std::string& service, - asio::chrono::steady_clock::duration timeout) - { - // Resolve the host name and service to a list of endpoints. - tcp::resolver::results_type endpoints = - tcp::resolver(io_context_).resolve(host, service); - - // Start the asynchronous operation itself. The boost::lambda function - // object is used as a callback and will update the ec variable when the - // operation completes. The blocking_udp_client.cpp example shows how you - // can use boost::bind rather than boost::lambda. - asio::error_code ec; - asio::async_connect(socket_, endpoints, var(ec) = _1); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - // Determine whether a connection was successfully established. - if (ec) - throw asio::system_error(ec); - } - - std::string read_line(asio::chrono::steady_clock::duration timeout) - { - // Start the asynchronous operation. The boost::lambda function object is - // used as a callback and will update the ec variable when the operation - // completes. The blocking_udp_client.cpp example shows how you can use - // boost::bind rather than boost::lambda. - asio::error_code ec; - std::size_t n = 0; - asio::async_read_until(socket_, - asio::dynamic_buffer(input_buffer_), - '\n', (var(ec) = _1, var(n) = _2)); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - // Determine whether the read completed successfully. - if (ec) - throw asio::system_error(ec); - - std::string line(input_buffer_.substr(0, n - 1)); - input_buffer_.erase(0, n); - return line; - } - - void write_line(const std::string& line, - asio::chrono::steady_clock::duration timeout) - { - std::string data = line + "\n"; - - // Start the asynchronous operation. The boost::lambda function object is - // used as a callback and will update the ec variable when the operation - // completes. The blocking_udp_client.cpp example shows how you can use - // boost::bind rather than boost::lambda. - asio::error_code ec; - asio::async_write(socket_, asio::buffer(data), var(ec) = _1); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - // Determine whether the read completed successfully. - if (ec) - throw asio::system_error(ec); - } - -private: - void run(asio::chrono::steady_clock::duration timeout) - { - // Restart the io_context, as it may have been left in the "stopped" state - // by a previous operation. - io_context_.restart(); - - // Block until the asynchronous operation has completed, or timed out. If - // the pending asynchronous operation is a composed operation, the deadline - // applies to the entire operation, rather than individual operations on - // the socket. - io_context_.run_for(timeout); - - // If the asynchronous operation completed successfully then the io_context - // would have been stopped due to running out of work. If it was not - // stopped, then the io_context::run_for call must have timed out. - if (!io_context_.stopped()) - { - // Close the socket to cancel the outstanding asynchronous operation. - socket_.close(); - - // Run the io_context again until the operation completes. - io_context_.run(); - } - } - - asio::io_context io_context_; - tcp::socket socket_; - std::string input_buffer_; -}; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 4) - { - std::cerr << "Usage: blocking_tcp_client \n"; - return 1; - } - - client c; - c.connect(argv[1], argv[2], asio::chrono::seconds(10)); - - asio::chrono::steady_clock::time_point time_sent = - asio::chrono::steady_clock::now(); - - c.write_line(argv[3], asio::chrono::seconds(10)); - - for (;;) - { - std::string line = c.read_line(asio::chrono::seconds(10)); - - // Keep going until we get back the line that was sent. - if (line == argv[3]) - break; - } - - asio::chrono::steady_clock::time_point time_received = - asio::chrono::steady_clock::now(); - - std::cout << "Round trip time: "; - std::cout << asio::chrono::duration_cast< - asio::chrono::microseconds>( - time_received - time_sent).count(); - std::cout << " microseconds\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp deleted file mode 100644 index cd16544..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp +++ /dev/null @@ -1,196 +0,0 @@ -// -// blocking_token_tcp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "asio/connect.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/read_until.hpp" -#include "asio/streambuf.hpp" -#include "asio/system_error.hpp" -#include "asio/write.hpp" -#include -#include -#include -#include - -using asio::ip::tcp; - -//---------------------------------------------------------------------- - -// A custom completion token that makes asynchronous operations behave as -// though they are blocking calls with a timeout. -struct close_after -{ - close_after(asio::chrono::steady_clock::duration t, tcp::socket& s) - : timeout_(t), socket_(s) - { - } - - // The maximum time to wait for an asynchronous operation to complete. - asio::chrono::steady_clock::duration timeout_; - - // The socket to be closed if the operation does not complete in time. - tcp::socket& socket_; -}; - -namespace asio { - -// The async_result template is specialised to allow the close_after token to -// be used with asynchronous operations that have a completion signature of -// void(error_code, T). Generalising this for all completion signature forms is -// left as an exercise for the reader. -template -class async_result -{ -public: - // An asynchronous operation's initiating function automatically creates an - // completion_handler_type object from the token. This function object is - // then called on completion of the asynchronous operation. - class completion_handler_type - { - public: - completion_handler_type(const close_after& token) - : token_(token) - { - } - - void operator()(asio::error_code ec, T t) - { - *ec_ = ec; - *t_ = t; - } - - private: - friend class async_result; - close_after token_; - asio::error_code* ec_; - T* t_; - }; - - // The async_result constructor associates the completion handler object with - // the result of the initiating function. - explicit async_result(completion_handler_type& h) - : timeout_(h.token_.timeout_), - socket_(h.token_.socket_) - { - h.ec_ = &ec_; - h.t_ = &t_; - } - - // The return_type typedef determines the result type of the asynchronous - // operation's initiating function. - typedef T return_type; - - // The get() function is used to obtain the result of the asynchronous - // operation's initiating function. For the close_after completion token, we - // use this function to run the io_context until the operation is complete. - return_type get() - { - asio::io_context& io_context = socket_.get_executor().context(); - - // Restart the io_context, as it may have been left in the "stopped" state - // by a previous operation. - io_context.restart(); - - // Block until the asynchronous operation has completed, or timed out. If - // the pending asynchronous operation is a composed operation, the deadline - // applies to the entire operation, rather than individual operations on - // the socket. - io_context.run_for(timeout_); - - // If the asynchronous operation completed successfully then the io_context - // would have been stopped due to running out of work. If it was not - // stopped, then the io_context::run_for call must have timed out and the - // operation is still incomplete. - if (!io_context.stopped()) - { - // Close the socket to cancel the outstanding asynchronous operation. - socket_.close(); - - // Run the io_context again until the operation completes. - io_context.run(); - } - - // If the operation failed, throw an exception. Otherwise return the result. - return ec_ ? throw asio::system_error(ec_) : t_; - } - -private: - asio::chrono::steady_clock::duration timeout_; - tcp::socket& socket_; - asio::error_code ec_; - T t_; -}; - -} // namespace asio - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 4) - { - std::cerr << "Usage: blocking_tcp_client \n"; - return 1; - } - - asio::io_context io_context; - - // Resolve the host name and service to a list of endpoints. - tcp::resolver::results_type endpoints = - tcp::resolver(io_context).resolve(argv[1], argv[2]); - - tcp::socket socket(io_context); - - // Run an asynchronous connect operation with a timeout. - asio::async_connect(socket, endpoints, - close_after(asio::chrono::seconds(10), socket)); - - asio::chrono::steady_clock::time_point time_sent = - asio::chrono::steady_clock::now(); - - // Run an asynchronous write operation with a timeout. - std::string msg = argv[3] + std::string("\n"); - asio::async_write(socket, asio::buffer(msg), - close_after(asio::chrono::seconds(10), socket)); - - for (std::string input_buffer;;) - { - // Run an asynchronous read operation with a timeout. - std::size_t n = asio::async_read_until(socket, - asio::dynamic_buffer(input_buffer), '\n', - close_after(asio::chrono::seconds(10), socket)); - - std::string line(input_buffer.substr(0, n - 1)); - input_buffer.erase(0, n); - - // Keep going until we get back the line that was sent. - if (line == argv[3]) - break; - } - - asio::chrono::steady_clock::time_point time_received = - asio::chrono::steady_clock::now(); - - std::cout << "Round trip time: "; - std::cout << asio::chrono::duration_cast< - asio::chrono::microseconds>( - time_received - time_sent).count(); - std::cout << " microseconds\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp deleted file mode 100644 index 4035862..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp +++ /dev/null @@ -1,153 +0,0 @@ -// -// blocking_udp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/udp.hpp" -#include -#include -#include - -using asio::ip::udp; - -//---------------------------------------------------------------------- - -// -// This class manages socket timeouts by running the io_context using the timed -// io_context::run_for() member function. Each asynchronous operation is given -// a timeout within which it must complete. The socket operations themselves -// use boost::bind to specify the completion handler: -// -// +---------------+ -// | | -// | receive | -// | | -// +---------------+ -// | -// async_- | +----------------+ -// receive() | | | -// +--->| handle_receive | -// | | -// +----------------+ -// -// For a given socket operation, the client object runs the io_context to block -// thread execution until the operation completes or the timeout is reached. If -// the io_context::run_for() function times out, the socket is closed and the -// outstanding asynchronous operation is cancelled. -// -class client -{ -public: - client(const udp::endpoint& listen_endpoint) - : socket_(io_context_, listen_endpoint) - { - } - - std::size_t receive(const asio::mutable_buffer& buffer, - asio::chrono::steady_clock::duration timeout, - asio::error_code& ec) - { - // Start the asynchronous operation. The handle_receive function used as a - // callback will update the ec and length variables. - std::size_t length = 0; - socket_.async_receive(asio::buffer(buffer), - boost::bind(&client::handle_receive, _1, _2, &ec, &length)); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - return length; - } - -private: - void run(asio::chrono::steady_clock::duration timeout) - { - // Restart the io_context, as it may have been left in the "stopped" state - // by a previous operation. - io_context_.restart(); - - // Block until the asynchronous operation has completed, or timed out. If - // the pending asynchronous operation is a composed operation, the deadline - // applies to the entire operation, rather than individual operations on - // the socket. - io_context_.run_for(timeout); - - // If the asynchronous operation completed successfully then the io_context - // would have been stopped due to running out of work. If it was not - // stopped, then the io_context::run_for call must have timed out. - if (!io_context_.stopped()) - { - // Cancel the outstanding asynchronous operation. - socket_.cancel(); - - // Run the io_context again until the operation completes. - io_context_.run(); - } - } - - static void handle_receive( - const asio::error_code& ec, std::size_t length, - asio::error_code* out_ec, std::size_t* out_length) - { - *out_ec = ec; - *out_length = length; - } - -private: - asio::io_context io_context_; - udp::socket socket_; -}; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - using namespace std; // For atoi. - - if (argc != 3) - { - std::cerr << "Usage: blocking_udp_client \n"; - return 1; - } - - udp::endpoint listen_endpoint( - asio::ip::make_address(argv[1]), - std::atoi(argv[2])); - - client c(listen_endpoint); - - for (;;) - { - char data[1024]; - asio::error_code ec; - std::size_t n = c.receive(asio::buffer(data), - asio::chrono::seconds(10), ec); - - if (ec) - { - std::cout << "Receive error: " << ec.message() << "\n"; - } - else - { - std::cout << "Received: "; - std::cout.write(data, n); - std::cout << "\n"; - } - } - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/timeouts/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/timeouts/server.cpp deleted file mode 100644 index 6f5ac60..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/timeouts/server.cpp +++ /dev/null @@ -1,429 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/ip/udp.hpp" -#include "asio/read_until.hpp" -#include "asio/steady_timer.hpp" -#include "asio/write.hpp" - -using asio::steady_timer; -using asio::ip::tcp; -using asio::ip::udp; - -//---------------------------------------------------------------------- - -class subscriber -{ -public: - virtual ~subscriber() {} - virtual void deliver(const std::string& msg) = 0; -}; - -typedef boost::shared_ptr subscriber_ptr; - -//---------------------------------------------------------------------- - -class channel -{ -public: - void join(subscriber_ptr subscriber) - { - subscribers_.insert(subscriber); - } - - void leave(subscriber_ptr subscriber) - { - subscribers_.erase(subscriber); - } - - void deliver(const std::string& msg) - { - std::for_each(subscribers_.begin(), subscribers_.end(), - boost::bind(&subscriber::deliver, _1, boost::ref(msg))); - } - -private: - std::set subscribers_; -}; - -//---------------------------------------------------------------------- - -// -// This class manages socket timeouts by applying the concept of a deadline. -// Some asynchronous operations are given deadlines by which they must complete. -// Deadlines are enforced by two "actors" that persist for the lifetime of the -// session object, one for input and one for output: -// -// +----------------+ +----------------+ -// | | | | -// | check_deadline |<---+ | check_deadline |<---+ -// | | | async_wait() | | | async_wait() -// +----------------+ | on input +----------------+ | on output -// | | deadline | | deadline -// +---------+ +---------+ -// -// If either deadline actor determines that the corresponding deadline has -// expired, the socket is closed and any outstanding operations are cancelled. -// -// The input actor reads messages from the socket, where messages are delimited -// by the newline character: -// -// +------------+ -// | | -// | start_read |<---+ -// | | | -// +------------+ | -// | | -// async_- | +-------------+ -// read_- | | | -// until() +--->| handle_read | -// | | -// +-------------+ -// -// The deadline for receiving a complete message is 30 seconds. If a non-empty -// message is received, it is delivered to all subscribers. If a heartbeat (a -// message that consists of a single newline character) is received, a heartbeat -// is enqueued for the client, provided there are no other messages waiting to -// be sent. -// -// The output actor is responsible for sending messages to the client: -// -// +--------------+ -// | |<---------------------+ -// | await_output | | -// | |<---+ | -// +--------------+ | | -// | | | async_wait() | -// | +--------+ | -// V | -// +-------------+ +--------------+ -// | | async_write() | | -// | start_write |-------------->| handle_write | -// | | | | -// +-------------+ +--------------+ -// -// The output actor first waits for an output message to be enqueued. It does -// this by using a steady_timer as an asynchronous condition variable. The -// steady_timer will be signalled whenever the output queue is non-empty. -// -// Once a message is available, it is sent to the client. The deadline for -// sending a complete message is 30 seconds. After the message is successfully -// sent, the output actor again waits for the output queue to become non-empty. -// -class tcp_session - : public subscriber, - public boost::enable_shared_from_this -{ -public: - tcp_session(asio::io_context& io_context, channel& ch) - : channel_(ch), - socket_(io_context), - input_deadline_(io_context), - non_empty_output_queue_(io_context), - output_deadline_(io_context) - { - input_deadline_.expires_at(steady_timer::time_point::max()); - output_deadline_.expires_at(steady_timer::time_point::max()); - - // The non_empty_output_queue_ steady_timer is set to the maximum time - // point whenever the output queue is empty. This ensures that the output - // actor stays asleep until a message is put into the queue. - non_empty_output_queue_.expires_at(steady_timer::time_point::max()); - } - - tcp::socket& socket() - { - return socket_; - } - - // Called by the server object to initiate the four actors. - void start() - { - channel_.join(shared_from_this()); - - start_read(); - - input_deadline_.async_wait( - boost::bind(&tcp_session::check_deadline, - shared_from_this(), &input_deadline_)); - - await_output(); - - output_deadline_.async_wait( - boost::bind(&tcp_session::check_deadline, - shared_from_this(), &output_deadline_)); - } - -private: - void stop() - { - channel_.leave(shared_from_this()); - - asio::error_code ignored_ec; - socket_.close(ignored_ec); - input_deadline_.cancel(); - non_empty_output_queue_.cancel(); - output_deadline_.cancel(); - } - - bool stopped() const - { - return !socket_.is_open(); - } - - void deliver(const std::string& msg) - { - output_queue_.push_back(msg + "\n"); - - // Signal that the output queue contains messages. Modifying the expiry - // will wake the output actor, if it is waiting on the timer. - non_empty_output_queue_.expires_at(steady_timer::time_point::min()); - } - - void start_read() - { - // Set a deadline for the read operation. - input_deadline_.expires_after(asio::chrono::seconds(30)); - - // Start an asynchronous operation to read a newline-delimited message. - asio::async_read_until(socket_, - asio::dynamic_buffer(input_buffer_), '\n', - boost::bind(&tcp_session::handle_read, shared_from_this(), _1, _2)); - } - - void handle_read(const asio::error_code& ec, std::size_t n) - { - if (stopped()) - return; - - if (!ec) - { - // Extract the newline-delimited message from the buffer. - std::string msg(input_buffer_.substr(0, n - 1)); - input_buffer_.erase(0, n); - - if (!msg.empty()) - { - channel_.deliver(msg); - } - else - { - // We received a heartbeat message from the client. If there's nothing - // else being sent or ready to be sent, send a heartbeat right back. - if (output_queue_.empty()) - { - output_queue_.push_back("\n"); - - // Signal that the output queue contains messages. Modifying the - // expiry will wake the output actor, if it is waiting on the timer. - non_empty_output_queue_.expires_at(steady_timer::time_point::min()); - } - } - - start_read(); - } - else - { - stop(); - } - } - - void await_output() - { - if (stopped()) - return; - - if (output_queue_.empty()) - { - // There are no messages that are ready to be sent. The actor goes to - // sleep by waiting on the non_empty_output_queue_ timer. When a new - // message is added, the timer will be modified and the actor will wake. - non_empty_output_queue_.expires_at(steady_timer::time_point::max()); - non_empty_output_queue_.async_wait( - boost::bind(&tcp_session::await_output, shared_from_this())); - } - else - { - start_write(); - } - } - - void start_write() - { - // Set a deadline for the write operation. - output_deadline_.expires_after(asio::chrono::seconds(30)); - - // Start an asynchronous operation to send a message. - asio::async_write(socket_, - asio::buffer(output_queue_.front()), - boost::bind(&tcp_session::handle_write, shared_from_this(), _1)); - } - - void handle_write(const asio::error_code& ec) - { - if (stopped()) - return; - - if (!ec) - { - output_queue_.pop_front(); - - await_output(); - } - else - { - stop(); - } - } - - void check_deadline(steady_timer* deadline) - { - if (stopped()) - return; - - // Check whether the deadline has passed. We compare the deadline against - // the current time since a new asynchronous operation may have moved the - // deadline before this actor had a chance to run. - if (deadline->expiry() <= steady_timer::clock_type::now()) - { - // The deadline has passed. Stop the session. The other actors will - // terminate as soon as possible. - stop(); - } - else - { - // Put the actor back to sleep. - deadline->async_wait( - boost::bind(&tcp_session::check_deadline, - shared_from_this(), deadline)); - } - } - - channel& channel_; - tcp::socket socket_; - std::string input_buffer_; - steady_timer input_deadline_; - std::deque output_queue_; - steady_timer non_empty_output_queue_; - steady_timer output_deadline_; -}; - -typedef boost::shared_ptr tcp_session_ptr; - -//---------------------------------------------------------------------- - -class udp_broadcaster - : public subscriber -{ -public: - udp_broadcaster(asio::io_context& io_context, - const udp::endpoint& broadcast_endpoint) - : socket_(io_context) - { - socket_.connect(broadcast_endpoint); - socket_.set_option(udp::socket::broadcast(true)); - } - -private: - void deliver(const std::string& msg) - { - asio::error_code ignored_ec; - socket_.send(asio::buffer(msg), 0, ignored_ec); - } - - udp::socket socket_; -}; - -//---------------------------------------------------------------------- - -class server -{ -public: - server(asio::io_context& io_context, - const tcp::endpoint& listen_endpoint, - const udp::endpoint& broadcast_endpoint) - : io_context_(io_context), - acceptor_(io_context, listen_endpoint) - { - subscriber_ptr bc(new udp_broadcaster(io_context_, broadcast_endpoint)); - channel_.join(bc); - - start_accept(); - } - - void start_accept() - { - tcp_session_ptr new_session(new tcp_session(io_context_, channel_)); - - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, _1)); - } - - void handle_accept(tcp_session_ptr session, - const asio::error_code& ec) - { - if (!ec) - { - session->start(); - } - - start_accept(); - } - -private: - asio::io_context& io_context_; - tcp::acceptor acceptor_; - channel channel_; -}; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - using namespace std; // For atoi. - - if (argc != 4) - { - std::cerr << "Usage: server \n"; - return 1; - } - - asio::io_context io_context; - - tcp::endpoint listen_endpoint(tcp::v4(), atoi(argv[1])); - - udp::endpoint broadcast_endpoint( - asio::ip::make_address(argv[2]), atoi(argv[3])); - - server s(io_context, listen_endpoint, broadcast_endpoint); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/timers/time_t_timer.cpp b/Sources/Vendor/asio/src/examples/cpp03/timers/time_t_timer.cpp deleted file mode 100644 index 5a512fa..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/timers/time_t_timer.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// time_t_timer.cpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include - -// A custom implementation of the Clock concept from the standard C++ library. -struct time_t_clock -{ - // The duration type. - typedef asio::chrono::steady_clock::duration duration; - - // The duration's underlying arithmetic representation. - typedef duration::rep rep; - - // The ratio representing the duration's tick period. - typedef duration::period period; - - // An absolute time point represented using the clock. - typedef asio::chrono::time_point time_point; - - // The clock is not monotonically increasing. - static const bool is_steady = false; - - // Get the current time. - static time_point now() - { - return time_point() + asio::chrono::seconds(std::time(0)); - } -}; - -// The asio::basic_waitable_timer template accepts an optional WaitTraits -// template parameter. The underlying time_t clock has one-second granularity, -// so these traits may be customised to reduce the latency between the clock -// ticking over and a wait operation's completion. When the timeout is near -// (less than one second away) we poll the clock more frequently to detect the -// time change closer to when it occurs. The user can select the appropriate -// trade off between accuracy and the increased CPU cost of polling. In extreme -// cases, a zero duration may be returned to make the timers as accurate as -// possible, albeit with 100% CPU usage. -struct time_t_wait_traits -{ - // Determine how long until the clock should be next polled to determine - // whether the duration has elapsed. - static time_t_clock::duration to_wait_duration( - const time_t_clock::duration& d) - { - if (d > asio::chrono::seconds(1)) - return d - asio::chrono::seconds(1); - else if (d > asio::chrono::seconds(0)) - return asio::chrono::milliseconds(10); - else - return asio::chrono::seconds(0); - } - - // Determine how long until the clock should be next polled to determine - // whether the absoluate time has been reached. - static time_t_clock::duration to_wait_duration( - const time_t_clock::time_point& t) - { - return to_wait_duration(t - time_t_clock::now()); - } -}; - -typedef asio::basic_waitable_timer< - time_t_clock, time_t_wait_traits> time_t_timer; - -void handle_timeout(const asio::error_code&) -{ - std::cout << "handle_timeout\n"; -} - -int main() -{ - try - { - asio::io_context io_context; - - time_t_timer timer(io_context); - - timer.expires_after(asio::chrono::seconds(5)); - std::cout << "Starting synchronous wait\n"; - timer.wait(); - std::cout << "Finished synchronous wait\n"; - - timer.expires_after(asio::chrono::seconds(5)); - std::cout << "Starting asynchronous wait\n"; - timer.async_wait(&handle_timeout); - io_context.run(); - std::cout << "Finished asynchronous wait\n"; - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime1/client.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime1/client.cpp deleted file mode 100644 index cd3b71c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime1/client.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// -// client.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: client " << std::endl; - return 1; - } - - asio::io_context io_context; - - tcp::resolver resolver(io_context); - tcp::resolver::results_type endpoints = - resolver.resolve(argv[1], "daytime"); - - tcp::socket socket(io_context); - asio::connect(socket, endpoints); - - for (;;) - { - boost::array buf; - asio::error_code error; - - size_t len = socket.read_some(asio::buffer(buf), error); - - if (error == asio::error::eof) - break; // Connection closed cleanly by peer. - else if (error) - throw asio::system_error(error); // Some other error. - - std::cout.write(buf.data(), len); - } - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime2/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime2/server.cpp deleted file mode 100644 index 239023f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime2/server.cpp +++ /dev/null @@ -1,50 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include - -using asio::ip::tcp; - -std::string make_daytime_string() -{ - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - return ctime(&now); -} - -int main() -{ - try - { - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4(), 13)); - - for (;;) - { - tcp::socket socket(io_context); - acceptor.accept(socket); - - std::string message = make_daytime_string(); - - asio::error_code ignored_error; - asio::write(socket, asio::buffer(message), ignored_error); - } - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime3/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime3/server.cpp deleted file mode 100644 index 8a64d2d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime3/server.cpp +++ /dev/null @@ -1,117 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -std::string make_daytime_string() -{ - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - return ctime(&now); -} - -class tcp_connection - : public boost::enable_shared_from_this -{ -public: - typedef boost::shared_ptr pointer; - - static pointer create(asio::io_context& io_context) - { - return pointer(new tcp_connection(io_context)); - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - message_ = make_daytime_string(); - - asio::async_write(socket_, asio::buffer(message_), - boost::bind(&tcp_connection::handle_write, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - -private: - tcp_connection(asio::io_context& io_context) - : socket_(io_context) - { - } - - void handle_write(const asio::error_code& /*error*/, - size_t /*bytes_transferred*/) - { - } - - tcp::socket socket_; - std::string message_; -}; - -class tcp_server -{ -public: - tcp_server(asio::io_context& io_context) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), 13)) - { - start_accept(); - } - -private: - void start_accept() - { - tcp_connection::pointer new_connection = - tcp_connection::create(acceptor_.get_executor().context()); - - acceptor_.async_accept(new_connection->socket(), - boost::bind(&tcp_server::handle_accept, this, new_connection, - asio::placeholders::error)); - } - - void handle_accept(tcp_connection::pointer new_connection, - const asio::error_code& error) - { - if (!error) - { - new_connection->start(); - } - - start_accept(); - } - - tcp::acceptor acceptor_; -}; - -int main() -{ - try - { - asio::io_context io_context; - tcp_server server(io_context); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime4/client.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime4/client.cpp deleted file mode 100644 index 5d02760..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime4/client.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// client.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include - -using asio::ip::udp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: client " << std::endl; - return 1; - } - - asio::io_context io_context; - - udp::resolver resolver(io_context); - udp::endpoint receiver_endpoint = - *resolver.resolve(udp::v4(), argv[1], "daytime").begin(); - - udp::socket socket(io_context); - socket.open(udp::v4()); - - boost::array send_buf = {{ 0 }}; - socket.send_to(asio::buffer(send_buf), receiver_endpoint); - - boost::array recv_buf; - udp::endpoint sender_endpoint; - size_t len = socket.receive_from( - asio::buffer(recv_buf), sender_endpoint); - - std::cout.write(recv_buf.data(), len); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime5/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime5/server.cpp deleted file mode 100644 index 547a8fc..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime5/server.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include - -using asio::ip::udp; - -std::string make_daytime_string() -{ - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - return ctime(&now); -} - -int main() -{ - try - { - asio::io_context io_context; - - udp::socket socket(io_context, udp::endpoint(udp::v4(), 13)); - - for (;;) - { - boost::array recv_buf; - udp::endpoint remote_endpoint; - asio::error_code error; - socket.receive_from(asio::buffer(recv_buf), remote_endpoint); - - std::string message = make_daytime_string(); - - asio::error_code ignored_error; - socket.send_to(asio::buffer(message), - remote_endpoint, 0, ignored_error); - } - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime6/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime6/server.cpp deleted file mode 100644 index 729d7ca..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime6/server.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include - -using asio::ip::udp; - -std::string make_daytime_string() -{ - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - return ctime(&now); -} - -class udp_server -{ -public: - udp_server(asio::io_context& io_context) - : socket_(io_context, udp::endpoint(udp::v4(), 13)) - { - start_receive(); - } - -private: - void start_receive() - { - socket_.async_receive_from( - asio::buffer(recv_buffer_), remote_endpoint_, - boost::bind(&udp_server::handle_receive, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - - void handle_receive(const asio::error_code& error, - std::size_t /*bytes_transferred*/) - { - if (!error) - { - boost::shared_ptr message( - new std::string(make_daytime_string())); - - socket_.async_send_to(asio::buffer(*message), remote_endpoint_, - boost::bind(&udp_server::handle_send, this, message, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - - start_receive(); - } - } - - void handle_send(boost::shared_ptr /*message*/, - const asio::error_code& /*error*/, - std::size_t /*bytes_transferred*/) - { - } - - udp::socket socket_; - udp::endpoint remote_endpoint_; - boost::array recv_buffer_; -}; - -int main() -{ - try - { - asio::io_context io_context; - udp_server server(io_context); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime7/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime7/server.cpp deleted file mode 100644 index 968c667..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime7/server.cpp +++ /dev/null @@ -1,158 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; -using asio::ip::udp; - -std::string make_daytime_string() -{ - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - return ctime(&now); -} - -class tcp_connection - : public boost::enable_shared_from_this -{ -public: - typedef boost::shared_ptr pointer; - - static pointer create(asio::io_context& io_context) - { - return pointer(new tcp_connection(io_context)); - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - message_ = make_daytime_string(); - - asio::async_write(socket_, asio::buffer(message_), - boost::bind(&tcp_connection::handle_write, shared_from_this())); - } - -private: - tcp_connection(asio::io_context& io_context) - : socket_(io_context) - { - } - - void handle_write() - { - } - - tcp::socket socket_; - std::string message_; -}; - -class tcp_server -{ -public: - tcp_server(asio::io_context& io_context) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), 13)) - { - start_accept(); - } - -private: - void start_accept() - { - tcp_connection::pointer new_connection = - tcp_connection::create(acceptor_.get_executor().context()); - - acceptor_.async_accept(new_connection->socket(), - boost::bind(&tcp_server::handle_accept, this, new_connection, - asio::placeholders::error)); - } - - void handle_accept(tcp_connection::pointer new_connection, - const asio::error_code& error) - { - if (!error) - { - new_connection->start(); - } - - start_accept(); - } - - tcp::acceptor acceptor_; -}; - -class udp_server -{ -public: - udp_server(asio::io_context& io_context) - : socket_(io_context, udp::endpoint(udp::v4(), 13)) - { - start_receive(); - } - -private: - void start_receive() - { - socket_.async_receive_from( - asio::buffer(recv_buffer_), remote_endpoint_, - boost::bind(&udp_server::handle_receive, this, - asio::placeholders::error)); - } - - void handle_receive(const asio::error_code& error) - { - if (!error) - { - boost::shared_ptr message( - new std::string(make_daytime_string())); - - socket_.async_send_to(asio::buffer(*message), remote_endpoint_, - boost::bind(&udp_server::handle_send, this, message)); - - start_receive(); - } - } - - void handle_send(boost::shared_ptr /*message*/) - { - } - - udp::socket socket_; - udp::endpoint remote_endpoint_; - boost::array recv_buffer_; -}; - -int main() -{ - try - { - asio::io_context io_context; - tcp_server server1(io_context); - udp_server server2(io_context); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer1/timer.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer1/timer.cpp deleted file mode 100644 index 3613ae4..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer1/timer.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// -// timer.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include - -int main() -{ - asio::io_context io; - - asio::steady_timer t(io, asio::chrono::seconds(5)); - t.wait(); - - std::cout << "Hello, world!" << std::endl; - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer2/timer.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer2/timer.cpp deleted file mode 100644 index bc44857..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer2/timer.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// -// timer.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include - -void print(const asio::error_code& /*e*/) -{ - std::cout << "Hello, world!" << std::endl; -} - -int main() -{ - asio::io_context io; - - asio::steady_timer t(io, asio::chrono::seconds(5)); - t.async_wait(&print); - - io.run(); - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer3/timer.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer3/timer.cpp deleted file mode 100644 index 1773ba2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer3/timer.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// -// timer.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include - -void print(const asio::error_code& /*e*/, - asio::steady_timer* t, int* count) -{ - if (*count < 5) - { - std::cout << *count << std::endl; - ++(*count); - - t->expires_at(t->expiry() + asio::chrono::seconds(1)); - t->async_wait(boost::bind(print, - asio::placeholders::error, t, count)); - } -} - -int main() -{ - asio::io_context io; - - int count = 0; - asio::steady_timer t(io, asio::chrono::seconds(1)); - t.async_wait(boost::bind(print, - asio::placeholders::error, &t, &count)); - - io.run(); - - std::cout << "Final count is " << count << std::endl; - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer4/timer.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer4/timer.cpp deleted file mode 100644 index 9e63ba3..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer4/timer.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// timer.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include - -class printer -{ -public: - printer(asio::io_context& io) - : timer_(io, asio::chrono::seconds(1)), - count_(0) - { - timer_.async_wait(boost::bind(&printer::print, this)); - } - - ~printer() - { - std::cout << "Final count is " << count_ << std::endl; - } - - void print() - { - if (count_ < 5) - { - std::cout << count_ << std::endl; - ++count_; - - timer_.expires_at(timer_.expiry() + asio::chrono::seconds(1)); - timer_.async_wait(boost::bind(&printer::print, this)); - } - } - -private: - asio::steady_timer timer_; - int count_; -}; - -int main() -{ - asio::io_context io; - printer p(io); - io.run(); - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer5/timer.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer5/timer.cpp deleted file mode 100644 index 6d52915..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer5/timer.cpp +++ /dev/null @@ -1,80 +0,0 @@ -// -// timer.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include - -class printer -{ -public: - printer(asio::io_context& io) - : strand_(io), - timer1_(io, asio::chrono::seconds(1)), - timer2_(io, asio::chrono::seconds(1)), - count_(0) - { - timer1_.async_wait(asio::bind_executor(strand_, - boost::bind(&printer::print1, this))); - - timer2_.async_wait(asio::bind_executor(strand_, - boost::bind(&printer::print2, this))); - } - - ~printer() - { - std::cout << "Final count is " << count_ << std::endl; - } - - void print1() - { - if (count_ < 10) - { - std::cout << "Timer 1: " << count_ << std::endl; - ++count_; - - timer1_.expires_at(timer1_.expiry() + asio::chrono::seconds(1)); - - timer1_.async_wait(asio::bind_executor(strand_, - boost::bind(&printer::print1, this))); - } - } - - void print2() - { - if (count_ < 10) - { - std::cout << "Timer 2: " << count_ << std::endl; - ++count_; - - timer2_.expires_at(timer2_.expiry() + asio::chrono::seconds(1)); - - timer2_.async_wait(asio::bind_executor(strand_, - boost::bind(&printer::print2, this))); - } - } - -private: - asio::io_context::strand strand_; - asio::steady_timer timer1_; - asio::steady_timer timer2_; - int count_; -}; - -int main() -{ - asio::io_context io; - printer p(io); - asio::thread t(boost::bind(&asio::io_context::run, &io)); - io.run(); - t.join(); - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/windows/transmit_file.cpp b/Sources/Vendor/asio/src/examples/cpp03/windows/transmit_file.cpp deleted file mode 100644 index 5efa7e4..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/windows/transmit_file.cpp +++ /dev/null @@ -1,171 +0,0 @@ -// -// transmit_file.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include "asio.hpp" - -#if defined(ASIO_HAS_WINDOWS_OVERLAPPED_PTR) - -using asio::ip::tcp; -using asio::windows::overlapped_ptr; -using asio::windows::random_access_handle; - -// A wrapper for the TransmitFile overlapped I/O operation. -template -void transmit_file(tcp::socket& socket, - random_access_handle& file, Handler handler) -{ - // Construct an OVERLAPPED-derived object to contain the handler. - overlapped_ptr overlapped(socket.get_executor().context(), handler); - - // Initiate the TransmitFile operation. - BOOL ok = ::TransmitFile(socket.native_handle(), - file.native_handle(), 0, 0, overlapped.get(), 0, 0); - DWORD last_error = ::GetLastError(); - - // Check if the operation completed immediately. - if (!ok && last_error != ERROR_IO_PENDING) - { - // The operation completed immediately, so a completion notification needs - // to be posted. When complete() is called, ownership of the OVERLAPPED- - // derived object passes to the io_context. - asio::error_code ec(last_error, - asio::error::get_system_category()); - overlapped.complete(ec, 0); - } - else - { - // The operation was successfully initiated, so ownership of the - // OVERLAPPED-derived object has passed to the io_context. - overlapped.release(); - } -} - -class connection - : public boost::enable_shared_from_this -{ -public: - typedef boost::shared_ptr pointer; - - static pointer create(asio::io_context& io_context, - const std::string& filename) - { - return pointer(new connection(io_context, filename)); - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - asio::error_code ec; - file_.assign(::CreateFile(filename_.c_str(), GENERIC_READ, 0, 0, - OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, 0), ec); - if (file_.is_open()) - { - transmit_file(socket_, file_, - boost::bind(&connection::handle_write, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - } - -private: - connection(asio::io_context& io_context, const std::string& filename) - : socket_(io_context), - filename_(filename), - file_(io_context) - { - } - - void handle_write(const asio::error_code& /*error*/, - size_t /*bytes_transferred*/) - { - asio::error_code ignored_ec; - socket_.shutdown(tcp::socket::shutdown_both, ignored_ec); - } - - tcp::socket socket_; - std::string filename_; - random_access_handle file_; -}; - -class server -{ -public: - server(asio::io_context& io_context, - unsigned short port, const std::string& filename) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)), - filename_(filename) - { - start_accept(); - } - -private: - void start_accept() - { - connection::pointer new_connection = - connection::create(acceptor_.get_executor().context(), filename_); - - acceptor_.async_accept(new_connection->socket(), - boost::bind(&server::handle_accept, this, new_connection, - asio::placeholders::error)); - } - - void handle_accept(connection::pointer new_connection, - const asio::error_code& error) - { - if (!error) - { - new_connection->start(); - } - - start_accept(); - } - - tcp::acceptor acceptor_; - std::string filename_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: transmit_file \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1]), argv[2]); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} - -#else // defined(ASIO_HAS_WINDOWS_OVERLAPPED_PTR) -# error Overlapped I/O not available on this platform -#endif // defined(ASIO_HAS_WINDOWS_OVERLAPPED_PTR) diff --git a/Sources/Vendor/asio/src/examples/cpp11/Makefile.am b/Sources/Vendor/asio/src/examples/cpp11/Makefile.am deleted file mode 100644 index 42e2ba4..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/Makefile.am +++ /dev/null @@ -1,155 +0,0 @@ -AUTOMAKE_OPTIONS = subdir-objects - -if SEPARATE_COMPILATION -noinst_LIBRARIES = libasio.a -libasio_a_SOURCES = ../../asio.cpp -if HAVE_OPENSSL -libasio_a_SOURCES += ../../asio_ssl.cpp -endif -LDADD = libasio.a -endif - -noinst_PROGRAMS = \ - allocation/server \ - buffers/reference_counted \ - chat/chat_client \ - chat/chat_server \ - echo/async_tcp_echo_server \ - echo/async_udp_echo_server \ - echo/blocking_tcp_echo_client \ - echo/blocking_tcp_echo_server \ - echo/blocking_udp_echo_client \ - echo/blocking_udp_echo_server \ - executors/actor \ - executors/bank_account_1 \ - executors/bank_account_2 \ - executors/fork_join \ - executors/pipeline \ - executors/priority_scheduler \ - futures/daytime_client \ - http/server/http_server \ - invocation/prioritised_handlers \ - iostreams/http_client \ - multicast/receiver \ - multicast/sender \ - nonblocking/third_party_lib \ - operations/composed_1 \ - operations/composed_2 \ - operations/composed_3 \ - operations/composed_4 \ - operations/composed_5 \ - socks4/sync_client \ - timeouts/async_tcp_client \ - timeouts/blocking_tcp_client \ - timeouts/blocking_token_tcp_client \ - timeouts/blocking_udp_client \ - timeouts/server \ - timers/time_t_timer - -if !WINDOWS_TARGET -noinst_PROGRAMS += \ - fork/daemon \ - fork/process_per_connection \ - local/connect_pair \ - local/iostream_client \ - local/stream_server \ - local/stream_client -endif - -if HAVE_OPENSSL -noinst_PROGRAMS += \ - ssl/client \ - ssl/server -endif - -if HAVE_BOOST_COROUTINE -noinst_PROGRAMS += \ - spawn/echo_server \ - spawn/parallel_grep -endif - -noinst_HEADERS = \ - socks4/socks4.hpp \ - chat/chat_message.hpp - -AM_CXXFLAGS = -I$(srcdir)/../../../include - -allocation_server_SOURCES = allocation/server.cpp -buffers_reference_counted_SOURCES = buffers/reference_counted.cpp -chat_chat_client_SOURCES = chat/chat_client.cpp -chat_chat_server_SOURCES = chat/chat_server.cpp -echo_async_tcp_echo_server_SOURCES = echo/async_tcp_echo_server.cpp -echo_async_udp_echo_server_SOURCES = echo/async_udp_echo_server.cpp -echo_blocking_tcp_echo_client_SOURCES = echo/blocking_tcp_echo_client.cpp -echo_blocking_tcp_echo_server_SOURCES = echo/blocking_tcp_echo_server.cpp -echo_blocking_udp_echo_client_SOURCES = echo/blocking_udp_echo_client.cpp -echo_blocking_udp_echo_server_SOURCES = echo/blocking_udp_echo_server.cpp -executors_actor_SOURCES = executors/actor.cpp -executors_bank_account_1_SOURCES = executors/bank_account_1.cpp -executors_bank_account_2_SOURCES = executors/bank_account_2.cpp -executors_fork_join_SOURCES = executors/fork_join.cpp -executors_pipeline_SOURCES = executors/pipeline.cpp -executors_priority_scheduler_SOURCES = executors/priority_scheduler.cpp -futures_daytime_client_SOURCES = futures/daytime_client.cpp -http_server_http_server_SOURCES = \ - http/server/connection.cpp \ - http/server/connection_manager.cpp \ - http/server/main.cpp \ - http/server/mime_types.cpp \ - http/server/reply.cpp \ - http/server/request_handler.cpp \ - http/server/request_parser.cpp \ - http/server/server.cpp -invocation_prioritised_handlers_SOURCES = invocation/prioritised_handlers.cpp -iostreams_http_client_SOURCES = iostreams/http_client.cpp -multicast_receiver_SOURCES = multicast/receiver.cpp -multicast_sender_SOURCES = multicast/sender.cpp -nonblocking_third_party_lib_SOURCES = nonblocking/third_party_lib.cpp -operations_composed_1_SOURCES = operations/composed_1.cpp -operations_composed_2_SOURCES = operations/composed_2.cpp -operations_composed_3_SOURCES = operations/composed_3.cpp -operations_composed_4_SOURCES = operations/composed_4.cpp -operations_composed_5_SOURCES = operations/composed_5.cpp -socks4_sync_client_SOURCES = socks4/sync_client.cpp -timeouts_async_tcp_client_SOURCES = timeouts/async_tcp_client.cpp -timeouts_blocking_tcp_client_SOURCES = timeouts/blocking_tcp_client.cpp -timeouts_blocking_token_tcp_client_SOURCES = timeouts/blocking_token_tcp_client.cpp -timeouts_blocking_udp_client_SOURCES = timeouts/blocking_udp_client.cpp -timeouts_server_SOURCES = timeouts/server.cpp -timers_time_t_timer_SOURCES = timers/time_t_timer.cpp - -if !WINDOWS_TARGET -fork_daemon_SOURCES = fork/daemon.cpp -fork_process_per_connection_SOURCES = fork/process_per_connection.cpp -local_connect_pair_SOURCES = local/connect_pair.cpp -local_iostream_client_SOURCES = local/iostream_client.cpp -local_stream_server_SOURCES = local/stream_server.cpp -local_stream_client_SOURCES = local/stream_client.cpp -endif - -if HAVE_OPENSSL -ssl_client_SOURCES = ssl/client.cpp -ssl_server_SOURCES = ssl/server.cpp -endif - -if HAVE_BOOST_COROUTINE -spawn_echo_server_SOURCES = spawn/echo_server.cpp -spawn_echo_server_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -spawn_parallel_grep_SOURCES = spawn/parallel_grep.cpp -spawn_parallel_grep_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -endif - -EXTRA_DIST = \ - handler_tracking/custom_tracking.hpp \ - http/server/connection.hpp \ - http/server/connection_manager.hpp \ - http/server/header.hpp \ - http/server/mime_types.hpp \ - http/server/reply.hpp \ - http/server/request.hpp \ - http/server/request_handler.hpp \ - http/server/request_parser.hpp \ - http/server/server.hpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in diff --git a/Sources/Vendor/asio/src/examples/cpp11/Makefile.in b/Sources/Vendor/asio/src/examples/cpp11/Makefile.in deleted file mode 100644 index 3f91616..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/Makefile.in +++ /dev/null @@ -1,1715 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__append_1 = ../../asio_ssl.cpp -noinst_PROGRAMS = allocation/server$(EXEEXT) \ - buffers/reference_counted$(EXEEXT) chat/chat_client$(EXEEXT) \ - chat/chat_server$(EXEEXT) echo/async_tcp_echo_server$(EXEEXT) \ - echo/async_udp_echo_server$(EXEEXT) \ - echo/blocking_tcp_echo_client$(EXEEXT) \ - echo/blocking_tcp_echo_server$(EXEEXT) \ - echo/blocking_udp_echo_client$(EXEEXT) \ - echo/blocking_udp_echo_server$(EXEEXT) \ - executors/actor$(EXEEXT) executors/bank_account_1$(EXEEXT) \ - executors/bank_account_2$(EXEEXT) executors/fork_join$(EXEEXT) \ - executors/pipeline$(EXEEXT) \ - executors/priority_scheduler$(EXEEXT) \ - futures/daytime_client$(EXEEXT) \ - http/server/http_server$(EXEEXT) \ - invocation/prioritised_handlers$(EXEEXT) \ - iostreams/http_client$(EXEEXT) multicast/receiver$(EXEEXT) \ - multicast/sender$(EXEEXT) nonblocking/third_party_lib$(EXEEXT) \ - operations/composed_1$(EXEEXT) operations/composed_2$(EXEEXT) \ - operations/composed_3$(EXEEXT) operations/composed_4$(EXEEXT) \ - operations/composed_5$(EXEEXT) socks4/sync_client$(EXEEXT) \ - timeouts/async_tcp_client$(EXEEXT) \ - timeouts/blocking_tcp_client$(EXEEXT) \ - timeouts/blocking_token_tcp_client$(EXEEXT) \ - timeouts/blocking_udp_client$(EXEEXT) timeouts/server$(EXEEXT) \ - timers/time_t_timer$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \ - $(am__EXEEXT_3) -@WINDOWS_TARGET_FALSE@am__append_2 = \ -@WINDOWS_TARGET_FALSE@ fork/daemon \ -@WINDOWS_TARGET_FALSE@ fork/process_per_connection \ -@WINDOWS_TARGET_FALSE@ local/connect_pair \ -@WINDOWS_TARGET_FALSE@ local/iostream_client \ -@WINDOWS_TARGET_FALSE@ local/stream_server \ -@WINDOWS_TARGET_FALSE@ local/stream_client - -@HAVE_OPENSSL_TRUE@am__append_3 = \ -@HAVE_OPENSSL_TRUE@ ssl/client \ -@HAVE_OPENSSL_TRUE@ ssl/server - -@HAVE_BOOST_COROUTINE_TRUE@am__append_4 = \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/echo_server \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/parallel_grep - -subdir = src/examples/cpp11 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -@WINDOWS_TARGET_FALSE@am__EXEEXT_1 = fork/daemon$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ fork/process_per_connection$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/connect_pair$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/iostream_client$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/stream_server$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/stream_client$(EXEEXT) -@HAVE_OPENSSL_TRUE@am__EXEEXT_2 = ssl/client$(EXEEXT) \ -@HAVE_OPENSSL_TRUE@ ssl/server$(EXEEXT) -@HAVE_BOOST_COROUTINE_TRUE@am__EXEEXT_3 = spawn/echo_server$(EXEEXT) \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/parallel_grep$(EXEEXT) -PROGRAMS = $(noinst_PROGRAMS) -LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru -AM_V_AR = $(am__v_AR_@AM_V@) -am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = -libasio_a_AR = $(AR) $(ARFLAGS) -libasio_a_LIBADD = -am__libasio_a_SOURCES_DIST = ../../asio.cpp ../../asio_ssl.cpp -am__dirstamp = $(am__leading_dot)dirstamp -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__objects_1 = ../../asio_ssl.$(OBJEXT) -@SEPARATE_COMPILATION_TRUE@am_libasio_a_OBJECTS = \ -@SEPARATE_COMPILATION_TRUE@ ../../asio.$(OBJEXT) \ -@SEPARATE_COMPILATION_TRUE@ $(am__objects_1) -libasio_a_OBJECTS = $(am_libasio_a_OBJECTS) -am_allocation_server_OBJECTS = allocation/server.$(OBJEXT) -allocation_server_OBJECTS = $(am_allocation_server_OBJECTS) -allocation_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@allocation_server_DEPENDENCIES = libasio.a -am_buffers_reference_counted_OBJECTS = \ - buffers/reference_counted.$(OBJEXT) -buffers_reference_counted_OBJECTS = \ - $(am_buffers_reference_counted_OBJECTS) -buffers_reference_counted_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@buffers_reference_counted_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_chat_chat_client_OBJECTS = chat/chat_client.$(OBJEXT) -chat_chat_client_OBJECTS = $(am_chat_chat_client_OBJECTS) -chat_chat_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@chat_chat_client_DEPENDENCIES = libasio.a -am_chat_chat_server_OBJECTS = chat/chat_server.$(OBJEXT) -chat_chat_server_OBJECTS = $(am_chat_chat_server_OBJECTS) -chat_chat_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@chat_chat_server_DEPENDENCIES = libasio.a -am_echo_async_tcp_echo_server_OBJECTS = \ - echo/async_tcp_echo_server.$(OBJEXT) -echo_async_tcp_echo_server_OBJECTS = \ - $(am_echo_async_tcp_echo_server_OBJECTS) -echo_async_tcp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_async_tcp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_async_udp_echo_server_OBJECTS = \ - echo/async_udp_echo_server.$(OBJEXT) -echo_async_udp_echo_server_OBJECTS = \ - $(am_echo_async_udp_echo_server_OBJECTS) -echo_async_udp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_async_udp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_tcp_echo_client_OBJECTS = \ - echo/blocking_tcp_echo_client.$(OBJEXT) -echo_blocking_tcp_echo_client_OBJECTS = \ - $(am_echo_blocking_tcp_echo_client_OBJECTS) -echo_blocking_tcp_echo_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_tcp_echo_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_tcp_echo_server_OBJECTS = \ - echo/blocking_tcp_echo_server.$(OBJEXT) -echo_blocking_tcp_echo_server_OBJECTS = \ - $(am_echo_blocking_tcp_echo_server_OBJECTS) -echo_blocking_tcp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_tcp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_udp_echo_client_OBJECTS = \ - echo/blocking_udp_echo_client.$(OBJEXT) -echo_blocking_udp_echo_client_OBJECTS = \ - $(am_echo_blocking_udp_echo_client_OBJECTS) -echo_blocking_udp_echo_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_udp_echo_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_udp_echo_server_OBJECTS = \ - echo/blocking_udp_echo_server.$(OBJEXT) -echo_blocking_udp_echo_server_OBJECTS = \ - $(am_echo_blocking_udp_echo_server_OBJECTS) -echo_blocking_udp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_udp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_actor_OBJECTS = executors/actor.$(OBJEXT) -executors_actor_OBJECTS = $(am_executors_actor_OBJECTS) -executors_actor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_actor_DEPENDENCIES = libasio.a -am_executors_bank_account_1_OBJECTS = \ - executors/bank_account_1.$(OBJEXT) -executors_bank_account_1_OBJECTS = \ - $(am_executors_bank_account_1_OBJECTS) -executors_bank_account_1_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_bank_account_1_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_bank_account_2_OBJECTS = \ - executors/bank_account_2.$(OBJEXT) -executors_bank_account_2_OBJECTS = \ - $(am_executors_bank_account_2_OBJECTS) -executors_bank_account_2_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_bank_account_2_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_fork_join_OBJECTS = executors/fork_join.$(OBJEXT) -executors_fork_join_OBJECTS = $(am_executors_fork_join_OBJECTS) -executors_fork_join_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_fork_join_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_pipeline_OBJECTS = executors/pipeline.$(OBJEXT) -executors_pipeline_OBJECTS = $(am_executors_pipeline_OBJECTS) -executors_pipeline_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_pipeline_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_priority_scheduler_OBJECTS = \ - executors/priority_scheduler.$(OBJEXT) -executors_priority_scheduler_OBJECTS = \ - $(am_executors_priority_scheduler_OBJECTS) -executors_priority_scheduler_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_priority_scheduler_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__fork_daemon_SOURCES_DIST = fork/daemon.cpp -@WINDOWS_TARGET_FALSE@am_fork_daemon_OBJECTS = fork/daemon.$(OBJEXT) -fork_daemon_OBJECTS = $(am_fork_daemon_OBJECTS) -fork_daemon_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@fork_daemon_DEPENDENCIES = libasio.a -am__fork_process_per_connection_SOURCES_DIST = \ - fork/process_per_connection.cpp -@WINDOWS_TARGET_FALSE@am_fork_process_per_connection_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ fork/process_per_connection.$(OBJEXT) -fork_process_per_connection_OBJECTS = \ - $(am_fork_process_per_connection_OBJECTS) -fork_process_per_connection_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@fork_process_per_connection_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_futures_daytime_client_OBJECTS = futures/daytime_client.$(OBJEXT) -futures_daytime_client_OBJECTS = $(am_futures_daytime_client_OBJECTS) -futures_daytime_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@futures_daytime_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_http_server_http_server_OBJECTS = http/server/connection.$(OBJEXT) \ - http/server/connection_manager.$(OBJEXT) \ - http/server/main.$(OBJEXT) http/server/mime_types.$(OBJEXT) \ - http/server/reply.$(OBJEXT) \ - http/server/request_handler.$(OBJEXT) \ - http/server/request_parser.$(OBJEXT) \ - http/server/server.$(OBJEXT) -http_server_http_server_OBJECTS = \ - $(am_http_server_http_server_OBJECTS) -http_server_http_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@http_server_http_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_invocation_prioritised_handlers_OBJECTS = \ - invocation/prioritised_handlers.$(OBJEXT) -invocation_prioritised_handlers_OBJECTS = \ - $(am_invocation_prioritised_handlers_OBJECTS) -invocation_prioritised_handlers_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@invocation_prioritised_handlers_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_iostreams_http_client_OBJECTS = iostreams/http_client.$(OBJEXT) -iostreams_http_client_OBJECTS = $(am_iostreams_http_client_OBJECTS) -iostreams_http_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@iostreams_http_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_connect_pair_SOURCES_DIST = local/connect_pair.cpp -@WINDOWS_TARGET_FALSE@am_local_connect_pair_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/connect_pair.$(OBJEXT) -local_connect_pair_OBJECTS = $(am_local_connect_pair_OBJECTS) -local_connect_pair_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_connect_pair_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_iostream_client_SOURCES_DIST = local/iostream_client.cpp -@WINDOWS_TARGET_FALSE@am_local_iostream_client_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/iostream_client.$(OBJEXT) -local_iostream_client_OBJECTS = $(am_local_iostream_client_OBJECTS) -local_iostream_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_iostream_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_stream_client_SOURCES_DIST = local/stream_client.cpp -@WINDOWS_TARGET_FALSE@am_local_stream_client_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/stream_client.$(OBJEXT) -local_stream_client_OBJECTS = $(am_local_stream_client_OBJECTS) -local_stream_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_stream_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_stream_server_SOURCES_DIST = local/stream_server.cpp -@WINDOWS_TARGET_FALSE@am_local_stream_server_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/stream_server.$(OBJEXT) -local_stream_server_OBJECTS = $(am_local_stream_server_OBJECTS) -local_stream_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_stream_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_multicast_receiver_OBJECTS = multicast/receiver.$(OBJEXT) -multicast_receiver_OBJECTS = $(am_multicast_receiver_OBJECTS) -multicast_receiver_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@multicast_receiver_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_multicast_sender_OBJECTS = multicast/sender.$(OBJEXT) -multicast_sender_OBJECTS = $(am_multicast_sender_OBJECTS) -multicast_sender_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@multicast_sender_DEPENDENCIES = libasio.a -am_nonblocking_third_party_lib_OBJECTS = \ - nonblocking/third_party_lib.$(OBJEXT) -nonblocking_third_party_lib_OBJECTS = \ - $(am_nonblocking_third_party_lib_OBJECTS) -nonblocking_third_party_lib_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@nonblocking_third_party_lib_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_operations_composed_1_OBJECTS = operations/composed_1.$(OBJEXT) -operations_composed_1_OBJECTS = $(am_operations_composed_1_OBJECTS) -operations_composed_1_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@operations_composed_1_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_operations_composed_2_OBJECTS = operations/composed_2.$(OBJEXT) -operations_composed_2_OBJECTS = $(am_operations_composed_2_OBJECTS) -operations_composed_2_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@operations_composed_2_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_operations_composed_3_OBJECTS = operations/composed_3.$(OBJEXT) -operations_composed_3_OBJECTS = $(am_operations_composed_3_OBJECTS) -operations_composed_3_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@operations_composed_3_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_operations_composed_4_OBJECTS = operations/composed_4.$(OBJEXT) -operations_composed_4_OBJECTS = $(am_operations_composed_4_OBJECTS) -operations_composed_4_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@operations_composed_4_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_operations_composed_5_OBJECTS = operations/composed_5.$(OBJEXT) -operations_composed_5_OBJECTS = $(am_operations_composed_5_OBJECTS) -operations_composed_5_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@operations_composed_5_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_socks4_sync_client_OBJECTS = socks4/sync_client.$(OBJEXT) -socks4_sync_client_OBJECTS = $(am_socks4_sync_client_OBJECTS) -socks4_sync_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@socks4_sync_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__spawn_echo_server_SOURCES_DIST = spawn/echo_server.cpp -@HAVE_BOOST_COROUTINE_TRUE@am_spawn_echo_server_OBJECTS = \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/echo_server.$(OBJEXT) -spawn_echo_server_OBJECTS = $(am_spawn_echo_server_OBJECTS) -@HAVE_BOOST_COROUTINE_TRUE@spawn_echo_server_DEPENDENCIES = $(LDADD) -am__spawn_parallel_grep_SOURCES_DIST = spawn/parallel_grep.cpp -@HAVE_BOOST_COROUTINE_TRUE@am_spawn_parallel_grep_OBJECTS = \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/parallel_grep.$(OBJEXT) -spawn_parallel_grep_OBJECTS = $(am_spawn_parallel_grep_OBJECTS) -@HAVE_BOOST_COROUTINE_TRUE@spawn_parallel_grep_DEPENDENCIES = \ -@HAVE_BOOST_COROUTINE_TRUE@ $(LDADD) -am__ssl_client_SOURCES_DIST = ssl/client.cpp -@HAVE_OPENSSL_TRUE@am_ssl_client_OBJECTS = ssl/client.$(OBJEXT) -ssl_client_OBJECTS = $(am_ssl_client_OBJECTS) -ssl_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@ssl_client_DEPENDENCIES = libasio.a -am__ssl_server_SOURCES_DIST = ssl/server.cpp -@HAVE_OPENSSL_TRUE@am_ssl_server_OBJECTS = ssl/server.$(OBJEXT) -ssl_server_OBJECTS = $(am_ssl_server_OBJECTS) -ssl_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@ssl_server_DEPENDENCIES = libasio.a -am_timeouts_async_tcp_client_OBJECTS = \ - timeouts/async_tcp_client.$(OBJEXT) -timeouts_async_tcp_client_OBJECTS = \ - $(am_timeouts_async_tcp_client_OBJECTS) -timeouts_async_tcp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_async_tcp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_blocking_tcp_client_OBJECTS = \ - timeouts/blocking_tcp_client.$(OBJEXT) -timeouts_blocking_tcp_client_OBJECTS = \ - $(am_timeouts_blocking_tcp_client_OBJECTS) -timeouts_blocking_tcp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_blocking_tcp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_blocking_token_tcp_client_OBJECTS = \ - timeouts/blocking_token_tcp_client.$(OBJEXT) -timeouts_blocking_token_tcp_client_OBJECTS = \ - $(am_timeouts_blocking_token_tcp_client_OBJECTS) -timeouts_blocking_token_tcp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_blocking_token_tcp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_blocking_udp_client_OBJECTS = \ - timeouts/blocking_udp_client.$(OBJEXT) -timeouts_blocking_udp_client_OBJECTS = \ - $(am_timeouts_blocking_udp_client_OBJECTS) -timeouts_blocking_udp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_blocking_udp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_server_OBJECTS = timeouts/server.$(OBJEXT) -timeouts_server_OBJECTS = $(am_timeouts_server_OBJECTS) -timeouts_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_server_DEPENDENCIES = libasio.a -am_timers_time_t_timer_OBJECTS = timers/time_t_timer.$(OBJEXT) -timers_time_t_timer_OBJECTS = $(am_timers_time_t_timer_OBJECTS) -timers_time_t_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timers_time_t_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ../../$(DEPDIR)/asio.Po \ - ../../$(DEPDIR)/asio_ssl.Po allocation/$(DEPDIR)/server.Po \ - buffers/$(DEPDIR)/reference_counted.Po \ - chat/$(DEPDIR)/chat_client.Po chat/$(DEPDIR)/chat_server.Po \ - echo/$(DEPDIR)/async_tcp_echo_server.Po \ - echo/$(DEPDIR)/async_udp_echo_server.Po \ - echo/$(DEPDIR)/blocking_tcp_echo_client.Po \ - echo/$(DEPDIR)/blocking_tcp_echo_server.Po \ - echo/$(DEPDIR)/blocking_udp_echo_client.Po \ - echo/$(DEPDIR)/blocking_udp_echo_server.Po \ - executors/$(DEPDIR)/actor.Po \ - executors/$(DEPDIR)/bank_account_1.Po \ - executors/$(DEPDIR)/bank_account_2.Po \ - executors/$(DEPDIR)/fork_join.Po \ - executors/$(DEPDIR)/pipeline.Po \ - executors/$(DEPDIR)/priority_scheduler.Po \ - fork/$(DEPDIR)/daemon.Po \ - fork/$(DEPDIR)/process_per_connection.Po \ - futures/$(DEPDIR)/daytime_client.Po \ - http/server/$(DEPDIR)/connection.Po \ - http/server/$(DEPDIR)/connection_manager.Po \ - http/server/$(DEPDIR)/main.Po \ - http/server/$(DEPDIR)/mime_types.Po \ - http/server/$(DEPDIR)/reply.Po \ - http/server/$(DEPDIR)/request_handler.Po \ - http/server/$(DEPDIR)/request_parser.Po \ - http/server/$(DEPDIR)/server.Po \ - invocation/$(DEPDIR)/prioritised_handlers.Po \ - iostreams/$(DEPDIR)/http_client.Po \ - local/$(DEPDIR)/connect_pair.Po \ - local/$(DEPDIR)/iostream_client.Po \ - local/$(DEPDIR)/stream_client.Po \ - local/$(DEPDIR)/stream_server.Po \ - multicast/$(DEPDIR)/receiver.Po multicast/$(DEPDIR)/sender.Po \ - nonblocking/$(DEPDIR)/third_party_lib.Po \ - operations/$(DEPDIR)/composed_1.Po \ - operations/$(DEPDIR)/composed_2.Po \ - operations/$(DEPDIR)/composed_3.Po \ - operations/$(DEPDIR)/composed_4.Po \ - operations/$(DEPDIR)/composed_5.Po \ - socks4/$(DEPDIR)/sync_client.Po spawn/$(DEPDIR)/echo_server.Po \ - spawn/$(DEPDIR)/parallel_grep.Po ssl/$(DEPDIR)/client.Po \ - ssl/$(DEPDIR)/server.Po timeouts/$(DEPDIR)/async_tcp_client.Po \ - timeouts/$(DEPDIR)/blocking_tcp_client.Po \ - timeouts/$(DEPDIR)/blocking_token_tcp_client.Po \ - timeouts/$(DEPDIR)/blocking_udp_client.Po \ - timeouts/$(DEPDIR)/server.Po timers/$(DEPDIR)/time_t_timer.Po -am__mv = mv -f -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -AM_V_CXX = $(am__v_CXX_@AM_V@) -am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) -am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = -SOURCES = $(libasio_a_SOURCES) $(allocation_server_SOURCES) \ - $(buffers_reference_counted_SOURCES) \ - $(chat_chat_client_SOURCES) $(chat_chat_server_SOURCES) \ - $(echo_async_tcp_echo_server_SOURCES) \ - $(echo_async_udp_echo_server_SOURCES) \ - $(echo_blocking_tcp_echo_client_SOURCES) \ - $(echo_blocking_tcp_echo_server_SOURCES) \ - $(echo_blocking_udp_echo_client_SOURCES) \ - $(echo_blocking_udp_echo_server_SOURCES) \ - $(executors_actor_SOURCES) $(executors_bank_account_1_SOURCES) \ - $(executors_bank_account_2_SOURCES) \ - $(executors_fork_join_SOURCES) $(executors_pipeline_SOURCES) \ - $(executors_priority_scheduler_SOURCES) $(fork_daemon_SOURCES) \ - $(fork_process_per_connection_SOURCES) \ - $(futures_daytime_client_SOURCES) \ - $(http_server_http_server_SOURCES) \ - $(invocation_prioritised_handlers_SOURCES) \ - $(iostreams_http_client_SOURCES) $(local_connect_pair_SOURCES) \ - $(local_iostream_client_SOURCES) \ - $(local_stream_client_SOURCES) $(local_stream_server_SOURCES) \ - $(multicast_receiver_SOURCES) $(multicast_sender_SOURCES) \ - $(nonblocking_third_party_lib_SOURCES) \ - $(operations_composed_1_SOURCES) \ - $(operations_composed_2_SOURCES) \ - $(operations_composed_3_SOURCES) \ - $(operations_composed_4_SOURCES) \ - $(operations_composed_5_SOURCES) $(socks4_sync_client_SOURCES) \ - $(spawn_echo_server_SOURCES) $(spawn_parallel_grep_SOURCES) \ - $(ssl_client_SOURCES) $(ssl_server_SOURCES) \ - $(timeouts_async_tcp_client_SOURCES) \ - $(timeouts_blocking_tcp_client_SOURCES) \ - $(timeouts_blocking_token_tcp_client_SOURCES) \ - $(timeouts_blocking_udp_client_SOURCES) \ - $(timeouts_server_SOURCES) $(timers_time_t_timer_SOURCES) -DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ - $(allocation_server_SOURCES) \ - $(buffers_reference_counted_SOURCES) \ - $(chat_chat_client_SOURCES) $(chat_chat_server_SOURCES) \ - $(echo_async_tcp_echo_server_SOURCES) \ - $(echo_async_udp_echo_server_SOURCES) \ - $(echo_blocking_tcp_echo_client_SOURCES) \ - $(echo_blocking_tcp_echo_server_SOURCES) \ - $(echo_blocking_udp_echo_client_SOURCES) \ - $(echo_blocking_udp_echo_server_SOURCES) \ - $(executors_actor_SOURCES) $(executors_bank_account_1_SOURCES) \ - $(executors_bank_account_2_SOURCES) \ - $(executors_fork_join_SOURCES) $(executors_pipeline_SOURCES) \ - $(executors_priority_scheduler_SOURCES) \ - $(am__fork_daemon_SOURCES_DIST) \ - $(am__fork_process_per_connection_SOURCES_DIST) \ - $(futures_daytime_client_SOURCES) \ - $(http_server_http_server_SOURCES) \ - $(invocation_prioritised_handlers_SOURCES) \ - $(iostreams_http_client_SOURCES) \ - $(am__local_connect_pair_SOURCES_DIST) \ - $(am__local_iostream_client_SOURCES_DIST) \ - $(am__local_stream_client_SOURCES_DIST) \ - $(am__local_stream_server_SOURCES_DIST) \ - $(multicast_receiver_SOURCES) $(multicast_sender_SOURCES) \ - $(nonblocking_third_party_lib_SOURCES) \ - $(operations_composed_1_SOURCES) \ - $(operations_composed_2_SOURCES) \ - $(operations_composed_3_SOURCES) \ - $(operations_composed_4_SOURCES) \ - $(operations_composed_5_SOURCES) $(socks4_sync_client_SOURCES) \ - $(am__spawn_echo_server_SOURCES_DIST) \ - $(am__spawn_parallel_grep_SOURCES_DIST) \ - $(am__ssl_client_SOURCES_DIST) $(am__ssl_server_SOURCES_DIST) \ - $(timeouts_async_tcp_client_SOURCES) \ - $(timeouts_blocking_tcp_client_SOURCES) \ - $(timeouts_blocking_token_tcp_client_SOURCES) \ - $(timeouts_blocking_udp_client_SOURCES) \ - $(timeouts_server_SOURCES) $(timers_time_t_timer_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -HEADERS = $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = subdir-objects -@SEPARATE_COMPILATION_TRUE@noinst_LIBRARIES = libasio.a -@SEPARATE_COMPILATION_TRUE@libasio_a_SOURCES = ../../asio.cpp \ -@SEPARATE_COMPILATION_TRUE@ $(am__append_1) -@SEPARATE_COMPILATION_TRUE@LDADD = libasio.a -noinst_HEADERS = \ - socks4/socks4.hpp \ - chat/chat_message.hpp - -AM_CXXFLAGS = -I$(srcdir)/../../../include -allocation_server_SOURCES = allocation/server.cpp -buffers_reference_counted_SOURCES = buffers/reference_counted.cpp -chat_chat_client_SOURCES = chat/chat_client.cpp -chat_chat_server_SOURCES = chat/chat_server.cpp -echo_async_tcp_echo_server_SOURCES = echo/async_tcp_echo_server.cpp -echo_async_udp_echo_server_SOURCES = echo/async_udp_echo_server.cpp -echo_blocking_tcp_echo_client_SOURCES = echo/blocking_tcp_echo_client.cpp -echo_blocking_tcp_echo_server_SOURCES = echo/blocking_tcp_echo_server.cpp -echo_blocking_udp_echo_client_SOURCES = echo/blocking_udp_echo_client.cpp -echo_blocking_udp_echo_server_SOURCES = echo/blocking_udp_echo_server.cpp -executors_actor_SOURCES = executors/actor.cpp -executors_bank_account_1_SOURCES = executors/bank_account_1.cpp -executors_bank_account_2_SOURCES = executors/bank_account_2.cpp -executors_fork_join_SOURCES = executors/fork_join.cpp -executors_pipeline_SOURCES = executors/pipeline.cpp -executors_priority_scheduler_SOURCES = executors/priority_scheduler.cpp -futures_daytime_client_SOURCES = futures/daytime_client.cpp -http_server_http_server_SOURCES = \ - http/server/connection.cpp \ - http/server/connection_manager.cpp \ - http/server/main.cpp \ - http/server/mime_types.cpp \ - http/server/reply.cpp \ - http/server/request_handler.cpp \ - http/server/request_parser.cpp \ - http/server/server.cpp - -invocation_prioritised_handlers_SOURCES = invocation/prioritised_handlers.cpp -iostreams_http_client_SOURCES = iostreams/http_client.cpp -multicast_receiver_SOURCES = multicast/receiver.cpp -multicast_sender_SOURCES = multicast/sender.cpp -nonblocking_third_party_lib_SOURCES = nonblocking/third_party_lib.cpp -operations_composed_1_SOURCES = operations/composed_1.cpp -operations_composed_2_SOURCES = operations/composed_2.cpp -operations_composed_3_SOURCES = operations/composed_3.cpp -operations_composed_4_SOURCES = operations/composed_4.cpp -operations_composed_5_SOURCES = operations/composed_5.cpp -socks4_sync_client_SOURCES = socks4/sync_client.cpp -timeouts_async_tcp_client_SOURCES = timeouts/async_tcp_client.cpp -timeouts_blocking_tcp_client_SOURCES = timeouts/blocking_tcp_client.cpp -timeouts_blocking_token_tcp_client_SOURCES = timeouts/blocking_token_tcp_client.cpp -timeouts_blocking_udp_client_SOURCES = timeouts/blocking_udp_client.cpp -timeouts_server_SOURCES = timeouts/server.cpp -timers_time_t_timer_SOURCES = timers/time_t_timer.cpp -@WINDOWS_TARGET_FALSE@fork_daemon_SOURCES = fork/daemon.cpp -@WINDOWS_TARGET_FALSE@fork_process_per_connection_SOURCES = fork/process_per_connection.cpp -@WINDOWS_TARGET_FALSE@local_connect_pair_SOURCES = local/connect_pair.cpp -@WINDOWS_TARGET_FALSE@local_iostream_client_SOURCES = local/iostream_client.cpp -@WINDOWS_TARGET_FALSE@local_stream_server_SOURCES = local/stream_server.cpp -@WINDOWS_TARGET_FALSE@local_stream_client_SOURCES = local/stream_client.cpp -@HAVE_OPENSSL_TRUE@ssl_client_SOURCES = ssl/client.cpp -@HAVE_OPENSSL_TRUE@ssl_server_SOURCES = ssl/server.cpp -@HAVE_BOOST_COROUTINE_TRUE@spawn_echo_server_SOURCES = spawn/echo_server.cpp -@HAVE_BOOST_COROUTINE_TRUE@spawn_echo_server_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -@HAVE_BOOST_COROUTINE_TRUE@spawn_parallel_grep_SOURCES = spawn/parallel_grep.cpp -@HAVE_BOOST_COROUTINE_TRUE@spawn_parallel_grep_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -EXTRA_DIST = \ - handler_tracking/custom_tracking.hpp \ - http/server/connection.hpp \ - http/server/connection_manager.hpp \ - http/server/header.hpp \ - http/server/mime_types.hpp \ - http/server/reply.hpp \ - http/server/request.hpp \ - http/server/request_handler.hpp \ - http/server/request_parser.hpp \ - http/server/server.hpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in - -all: all-am - -.SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/examples/cpp11/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/examples/cpp11/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) - -clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -../../$(am__dirstamp): - @$(MKDIR_P) ../.. - @: > ../../$(am__dirstamp) -../../$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../../$(DEPDIR) - @: > ../../$(DEPDIR)/$(am__dirstamp) -../../asio.$(OBJEXT): ../../$(am__dirstamp) \ - ../../$(DEPDIR)/$(am__dirstamp) -../../asio_ssl.$(OBJEXT): ../../$(am__dirstamp) \ - ../../$(DEPDIR)/$(am__dirstamp) - -libasio.a: $(libasio_a_OBJECTS) $(libasio_a_DEPENDENCIES) $(EXTRA_libasio_a_DEPENDENCIES) - $(AM_V_at)-rm -f libasio.a - $(AM_V_AR)$(libasio_a_AR) libasio.a $(libasio_a_OBJECTS) $(libasio_a_LIBADD) - $(AM_V_at)$(RANLIB) libasio.a -allocation/$(am__dirstamp): - @$(MKDIR_P) allocation - @: > allocation/$(am__dirstamp) -allocation/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) allocation/$(DEPDIR) - @: > allocation/$(DEPDIR)/$(am__dirstamp) -allocation/server.$(OBJEXT): allocation/$(am__dirstamp) \ - allocation/$(DEPDIR)/$(am__dirstamp) - -allocation/server$(EXEEXT): $(allocation_server_OBJECTS) $(allocation_server_DEPENDENCIES) $(EXTRA_allocation_server_DEPENDENCIES) allocation/$(am__dirstamp) - @rm -f allocation/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(allocation_server_OBJECTS) $(allocation_server_LDADD) $(LIBS) -buffers/$(am__dirstamp): - @$(MKDIR_P) buffers - @: > buffers/$(am__dirstamp) -buffers/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) buffers/$(DEPDIR) - @: > buffers/$(DEPDIR)/$(am__dirstamp) -buffers/reference_counted.$(OBJEXT): buffers/$(am__dirstamp) \ - buffers/$(DEPDIR)/$(am__dirstamp) - -buffers/reference_counted$(EXEEXT): $(buffers_reference_counted_OBJECTS) $(buffers_reference_counted_DEPENDENCIES) $(EXTRA_buffers_reference_counted_DEPENDENCIES) buffers/$(am__dirstamp) - @rm -f buffers/reference_counted$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(buffers_reference_counted_OBJECTS) $(buffers_reference_counted_LDADD) $(LIBS) -chat/$(am__dirstamp): - @$(MKDIR_P) chat - @: > chat/$(am__dirstamp) -chat/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) chat/$(DEPDIR) - @: > chat/$(DEPDIR)/$(am__dirstamp) -chat/chat_client.$(OBJEXT): chat/$(am__dirstamp) \ - chat/$(DEPDIR)/$(am__dirstamp) - -chat/chat_client$(EXEEXT): $(chat_chat_client_OBJECTS) $(chat_chat_client_DEPENDENCIES) $(EXTRA_chat_chat_client_DEPENDENCIES) chat/$(am__dirstamp) - @rm -f chat/chat_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(chat_chat_client_OBJECTS) $(chat_chat_client_LDADD) $(LIBS) -chat/chat_server.$(OBJEXT): chat/$(am__dirstamp) \ - chat/$(DEPDIR)/$(am__dirstamp) - -chat/chat_server$(EXEEXT): $(chat_chat_server_OBJECTS) $(chat_chat_server_DEPENDENCIES) $(EXTRA_chat_chat_server_DEPENDENCIES) chat/$(am__dirstamp) - @rm -f chat/chat_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(chat_chat_server_OBJECTS) $(chat_chat_server_LDADD) $(LIBS) -echo/$(am__dirstamp): - @$(MKDIR_P) echo - @: > echo/$(am__dirstamp) -echo/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) echo/$(DEPDIR) - @: > echo/$(DEPDIR)/$(am__dirstamp) -echo/async_tcp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/async_tcp_echo_server$(EXEEXT): $(echo_async_tcp_echo_server_OBJECTS) $(echo_async_tcp_echo_server_DEPENDENCIES) $(EXTRA_echo_async_tcp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/async_tcp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_async_tcp_echo_server_OBJECTS) $(echo_async_tcp_echo_server_LDADD) $(LIBS) -echo/async_udp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/async_udp_echo_server$(EXEEXT): $(echo_async_udp_echo_server_OBJECTS) $(echo_async_udp_echo_server_DEPENDENCIES) $(EXTRA_echo_async_udp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/async_udp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_async_udp_echo_server_OBJECTS) $(echo_async_udp_echo_server_LDADD) $(LIBS) -echo/blocking_tcp_echo_client.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_tcp_echo_client$(EXEEXT): $(echo_blocking_tcp_echo_client_OBJECTS) $(echo_blocking_tcp_echo_client_DEPENDENCIES) $(EXTRA_echo_blocking_tcp_echo_client_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_tcp_echo_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_tcp_echo_client_OBJECTS) $(echo_blocking_tcp_echo_client_LDADD) $(LIBS) -echo/blocking_tcp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_tcp_echo_server$(EXEEXT): $(echo_blocking_tcp_echo_server_OBJECTS) $(echo_blocking_tcp_echo_server_DEPENDENCIES) $(EXTRA_echo_blocking_tcp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_tcp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_tcp_echo_server_OBJECTS) $(echo_blocking_tcp_echo_server_LDADD) $(LIBS) -echo/blocking_udp_echo_client.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_udp_echo_client$(EXEEXT): $(echo_blocking_udp_echo_client_OBJECTS) $(echo_blocking_udp_echo_client_DEPENDENCIES) $(EXTRA_echo_blocking_udp_echo_client_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_udp_echo_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_udp_echo_client_OBJECTS) $(echo_blocking_udp_echo_client_LDADD) $(LIBS) -echo/blocking_udp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_udp_echo_server$(EXEEXT): $(echo_blocking_udp_echo_server_OBJECTS) $(echo_blocking_udp_echo_server_DEPENDENCIES) $(EXTRA_echo_blocking_udp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_udp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_udp_echo_server_OBJECTS) $(echo_blocking_udp_echo_server_LDADD) $(LIBS) -executors/$(am__dirstamp): - @$(MKDIR_P) executors - @: > executors/$(am__dirstamp) -executors/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) executors/$(DEPDIR) - @: > executors/$(DEPDIR)/$(am__dirstamp) -executors/actor.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/actor$(EXEEXT): $(executors_actor_OBJECTS) $(executors_actor_DEPENDENCIES) $(EXTRA_executors_actor_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/actor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_actor_OBJECTS) $(executors_actor_LDADD) $(LIBS) -executors/bank_account_1.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/bank_account_1$(EXEEXT): $(executors_bank_account_1_OBJECTS) $(executors_bank_account_1_DEPENDENCIES) $(EXTRA_executors_bank_account_1_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/bank_account_1$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_bank_account_1_OBJECTS) $(executors_bank_account_1_LDADD) $(LIBS) -executors/bank_account_2.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/bank_account_2$(EXEEXT): $(executors_bank_account_2_OBJECTS) $(executors_bank_account_2_DEPENDENCIES) $(EXTRA_executors_bank_account_2_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/bank_account_2$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_bank_account_2_OBJECTS) $(executors_bank_account_2_LDADD) $(LIBS) -executors/fork_join.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/fork_join$(EXEEXT): $(executors_fork_join_OBJECTS) $(executors_fork_join_DEPENDENCIES) $(EXTRA_executors_fork_join_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/fork_join$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_fork_join_OBJECTS) $(executors_fork_join_LDADD) $(LIBS) -executors/pipeline.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/pipeline$(EXEEXT): $(executors_pipeline_OBJECTS) $(executors_pipeline_DEPENDENCIES) $(EXTRA_executors_pipeline_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/pipeline$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_pipeline_OBJECTS) $(executors_pipeline_LDADD) $(LIBS) -executors/priority_scheduler.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/priority_scheduler$(EXEEXT): $(executors_priority_scheduler_OBJECTS) $(executors_priority_scheduler_DEPENDENCIES) $(EXTRA_executors_priority_scheduler_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/priority_scheduler$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_priority_scheduler_OBJECTS) $(executors_priority_scheduler_LDADD) $(LIBS) -fork/$(am__dirstamp): - @$(MKDIR_P) fork - @: > fork/$(am__dirstamp) -fork/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) fork/$(DEPDIR) - @: > fork/$(DEPDIR)/$(am__dirstamp) -fork/daemon.$(OBJEXT): fork/$(am__dirstamp) \ - fork/$(DEPDIR)/$(am__dirstamp) - -fork/daemon$(EXEEXT): $(fork_daemon_OBJECTS) $(fork_daemon_DEPENDENCIES) $(EXTRA_fork_daemon_DEPENDENCIES) fork/$(am__dirstamp) - @rm -f fork/daemon$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(fork_daemon_OBJECTS) $(fork_daemon_LDADD) $(LIBS) -fork/process_per_connection.$(OBJEXT): fork/$(am__dirstamp) \ - fork/$(DEPDIR)/$(am__dirstamp) - -fork/process_per_connection$(EXEEXT): $(fork_process_per_connection_OBJECTS) $(fork_process_per_connection_DEPENDENCIES) $(EXTRA_fork_process_per_connection_DEPENDENCIES) fork/$(am__dirstamp) - @rm -f fork/process_per_connection$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(fork_process_per_connection_OBJECTS) $(fork_process_per_connection_LDADD) $(LIBS) -futures/$(am__dirstamp): - @$(MKDIR_P) futures - @: > futures/$(am__dirstamp) -futures/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) futures/$(DEPDIR) - @: > futures/$(DEPDIR)/$(am__dirstamp) -futures/daytime_client.$(OBJEXT): futures/$(am__dirstamp) \ - futures/$(DEPDIR)/$(am__dirstamp) - -futures/daytime_client$(EXEEXT): $(futures_daytime_client_OBJECTS) $(futures_daytime_client_DEPENDENCIES) $(EXTRA_futures_daytime_client_DEPENDENCIES) futures/$(am__dirstamp) - @rm -f futures/daytime_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(futures_daytime_client_OBJECTS) $(futures_daytime_client_LDADD) $(LIBS) -http/server/$(am__dirstamp): - @$(MKDIR_P) http/server - @: > http/server/$(am__dirstamp) -http/server/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) http/server/$(DEPDIR) - @: > http/server/$(DEPDIR)/$(am__dirstamp) -http/server/connection.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/connection_manager.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/main.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/mime_types.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/reply.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/request_handler.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/request_parser.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/server.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) - -http/server/http_server$(EXEEXT): $(http_server_http_server_OBJECTS) $(http_server_http_server_DEPENDENCIES) $(EXTRA_http_server_http_server_DEPENDENCIES) http/server/$(am__dirstamp) - @rm -f http/server/http_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(http_server_http_server_OBJECTS) $(http_server_http_server_LDADD) $(LIBS) -invocation/$(am__dirstamp): - @$(MKDIR_P) invocation - @: > invocation/$(am__dirstamp) -invocation/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) invocation/$(DEPDIR) - @: > invocation/$(DEPDIR)/$(am__dirstamp) -invocation/prioritised_handlers.$(OBJEXT): invocation/$(am__dirstamp) \ - invocation/$(DEPDIR)/$(am__dirstamp) - -invocation/prioritised_handlers$(EXEEXT): $(invocation_prioritised_handlers_OBJECTS) $(invocation_prioritised_handlers_DEPENDENCIES) $(EXTRA_invocation_prioritised_handlers_DEPENDENCIES) invocation/$(am__dirstamp) - @rm -f invocation/prioritised_handlers$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(invocation_prioritised_handlers_OBJECTS) $(invocation_prioritised_handlers_LDADD) $(LIBS) -iostreams/$(am__dirstamp): - @$(MKDIR_P) iostreams - @: > iostreams/$(am__dirstamp) -iostreams/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) iostreams/$(DEPDIR) - @: > iostreams/$(DEPDIR)/$(am__dirstamp) -iostreams/http_client.$(OBJEXT): iostreams/$(am__dirstamp) \ - iostreams/$(DEPDIR)/$(am__dirstamp) - -iostreams/http_client$(EXEEXT): $(iostreams_http_client_OBJECTS) $(iostreams_http_client_DEPENDENCIES) $(EXTRA_iostreams_http_client_DEPENDENCIES) iostreams/$(am__dirstamp) - @rm -f iostreams/http_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(iostreams_http_client_OBJECTS) $(iostreams_http_client_LDADD) $(LIBS) -local/$(am__dirstamp): - @$(MKDIR_P) local - @: > local/$(am__dirstamp) -local/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) local/$(DEPDIR) - @: > local/$(DEPDIR)/$(am__dirstamp) -local/connect_pair.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/connect_pair$(EXEEXT): $(local_connect_pair_OBJECTS) $(local_connect_pair_DEPENDENCIES) $(EXTRA_local_connect_pair_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/connect_pair$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_connect_pair_OBJECTS) $(local_connect_pair_LDADD) $(LIBS) -local/iostream_client.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/iostream_client$(EXEEXT): $(local_iostream_client_OBJECTS) $(local_iostream_client_DEPENDENCIES) $(EXTRA_local_iostream_client_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/iostream_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_iostream_client_OBJECTS) $(local_iostream_client_LDADD) $(LIBS) -local/stream_client.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/stream_client$(EXEEXT): $(local_stream_client_OBJECTS) $(local_stream_client_DEPENDENCIES) $(EXTRA_local_stream_client_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/stream_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_stream_client_OBJECTS) $(local_stream_client_LDADD) $(LIBS) -local/stream_server.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/stream_server$(EXEEXT): $(local_stream_server_OBJECTS) $(local_stream_server_DEPENDENCIES) $(EXTRA_local_stream_server_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/stream_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_stream_server_OBJECTS) $(local_stream_server_LDADD) $(LIBS) -multicast/$(am__dirstamp): - @$(MKDIR_P) multicast - @: > multicast/$(am__dirstamp) -multicast/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) multicast/$(DEPDIR) - @: > multicast/$(DEPDIR)/$(am__dirstamp) -multicast/receiver.$(OBJEXT): multicast/$(am__dirstamp) \ - multicast/$(DEPDIR)/$(am__dirstamp) - -multicast/receiver$(EXEEXT): $(multicast_receiver_OBJECTS) $(multicast_receiver_DEPENDENCIES) $(EXTRA_multicast_receiver_DEPENDENCIES) multicast/$(am__dirstamp) - @rm -f multicast/receiver$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(multicast_receiver_OBJECTS) $(multicast_receiver_LDADD) $(LIBS) -multicast/sender.$(OBJEXT): multicast/$(am__dirstamp) \ - multicast/$(DEPDIR)/$(am__dirstamp) - -multicast/sender$(EXEEXT): $(multicast_sender_OBJECTS) $(multicast_sender_DEPENDENCIES) $(EXTRA_multicast_sender_DEPENDENCIES) multicast/$(am__dirstamp) - @rm -f multicast/sender$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(multicast_sender_OBJECTS) $(multicast_sender_LDADD) $(LIBS) -nonblocking/$(am__dirstamp): - @$(MKDIR_P) nonblocking - @: > nonblocking/$(am__dirstamp) -nonblocking/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) nonblocking/$(DEPDIR) - @: > nonblocking/$(DEPDIR)/$(am__dirstamp) -nonblocking/third_party_lib.$(OBJEXT): nonblocking/$(am__dirstamp) \ - nonblocking/$(DEPDIR)/$(am__dirstamp) - -nonblocking/third_party_lib$(EXEEXT): $(nonblocking_third_party_lib_OBJECTS) $(nonblocking_third_party_lib_DEPENDENCIES) $(EXTRA_nonblocking_third_party_lib_DEPENDENCIES) nonblocking/$(am__dirstamp) - @rm -f nonblocking/third_party_lib$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(nonblocking_third_party_lib_OBJECTS) $(nonblocking_third_party_lib_LDADD) $(LIBS) -operations/$(am__dirstamp): - @$(MKDIR_P) operations - @: > operations/$(am__dirstamp) -operations/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) operations/$(DEPDIR) - @: > operations/$(DEPDIR)/$(am__dirstamp) -operations/composed_1.$(OBJEXT): operations/$(am__dirstamp) \ - operations/$(DEPDIR)/$(am__dirstamp) - -operations/composed_1$(EXEEXT): $(operations_composed_1_OBJECTS) $(operations_composed_1_DEPENDENCIES) $(EXTRA_operations_composed_1_DEPENDENCIES) operations/$(am__dirstamp) - @rm -f operations/composed_1$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(operations_composed_1_OBJECTS) $(operations_composed_1_LDADD) $(LIBS) -operations/composed_2.$(OBJEXT): operations/$(am__dirstamp) \ - operations/$(DEPDIR)/$(am__dirstamp) - -operations/composed_2$(EXEEXT): $(operations_composed_2_OBJECTS) $(operations_composed_2_DEPENDENCIES) $(EXTRA_operations_composed_2_DEPENDENCIES) operations/$(am__dirstamp) - @rm -f operations/composed_2$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(operations_composed_2_OBJECTS) $(operations_composed_2_LDADD) $(LIBS) -operations/composed_3.$(OBJEXT): operations/$(am__dirstamp) \ - operations/$(DEPDIR)/$(am__dirstamp) - -operations/composed_3$(EXEEXT): $(operations_composed_3_OBJECTS) $(operations_composed_3_DEPENDENCIES) $(EXTRA_operations_composed_3_DEPENDENCIES) operations/$(am__dirstamp) - @rm -f operations/composed_3$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(operations_composed_3_OBJECTS) $(operations_composed_3_LDADD) $(LIBS) -operations/composed_4.$(OBJEXT): operations/$(am__dirstamp) \ - operations/$(DEPDIR)/$(am__dirstamp) - -operations/composed_4$(EXEEXT): $(operations_composed_4_OBJECTS) $(operations_composed_4_DEPENDENCIES) $(EXTRA_operations_composed_4_DEPENDENCIES) operations/$(am__dirstamp) - @rm -f operations/composed_4$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(operations_composed_4_OBJECTS) $(operations_composed_4_LDADD) $(LIBS) -operations/composed_5.$(OBJEXT): operations/$(am__dirstamp) \ - operations/$(DEPDIR)/$(am__dirstamp) - -operations/composed_5$(EXEEXT): $(operations_composed_5_OBJECTS) $(operations_composed_5_DEPENDENCIES) $(EXTRA_operations_composed_5_DEPENDENCIES) operations/$(am__dirstamp) - @rm -f operations/composed_5$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(operations_composed_5_OBJECTS) $(operations_composed_5_LDADD) $(LIBS) -socks4/$(am__dirstamp): - @$(MKDIR_P) socks4 - @: > socks4/$(am__dirstamp) -socks4/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) socks4/$(DEPDIR) - @: > socks4/$(DEPDIR)/$(am__dirstamp) -socks4/sync_client.$(OBJEXT): socks4/$(am__dirstamp) \ - socks4/$(DEPDIR)/$(am__dirstamp) - -socks4/sync_client$(EXEEXT): $(socks4_sync_client_OBJECTS) $(socks4_sync_client_DEPENDENCIES) $(EXTRA_socks4_sync_client_DEPENDENCIES) socks4/$(am__dirstamp) - @rm -f socks4/sync_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(socks4_sync_client_OBJECTS) $(socks4_sync_client_LDADD) $(LIBS) -spawn/$(am__dirstamp): - @$(MKDIR_P) spawn - @: > spawn/$(am__dirstamp) -spawn/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) spawn/$(DEPDIR) - @: > spawn/$(DEPDIR)/$(am__dirstamp) -spawn/echo_server.$(OBJEXT): spawn/$(am__dirstamp) \ - spawn/$(DEPDIR)/$(am__dirstamp) - -spawn/echo_server$(EXEEXT): $(spawn_echo_server_OBJECTS) $(spawn_echo_server_DEPENDENCIES) $(EXTRA_spawn_echo_server_DEPENDENCIES) spawn/$(am__dirstamp) - @rm -f spawn/echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(spawn_echo_server_OBJECTS) $(spawn_echo_server_LDADD) $(LIBS) -spawn/parallel_grep.$(OBJEXT): spawn/$(am__dirstamp) \ - spawn/$(DEPDIR)/$(am__dirstamp) - -spawn/parallel_grep$(EXEEXT): $(spawn_parallel_grep_OBJECTS) $(spawn_parallel_grep_DEPENDENCIES) $(EXTRA_spawn_parallel_grep_DEPENDENCIES) spawn/$(am__dirstamp) - @rm -f spawn/parallel_grep$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(spawn_parallel_grep_OBJECTS) $(spawn_parallel_grep_LDADD) $(LIBS) -ssl/$(am__dirstamp): - @$(MKDIR_P) ssl - @: > ssl/$(am__dirstamp) -ssl/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ssl/$(DEPDIR) - @: > ssl/$(DEPDIR)/$(am__dirstamp) -ssl/client.$(OBJEXT): ssl/$(am__dirstamp) \ - ssl/$(DEPDIR)/$(am__dirstamp) - -ssl/client$(EXEEXT): $(ssl_client_OBJECTS) $(ssl_client_DEPENDENCIES) $(EXTRA_ssl_client_DEPENDENCIES) ssl/$(am__dirstamp) - @rm -f ssl/client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(ssl_client_OBJECTS) $(ssl_client_LDADD) $(LIBS) -ssl/server.$(OBJEXT): ssl/$(am__dirstamp) \ - ssl/$(DEPDIR)/$(am__dirstamp) - -ssl/server$(EXEEXT): $(ssl_server_OBJECTS) $(ssl_server_DEPENDENCIES) $(EXTRA_ssl_server_DEPENDENCIES) ssl/$(am__dirstamp) - @rm -f ssl/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(ssl_server_OBJECTS) $(ssl_server_LDADD) $(LIBS) -timeouts/$(am__dirstamp): - @$(MKDIR_P) timeouts - @: > timeouts/$(am__dirstamp) -timeouts/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) timeouts/$(DEPDIR) - @: > timeouts/$(DEPDIR)/$(am__dirstamp) -timeouts/async_tcp_client.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/async_tcp_client$(EXEEXT): $(timeouts_async_tcp_client_OBJECTS) $(timeouts_async_tcp_client_DEPENDENCIES) $(EXTRA_timeouts_async_tcp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/async_tcp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_async_tcp_client_OBJECTS) $(timeouts_async_tcp_client_LDADD) $(LIBS) -timeouts/blocking_tcp_client.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/blocking_tcp_client$(EXEEXT): $(timeouts_blocking_tcp_client_OBJECTS) $(timeouts_blocking_tcp_client_DEPENDENCIES) $(EXTRA_timeouts_blocking_tcp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/blocking_tcp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_blocking_tcp_client_OBJECTS) $(timeouts_blocking_tcp_client_LDADD) $(LIBS) -timeouts/blocking_token_tcp_client.$(OBJEXT): \ - timeouts/$(am__dirstamp) timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/blocking_token_tcp_client$(EXEEXT): $(timeouts_blocking_token_tcp_client_OBJECTS) $(timeouts_blocking_token_tcp_client_DEPENDENCIES) $(EXTRA_timeouts_blocking_token_tcp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/blocking_token_tcp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_blocking_token_tcp_client_OBJECTS) $(timeouts_blocking_token_tcp_client_LDADD) $(LIBS) -timeouts/blocking_udp_client.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/blocking_udp_client$(EXEEXT): $(timeouts_blocking_udp_client_OBJECTS) $(timeouts_blocking_udp_client_DEPENDENCIES) $(EXTRA_timeouts_blocking_udp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/blocking_udp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_blocking_udp_client_OBJECTS) $(timeouts_blocking_udp_client_LDADD) $(LIBS) -timeouts/server.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/server$(EXEEXT): $(timeouts_server_OBJECTS) $(timeouts_server_DEPENDENCIES) $(EXTRA_timeouts_server_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_server_OBJECTS) $(timeouts_server_LDADD) $(LIBS) -timers/$(am__dirstamp): - @$(MKDIR_P) timers - @: > timers/$(am__dirstamp) -timers/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) timers/$(DEPDIR) - @: > timers/$(DEPDIR)/$(am__dirstamp) -timers/time_t_timer.$(OBJEXT): timers/$(am__dirstamp) \ - timers/$(DEPDIR)/$(am__dirstamp) - -timers/time_t_timer$(EXEEXT): $(timers_time_t_timer_OBJECTS) $(timers_time_t_timer_DEPENDENCIES) $(EXTRA_timers_time_t_timer_DEPENDENCIES) timers/$(am__dirstamp) - @rm -f timers/time_t_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timers_time_t_timer_OBJECTS) $(timers_time_t_timer_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f ../../*.$(OBJEXT) - -rm -f allocation/*.$(OBJEXT) - -rm -f buffers/*.$(OBJEXT) - -rm -f chat/*.$(OBJEXT) - -rm -f echo/*.$(OBJEXT) - -rm -f executors/*.$(OBJEXT) - -rm -f fork/*.$(OBJEXT) - -rm -f futures/*.$(OBJEXT) - -rm -f http/server/*.$(OBJEXT) - -rm -f invocation/*.$(OBJEXT) - -rm -f iostreams/*.$(OBJEXT) - -rm -f local/*.$(OBJEXT) - -rm -f multicast/*.$(OBJEXT) - -rm -f nonblocking/*.$(OBJEXT) - -rm -f operations/*.$(OBJEXT) - -rm -f socks4/*.$(OBJEXT) - -rm -f spawn/*.$(OBJEXT) - -rm -f ssl/*.$(OBJEXT) - -rm -f timeouts/*.$(OBJEXT) - -rm -f timers/*.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@../../$(DEPDIR)/asio.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@../../$(DEPDIR)/asio_ssl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@allocation/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@buffers/$(DEPDIR)/reference_counted.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@chat/$(DEPDIR)/chat_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@chat/$(DEPDIR)/chat_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/async_tcp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/async_udp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_tcp_echo_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_tcp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_udp_echo_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_udp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/actor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/bank_account_1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/bank_account_2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/fork_join.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/pipeline.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/priority_scheduler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@fork/$(DEPDIR)/daemon.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@fork/$(DEPDIR)/process_per_connection.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@futures/$(DEPDIR)/daytime_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/connection.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/connection_manager.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/main.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/mime_types.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/reply.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/request_handler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/request_parser.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@invocation/$(DEPDIR)/prioritised_handlers.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@iostreams/$(DEPDIR)/http_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/connect_pair.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/iostream_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/stream_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/stream_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@multicast/$(DEPDIR)/receiver.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@multicast/$(DEPDIR)/sender.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@nonblocking/$(DEPDIR)/third_party_lib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@operations/$(DEPDIR)/composed_1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@operations/$(DEPDIR)/composed_2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@operations/$(DEPDIR)/composed_3.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@operations/$(DEPDIR)/composed_4.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@operations/$(DEPDIR)/composed_5.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@socks4/$(DEPDIR)/sync_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@spawn/$(DEPDIR)/echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@spawn/$(DEPDIR)/parallel_grep.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@ssl/$(DEPDIR)/client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@ssl/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/async_tcp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/blocking_tcp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/blocking_token_tcp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/blocking_udp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timers/$(DEPDIR)/time_t_timer.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.cpp.o: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) $(LIBRARIES) $(HEADERS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f ../../$(DEPDIR)/$(am__dirstamp) - -rm -f ../../$(am__dirstamp) - -rm -f allocation/$(DEPDIR)/$(am__dirstamp) - -rm -f allocation/$(am__dirstamp) - -rm -f buffers/$(DEPDIR)/$(am__dirstamp) - -rm -f buffers/$(am__dirstamp) - -rm -f chat/$(DEPDIR)/$(am__dirstamp) - -rm -f chat/$(am__dirstamp) - -rm -f echo/$(DEPDIR)/$(am__dirstamp) - -rm -f echo/$(am__dirstamp) - -rm -f executors/$(DEPDIR)/$(am__dirstamp) - -rm -f executors/$(am__dirstamp) - -rm -f fork/$(DEPDIR)/$(am__dirstamp) - -rm -f fork/$(am__dirstamp) - -rm -f futures/$(DEPDIR)/$(am__dirstamp) - -rm -f futures/$(am__dirstamp) - -rm -f http/server/$(DEPDIR)/$(am__dirstamp) - -rm -f http/server/$(am__dirstamp) - -rm -f invocation/$(DEPDIR)/$(am__dirstamp) - -rm -f invocation/$(am__dirstamp) - -rm -f iostreams/$(DEPDIR)/$(am__dirstamp) - -rm -f iostreams/$(am__dirstamp) - -rm -f local/$(DEPDIR)/$(am__dirstamp) - -rm -f local/$(am__dirstamp) - -rm -f multicast/$(DEPDIR)/$(am__dirstamp) - -rm -f multicast/$(am__dirstamp) - -rm -f nonblocking/$(DEPDIR)/$(am__dirstamp) - -rm -f nonblocking/$(am__dirstamp) - -rm -f operations/$(DEPDIR)/$(am__dirstamp) - -rm -f operations/$(am__dirstamp) - -rm -f socks4/$(DEPDIR)/$(am__dirstamp) - -rm -f socks4/$(am__dirstamp) - -rm -f spawn/$(DEPDIR)/$(am__dirstamp) - -rm -f spawn/$(am__dirstamp) - -rm -f ssl/$(DEPDIR)/$(am__dirstamp) - -rm -f ssl/$(am__dirstamp) - -rm -f timeouts/$(DEPDIR)/$(am__dirstamp) - -rm -f timeouts/$(am__dirstamp) - -rm -f timers/$(DEPDIR)/$(am__dirstamp) - -rm -f timers/$(am__dirstamp) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -f ../../$(DEPDIR)/asio.Po - -rm -f ../../$(DEPDIR)/asio_ssl.Po - -rm -f allocation/$(DEPDIR)/server.Po - -rm -f buffers/$(DEPDIR)/reference_counted.Po - -rm -f chat/$(DEPDIR)/chat_client.Po - -rm -f chat/$(DEPDIR)/chat_server.Po - -rm -f echo/$(DEPDIR)/async_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/async_udp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_server.Po - -rm -f executors/$(DEPDIR)/actor.Po - -rm -f executors/$(DEPDIR)/bank_account_1.Po - -rm -f executors/$(DEPDIR)/bank_account_2.Po - -rm -f executors/$(DEPDIR)/fork_join.Po - -rm -f executors/$(DEPDIR)/pipeline.Po - -rm -f executors/$(DEPDIR)/priority_scheduler.Po - -rm -f fork/$(DEPDIR)/daemon.Po - -rm -f fork/$(DEPDIR)/process_per_connection.Po - -rm -f futures/$(DEPDIR)/daytime_client.Po - -rm -f http/server/$(DEPDIR)/connection.Po - -rm -f http/server/$(DEPDIR)/connection_manager.Po - -rm -f http/server/$(DEPDIR)/main.Po - -rm -f http/server/$(DEPDIR)/mime_types.Po - -rm -f http/server/$(DEPDIR)/reply.Po - -rm -f http/server/$(DEPDIR)/request_handler.Po - -rm -f http/server/$(DEPDIR)/request_parser.Po - -rm -f http/server/$(DEPDIR)/server.Po - -rm -f invocation/$(DEPDIR)/prioritised_handlers.Po - -rm -f iostreams/$(DEPDIR)/http_client.Po - -rm -f local/$(DEPDIR)/connect_pair.Po - -rm -f local/$(DEPDIR)/iostream_client.Po - -rm -f local/$(DEPDIR)/stream_client.Po - -rm -f local/$(DEPDIR)/stream_server.Po - -rm -f multicast/$(DEPDIR)/receiver.Po - -rm -f multicast/$(DEPDIR)/sender.Po - -rm -f nonblocking/$(DEPDIR)/third_party_lib.Po - -rm -f operations/$(DEPDIR)/composed_1.Po - -rm -f operations/$(DEPDIR)/composed_2.Po - -rm -f operations/$(DEPDIR)/composed_3.Po - -rm -f operations/$(DEPDIR)/composed_4.Po - -rm -f operations/$(DEPDIR)/composed_5.Po - -rm -f socks4/$(DEPDIR)/sync_client.Po - -rm -f spawn/$(DEPDIR)/echo_server.Po - -rm -f spawn/$(DEPDIR)/parallel_grep.Po - -rm -f ssl/$(DEPDIR)/client.Po - -rm -f ssl/$(DEPDIR)/server.Po - -rm -f timeouts/$(DEPDIR)/async_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_token_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_udp_client.Po - -rm -f timeouts/$(DEPDIR)/server.Po - -rm -f timers/$(DEPDIR)/time_t_timer.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ../../$(DEPDIR)/asio.Po - -rm -f ../../$(DEPDIR)/asio_ssl.Po - -rm -f allocation/$(DEPDIR)/server.Po - -rm -f buffers/$(DEPDIR)/reference_counted.Po - -rm -f chat/$(DEPDIR)/chat_client.Po - -rm -f chat/$(DEPDIR)/chat_server.Po - -rm -f echo/$(DEPDIR)/async_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/async_udp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_server.Po - -rm -f executors/$(DEPDIR)/actor.Po - -rm -f executors/$(DEPDIR)/bank_account_1.Po - -rm -f executors/$(DEPDIR)/bank_account_2.Po - -rm -f executors/$(DEPDIR)/fork_join.Po - -rm -f executors/$(DEPDIR)/pipeline.Po - -rm -f executors/$(DEPDIR)/priority_scheduler.Po - -rm -f fork/$(DEPDIR)/daemon.Po - -rm -f fork/$(DEPDIR)/process_per_connection.Po - -rm -f futures/$(DEPDIR)/daytime_client.Po - -rm -f http/server/$(DEPDIR)/connection.Po - -rm -f http/server/$(DEPDIR)/connection_manager.Po - -rm -f http/server/$(DEPDIR)/main.Po - -rm -f http/server/$(DEPDIR)/mime_types.Po - -rm -f http/server/$(DEPDIR)/reply.Po - -rm -f http/server/$(DEPDIR)/request_handler.Po - -rm -f http/server/$(DEPDIR)/request_parser.Po - -rm -f http/server/$(DEPDIR)/server.Po - -rm -f invocation/$(DEPDIR)/prioritised_handlers.Po - -rm -f iostreams/$(DEPDIR)/http_client.Po - -rm -f local/$(DEPDIR)/connect_pair.Po - -rm -f local/$(DEPDIR)/iostream_client.Po - -rm -f local/$(DEPDIR)/stream_client.Po - -rm -f local/$(DEPDIR)/stream_server.Po - -rm -f multicast/$(DEPDIR)/receiver.Po - -rm -f multicast/$(DEPDIR)/sender.Po - -rm -f nonblocking/$(DEPDIR)/third_party_lib.Po - -rm -f operations/$(DEPDIR)/composed_1.Po - -rm -f operations/$(DEPDIR)/composed_2.Po - -rm -f operations/$(DEPDIR)/composed_3.Po - -rm -f operations/$(DEPDIR)/composed_4.Po - -rm -f operations/$(DEPDIR)/composed_5.Po - -rm -f socks4/$(DEPDIR)/sync_client.Po - -rm -f spawn/$(DEPDIR)/echo_server.Po - -rm -f spawn/$(DEPDIR)/parallel_grep.Po - -rm -f ssl/$(DEPDIR)/client.Po - -rm -f ssl/$(DEPDIR)/server.Po - -rm -f timeouts/$(DEPDIR)/async_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_token_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_udp_client.Po - -rm -f timeouts/$(DEPDIR)/server.Po - -rm -f timers/$(DEPDIR)/time_t_timer.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \ - cscopelist-am ctags ctags-am distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/src/examples/cpp11/allocation/server.cpp b/Sources/Vendor/asio/src/examples/cpp11/allocation/server.cpp deleted file mode 100644 index 7954795..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/allocation/server.cpp +++ /dev/null @@ -1,255 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include "asio.hpp" - -using 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_memory -{ -public: - handler_memory() - : in_use_(false) - { - } - - handler_memory(const handler_memory&) = delete; - handler_memory& operator=(const handler_memory&) = 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_; -}; - -// The allocator to be associated with the handler objects. This allocator only -// needs to satisfy the C++11 minimal allocator requirements. -template -class handler_allocator -{ -public: - using value_type = T; - - explicit handler_allocator(handler_memory& mem) - : memory_(mem) - { - } - - template - handler_allocator(const handler_allocator& other) noexcept - : memory_(other.memory_) - { - } - - bool operator==(const handler_allocator& other) const noexcept - { - return &memory_ == &other.memory_; - } - - bool operator!=(const handler_allocator& other) const noexcept - { - return &memory_ != &other.memory_; - } - - T* allocate(std::size_t n) const - { - return static_cast(memory_.allocate(sizeof(T) * n)); - } - - void deallocate(T* p, std::size_t /*n*/) const - { - return memory_.deallocate(p); - } - -private: - template friend class handler_allocator; - - // The underlying memory. - handler_memory& memory_; -}; - -// Wrapper class template for handler objects to allow handler memory -// allocation to be customised. The allocator_type type and get_allocator() -// member function are used by the asynchronous operations to obtain the -// allocator. Calls to operator() are forwarded to the encapsulated handler. -template -class custom_alloc_handler -{ -public: - using allocator_type = handler_allocator; - - custom_alloc_handler(handler_memory& m, Handler h) - : memory_(m), - handler_(h) - { - } - - allocator_type get_allocator() const noexcept - { - return allocator_type(memory_); - } - - template - void operator()(Args&&... args) - { - handler_(std::forward(args)...); - } - -private: - handler_memory& memory_; - Handler handler_; -}; - -// Helper function to wrap a handler object to add custom allocation. -template -inline custom_alloc_handler make_custom_alloc_handler( - handler_memory& m, Handler h) -{ - return custom_alloc_handler(m, h); -} - -class session - : public std::enable_shared_from_this -{ -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(asio::buffer(data_), - make_custom_alloc_handler(handler_memory_, - [this, self](std::error_code ec, std::size_t length) - { - if (!ec) - { - do_write(length); - } - })); - } - - void do_write(std::size_t length) - { - auto self(shared_from_this()); - asio::async_write(socket_, asio::buffer(data_, length), - make_custom_alloc_handler(handler_memory_, - [this, self](std::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 data_; - - // The memory to use for handler-based custom memory allocation. - handler_memory handler_memory_; -}; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) - { - do_accept(); - } - -private: - void do_accept() - { - acceptor_.async_accept( - [this](std::error_code ec, tcp::socket socket) - { - if (!ec) - { - std::make_shared(std::move(socket))->start(); - } - - do_accept(); - }); - } - - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: server \n"; - return 1; - } - - asio::io_context io_context; - server s(io_context, std::atoi(argv[1])); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/buffers/reference_counted.cpp b/Sources/Vendor/asio/src/examples/cpp11/buffers/reference_counted.cpp deleted file mode 100644 index fb96ac0..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/buffers/reference_counted.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// reference_counted.cpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include - -using 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(data.begin(), data.end())), - buffer_(asio::buffer(*data_)) - { - } - - // Implement the ConstBufferSequence requirements. - typedef asio::const_buffer value_type; - typedef const asio::const_buffer* const_iterator; - const asio::const_buffer* begin() const { return &buffer_; } - const asio::const_buffer* end() const { return &buffer_ + 1; } - -private: - std::shared_ptr > data_; - asio::const_buffer buffer_; -}; - -class session - : public std::enable_shared_from_this -{ -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()); - asio::async_write(socket_, buffer, - [this, self](std::error_code /*ec*/, std::size_t /*length*/) - { - }); - } - - // The socket used to communicate with the client. - tcp::socket socket_; -}; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) - { - do_accept(); - } - -private: - void do_accept() - { - acceptor_.async_accept( - [this](std::error_code ec, tcp::socket socket) - { - if (!ec) - { - std::make_shared(std::move(socket))->start(); - } - - do_accept(); - }); - } - - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: reference_counted \n"; - return 1; - } - - asio::io_context io_context; - - server s(io_context, std::atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/chat/chat_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/chat/chat_client.cpp deleted file mode 100644 index d5747b6..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/chat/chat_client.cpp +++ /dev/null @@ -1,167 +0,0 @@ -// -// chat_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include "asio.hpp" -#include "chat_message.hpp" - -using asio::ip::tcp; - -typedef std::deque chat_message_queue; - -class chat_client -{ -public: - chat_client(asio::io_context& io_context, - const tcp::resolver::results_type& endpoints) - : io_context_(io_context), - socket_(io_context) - { - do_connect(endpoints); - } - - void write(const chat_message& msg) - { - asio::post(io_context_, - [this, msg]() - { - bool write_in_progress = !write_msgs_.empty(); - write_msgs_.push_back(msg); - if (!write_in_progress) - { - do_write(); - } - }); - } - - void close() - { - asio::post(io_context_, [this]() { socket_.close(); }); - } - -private: - void do_connect(const tcp::resolver::results_type& endpoints) - { - asio::async_connect(socket_, endpoints, - [this](std::error_code ec, tcp::endpoint) - { - if (!ec) - { - do_read_header(); - } - }); - } - - void do_read_header() - { - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - [this](std::error_code ec, std::size_t /*length*/) - { - if (!ec && read_msg_.decode_header()) - { - do_read_body(); - } - else - { - socket_.close(); - } - }); - } - - void do_read_body() - { - asio::async_read(socket_, - asio::buffer(read_msg_.body(), read_msg_.body_length()), - [this](std::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() - { - asio::async_write(socket_, - asio::buffer(write_msgs_.front().data(), - write_msgs_.front().length()), - [this](std::error_code ec, std::size_t /*length*/) - { - if (!ec) - { - write_msgs_.pop_front(); - if (!write_msgs_.empty()) - { - do_write(); - } - } - else - { - socket_.close(); - } - }); - } - -private: - asio::io_context& io_context_; - 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 \n"; - return 1; - } - - asio::io_context io_context; - - tcp::resolver resolver(io_context); - auto endpoints = resolver.resolve(argv[1], argv[2]); - chat_client c(io_context, endpoints); - - std::thread t([&io_context](){ io_context.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/Sources/Vendor/asio/src/examples/cpp11/chat/chat_message.hpp b/Sources/Vendor/asio/src/examples/cpp11/chat/chat_message.hpp deleted file mode 100644 index 629105b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/chat/chat_message.hpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// chat_message.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include - -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(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/Sources/Vendor/asio/src/examples/cpp11/chat/chat_server.cpp b/Sources/Vendor/asio/src/examples/cpp11/chat/chat_server.cpp deleted file mode 100644 index 9467f02..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/chat/chat_server.cpp +++ /dev/null @@ -1,227 +0,0 @@ -// -// chat_server.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include "asio.hpp" -#include "chat_message.hpp" - -using asio::ip::tcp; - -//---------------------------------------------------------------------- - -typedef std::deque chat_message_queue; - -//---------------------------------------------------------------------- - -class chat_participant -{ -public: - virtual ~chat_participant() {} - virtual void deliver(const chat_message& msg) = 0; -}; - -typedef std::shared_ptr 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 participants_; - enum { max_recent_msgs = 100 }; - chat_message_queue recent_msgs_; -}; - -//---------------------------------------------------------------------- - -class chat_session - : public chat_participant, - public std::enable_shared_from_this -{ -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()); - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - [this, self](std::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()); - asio::async_read(socket_, - asio::buffer(read_msg_.body(), read_msg_.body_length()), - [this, self](std::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()); - asio::async_write(socket_, - asio::buffer(write_msgs_.front().data(), - write_msgs_.front().length()), - [this, self](std::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(asio::io_context& io_context, - const tcp::endpoint& endpoint) - : acceptor_(io_context, endpoint) - { - do_accept(); - } - -private: - void do_accept() - { - acceptor_.async_accept( - [this](std::error_code ec, tcp::socket socket) - { - if (!ec) - { - std::make_shared(std::move(socket), room_)->start(); - } - - do_accept(); - }); - } - - tcp::acceptor acceptor_; - chat_room room_; -}; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - if (argc < 2) - { - std::cerr << "Usage: chat_server [ ...]\n"; - return 1; - } - - asio::io_context io_context; - - std::list servers; - for (int i = 1; i < argc; ++i) - { - tcp::endpoint endpoint(tcp::v4(), std::atoi(argv[i])); - servers.emplace_back(io_context, endpoint); - } - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp deleted file mode 100644 index c0cdce1..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp +++ /dev/null @@ -1,114 +0,0 @@ -// -// async_tcp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -class session - : public std::enable_shared_from_this -{ -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(asio::buffer(data_, max_length), - [this, self](std::error_code ec, std::size_t length) - { - if (!ec) - { - do_write(length); - } - }); - } - - void do_write(std::size_t length) - { - auto self(shared_from_this()); - asio::async_write(socket_, asio::buffer(data_, length), - [this, self](std::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(asio::io_context& io_context, short port) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) - { - do_accept(); - } - -private: - void do_accept() - { - acceptor_.async_accept( - [this](std::error_code ec, tcp::socket socket) - { - if (!ec) - { - std::make_shared(std::move(socket))->start(); - } - - do_accept(); - }); - } - - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: async_tcp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - server s(io_context, std::atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp deleted file mode 100644 index 02ff360..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp +++ /dev/null @@ -1,82 +0,0 @@ -// -// async_udp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include "asio.hpp" - -using asio::ip::udp; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : socket_(io_context, udp::endpoint(udp::v4(), port)) - { - do_receive(); - } - - void do_receive() - { - socket_.async_receive_from( - asio::buffer(data_, max_length), sender_endpoint_, - [this](std::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( - asio::buffer(data_, length), sender_endpoint_, - [this](std::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 \n"; - return 1; - } - - asio::io_context io_context; - - server s(io_context, std::atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp deleted file mode 100644 index 539843a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp +++ /dev/null @@ -1,55 +0,0 @@ -// -// blocking_tcp_echo_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: blocking_tcp_echo_client \n"; - return 1; - } - - asio::io_context io_context; - - tcp::socket s(io_context); - tcp::resolver resolver(io_context); - 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); - asio::write(s, asio::buffer(request, request_length)); - - char reply[max_length]; - size_t reply_length = asio::read(s, - 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/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp deleted file mode 100644 index c9a5f76..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp +++ /dev/null @@ -1,74 +0,0 @@ -// -// blocking_tcp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -const int max_length = 1024; - -void session(tcp::socket sock) -{ - try - { - for (;;) - { - char data[max_length]; - - asio::error_code error; - size_t length = sock.read_some(asio::buffer(data), error); - if (error == asio::error::eof) - break; // Connection closed cleanly by peer. - else if (error) - throw asio::system_error(error); // Some other error. - - asio::write(sock, asio::buffer(data, length)); - } - } - catch (std::exception& e) - { - std::cerr << "Exception in thread: " << e.what() << "\n"; - } -} - -void server(asio::io_context& io_context, unsigned short port) -{ - tcp::acceptor a(io_context, tcp::endpoint(tcp::v4(), port)); - for (;;) - { - std::thread(session, a.accept()).detach(); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: blocking_tcp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - server(io_context, std::atoi(argv[1])); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp deleted file mode 100644 index 6953f5d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// -// blocking_udp_echo_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" - -using asio::ip::udp; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: blocking_udp_echo_client \n"; - return 1; - } - - asio::io_context io_context; - - udp::socket s(io_context, udp::endpoint(udp::v4(), 0)); - - udp::resolver resolver(io_context); - udp::resolver::results_type endpoints = - 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(asio::buffer(request, request_length), *endpoints.begin()); - - char reply[max_length]; - udp::endpoint sender_endpoint; - size_t reply_length = s.receive_from( - 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/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp deleted file mode 100644 index 6e4701b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// blocking_udp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include "asio.hpp" - -using asio::ip::udp; - -enum { max_length = 1024 }; - -void server(asio::io_context& io_context, unsigned short port) -{ - udp::socket sock(io_context, udp::endpoint(udp::v4(), port)); - for (;;) - { - char data[max_length]; - udp::endpoint sender_endpoint; - size_t length = sock.receive_from( - asio::buffer(data, max_length), sender_endpoint); - sock.send_to(asio::buffer(data, length), sender_endpoint); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: blocking_udp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - server(io_context, std::atoi(argv[1])); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/executors/actor.cpp b/Sources/Vendor/asio/src/examples/cpp11/executors/actor.cpp deleted file mode 100644 index 22dbf20..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/executors/actor.cpp +++ /dev/null @@ -1,286 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::defer; -using asio::executor; -using asio::post; -using asio::strand; -using asio::system_executor; - -//------------------------------------------------------------------------------ -// A tiny actor framework -// ~~~~~~~~~~~~~~~~~~~~~~ - -class actor; - -// Used to identify the sender and recipient of messages. -typedef actor* actor_address; - -// Base class for all registered message handlers. -class message_handler_base -{ -public: - virtual ~message_handler_base() {} - - // Used to determine which message handlers receive an incoming message. - virtual const std::type_info& message_id() const = 0; -}; - -// Base class for a handler for a specific message type. -template -class message_handler : public message_handler_base -{ -public: - // Handle an incoming message. - virtual void handle_message(Message msg, actor_address from) = 0; -}; - -// Concrete message handler for a specific message type. -template -class mf_message_handler : public message_handler -{ -public: - // Construct a message handler to invoke the specified member function. - mf_message_handler(void (Actor::* mf)(Message, actor_address), Actor* a) - : function_(mf), actor_(a) - { - } - - // Used to determine which message handlers receive an incoming message. - virtual const std::type_info& message_id() const - { - return typeid(Message); - } - - // Handle an incoming message. - virtual void handle_message(Message msg, actor_address from) - { - (actor_->*function_)(std::move(msg), from); - } - - // Determine whether the message handler represents the specified function. - bool is_function(void (Actor::* mf)(Message, actor_address)) const - { - return mf == function_; - } - -private: - void (Actor::* function_)(Message, actor_address); - Actor* actor_; -}; - -// Base class for all actors. -class actor -{ -public: - virtual ~actor() - { - } - - // Obtain the actor's address for use as a message sender or recipient. - actor_address address() - { - return this; - } - - // Send a message from one actor to another. - template - friend void send(Message msg, actor_address from, actor_address to) - { - // Execute the message handler in the context of the target's executor. - post(to->executor_, - [=] - { - to->call_handler(std::move(msg), from); - }); - } - -protected: - // Construct the actor to use the specified executor for all message handlers. - actor(executor e) - : executor_(std::move(e)) - { - } - - // Register a handler for a specific message type. Duplicates are permitted. - template - void register_handler(void (Actor::* mf)(Message, actor_address)) - { - handlers_.push_back( - std::make_shared>( - mf, static_cast(this))); - } - - // Deregister a handler. Removes only the first matching handler. - template - void deregister_handler(void (Actor::* mf)(Message, actor_address)) - { - const std::type_info& id = typeid(message_handler); - for (auto iter = handlers_.begin(); iter != handlers_.end(); ++iter) - { - if ((*iter)->message_id() == id) - { - auto mh = static_cast*>(iter->get()); - if (mh->is_function(mf)) - { - handlers_.erase(iter); - return; - } - } - } - } - - // Send a message from within a message handler. - template - void tail_send(Message msg, actor_address to) - { - // Execute the message handler in the context of the target's executor. - actor* from = this; - defer(to->executor_, - [=] - { - to->call_handler(std::move(msg), from); - }); - } - -private: - // Find the matching message handlers, if any, and call them. - template - void call_handler(Message msg, actor_address from) - { - const std::type_info& message_id = typeid(Message); - for (auto& h: handlers_) - { - if (h->message_id() == message_id) - { - auto mh = static_cast*>(h.get()); - mh->handle_message(msg, from); - } - } - } - - // All messages associated with a single actor object should be processed - // non-concurrently. We use a strand to ensure non-concurrent execution even - // if the underlying executor may use multiple threads. - strand executor_; - - std::vector> handlers_; -}; - -// A concrete actor that allows synchronous message retrieval. -template -class receiver : public actor -{ -public: - receiver() - : actor(system_executor()) - { - register_handler(&receiver::message_handler); - } - - // Block until a message has been received. - Message wait() - { - std::unique_lock lock(mutex_); - condition_.wait(lock, [this]{ return !message_queue_.empty(); }); - Message msg(std::move(message_queue_.front())); - message_queue_.pop_front(); - return msg; - } - -private: - // Handle a new message by adding it to the queue and waking a waiter. - void message_handler(Message msg, actor_address /* from */) - { - std::lock_guard lock(mutex_); - message_queue_.push_back(std::move(msg)); - condition_.notify_one(); - } - - std::mutex mutex_; - std::condition_variable condition_; - std::deque message_queue_; -}; - -//------------------------------------------------------------------------------ - -#include -#include - -using asio::thread_pool; - -class member : public actor -{ -public: - explicit member(executor e) - : actor(std::move(e)) - { - register_handler(&member::init_handler); - } - -private: - void init_handler(actor_address next, actor_address from) - { - next_ = next; - caller_ = from; - - register_handler(&member::token_handler); - deregister_handler(&member::init_handler); - } - - void token_handler(int token, actor_address /*from*/) - { - int msg(token); - actor_address to(caller_); - - if (token > 0) - { - msg = token - 1; - to = next_; - } - - tail_send(msg, to); - } - - actor_address next_; - actor_address caller_; -}; - -int main() -{ - const std::size_t num_threads = 16; - const int num_hops = 50000000; - const std::size_t num_actors = 503; - const int token_value = (num_hops + num_actors - 1) / num_actors; - const std::size_t actors_per_thread = num_actors / num_threads; - - struct single_thread_pool : thread_pool { single_thread_pool() : thread_pool(1) {} }; - single_thread_pool pools[num_threads]; - std::vector> members(num_actors); - receiver rcvr; - - // Create the member actors. - for (std::size_t i = 0; i < num_actors; ++i) - members[i] = std::make_shared(pools[(i / actors_per_thread) % num_threads].get_executor()); - - // Initialise the actors by passing each one the address of the next actor in the ring. - for (std::size_t i = num_actors, next_i = 0; i > 0; next_i = --i) - send(members[next_i]->address(), rcvr.address(), members[i - 1]->address()); - - // Send exactly one token to each actor, all with the same initial value, rounding up if required. - for (std::size_t i = 0; i < num_actors; ++i) - send(token_value, rcvr.address(), members[i]->address()); - - // Wait for all signal messages, indicating the tokens have all reached zero. - for (std::size_t i = 0; i < num_actors; ++i) - rcvr.wait(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/executors/bank_account_1.cpp b/Sources/Vendor/asio/src/examples/cpp11/executors/bank_account_1.cpp deleted file mode 100644 index 85f7d95..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/executors/bank_account_1.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include - -using asio::post; -using asio::thread_pool; - -// Traditional active object pattern. -// Member functions do not block. - -class bank_account -{ - int balance_ = 0; - mutable thread_pool pool_{1}; - -public: - void deposit(int amount) - { - post(pool_, [=] - { - balance_ += amount; - }); - } - - void withdraw(int amount) - { - post(pool_, [=] - { - if (balance_ >= amount) - balance_ -= amount; - }); - } - - void print_balance() const - { - post(pool_, [=] - { - std::cout << "balance = " << balance_ << "\n"; - }); - } - - ~bank_account() - { - pool_.join(); - } -}; - -int main() -{ - bank_account acct; - acct.deposit(20); - acct.withdraw(10); - acct.print_balance(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/executors/bank_account_2.cpp b/Sources/Vendor/asio/src/examples/cpp11/executors/bank_account_2.cpp deleted file mode 100644 index b646cb2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/executors/bank_account_2.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include -#include - -using asio::post; -using asio::thread_pool; -using asio::use_future; - -// Traditional active object pattern. -// Member functions block until operation is finished. - -class bank_account -{ - int balance_ = 0; - mutable thread_pool pool_{1}; - -public: - void deposit(int amount) - { - post(pool_, - use_future([=] - { - balance_ += amount; - })).get(); - } - - void withdraw(int amount) - { - post(pool_, - use_future([=] - { - if (balance_ >= amount) - balance_ -= amount; - })).get(); - } - - int balance() const - { - return post(pool_, - use_future([=] - { - return balance_; - })).get(); - } -}; - -int main() -{ - bank_account acct; - acct.deposit(20); - acct.withdraw(10); - std::cout << "balance = " << acct.balance() << "\n"; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/executors/fork_join.cpp b/Sources/Vendor/asio/src/examples/cpp11/executors/fork_join.cpp deleted file mode 100644 index 12bcfb1..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/executors/fork_join.cpp +++ /dev/null @@ -1,328 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::dispatch; -using asio::execution_context; -using asio::thread_pool; - -// A fixed-size thread pool used to implement fork/join semantics. Functions -// are scheduled using a simple FIFO queue. Implementing work stealing, or -// using a queue based on atomic operations, are left as tasks for the reader. -class fork_join_pool : public execution_context -{ -public: - // The constructor starts a thread pool with the specified number of threads. - // Note that the thread_count is not a fixed limit on the pool's concurrency. - // Additional threads may temporarily be added to the pool if they join a - // fork_executor. - explicit fork_join_pool( - std::size_t thread_count = std::thread::hardware_concurrency() * 2) - : use_count_(1), - threads_(thread_count) - { - try - { - // Ask each thread in the pool to dequeue and execute functions until - // it is time to shut down, i.e. the use count is zero. - for (thread_count_ = 0; thread_count_ < thread_count; ++thread_count_) - { - dispatch(threads_, [&] - { - std::unique_lock lock(mutex_); - while (use_count_ > 0) - if (!execute_next(lock)) - condition_.wait(lock); - }); - } - } - catch (...) - { - stop_threads(); - threads_.join(); - throw; - } - } - - // The destructor waits for the pool to finish executing functions. - ~fork_join_pool() - { - stop_threads(); - threads_.join(); - } - -private: - friend class fork_executor; - - // The base for all functions that are queued in the pool. - struct function_base - { - std::shared_ptr work_count_; - void (*execute_)(std::shared_ptr& p); - }; - - // Execute the next function from the queue, if any. Returns true if a - // function was executed, and false if the queue was empty. - bool execute_next(std::unique_lock& lock) - { - if (queue_.empty()) - return false; - auto p(queue_.front()); - queue_.pop(); - lock.unlock(); - execute(lock, p); - return true; - } - - // Execute a function and decrement the outstanding work. - void execute(std::unique_lock& lock, - std::shared_ptr& p) - { - std::shared_ptr work_count(std::move(p->work_count_)); - try - { - p->execute_(p); - lock.lock(); - do_work_finished(work_count); - } - catch (...) - { - lock.lock(); - do_work_finished(work_count); - throw; - } - } - - // Increment outstanding work. - void do_work_started(const std::shared_ptr& work_count) noexcept - { - if (++(*work_count) == 1) - ++use_count_; - } - - // Decrement outstanding work. Notify waiting threads if we run out. - void do_work_finished(const std::shared_ptr& work_count) noexcept - { - if (--(*work_count) == 0) - { - --use_count_; - condition_.notify_all(); - } - } - - // Dispatch a function, executing it immediately if the queue is already - // loaded. Otherwise adds the function to the queue and wakes a thread. - void do_dispatch(std::shared_ptr p, - const std::shared_ptr& work_count) - { - std::unique_lock lock(mutex_); - if (queue_.size() > thread_count_ * 16) - { - do_work_started(work_count); - lock.unlock(); - execute(lock, p); - } - else - { - queue_.push(p); - do_work_started(work_count); - condition_.notify_one(); - } - } - - // Add a function to the queue and wake a thread. - void do_post(std::shared_ptr p, - const std::shared_ptr& work_count) - { - std::lock_guard lock(mutex_); - queue_.push(p); - do_work_started(work_count); - condition_.notify_one(); - } - - // Ask all threads to shut down. - void stop_threads() - { - std::lock_guard lock(mutex_); - --use_count_; - condition_.notify_all(); - } - - std::mutex mutex_; - std::condition_variable condition_; - std::queue> queue_; - std::size_t use_count_; - std::size_t thread_count_; - thread_pool threads_; -}; - -// A class that satisfies the Executor requirements. Every function or piece of -// work associated with a fork_executor is part of a single, joinable group. -class fork_executor -{ -public: - fork_executor(fork_join_pool& ctx) - : context_(ctx), - work_count_(std::make_shared(0)) - { - } - - fork_join_pool& context() const noexcept - { - return context_; - } - - void on_work_started() const noexcept - { - std::lock_guard lock(context_.mutex_); - context_.do_work_started(work_count_); - } - - void on_work_finished() const noexcept - { - std::lock_guard lock(context_.mutex_); - context_.do_work_finished(work_count_); - } - - template - void dispatch(Func&& f, const Alloc& a) const - { - auto p(std::allocate_shared>( - typename std::allocator_traits::template rebind_alloc(a), - std::move(f), work_count_)); - context_.do_dispatch(p, work_count_); - } - - template - void post(Func f, const Alloc& a) const - { - auto p(std::allocate_shared>( - typename std::allocator_traits::template rebind_alloc(a), - std::move(f), work_count_)); - context_.do_post(p, work_count_); - } - - template - void defer(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - friend bool operator==(const fork_executor& a, - const fork_executor& b) noexcept - { - return a.work_count_ == b.work_count_; - } - - friend bool operator!=(const fork_executor& a, - const fork_executor& b) noexcept - { - return a.work_count_ != b.work_count_; - } - - // Block until all work associated with the executor is complete. While it is - // waiting, the thread may be borrowed to execute functions from the queue. - void join() const - { - std::unique_lock lock(context_.mutex_); - while (*work_count_ > 0) - if (!context_.execute_next(lock)) - context_.condition_.wait(lock); - } - -private: - template - struct function : fork_join_pool::function_base - { - explicit function(Func f, const std::shared_ptr& w) - : function_(std::move(f)) - { - work_count_ = w; - execute_ = [](std::shared_ptr& p) - { - Func tmp(std::move(static_cast(p.get())->function_)); - p.reset(); - tmp(); - }; - } - - Func function_; - }; - - fork_join_pool& context_; - std::shared_ptr work_count_; -}; - -// Helper class to automatically join a fork_executor when exiting a scope. -class join_guard -{ -public: - explicit join_guard(const fork_executor& ex) : ex_(ex) {} - join_guard(const join_guard&) = delete; - join_guard(join_guard&&) = delete; - ~join_guard() { ex_.join(); } - -private: - fork_executor ex_; -}; - -//------------------------------------------------------------------------------ - -#include -#include -#include -#include - -fork_join_pool pool; - -template -void fork_join_sort(Iterator begin, Iterator end) -{ - std::size_t n = end - begin; - if (n > 32768) - { - { - fork_executor fork(pool); - join_guard join(fork); - dispatch(fork, [=]{ fork_join_sort(begin, begin + n / 2); }); - dispatch(fork, [=]{ fork_join_sort(begin + n / 2, end); }); - } - std::inplace_merge(begin, begin + n / 2, end); - } - else - { - std::sort(begin, end); - } -} - -int main(int argc, char* argv[]) -{ - if (argc != 2) - { - std::cerr << "Usage: fork_join \n"; - return 1; - } - - std::vector vec(std::atoll(argv[1])); - std::iota(vec.begin(), vec.end(), 0); - - std::random_device rd; - std::mt19937 g(rd()); - std::shuffle(vec.begin(), vec.end(), g); - - std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now(); - - fork_join_sort(vec.begin(), vec.end()); - - std::chrono::steady_clock::duration elapsed = std::chrono::steady_clock::now() - start; - - std::cout << "sort took "; - std::cout << std::chrono::duration_cast(elapsed).count(); - std::cout << " microseconds" << std::endl; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/executors/pipeline.cpp b/Sources/Vendor/asio/src/examples/cpp11/executors/pipeline.cpp deleted file mode 100644 index fda0c9b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/executors/pipeline.cpp +++ /dev/null @@ -1,299 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::execution_context; -using asio::executor_binder; -using asio::get_associated_executor; -using asio::post; -using asio::system_executor; -using asio::use_future; -using asio::use_service; - -// An executor that launches a new thread for each function submitted to it. -// This class satisfies the Executor requirements. -class thread_executor -{ -private: - // Service to track all threads started through a thread_executor. - class thread_bag : public execution_context::service - { - public: - typedef thread_bag key_type; - - explicit thread_bag(execution_context& ctx) - : execution_context::service(ctx) - { - } - - void add_thread(std::thread&& t) - { - std::unique_lock lock(mutex_); - threads_.push_back(std::move(t)); - } - - private: - virtual void shutdown() - { - for (auto& t : threads_) - t.join(); - } - - std::mutex mutex_; - std::vector threads_; - }; - -public: - execution_context& context() const noexcept - { - return system_executor().context(); - } - - void on_work_started() const noexcept - { - // This executor doesn't count work. - } - - void on_work_finished() const noexcept - { - // This executor doesn't count work. - } - - template - void dispatch(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - template - void post(Func f, const Alloc&) const - { - thread_bag& bag = use_service(context()); - bag.add_thread(std::thread(std::move(f))); - } - - template - void defer(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - friend bool operator==(const thread_executor&, - const thread_executor&) noexcept - { - return true; - } - - friend bool operator!=(const thread_executor&, - const thread_executor&) noexcept - { - return false; - } -}; - -// Base class for all thread-safe queue implementations. -class queue_impl_base -{ - template friend class queue_front; - template friend class queue_back; - std::mutex mutex_; - std::condition_variable condition_; - bool stop_ = false; -}; - -// Underlying implementation of a thread-safe queue, shared between the -// queue_front and queue_back classes. -template -class queue_impl : public queue_impl_base -{ - template friend class queue_front; - template friend class queue_back; - std::queue queue_; -}; - -// The front end of a queue between consecutive pipeline stages. -template -class queue_front -{ -public: - typedef T value_type; - - explicit queue_front(std::shared_ptr> impl) - : impl_(impl) - { - } - - void push(T t) - { - std::unique_lock lock(impl_->mutex_); - impl_->queue_.push(std::move(t)); - impl_->condition_.notify_one(); - } - - void stop() - { - std::unique_lock lock(impl_->mutex_); - impl_->stop_ = true; - impl_->condition_.notify_one(); - } - -private: - std::shared_ptr> impl_; -}; - -// The back end of a queue between consecutive pipeline stages. -template -class queue_back -{ -public: - typedef T value_type; - - explicit queue_back(std::shared_ptr> impl) - : impl_(impl) - { - } - - bool pop(T& t) - { - std::unique_lock lock(impl_->mutex_); - while (impl_->queue_.empty() && !impl_->stop_) - impl_->condition_.wait(lock); - if (!impl_->queue_.empty()) - { - t = impl_->queue_.front(); - impl_->queue_.pop(); - return true; - } - return false; - } - -private: - std::shared_ptr> impl_; -}; - -// Launch the last stage in a pipeline. -template -std::future pipeline(queue_back in, F f) -{ - // Get the function's associated executor, defaulting to thread_executor. - auto ex = get_associated_executor(f, thread_executor()); - - // Run the function, and as we're the last stage return a future so that the - // caller can wait for the pipeline to finish. - return post(ex, use_future([in, f]() mutable { f(in); })); -} - -// Launch an intermediate stage in a pipeline. -template -std::future pipeline(queue_back in, F f, Tail... t) -{ - // Determine the output queue type. - typedef typename executor_binder::second_argument_type::value_type output_value_type; - - // Create the output queue and its implementation. - auto out_impl = std::make_shared>(); - queue_front out(out_impl); - queue_back next_in(out_impl); - - // Get the function's associated executor, defaulting to thread_executor. - auto ex = get_associated_executor(f, thread_executor()); - - // Run the function. - post(ex, [in, out, f]() mutable - { - f(in, out); - out.stop(); - }); - - // Launch the rest of the pipeline. - return pipeline(next_in, std::move(t)...); -} - -// Launch the first stage in a pipeline. -template -std::future pipeline(F f, Tail... t) -{ - // Determine the output queue type. - typedef typename executor_binder::argument_type::value_type output_value_type; - - // Create the output queue and its implementation. - auto out_impl = std::make_shared>(); - queue_front out(out_impl); - queue_back next_in(out_impl); - - // Get the function's associated executor, defaulting to thread_executor. - auto ex = get_associated_executor(f, thread_executor()); - - // Run the function. - post(ex, [out, f]() mutable - { - f(out); - out.stop(); - }); - - // Launch the rest of the pipeline. - return pipeline(next_in, std::move(t)...); -} - -//------------------------------------------------------------------------------ - -#include -#include -#include - -using asio::bind_executor; -using asio::thread_pool; - -void reader(queue_front out) -{ - std::string line; - while (std::getline(std::cin, line)) - out.push(line); -} - -void filter(queue_back in, queue_front out) -{ - std::string line; - while (in.pop(line)) - if (line.length() > 5) - out.push(line); -} - -void upper(queue_back in, queue_front out) -{ - std::string line; - while (in.pop(line)) - { - std::string new_line; - for (char c : line) - new_line.push_back(std::toupper(c)); - out.push(new_line); - } -} - -void writer(queue_back in) -{ - std::size_t count = 0; - std::string line; - while (in.pop(line)) - std::cout << count++ << ": " << line << std::endl; -} - -int main() -{ - thread_pool pool; - - auto f = pipeline(reader, filter, bind_executor(pool, upper), writer); - f.wait(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/executors/priority_scheduler.cpp b/Sources/Vendor/asio/src/examples/cpp11/executors/priority_scheduler.cpp deleted file mode 100644 index fb38fa2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/executors/priority_scheduler.cpp +++ /dev/null @@ -1,168 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -using asio::dispatch; -using asio::execution_context; - -class priority_scheduler : public execution_context -{ -public: - // A class that satisfies the Executor requirements. - class executor_type - { - public: - executor_type(priority_scheduler& ctx, int pri) noexcept - : context_(ctx), priority_(pri) - { - } - - priority_scheduler& context() const noexcept - { - return context_; - } - - void on_work_started() const noexcept - { - // This executor doesn't count work. Instead, the scheduler simply runs - // until explicitly stopped. - } - - void on_work_finished() const noexcept - { - // This executor doesn't count work. Instead, the scheduler simply runs - // until explicitly stopped. - } - - template - void dispatch(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - template - void post(Func f, const Alloc& a) const - { - auto p(std::allocate_shared>( - typename std::allocator_traits< - Alloc>::template rebind_alloc(a), - priority_, std::move(f))); - std::lock_guard lock(context_.mutex_); - context_.queue_.push(p); - context_.condition_.notify_one(); - } - - template - void defer(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - friend bool operator==(const executor_type& a, - const executor_type& b) noexcept - { - return &a.context_ == &b.context_; - } - - friend bool operator!=(const executor_type& a, - const executor_type& b) noexcept - { - return &a.context_ != &b.context_; - } - - private: - priority_scheduler& context_; - int priority_; - }; - - executor_type get_executor(int pri = 0) noexcept - { - return executor_type(*const_cast(this), pri); - } - - void run() - { - std::unique_lock lock(mutex_); - for (;;) - { - condition_.wait(lock, [&]{ return stopped_ || !queue_.empty(); }); - if (stopped_) - return; - auto p(queue_.top()); - queue_.pop(); - lock.unlock(); - p->execute_(p); - lock.lock(); - } - } - - void stop() - { - std::lock_guard lock(mutex_); - stopped_ = true; - condition_.notify_all(); - } - -private: - struct item_base - { - int priority_; - void (*execute_)(std::shared_ptr&); - }; - - template - struct item : item_base - { - item(int pri, Func f) : function_(std::move(f)) - { - priority_ = pri; - execute_ = [](std::shared_ptr& p) - { - Func tmp(std::move(static_cast(p.get())->function_)); - p.reset(); - tmp(); - }; - } - - Func function_; - }; - - struct item_comp - { - bool operator()( - const std::shared_ptr& a, - const std::shared_ptr& b) - { - return a->priority_ < b->priority_; - } - }; - - std::mutex mutex_; - std::condition_variable condition_; - std::priority_queue< - std::shared_ptr, - std::vector>, - item_comp> queue_; - bool stopped_ = false; -}; - -int main() -{ - priority_scheduler sched; - auto low = sched.get_executor(0); - auto med = sched.get_executor(1); - auto high = sched.get_executor(2); - dispatch(low, []{ std::cout << "1\n"; }); - dispatch(low, []{ std::cout << "11\n"; }); - dispatch(med, []{ std::cout << "2\n"; }); - dispatch(med, []{ std::cout << "22\n"; }); - dispatch(high, []{ std::cout << "3\n"; }); - dispatch(high, []{ std::cout << "33\n"; }); - dispatch(high, []{ std::cout << "333\n"; }); - dispatch(sched.get_executor(-1), [&]{ sched.stop(); }); - sched.run(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/fork/daemon.cpp b/Sources/Vendor/asio/src/examples/cpp11/fork/daemon.cpp deleted file mode 100644 index 894730d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/fork/daemon.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// -// daemon.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::udp; - -class udp_daytime_server -{ -public: - udp_daytime_server(asio::io_context& io_context) - : socket_(io_context, {udp::v4(), 13}) - { - receive(); - } - -private: - void receive() - { - socket_.async_receive_from( - asio::buffer(recv_buffer_), remote_endpoint_, - [this](std::error_code ec, std::size_t /*n*/) - { - if (!ec) - { - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - std::string message = ctime(&now); - - std::error_code ignored_ec; - socket_.send_to(asio::buffer(message), - remote_endpoint_, 0, ignored_ec); - } - - receive(); - }); - } - - udp::socket socket_; - udp::endpoint remote_endpoint_; - std::array recv_buffer_; -}; - -int main() -{ - try - { - asio::io_context io_context; - - // Initialise the server before becoming a daemon. If the process is - // started from a shell, this means any errors will be reported back to the - // user. - udp_daytime_server server(io_context); - - // Register signal handlers so that the daemon may be shut down. You may - // also want to register for other signals, such as SIGHUP to trigger a - // re-read of a configuration file. - asio::signal_set signals(io_context, SIGINT, SIGTERM); - signals.async_wait( - [&](std::error_code /*ec*/, int /*signo*/) - { - io_context.stop(); - }); - - // Inform the io_context that we are about to become a daemon. The - // io_context cleans up any internal resources, such as threads, that may - // interfere with forking. - io_context.notify_fork(asio::io_context::fork_prepare); - - // Fork the process and have the parent exit. If the process was started - // from a shell, this returns control to the user. Forking a new process is - // also a prerequisite for the subsequent call to setsid(). - if (pid_t pid = fork()) - { - if (pid > 0) - { - // We're in the parent process and need to exit. - // - // When the exit() function is used, the program terminates without - // invoking local variables' destructors. Only global variables are - // destroyed. As the io_context object is a local variable, this means - // we do not have to call: - // - // io_context.notify_fork(asio::io_context::fork_parent); - // - // However, this line should be added before each call to exit() if - // using a global io_context object. An additional call: - // - // io_context.notify_fork(asio::io_context::fork_prepare); - // - // should also precede the second fork(). - exit(0); - } - else - { - syslog(LOG_ERR | LOG_USER, "First fork failed: %m"); - return 1; - } - } - - // Make the process a new session leader. This detaches it from the - // terminal. - setsid(); - - // A process inherits its working directory from its parent. This could be - // on a mounted filesystem, which means that the running daemon would - // prevent this filesystem from being unmounted. Changing to the root - // directory avoids this problem. - chdir("/"); - - // The file mode creation mask is also inherited from the parent process. - // We don't want to restrict the permissions on files created by the - // daemon, so the mask is cleared. - umask(0); - - // A second fork ensures the process cannot acquire a controlling terminal. - if (pid_t pid = fork()) - { - if (pid > 0) - { - exit(0); - } - else - { - syslog(LOG_ERR | LOG_USER, "Second fork failed: %m"); - return 1; - } - } - - // Close the standard streams. This decouples the daemon from the terminal - // that started it. - close(0); - close(1); - close(2); - - // We don't want the daemon to have any standard input. - if (open("/dev/null", O_RDONLY) < 0) - { - syslog(LOG_ERR | LOG_USER, "Unable to open /dev/null: %m"); - return 1; - } - - // Send standard output to a log file. - const char* output = "/tmp/asio.daemon.out"; - const int flags = O_WRONLY | O_CREAT | O_APPEND; - const mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH; - if (open(output, flags, mode) < 0) - { - syslog(LOG_ERR | LOG_USER, "Unable to open output file %s: %m", output); - return 1; - } - - // Also send standard error to the same log file. - if (dup(1) < 0) - { - syslog(LOG_ERR | LOG_USER, "Unable to dup output descriptor: %m"); - return 1; - } - - // Inform the io_context that we have finished becoming a daemon. The - // io_context uses this opportunity to create any internal file descriptors - // that need to be private to the new process. - io_context.notify_fork(asio::io_context::fork_child); - - // The io_context can now be used normally. - syslog(LOG_INFO | LOG_USER, "Daemon started"); - io_context.run(); - syslog(LOG_INFO | LOG_USER, "Daemon stopped"); - } - catch (std::exception& e) - { - syslog(LOG_ERR | LOG_USER, "Exception: %s", e.what()); - std::cerr << "Exception: " << e.what() << std::endl; - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/fork/process_per_connection.cpp b/Sources/Vendor/asio/src/examples/cpp11/fork/process_per_connection.cpp deleted file mode 100644 index d256b7a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/fork/process_per_connection.cpp +++ /dev/null @@ -1,162 +0,0 @@ -// -// process_per_connection.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -class server -{ -public: - server(asio::io_context& io_context, unsigned short port) - : io_context_(io_context), - signal_(io_context, SIGCHLD), - acceptor_(io_context, {tcp::v4(), port}), - socket_(io_context) - { - wait_for_signal(); - accept(); - } - -private: - void wait_for_signal() - { - signal_.async_wait( - [this](std::error_code /*ec*/, int /*signo*/) - { - // Only the parent process should check for this signal. We can - // determine whether we are in the parent by checking if the acceptor - // is still open. - if (acceptor_.is_open()) - { - // Reap completed child processes so that we don't end up with - // zombies. - int status = 0; - while (waitpid(-1, &status, WNOHANG) > 0) {} - - wait_for_signal(); - } - }); - } - - void accept() - { - acceptor_.async_accept( - [this](std::error_code ec, tcp::socket new_socket) - { - if (!ec) - { - // Take ownership of the newly accepted socket. - socket_ = std::move(new_socket); - - // Inform the io_context that we are about to fork. The io_context - // cleans up any internal resources, such as threads, that may - // interfere with forking. - io_context_.notify_fork(asio::io_context::fork_prepare); - - if (fork() == 0) - { - // Inform the io_context that the fork is finished and that this - // is the child process. The io_context uses this opportunity to - // create any internal file descriptors that must be private to - // the new process. - io_context_.notify_fork(asio::io_context::fork_child); - - // The child won't be accepting new connections, so we can close - // the acceptor. It remains open in the parent. - acceptor_.close(); - - // The child process is not interested in processing the SIGCHLD - // signal. - signal_.cancel(); - - read(); - } - else - { - - // Inform the io_context that the fork is finished (or failed) - // and that this is the parent process. The io_context uses this - // opportunity to recreate any internal resources that were - // cleaned up during preparation for the fork. - io_context_.notify_fork(asio::io_context::fork_parent); - - // The parent process can now close the newly accepted socket. It - // remains open in the child. - socket_.close(); - - accept(); - } - } - else - { - std::cerr << "Accept error: " << ec.message() << std::endl; - accept(); - } - }); - } - - void read() - { - socket_.async_read_some(asio::buffer(data_), - [this](std::error_code ec, std::size_t length) - { - if (!ec) - write(length); - }); - } - - void write(std::size_t length) - { - asio::async_write(socket_, asio::buffer(data_, length), - [this](std::error_code ec, std::size_t /*length*/) - { - if (!ec) - read(); - }); - } - - asio::io_context& io_context_; - asio::signal_set signal_; - tcp::acceptor acceptor_; - tcp::socket socket_; - std::array data_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: process_per_connection \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << std::endl; - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/futures/daytime_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/futures/daytime_client.cpp deleted file mode 100644 index a79e132..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/futures/daytime_client.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// daytime_client.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include - -using asio::ip::udp; - -void get_daytime(asio::io_context& io_context, const char* hostname) -{ - try - { - udp::resolver resolver(io_context); - - std::future endpoints = - resolver.async_resolve( - udp::v4(), hostname, "daytime", - asio::use_future); - - // The async_resolve operation above returns the endpoints as a future - // value that is not retrieved ... - - udp::socket socket(io_context, udp::v4()); - - std::array send_buf = {{ 0 }}; - std::future send_length = - socket.async_send_to(asio::buffer(send_buf), - *endpoints.get().begin(), // ... until here. This call may block. - 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 recv_buf; - udp::endpoint sender_endpoint; - std::future recv_length = - socket.async_receive_from( - asio::buffer(recv_buf), - sender_endpoint, - 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 " << std::endl; - return 1; - } - - // We run the io_context off in its own thread so that it operates - // completely asynchronously with respect to the rest of the program. - asio::io_context io_context; - auto work = asio::make_work_guard(io_context); - std::thread thread([&io_context](){ io_context.run(); }); - - get_daytime(io_context, argv[1]); - - io_context.stop(); - thread.join(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp b/Sources/Vendor/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp deleted file mode 100644 index 96dbe6f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp +++ /dev/null @@ -1,201 +0,0 @@ -// -// custom_tracking.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 CUSTOM_TRACKING_HPP -#define CUSTOM_TRACKING_HPP - -#include -#include -#include - -# define ASIO_INHERIT_TRACKED_HANDLER \ - : public ::custom_tracking::tracked_handler - -# define ASIO_ALSO_INHERIT_TRACKED_HANDLER \ - , public ::custom_tracking::tracked_handler - -# define ASIO_HANDLER_TRACKING_INIT \ - ::custom_tracking::init() - -# define ASIO_HANDLER_CREATION(args) \ - ::custom_tracking::creation args - -# define ASIO_HANDLER_COMPLETION(args) \ - ::custom_tracking::completion tracked_completion args - -# define ASIO_HANDLER_INVOCATION_BEGIN(args) \ - tracked_completion.invocation_begin args - -# define ASIO_HANDLER_INVOCATION_END \ - tracked_completion.invocation_end() - -# define ASIO_HANDLER_OPERATION(args) \ - ::custom_tracking::operation args - -# define ASIO_HANDLER_REACTOR_REGISTRATION(args) \ - ::custom_tracking::reactor_registration args - -# define ASIO_HANDLER_REACTOR_DEREGISTRATION(args) \ - ::custom_tracking::reactor_deregistration args - -# define ASIO_HANDLER_REACTOR_READ_EVENT 1 -# define ASIO_HANDLER_REACTOR_WRITE_EVENT 2 -# define ASIO_HANDLER_REACTOR_ERROR_EVENT 4 - -# define ASIO_HANDLER_REACTOR_EVENTS(args) \ - ::custom_tracking::reactor_events args - -# define ASIO_HANDLER_REACTOR_OPERATION(args) \ - ::custom_tracking::reactor_operation args - -struct custom_tracking -{ - // Base class for objects containing tracked handlers. - struct tracked_handler - { - std::uintmax_t handler_id_ = 0; // To uniquely identify a handler. - std::uintmax_t tree_id_ = 0; // To identify related handlers. - const char* object_type_; // The object type associated with the handler. - std::uintmax_t native_handle_; // Native handle, if any. - }; - - // Initialise the tracking system. - static void init() - { - } - - // Record the creation of a tracked handler. - static void creation(asio::execution_context& /*ctx*/, - tracked_handler& h, const char* object_type, void* /*object*/, - std::uintmax_t native_handle, const char* op_name) - { - // Generate a unique id for the new handler. - static std::atomic next_handler_id{1}; - h.handler_id_ = next_handler_id++; - - // Copy the tree identifier forward from the current handler. - if (*current_completion()) - h.tree_id_ = (*current_completion())->handler_.tree_id_; - - // Store various attributes of the operation to use in later output. - h.object_type_ = object_type; - h.native_handle_ = native_handle; - - std::printf( - "Starting operation %s.%s for native_handle = %" PRIuMAX - ", handler = %" PRIuMAX ", tree = %" PRIuMAX "\n", - object_type, op_name, h.native_handle_, h.handler_id_, h.tree_id_); - } - - struct completion - { - explicit completion(const tracked_handler& h) - : handler_(h), - next_(*current_completion()) - { - *current_completion() = this; - } - - completion(const completion&) = delete; - completion& operator=(const completion&) = delete; - - // Destructor records only when an exception is thrown from the handler, or - // if the memory is being freed without the handler having been invoked. - ~completion() - { - *current_completion() = next_; - } - - // Records that handler is to be invoked with the specified arguments. - template - void invocation_begin(Args&&... /*args*/) - { - std::printf("Entering handler %" PRIuMAX " in tree %" PRIuMAX "\n", - handler_.handler_id_, handler_.tree_id_); - } - - // Record that handler invocation has ended. - void invocation_end() - { - std::printf("Leaving handler %" PRIuMAX " in tree %" PRIuMAX "\n", - handler_.handler_id_, handler_.tree_id_); - } - - tracked_handler handler_; - - // Completions may nest. Here we stash a pointer to the outer completion. - completion* next_; - }; - - static completion** current_completion() - { - static ASIO_THREAD_KEYWORD completion* current = nullptr; - return ¤t; - } - - // Record an operation that is not directly associated with a handler. - static void operation(asio::execution_context& /*ctx*/, - const char* /*object_type*/, void* /*object*/, - std::uintmax_t /*native_handle*/, const char* /*op_name*/) - { - } - - // Record that a descriptor has been registered with the reactor. - static void reactor_registration(asio::execution_context& context, - uintmax_t native_handle, uintmax_t registration) - { - std::printf("Adding to reactor native_handle = %" PRIuMAX - ", registration = %" PRIuMAX "\n", native_handle, registration); - } - - // Record that a descriptor has been deregistered from the reactor. - static void reactor_deregistration(asio::execution_context& context, - uintmax_t native_handle, uintmax_t registration) - { - std::printf("Removing from reactor native_handle = %" PRIuMAX - ", registration = %" PRIuMAX "\n", native_handle, registration); - } - - // Record reactor-based readiness events associated with a descriptor. - static void reactor_events(asio::execution_context& context, - uintmax_t registration, unsigned events) - { - std::printf( - "Reactor readiness for registration = %" PRIuMAX ", events =%s%s%s\n", - registration, - (events & ASIO_HANDLER_REACTOR_READ_EVENT) ? " read" : "", - (events & ASIO_HANDLER_REACTOR_WRITE_EVENT) ? " write" : "", - (events & ASIO_HANDLER_REACTOR_ERROR_EVENT) ? " error" : ""); - } - - // Record a reactor-based operation that is associated with a handler. - static void reactor_operation(const tracked_handler& h, - const char* op_name, const asio::error_code& ec) - { - std::printf( - "Performed operation %s.%s for native_handle = %" PRIuMAX - ", ec = %s:%d\n", h.object_type_, op_name, h.native_handle_, - ec.category().name(), ec.value()); - } - - // Record a reactor-based operation that is associated with a handler. - static void reactor_operation(const tracked_handler& h, - const char* op_name, const asio::error_code& ec, - std::size_t bytes_transferred) - { - std::printf( - "Performed operation %s.%s for native_handle = %" PRIuMAX - ", ec = %s:%d, n = %" PRIuMAX "\n", h.object_type_, op_name, - h.native_handle_, ec.category().name(), ec.value(), - static_cast(bytes_transferred)); - } -}; - -#endif // CUSTOM_TRACKING_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/connection.cpp deleted file mode 100644 index 90ec2cd..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// connection.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include "connection_manager.hpp" -#include "request_handler.hpp" - -namespace http { -namespace server { - -connection::connection(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(asio::buffer(buffer_), - [this, self](std::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 != asio::error::operation_aborted) - { - connection_manager_.stop(shared_from_this()); - } - }); -} - -void connection::do_write() -{ - auto self(shared_from_this()); - asio::async_write(socket_, reply_.to_buffers(), - [this, self](std::error_code ec, std::size_t) - { - if (!ec) - { - // Initiate graceful connection closure. - asio::error_code ignored_ec; - socket_.shutdown(asio::ip::tcp::socket::shutdown_both, - ignored_ec); - } - - if (ec != asio::error::operation_aborted) - { - connection_manager_.stop(shared_from_this()); - } - }); -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/connection.hpp deleted file mode 100644 index 3fc8c6e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection.hpp +++ /dev/null @@ -1,79 +0,0 @@ -// -// connection.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#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 -{ -public: - connection(const connection&) = delete; - connection& operator=(const connection&) = delete; - - /// Construct a connection with the given socket. - explicit connection(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. - 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 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_ptr; - -} // namespace server -} // namespace http - -#endif // HTTP_CONNECTION_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection_manager.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/connection_manager.cpp deleted file mode 100644 index ac86299..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection_manager.cpp +++ /dev/null @@ -1,40 +0,0 @@ -// -// connection_manager.cpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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/Sources/Vendor/asio/src/examples/cpp11/http/server/connection_manager.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/connection_manager.hpp deleted file mode 100644 index 027b9e9..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection_manager.hpp +++ /dev/null @@ -1,48 +0,0 @@ -// -// connection_manager.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#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 connections_; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_CONNECTION_MANAGER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/header.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/header.hpp deleted file mode 100644 index 18bad98..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/header.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// header.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 - -namespace http { -namespace server { - -struct header -{ - std::string name; - std::string value; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_HEADER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/main.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/main.cpp deleted file mode 100644 index 145e815..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/main.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// -// main.cpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "server.hpp" - -int main(int argc, char* argv[]) -{ - try - { - // Check command line arguments. - if (argc != 4) - { - std::cerr << "Usage: http_server
\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/Sources/Vendor/asio/src/examples/cpp11/http/server/mime_types.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/mime_types.cpp deleted file mode 100644 index 0762cf7..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/mime_types.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// -// mime_types.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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/Sources/Vendor/asio/src/examples/cpp11/http/server/mime_types.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/mime_types.hpp deleted file mode 100644 index a5f352e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/mime_types.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// mime_types.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 - -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/Sources/Vendor/asio/src/examples/cpp11/http/server/reply.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/reply.cpp deleted file mode 100644 index 66505ce..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/reply.cpp +++ /dev/null @@ -1,255 +0,0 @@ -// -// reply.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 - -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"; - -asio::const_buffer to_buffer(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return asio::buffer(ok); - case reply::created: - return asio::buffer(created); - case reply::accepted: - return asio::buffer(accepted); - case reply::no_content: - return asio::buffer(no_content); - case reply::multiple_choices: - return asio::buffer(multiple_choices); - case reply::moved_permanently: - return asio::buffer(moved_permanently); - case reply::moved_temporarily: - return asio::buffer(moved_temporarily); - case reply::not_modified: - return asio::buffer(not_modified); - case reply::bad_request: - return asio::buffer(bad_request); - case reply::unauthorized: - return asio::buffer(unauthorized); - case reply::forbidden: - return asio::buffer(forbidden); - case reply::not_found: - return asio::buffer(not_found); - case reply::internal_server_error: - return asio::buffer(internal_server_error); - case reply::not_implemented: - return asio::buffer(not_implemented); - case reply::bad_gateway: - return asio::buffer(bad_gateway); - case reply::service_unavailable: - return asio::buffer(service_unavailable); - default: - return 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 reply::to_buffers() -{ - std::vector 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(asio::buffer(h.name)); - buffers.push_back(asio::buffer(misc_strings::name_value_separator)); - buffers.push_back(asio::buffer(h.value)); - buffers.push_back(asio::buffer(misc_strings::crlf)); - } - buffers.push_back(asio::buffer(misc_strings::crlf)); - buffers.push_back(asio::buffer(content)); - return buffers; -} - -namespace stock_replies { - -const char ok[] = ""; -const char created[] = - "" - "Created" - "

201 Created

" - ""; -const char accepted[] = - "" - "Accepted" - "

202 Accepted

" - ""; -const char no_content[] = - "" - "No Content" - "

204 Content

" - ""; -const char multiple_choices[] = - "" - "Multiple Choices" - "

300 Multiple Choices

" - ""; -const char moved_permanently[] = - "" - "Moved Permanently" - "

301 Moved Permanently

" - ""; -const char moved_temporarily[] = - "" - "Moved Temporarily" - "

302 Moved Temporarily

" - ""; -const char not_modified[] = - "" - "Not Modified" - "

304 Not Modified

" - ""; -const char bad_request[] = - "" - "Bad Request" - "

400 Bad Request

" - ""; -const char unauthorized[] = - "" - "Unauthorized" - "

401 Unauthorized

" - ""; -const char forbidden[] = - "" - "Forbidden" - "

403 Forbidden

" - ""; -const char not_found[] = - "" - "Not Found" - "

404 Not Found

" - ""; -const char internal_server_error[] = - "" - "Internal Server Error" - "

500 Internal Server Error

" - ""; -const char not_implemented[] = - "" - "Not Implemented" - "

501 Not Implemented

" - ""; -const char bad_gateway[] = - "" - "Bad Gateway" - "

502 Bad Gateway

" - ""; -const char service_unavailable[] = - "" - "Service Unavailable" - "

503 Service Unavailable

" - ""; - -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/Sources/Vendor/asio/src/examples/cpp11/http/server/reply.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/reply.hpp deleted file mode 100644 index 078e55c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/reply.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// reply.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#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
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 to_buffers(); - - /// Get a stock reply. - static reply stock_reply(status_type status); -}; - -} // namespace server -} // namespace http - -#endif // HTTP_REPLY_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/request.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/request.hpp deleted file mode 100644 index 6488b1d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/request.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// request.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#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
headers; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_REQUEST_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/request_handler.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/request_handler.cpp deleted file mode 100644 index 04a5959..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/request_handler.cpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// request_handler.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#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(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/Sources/Vendor/asio/src/examples/cpp11/http/server/request_handler.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/request_handler.hpp deleted file mode 100644 index 82bd613..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/request_handler.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// -// request_handler.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 - -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/Sources/Vendor/asio/src/examples/cpp11/http/server/request_parser.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/request_parser.cpp deleted file mode 100644 index 4b148c5..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/request_parser.cpp +++ /dev/null @@ -1,315 +0,0 @@ -// -// request_parser.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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/Sources/Vendor/asio/src/examples/cpp11/http/server/request_parser.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/request_parser.hpp deleted file mode 100644 index aaae6b9..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/request_parser.hpp +++ /dev/null @@ -1,96 +0,0 @@ -// -// request_parser.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 - -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 - std::tuple 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/Sources/Vendor/asio/src/examples/cpp11/http/server/server.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/server.cpp deleted file mode 100644 index dac6ffd..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/server.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include - -namespace http { -namespace server { - -server::server(const std::string& address, const std::string& port, - const std::string& doc_root) - : io_context_(1), - signals_(io_context_), - acceptor_(io_context_), - connection_manager_(), - 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). - asio::ip::tcp::resolver resolver(io_context_); - asio::ip::tcp::endpoint endpoint = - *resolver.resolve(address, port).begin(); - acceptor_.open(endpoint.protocol()); - acceptor_.set_option(asio::ip::tcp::acceptor::reuse_address(true)); - acceptor_.bind(endpoint); - acceptor_.listen(); - - do_accept(); -} - -void server::run() -{ - // The io_context::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_context_.run(); -} - -void server::do_accept() -{ - acceptor_.async_accept( - [this](std::error_code ec, asio::ip::tcp::socket socket) - { - // 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( - std::move(socket), connection_manager_, request_handler_)); - } - - do_accept(); - }); -} - -void server::do_await_stop() -{ - signals_.async_wait( - [this](std::error_code /*ec*/, int /*signo*/) - { - // The server is stopped by cancelling all outstanding asynchronous - // operations. Once all operations have finished the io_context::run() - // call will exit. - acceptor_.close(); - connection_manager_.stop_all(); - }); -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/server.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/server.hpp deleted file mode 100644 index b55e21c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/server.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// server.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#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_context 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_context used to perform asynchronous operations. - asio::io_context io_context_; - - /// The signal_set is used to register for process termination notifications. - asio::signal_set signals_; - - /// Acceptor used to listen for incoming connections. - asio::ip::tcp::acceptor acceptor_; - - /// The connection manager which owns all live connections. - connection_manager connection_manager_; - - /// The handler for all incoming requests. - request_handler request_handler_; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_SERVER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp b/Sources/Vendor/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp deleted file mode 100644 index acb5e3d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp +++ /dev/null @@ -1,202 +0,0 @@ -// -// prioritised_handlers.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "asio.hpp" -#include -#include -#include - -using asio::ip::tcp; - -class handler_priority_queue : asio::execution_context -{ -public: - template - void add(int priority, Function function) - { - std::unique_ptr handler( - new queued_handler( - priority, std::move(function))); - - handlers_.push(std::move(handler)); - } - - void execute_all() - { - while (!handlers_.empty()) - { - handlers_.top()->execute(); - handlers_.pop(); - } - } - - class executor - { - public: - executor(handler_priority_queue& q, int p) - : context_(q), priority_(p) - { - } - - handler_priority_queue& context() const noexcept - { - return context_; - } - - template - void dispatch(Function f, const Allocator&) const - { - context_.add(priority_, std::move(f)); - } - - template - void post(Function f, const Allocator&) const - { - context_.add(priority_, std::move(f)); - } - - template - void defer(Function f, const Allocator&) const - { - context_.add(priority_, std::move(f)); - } - - void on_work_started() const noexcept {} - void on_work_finished() const noexcept {} - - bool operator==(const executor& other) const noexcept - { - return &context_ == &other.context_ && priority_ == other.priority_; - } - - bool operator!=(const executor& other) const noexcept - { - return !operator==(other); - } - - private: - handler_priority_queue& context_; - int priority_; - }; - - template - asio::executor_binder - wrap(int priority, Handler handler) - { - return asio::bind_executor( - executor(*this, priority), std::move(handler)); - } - -private: - class queued_handler_base - { - public: - queued_handler_base(int p) - : priority_(p) - { - } - - virtual ~queued_handler_base() - { - } - - virtual void execute() = 0; - - friend bool operator<(const std::unique_ptr& a, - const std::unique_ptr& b) noexcept - { - return a->priority_ < b->priority_; - } - - private: - int priority_; - }; - - template - class queued_handler : public queued_handler_base - { - public: - queued_handler(int p, Function f) - : queued_handler_base(p), function_(std::move(f)) - { - } - - void execute() override - { - function_(); - } - - private: - Function function_; - }; - - std::priority_queue> handlers_; -}; - -//---------------------------------------------------------------------- - -void high_priority_handler(const asio::error_code& /*ec*/, - tcp::socket /*socket*/) -{ - std::cout << "High priority handler\n"; -} - -void middle_priority_handler(const asio::error_code& /*ec*/) -{ - std::cout << "Middle priority handler\n"; -} - -struct low_priority_handler -{ - // Make the handler a move-only type. - low_priority_handler() = default; - low_priority_handler(const low_priority_handler&) = delete; - low_priority_handler(low_priority_handler&&) = default; - - void operator()() - { - std::cout << "Low priority handler\n"; - } -}; - -int main() -{ - asio::io_context io_context; - - handler_priority_queue pri_queue; - - // Post a completion handler to be run immediately. - asio::post(io_context, pri_queue.wrap(0, low_priority_handler())); - - // Start an asynchronous accept that will complete immediately. - tcp::endpoint endpoint(asio::ip::address_v4::loopback(), 0); - tcp::acceptor acceptor(io_context, endpoint); - tcp::socket server_socket(io_context); - acceptor.async_accept(pri_queue.wrap(100, high_priority_handler)); - tcp::socket client_socket(io_context); - client_socket.connect(acceptor.local_endpoint()); - - // Set a deadline timer to expire immediately. - asio::steady_timer timer(io_context); - timer.expires_at(asio::steady_timer::clock_type::time_point::min()); - timer.async_wait(pri_queue.wrap(42, middle_priority_handler)); - - while (io_context.run_one()) - { - // The custom invocation hook adds the handlers to the priority queue - // rather than executing them from within the poll_one() call. - while (io_context.poll_one()) - ; - - pri_queue.execute_all(); - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/iostreams/http_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/iostreams/http_client.cpp deleted file mode 100644 index dd6be3f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/iostreams/http_client.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// http_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cout << "Usage: http_client \n"; - std::cout << "Example:\n"; - std::cout << " http_client www.boost.org /LICENSE_1_0.txt\n"; - return 1; - } - - asio::ip::tcp::iostream s; - - // The entire sequence of I/O operations must complete within 60 seconds. - // If an expiry occurs, the socket is automatically closed and the stream - // becomes bad. - s.expires_after(std::chrono::seconds(60)); - - // Establish a connection to the server. - s.connect(argv[1], "http"); - if (!s) - { - std::cout << "Unable to connect: " << s.error().message() << "\n"; - return 1; - } - - // Send the request. We specify the "Connection: close" header so that the - // server will close the socket after transmitting the response. This will - // allow us to treat all data up until the EOF as the content. - s << "GET " << argv[2] << " HTTP/1.0\r\n"; - s << "Host: " << argv[1] << "\r\n"; - s << "Accept: */*\r\n"; - s << "Connection: close\r\n\r\n"; - - // By default, the stream is tied with itself. This means that the stream - // automatically flush the buffered output before attempting a read. It is - // not necessary not explicitly flush the stream at this point. - - // Check that response is OK. - std::string http_version; - s >> http_version; - unsigned int status_code; - s >> status_code; - std::string status_message; - std::getline(s, status_message); - if (!s || http_version.substr(0, 5) != "HTTP/") - { - std::cout << "Invalid response\n"; - return 1; - } - if (status_code != 200) - { - std::cout << "Response returned with status code " << status_code << "\n"; - return 1; - } - - // Process the response headers, which are terminated by a blank line. - std::string header; - while (std::getline(s, header) && header != "\r") - std::cout << header << "\n"; - std::cout << "\n"; - - // Write the remaining data to output. - std::cout << s.rdbuf(); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/local/connect_pair.cpp b/Sources/Vendor/asio/src/examples/cpp11/local/connect_pair.cpp deleted file mode 100644 index aaa4ed8..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/local/connect_pair.cpp +++ /dev/null @@ -1,129 +0,0 @@ -// -// connect_pair.cpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -class uppercase_filter -{ -public: - uppercase_filter(stream_protocol::socket sock) - : socket_(std::move(sock)) - { - read(); - } - -private: - void read() - { - socket_.async_read_some(asio::buffer(data_), - [this](std::error_code ec, std::size_t size) - { - if (!ec) - { - // Compute result. - for (std::size_t i = 0; i < size; ++i) - data_[i] = std::toupper(data_[i]); - - // Send result. - write(size); - } - else - { - throw asio::system_error(ec); - } - }); - } - - void write(std::size_t size) - { - asio::async_write(socket_, asio::buffer(data_, size), - [this](std::error_code ec, std::size_t /*size*/) - { - if (!ec) - { - // Wait for request. - read(); - } - else - { - throw asio::system_error(ec); - } - }); - } - - stream_protocol::socket socket_; - std::array data_; -}; - -int main() -{ - try - { - asio::io_context io_context; - - // Create a connected pair and pass one end to a filter. - stream_protocol::socket socket(io_context); - stream_protocol::socket filter_socket(io_context); - asio::local::connect_pair(socket, filter_socket); - uppercase_filter filter(std::move(filter_socket)); - - // The io_context runs in a background thread to perform filtering. - asio::thread thread( - [&io_context]() - { - try - { - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception in thread: " << e.what() << "\n"; - std::exit(1); - } - }); - - for (;;) - { - // Collect request from user. - std::cout << "Enter a string: "; - std::string request; - std::getline(std::cin, request); - - // Send request to filter. - asio::write(socket, asio::buffer(request)); - - // Wait for reply from filter. - std::vector reply(request.size()); - asio::read(socket, asio::buffer(reply)); - - // Show reply to user. - std::cout << "Result: "; - std::cout.write(&reply[0], request.size()); - std::cout << std::endl; - } - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - std::exit(1); - } -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp11/local/iostream_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/local/iostream_client.cpp deleted file mode 100644 index df7c322..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/local/iostream_client.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// -// stream_client.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include "asio.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -constexpr std::size_t max_length = 1024; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: iostream_client \n"; - return 1; - } - - stream_protocol::endpoint ep(argv[1]); - stream_protocol::iostream s(ep); - if (!s) - { - std::cerr << "Unable to connect: " << s.error().message() << std::endl; - return 1; - } - - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t length = std::strlen(request); - s << request; - - char reply[max_length]; - s.read(reply, length); - std::cout << "Reply is: "; - std::cout.write(reply, length); - std::cout << "\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp11/local/stream_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/local/stream_client.cpp deleted file mode 100644 index 47a4e3d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/local/stream_client.cpp +++ /dev/null @@ -1,60 +0,0 @@ -// -// stream_client.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -constexpr std::size_t max_length = 1024; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: stream_client \n"; - return 1; - } - - asio::io_context io_context; - - stream_protocol::socket s(io_context); - s.connect(stream_protocol::endpoint(argv[1])); - - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t request_length = std::strlen(request); - asio::write(s, asio::buffer(request, request_length)); - - char reply[max_length]; - size_t reply_length = asio::read(s, - 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; -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp11/local/stream_server.cpp b/Sources/Vendor/asio/src/examples/cpp11/local/stream_server.cpp deleted file mode 100644 index e43e232..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/local/stream_server.cpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// stream_server.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include "asio.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -class session - : public std::enable_shared_from_this -{ -public: - session(stream_protocol::socket sock) - : socket_(std::move(sock)) - { - } - - void start() - { - do_read(); - } - -private: - void do_read() - { - auto self(shared_from_this()); - socket_.async_read_some(asio::buffer(data_), - [this, self](std::error_code ec, std::size_t length) - { - if (!ec) - do_write(length); - }); - } - - void do_write(std::size_t length) - { - auto self(shared_from_this()); - asio::async_write(socket_, - asio::buffer(data_, length), - [this, self](std::error_code ec, std::size_t /*length*/) - { - if (!ec) - do_read(); - }); - } - - // The socket used to communicate with the client. - stream_protocol::socket socket_; - - // Buffer used to store data received from the client. - std::array data_; -}; - -class server -{ -public: - server(asio::io_context& io_context, const std::string& file) - : acceptor_(io_context, stream_protocol::endpoint(file)) - { - do_accept(); - } - -private: - void do_accept() - { - acceptor_.async_accept( - [this](std::error_code ec, stream_protocol::socket socket) - { - if (!ec) - { - std::make_shared(std::move(socket))->start(); - } - - do_accept(); - }); - } - - stream_protocol::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: stream_server \n"; - std::cerr << "*** WARNING: existing file is removed ***\n"; - return 1; - } - - asio::io_context io_context; - - std::remove(argv[1]); - server s(io_context, argv[1]); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp11/multicast/receiver.cpp b/Sources/Vendor/asio/src/examples/cpp11/multicast/receiver.cpp deleted file mode 100644 index 3a15e38..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/multicast/receiver.cpp +++ /dev/null @@ -1,88 +0,0 @@ -// -// receiver.cpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" - -constexpr short multicast_port = 30001; - -class receiver -{ -public: - receiver(asio::io_context& io_context, - const asio::ip::address& listen_address, - const asio::ip::address& multicast_address) - : socket_(io_context) - { - // Create the socket so that multiple may be bound to the same address. - asio::ip::udp::endpoint listen_endpoint( - listen_address, multicast_port); - socket_.open(listen_endpoint.protocol()); - socket_.set_option(asio::ip::udp::socket::reuse_address(true)); - socket_.bind(listen_endpoint); - - // Join the multicast group. - socket_.set_option( - asio::ip::multicast::join_group(multicast_address)); - - do_receive(); - } - -private: - void do_receive() - { - socket_.async_receive_from( - asio::buffer(data_), sender_endpoint_, - [this](std::error_code ec, std::size_t length) - { - if (!ec) - { - std::cout.write(data_.data(), length); - std::cout << std::endl; - - do_receive(); - } - }); - } - - asio::ip::udp::socket socket_; - asio::ip::udp::endpoint sender_endpoint_; - std::array data_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: receiver \n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " receiver 0.0.0.0 239.255.0.1\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " receiver 0::0 ff31::8000:1234\n"; - return 1; - } - - asio::io_context io_context; - receiver r(io_context, - asio::ip::make_address(argv[1]), - asio::ip::make_address(argv[2])); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/multicast/sender.cpp b/Sources/Vendor/asio/src/examples/cpp11/multicast/sender.cpp deleted file mode 100644 index 459700f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/multicast/sender.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// sender.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" - -constexpr short multicast_port = 30001; -constexpr int max_message_count = 10; - -class sender -{ -public: - sender(asio::io_context& io_context, - const asio::ip::address& multicast_address) - : endpoint_(multicast_address, multicast_port), - socket_(io_context, endpoint_.protocol()), - timer_(io_context), - message_count_(0) - { - do_send(); - } - -private: - void do_send() - { - std::ostringstream os; - os << "Message " << message_count_++; - message_ = os.str(); - - socket_.async_send_to( - asio::buffer(message_), endpoint_, - [this](std::error_code ec, std::size_t /*length*/) - { - if (!ec && message_count_ < max_message_count) - do_timeout(); - }); - } - - void do_timeout() - { - timer_.expires_after(std::chrono::seconds(1)); - timer_.async_wait( - [this](std::error_code ec) - { - if (!ec) - do_send(); - }); - } - -private: - asio::ip::udp::endpoint endpoint_; - asio::ip::udp::socket socket_; - asio::steady_timer timer_; - int message_count_; - std::string message_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: sender \n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " sender 239.255.0.1\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " sender ff31::8000:1234\n"; - return 1; - } - - asio::io_context io_context; - sender s(io_context, asio::ip::make_address(argv[1])); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp b/Sources/Vendor/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp deleted file mode 100644 index 24e5a61..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp +++ /dev/null @@ -1,212 +0,0 @@ -// -// third_party_lib.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include - -using asio::ip::tcp; - -namespace third_party_lib { - -// Simulation of a third party library that wants to perform read and write -// operations directly on a socket. It needs to be polled to determine whether -// it requires a read or write operation, and notified when the socket is ready -// for reading or writing. -class session -{ -public: - session(tcp::socket& socket) - : socket_(socket) - { - } - - // Returns true if the third party library wants to be notified when the - // socket is ready for reading. - bool want_read() const - { - return state_ == reading; - } - - // Notify that third party library that it should perform its read operation. - void do_read(std::error_code& ec) - { - if (std::size_t len = socket_.read_some(asio::buffer(data_), ec)) - { - write_buffer_ = asio::buffer(data_, len); - state_ = writing; - } - } - - // Returns true if the third party library wants to be notified when the - // socket is ready for writing. - bool want_write() const - { - return state_ == writing; - } - - // Notify that third party library that it should perform its write operation. - void do_write(std::error_code& ec) - { - if (std::size_t len = socket_.write_some( - asio::buffer(write_buffer_), ec)) - { - write_buffer_ = write_buffer_ + len; - state_ = asio::buffer_size(write_buffer_) > 0 ? writing : reading; - } - } - -private: - tcp::socket& socket_; - enum { reading, writing } state_ = reading; - std::array data_; - asio::const_buffer write_buffer_; -}; - -} // namespace third_party_lib - -// The glue between asio's sockets and the third party library. -class connection - : public std::enable_shared_from_this -{ -public: - connection(tcp::socket socket) - : socket_(std::move(socket)) - { - } - - void start() - { - // Put the socket into non-blocking mode. - socket_.non_blocking(true); - - do_operations(); - } - -private: - void do_operations() - { - auto self(shared_from_this()); - - // Start a read operation if the third party library wants one. - if (session_impl_.want_read() && !read_in_progress_) - { - read_in_progress_ = true; - socket_.async_wait(tcp::socket::wait_read, - [this, self](std::error_code ec) - { - read_in_progress_ = false; - - // Notify third party library that it can perform a read. - if (!ec) - session_impl_.do_read(ec); - - // The third party library successfully performed a read on the - // socket. Start new read or write operations based on what it now - // wants. - if (!ec || ec == asio::error::would_block) - do_operations(); - - // Otherwise, an error occurred. Closing the socket cancels any - // outstanding asynchronous read or write operations. The - // connection object will be destroyed automatically once those - // outstanding operations complete. - else - socket_.close(); - }); - } - - // Start a write operation if the third party library wants one. - if (session_impl_.want_write() && !write_in_progress_) - { - write_in_progress_ = true; - socket_.async_wait(tcp::socket::wait_write, - [this, self](std::error_code ec) - { - write_in_progress_ = false; - - // Notify third party library that it can perform a write. - if (!ec) - session_impl_.do_write(ec); - - // The third party library successfully performed a write on the - // socket. Start new read or write operations based on what it now - // wants. - if (!ec || ec == asio::error::would_block) - do_operations(); - - // Otherwise, an error occurred. Closing the socket cancels any - // outstanding asynchronous read or write operations. The - // connection object will be destroyed automatically once those - // outstanding operations complete. - else - socket_.close(); - }); - } - } - -private: - tcp::socket socket_; - third_party_lib::session session_impl_{socket_}; - bool read_in_progress_ = false; - bool write_in_progress_ = false; -}; - -class server -{ -public: - server(asio::io_context& io_context, unsigned short port) - : acceptor_(io_context, {tcp::v4(), port}) - { - do_accept(); - } - -private: - void do_accept() - { - acceptor_.async_accept( - [this](std::error_code ec, tcp::socket socket) - { - if (!ec) - { - std::make_shared(std::move(socket))->start(); - } - - do_accept(); - }); - } - - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: third_party_lib \n"; - return 1; - } - - asio::io_context io_context; - - server s(io_context, std::atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_1.cpp b/Sources/Vendor/asio/src/examples/cpp11/operations/composed_1.cpp deleted file mode 100644 index d45c901..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_1.cpp +++ /dev/null @@ -1,112 +0,0 @@ -// -// composed_1.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -//------------------------------------------------------------------------------ - -// This is the simplest example of a composed asynchronous operation, where we -// simply repackage an existing operation. The asynchronous operation -// requirements are met by delegating responsibility to the underlying -// operation. -template -auto async_write_message(tcp::socket& socket, - const char* message, CompletionToken&& token) - // The return type of the initiating function is deduced from the combination - // of CompletionToken type and the completion handler's signature. When the - // completion token is a simple callback, the return type is void. However, - // when the completion token is asio::yield_context (used for stackful - // coroutines) the return type would be std::size_t, and when the completion - // token is asio::use_future it would be std::future. - -> typename asio::async_result< - typename std::decay::type, - void(std::error_code, std::size_t)>::return_type -{ - // When delegating to the underlying operation we must take care to perfectly - // forward the completion token. This ensures that our operation works - // correctly with move-only function objects as callbacks, as well as other - // completion token types. - return asio::async_write(socket, - asio::buffer(message, std::strlen(message)), - std::forward(token)); -} - -//------------------------------------------------------------------------------ - -void test_callback() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using a lambda as a callback. - async_write_message(socket, "Testing callback\r\n", - [](const std::error_code& error, std::size_t n) - { - if (!error) - { - std::cout << n << " bytes transferred\n"; - } - else - { - std::cout << "Error: " << error.message() << "\n"; - } - }); - - io_context.run(); -} - -//------------------------------------------------------------------------------ - -void test_future() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using the use_future completion token. - // This token causes the operation's initiating function to return a future, - // which may be used to synchronously wait for the result of the operation. - std::future f = async_write_message( - socket, "Testing future\r\n", asio::use_future); - - io_context.run(); - - try - { - // Get the result of the operation. - std::size_t n = f.get(); - std::cout << n << " bytes transferred\n"; - } - catch (const std::exception& e) - { - std::cout << "Error: " << e.what() << "\n"; - } -} - -//------------------------------------------------------------------------------ - -int main() -{ - test_callback(); - test_future(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_2.cpp b/Sources/Vendor/asio/src/examples/cpp11/operations/composed_2.cpp deleted file mode 100644 index 6d33b47..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_2.cpp +++ /dev/null @@ -1,148 +0,0 @@ -// -// composed_2.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -//------------------------------------------------------------------------------ - -// In this composed operation we repackage an existing operation, but with a -// different completion handler signature. The asynchronous operation -// requirements are met by delegating responsibility to the underlying -// operation. -template -auto async_write_message(tcp::socket& socket, - const char* message, CompletionToken&& token) - // The return type of the initiating function is deduced from the combination - // of CompletionToken type and the completion handler's signature. When the - // completion token is a simple callback, the return type is always void. - // In this example, when the completion token is asio::yield_context - // (used for stackful coroutines) the return type would be also be void, as - // there is no non-error argument to the completion handler. When the - // completion token is asio::use_future it would be std::future. - -> typename asio::async_result< - typename std::decay::type, - void(std::error_code)>::return_type -{ - // The asio::async_completion object takes the completion token and - // from it creates: - // - // - completion.completion_handler: - // A completion handler (i.e. a callback) with the specified signature. - // - // - completion.result: - // An object from which we obtain the result of the initiating function. - asio::async_completion completion(token); - - // The async_write operation has a completion handler signature of: - // - // void(std::error_code error, std::size n) - // - // This differs from our operation's signature in that it is also passed the - // number of bytes transferred as an argument of type std::size_t. We will - // adapt our completion handler to this signature by using std::bind, which - // drops the additional argument. - // - // However, it is essential to the correctness of our composed operation that - // we preserve the executor of the user-supplied completion handler. The - // std::bind function will not do this for us, so we must do this by first - // obtaining the completion handler's associated executor (defaulting to the - // I/O executor - in this case the executor of the socket - if the completion - // handler does not have its own) ... - auto executor = asio::get_associated_executor( - completion.completion_handler, socket.get_executor()); - - // ... and then binding this executor to our adapted completion handler using - // the asio::bind_executor function. - asio::async_write(socket, - asio::buffer(message, std::strlen(message)), - asio::bind_executor(executor, - std::bind(std::move(completion.completion_handler), - std::placeholders::_1))); - - // Finally, we return the result of the initiating function. - return completion.result.get(); -} - -//------------------------------------------------------------------------------ - -void test_callback() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using a lambda as a callback. - async_write_message(socket, "Testing callback\r\n", - [](const std::error_code& error) - { - if (!error) - { - std::cout << "Message sent\n"; - } - else - { - std::cout << "Error: " << error.message() << "\n"; - } - }); - - io_context.run(); -} - -//------------------------------------------------------------------------------ - -void test_future() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using the use_future completion token. - // This token causes the operation's initiating function to return a future, - // which may be used to synchronously wait for the result of the operation. - std::future f = async_write_message( - socket, "Testing future\r\n", asio::use_future); - - io_context.run(); - - // Get the result of the operation. - try - { - // Get the result of the operation. - f.get(); - std::cout << "Message sent\n"; - } - catch (const std::exception& e) - { - std::cout << "Error: " << e.what() << "\n"; - } -} - -//------------------------------------------------------------------------------ - -int main() -{ - test_callback(); - test_future(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_3.cpp b/Sources/Vendor/asio/src/examples/cpp11/operations/composed_3.cpp deleted file mode 100644 index ee0ef2f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_3.cpp +++ /dev/null @@ -1,168 +0,0 @@ -// -// composed_3.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -//------------------------------------------------------------------------------ - -// In this composed operation we repackage an existing operation, but with a -// different completion handler signature. We will also intercept an empty -// message as an invalid argument, and propagate the corresponding error to the -// user. The asynchronous operation requirements are met by delegating -// responsibility to the underlying operation. -template -auto async_write_message(tcp::socket& socket, - const char* message, CompletionToken&& token) - // The return type of the initiating function is deduced from the combination - // of CompletionToken type and the completion handler's signature. When the - // completion token is a simple callback, the return type is always void. - // In this example, when the completion token is asio::yield_context - // (used for stackful coroutines) the return type would be also be void, as - // there is no non-error argument to the completion handler. When the - // completion token is asio::use_future it would be std::future. - -> typename asio::async_result< - typename std::decay::type, - void(std::error_code)>::return_type -{ - // The asio::async_completion object takes the completion token and - // from it creates: - // - // - completion.completion_handler: - // A completion handler (i.e. a callback) with the specified signature. - // - // - completion.result: - // An object from which we obtain the result of the initiating function. - asio::async_completion completion(token); - - // If the user passes an empty message, this operation results in an - // invalid_argument error. This error is propagated to the user using the - // asio::post operation. The async_write operation is used only for - // valid input. - // - // The post operation has a completion handler signature of: - // - // void() - // - // and the async_write operation has a completion handler signature of: - // - // void(std::error_code error, std::size n) - // - // Both of these operations' completion handler signatures differ from our - // operation's completion handler signature. We will adapt our completion - // handler to these signatures by using std::bind, which drops the additional - // arguments. - // - // However, it is essential to the correctness of our composed operation that - // we preserve the executor of the user-supplied completion handler. The - // std::bind function will not do this for us, so we must do this by first - // obtaining the completion handler's associated executor (defaulting to the - // I/O executor - in this case the executor of the socket - if the completion - // handler does not have its own) ... - auto executor = asio::get_associated_executor( - completion.completion_handler, socket.get_executor()); - - // ... and then binding it to our adapted completion handlers using the - // asio::bind_executor function. - std::size_t length = std::strlen(message); - if (length == 0) - { - asio::post( - asio::bind_executor(executor, - std::bind(std::move(completion.completion_handler), - asio::error::invalid_argument))); - } - else - { - asio::async_write(socket, - asio::buffer(message, length), - asio::bind_executor(executor, - std::bind(std::move(completion.completion_handler), - std::placeholders::_1))); - } - - // Finally, we return the result of the initiating function. - return completion.result.get(); -} - -//------------------------------------------------------------------------------ - -void test_callback() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using a lambda as a callback. - async_write_message(socket, "", - [](const std::error_code& error) - { - if (!error) - { - std::cout << "Message sent\n"; - } - else - { - std::cout << "Error: " << error.message() << "\n"; - } - }); - - io_context.run(); -} - -//------------------------------------------------------------------------------ - -void test_future() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using the use_future completion token. - // This token causes the operation's initiating function to return a future, - // which may be used to synchronously wait for the result of the operation. - std::future f = async_write_message( - socket, "", asio::use_future); - - io_context.run(); - - try - { - // Get the result of the operation. - f.get(); - std::cout << "Message sent\n"; - } - catch (const std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } -} - -//------------------------------------------------------------------------------ - -int main() -{ - test_callback(); - test_future(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_4.cpp b/Sources/Vendor/asio/src/examples/cpp11/operations/composed_4.cpp deleted file mode 100644 index ff5bdc2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_4.cpp +++ /dev/null @@ -1,200 +0,0 @@ -// -// composed_4.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -//------------------------------------------------------------------------------ - -// This composed operation automatically serialises a message, using its I/O -// streams insertion operator, before sending it on the socket. To do this, it -// must allocate a buffer for the encoded message and ensure this buffer's -// validity until the underlying async_write operation completes. -template -auto async_write_message(tcp::socket& socket, - const T& message, CompletionToken&& token) - // The return type of the initiating function is deduced from the combination - // of CompletionToken type and the completion handler's signature. When the - // completion token is a simple callback, the return type is always void. - // In this example, when the completion token is asio::yield_context - // (used for stackful coroutines) the return type would be also be void, as - // there is no non-error argument to the completion handler. When the - // completion token is asio::use_future it would be std::future. - -> typename asio::async_result< - typename std::decay::type, - void(std::error_code)>::return_type -{ - // Define a type alias for the concrete completion handler, as we will use - // the type in several places in the implementation below. - using completion_handler_type = - typename asio::async_completion::completion_handler_type; - - // In this example, the composed operation's intermediate completion handler - // is implemented as a hand-crafted function object, rather than a lambda. - struct intermediate_completion_handler - { - // The intermediate completion handler holds a reference to the socket so - // that it can obtain the I/O executor (see get_executor below). - tcp::socket& socket_; - - // The allocated buffer for the encoded message. The std::unique_ptr smart - // pointer is move-only, and as a consequence our intermediate completion - // handler is also move-only. - std::unique_ptr encoded_message_; - - // The user-supplied completion handler. - completion_handler_type handler_; - - // The function call operator matches the completion signature of the - // async_write operation. - void operator()(const std::error_code& error, std::size_t /*n*/) - { - // Deallocate the encoded message before calling the user-supplied - // completion handler. - encoded_message_.reset(); - - // Call the user-supplied handler with the result of the operation. - // The arguments must match the completion signature of our composed - // operation. - handler_(error); - } - - // It is essential to the correctness of our composed operation that we - // preserve the executor of the user-supplied completion handler. With a - // hand-crafted function object we can do this by defining a nested type - // executor_type and member function get_executor. These obtain the - // completion handler's associated executor, and default to the I/O - // executor - in this case the executor of the socket - if the completion - // handler does not have its own. - using executor_type = asio::associated_executor_t< - completion_handler_type, tcp::socket::executor_type>; - - executor_type get_executor() const noexcept - { - return asio::get_associated_executor( - handler_, socket_.get_executor()); - } - - // Although not necessary for correctness, we may also preserve the - // allocator of the user-supplied completion handler. This is achieved by - // defining a nested type allocator_type and member function get_allocator. - // These obtain the completion handler's associated allocator, and default - // to std::allocator if the completion handler does not have its own. - using allocator_type = asio::associated_allocator_t< - completion_handler_type, std::allocator>; - - allocator_type get_allocator() const noexcept - { - return asio::get_associated_allocator( - handler_, std::allocator{}); - } - }; - - // The asio::async_completion object takes the completion token and - // from it creates: - // - // - completion.completion_handler: - // A completion handler (i.e. a callback) with the specified signature. - // - // - completion.result: - // An object from which we obtain the result of the initiating function. - asio::async_completion completion(token); - - // Encode the message and copy it into an allocated buffer. The buffer will - // be maintained for the lifetime of the asynchronous operation. - std::ostringstream os; - os << message; - std::unique_ptr encoded_message(new std::string(os.str())); - - // Initiate the underlying async_write operation using our intermediate - // completion handler. - asio::async_write(socket, asio::buffer(*encoded_message), - intermediate_completion_handler{socket, std::move(encoded_message), - std::move(completion.completion_handler)}); - - // Finally, we return the result of the initiating function. - return completion.result.get(); -} - -//------------------------------------------------------------------------------ - -void test_callback() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using a lambda as a callback. - async_write_message(socket, "Testing callback\r\n", - [](const std::error_code& error) - { - if (!error) - { - std::cout << "Message sent\n"; - } - else - { - std::cout << "Error: " << error.message() << "\n"; - } - }); - - io_context.run(); -} - -//------------------------------------------------------------------------------ - -void test_future() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using the use_future completion token. - // This token causes the operation's initiating function to return a future, - // which may be used to synchronously wait for the result of the operation. - std::future f = async_write_message( - socket, "Testing future\r\n", asio::use_future); - - io_context.run(); - - try - { - // Get the result of the operation. - f.get(); - std::cout << "Message sent\n"; - } - catch (const std::exception& e) - { - std::cout << "Error: " << e.what() << "\n"; - } -} - -//------------------------------------------------------------------------------ - -int main() -{ - test_callback(); - test_future(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_5.cpp b/Sources/Vendor/asio/src/examples/cpp11/operations/composed_5.cpp deleted file mode 100644 index 5a9d2a2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_5.cpp +++ /dev/null @@ -1,259 +0,0 @@ -// -// composed_5.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -//------------------------------------------------------------------------------ - -// This composed operation shows composition of multiple underlying operations. -// It automatically serialises a message, using its I/O streams insertion -// operator, before sending it N times on the socket. To do this, it must -// allocate a buffer for the encoded message and ensure this buffer's validity -// until all underlying async_write operation complete. A one second delay is -// inserted prior to each write operation, using a steady_timer. -template -auto async_write_messages(tcp::socket& socket, - const T& message, std::size_t repeat_count, - CompletionToken&& token) - // The return type of the initiating function is deduced from the combination - // of CompletionToken type and the completion handler's signature. When the - // completion token is a simple callback, the return type is always void. - // In this example, when the completion token is asio::yield_context - // (used for stackful coroutines) the return type would be also be void, as - // there is no non-error argument to the completion handler. When the - // completion token is asio::use_future it would be std::future. - -> typename asio::async_result< - typename std::decay::type, - void(std::error_code)>::return_type -{ - // Define a type alias for the concrete completion handler, as we will use - // the type in several places in the implementation below. - using completion_handler_type = - typename asio::async_completion::completion_handler_type; - - // In this example, the composed operation's intermediate completion handler - // is implemented as a hand-crafted function object. - struct intermediate_completion_handler - { - // The intermediate completion handler holds a reference to the socket as - // it is used for multiple async_write operations, as well as for obtaining - // the I/O executor (see get_executor below). - tcp::socket& socket_; - - // The allocated buffer for the encoded message. The std::unique_ptr smart - // pointer is move-only, and as a consequence our intermediate completion - // handler is also move-only. - std::unique_ptr encoded_message_; - - // The repeat count remaining. - std::size_t repeat_count_; - - // A steady timer used for introducing a delay. - std::unique_ptr delay_timer_; - - // To manage the cycle between the multiple underlying asychronous - // operations, our intermediate completion handler is implemented as a - // state machine. - enum { starting, waiting, writing } state_; - - // As our composed operation performs multiple underlying I/O operations, - // we should maintain a work object against the I/O executor. This tells - // the I/O executor that there is still more work to come in the future. - asio::executor_work_guard io_work_; - - // The user-supplied completion handler, called once only on completion of - // the entire composed operation. - completion_handler_type handler_; - - // By having a default value for the second argument, this function call - // operator matches the completion signature of both the async_write and - // steady_timer::async_wait operations. - void operator()(const std::error_code& error, std::size_t = 0) - { - if (!error) - { - switch (state_) - { - case starting: - case writing: - if (repeat_count_ > 0) - { - --repeat_count_; - state_ = waiting; - delay_timer_->expires_after(std::chrono::seconds(1)); - delay_timer_->async_wait(std::move(*this)); - return; // Composed operation not yet complete. - } - break; // Composed operation complete, continue below. - case waiting: - state_ = writing; - asio::async_write(socket_, - asio::buffer(*encoded_message_), std::move(*this)); - return; // Composed operation not yet complete. - } - } - - // This point is reached only on completion of the entire composed - // operation. - - // We no longer have any future work coming for the I/O executor. - io_work_.reset(); - - // Deallocate the encoded message before calling the user-supplied - // completion handler. - encoded_message_.reset(); - - // Call the user-supplied handler with the result of the operation. - handler_(error); - } - - // It is essential to the correctness of our composed operation that we - // preserve the executor of the user-supplied completion handler. With a - // hand-crafted function object we can do this by defining a nested type - // executor_type and member function get_executor. These obtain the - // completion handler's associated executor, and default to the I/O - // executor - in this case the executor of the socket - if the completion - // handler does not have its own. - using executor_type = asio::associated_executor_t< - completion_handler_type, tcp::socket::executor_type>; - - executor_type get_executor() const noexcept - { - return asio::get_associated_executor( - handler_, socket_.get_executor()); - } - - // Although not necessary for correctness, we may also preserve the - // allocator of the user-supplied completion handler. This is achieved by - // defining a nested type allocator_type and member function get_allocator. - // These obtain the completion handler's associated allocator, and default - // to std::allocator if the completion handler does not have its own. - using allocator_type = asio::associated_allocator_t< - completion_handler_type, std::allocator>; - - allocator_type get_allocator() const noexcept - { - return asio::get_associated_allocator( - handler_, std::allocator{}); - } - }; - - // The asio::async_completion object takes the completion token and - // from it creates: - // - // - completion.completion_handler: - // A completion handler (i.e. a callback) with the specified signature. - // - // - completion.result: - // An object from which we obtain the result of the initiating function. - asio::async_completion completion(token); - - // Encode the message and copy it into an allocated buffer. The buffer will - // be maintained for the lifetime of the composed asynchronous operation. - std::ostringstream os; - os << message; - std::unique_ptr encoded_message(new std::string(os.str())); - - // Create a steady_timer to be used for the delay between messages. - std::unique_ptr delay_timer( - new asio::steady_timer(socket.get_executor().context())); - - // Initiate the underlying operations by explicitly calling our intermediate - // completion handler's function call operator. - intermediate_completion_handler{ - socket, std::move(encoded_message), - repeat_count, std::move(delay_timer), - intermediate_completion_handler::starting, - asio::make_work_guard(socket.get_executor()), - std::move(completion.completion_handler) - }({}); - - // Finally, we return the result of the initiating function. - return completion.result.get(); -} - -//------------------------------------------------------------------------------ - -void test_callback() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using a lambda as a callback. - async_write_messages(socket, "Testing callback\r\n", 5, - [](const std::error_code& error) - { - if (!error) - { - std::cout << "Messages sent\n"; - } - else - { - std::cout << "Error: " << error.message() << "\n"; - } - }); - - io_context.run(); -} - -//------------------------------------------------------------------------------ - -void test_future() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using the use_future completion token. - // This token causes the operation's initiating function to return a future, - // which may be used to synchronously wait for the result of the operation. - std::future f = async_write_messages( - socket, "Testing future\r\n", 5, asio::use_future); - - io_context.run(); - - try - { - // Get the result of the operation. - f.get(); - std::cout << "Messages sent\n"; - } - catch (const std::exception& e) - { - std::cout << "Error: " << e.what() << "\n"; - } -} - -//------------------------------------------------------------------------------ - -int main() -{ - test_callback(); - test_future(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/socks4/socks4.hpp b/Sources/Vendor/asio/src/examples/cpp11/socks4/socks4.hpp deleted file mode 100644 index e5cd176..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/socks4/socks4.hpp +++ /dev/null @@ -1,143 +0,0 @@ -// -// socks4.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 SOCKS4_HPP -#define SOCKS4_HPP - -#include -#include -#include -#include - -namespace socks4 { - -const unsigned char version = 0x04; - -class request -{ -public: - enum command_type - { - connect = 0x01, - bind = 0x02 - }; - - request(command_type cmd, const asio::ip::tcp::endpoint& endpoint, - const std::string& user_id) - : version_(version), - command_(cmd), - user_id_(user_id), - null_byte_(0) - { - // Only IPv4 is supported by the SOCKS 4 protocol. - if (endpoint.protocol() != asio::ip::tcp::v4()) - { - throw asio::system_error( - asio::error::address_family_not_supported); - } - - // Convert port number to network byte order. - unsigned short port = endpoint.port(); - port_high_byte_ = (port >> 8) & 0xff; - port_low_byte_ = port & 0xff; - - // Save IP address in network byte order. - address_ = endpoint.address().to_v4().to_bytes(); - } - - std::array buffers() const - { - return - { - { - asio::buffer(&version_, 1), - asio::buffer(&command_, 1), - asio::buffer(&port_high_byte_, 1), - asio::buffer(&port_low_byte_, 1), - asio::buffer(address_), - asio::buffer(user_id_), - asio::buffer(&null_byte_, 1) - } - }; - } - -private: - unsigned char version_; - unsigned char command_; - unsigned char port_high_byte_; - unsigned char port_low_byte_; - asio::ip::address_v4::bytes_type address_; - std::string user_id_; - unsigned char null_byte_; -}; - -class reply -{ -public: - enum status_type - { - request_granted = 0x5a, - request_failed = 0x5b, - request_failed_no_identd = 0x5c, - request_failed_bad_user_id = 0x5d - }; - - reply() - : null_byte_(0), - status_() - { - } - - std::array buffers() - { - return - { - { - asio::buffer(&null_byte_, 1), - asio::buffer(&status_, 1), - asio::buffer(&port_high_byte_, 1), - asio::buffer(&port_low_byte_, 1), - asio::buffer(address_) - } - }; - } - - bool success() const - { - return null_byte_ == 0 && status_ == request_granted; - } - - unsigned char status() const - { - return status_; - } - - asio::ip::tcp::endpoint endpoint() const - { - unsigned short port = port_high_byte_; - port = (port << 8) & 0xff00; - port = port | port_low_byte_; - - asio::ip::address_v4 address(address_); - - return asio::ip::tcp::endpoint(address, port); - } - -private: - unsigned char null_byte_; - unsigned char status_; - unsigned char port_high_byte_; - unsigned char port_low_byte_; - asio::ip::address_v4::bytes_type address_; -}; - -} // namespace socks4 - -#endif // SOCKS4_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/socks4/sync_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/socks4/sync_client.cpp deleted file mode 100644 index ad0e48e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/socks4/sync_client.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// -// sync_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include "socks4.hpp" - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 4) - { - std::cout << "Usage: sync_client \n"; - std::cout << "Examples:\n"; - std::cout << " sync_client 127.0.0.1 1080 chris\n"; - std::cout << " sync_client localhost socks chris\n"; - return 1; - } - - asio::io_context io_context; - - // Get a list of endpoints corresponding to the SOCKS 4 server name. - tcp::resolver resolver(io_context); - auto endpoints = resolver.resolve(argv[1], argv[2]); - - // Try each endpoint until we successfully establish a connection to the - // SOCKS 4 server. - tcp::socket socket(io_context); - asio::connect(socket, endpoints); - - // Get an endpoint for the Boost website. This will be passed to the SOCKS - // 4 server. Explicitly specify IPv4 since SOCKS 4 does not support IPv6. - auto http_endpoint = *resolver.resolve(tcp::v4(), "www.boost.org", "http"); - - // Send the request to the SOCKS 4 server. - socks4::request socks_request( - socks4::request::connect, http_endpoint, argv[3]); - asio::write(socket, socks_request.buffers()); - - // Receive a response from the SOCKS 4 server. - socks4::reply socks_reply; - asio::read(socket, socks_reply.buffers()); - - // Check whether we successfully negotiated with the SOCKS 4 server. - if (!socks_reply.success()) - { - std::cout << "Connection failed.\n"; - std::cout << "status = 0x" << std::hex << socks_reply.status(); - return 1; - } - - // Form the HTTP request. We specify the "Connection: close" header so that - // the server will close the socket after transmitting the response. This - // will allow us to treat all data up until the EOF as the response. - std::string request = - "GET / HTTP/1.0\r\n" - "Host: www.boost.org\r\n" - "Accept: */*\r\n" - "Connection: close\r\n\r\n"; - - // Send the HTTP request. - asio::write(socket, asio::buffer(request)); - - // Read until EOF, writing data to output as we go. - std::array response; - std::error_code error; - while (std::size_t s = socket.read_some( - asio::buffer(response), error)) - std::cout.write(response.data(), s); - if (error != asio::error::eof) - throw std::system_error(error); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/spawn/echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp11/spawn/echo_server.cpp deleted file mode 100644 index 6bd9499..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/spawn/echo_server.cpp +++ /dev/null @@ -1,108 +0,0 @@ -// -// echo_server.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -class session : public std::enable_shared_from_this -{ -public: - explicit session(tcp::socket socket) - : socket_(std::move(socket)), - timer_(socket_.get_io_context()), - strand_(socket_.get_io_context()) - { - } - - void go() - { - auto self(shared_from_this()); - asio::spawn(strand_, - [this, self](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(asio::buffer(data), yield); - asio::async_write(socket_, asio::buffer(data, n), yield); - } - } - catch (std::exception& e) - { - socket_.close(); - timer_.cancel(); - } - }); - - asio::spawn(strand_, - [this, self](asio::yield_context yield) - { - while (socket_.is_open()) - { - asio::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_; - asio::steady_timer timer_; - asio::io_context::strand strand_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: echo_server \n"; - return 1; - } - - asio::io_context io_context; - - asio::spawn(io_context, - [&](asio::yield_context yield) - { - tcp::acceptor acceptor(io_context, - tcp::endpoint(tcp::v4(), std::atoi(argv[1]))); - - for (;;) - { - asio::error_code ec; - tcp::socket socket(io_context); - acceptor.async_accept(socket, yield[ec]); - if (!ec) std::make_shared(std::move(socket))->go(); - } - }); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/spawn/parallel_grep.cpp b/Sources/Vendor/asio/src/examples/cpp11/spawn/parallel_grep.cpp deleted file mode 100644 index 18c2002..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/spawn/parallel_grep.cpp +++ /dev/null @@ -1,84 +0,0 @@ -// -// parallel_grep.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include - -using asio::dispatch; -using asio::spawn; -using asio::strand; -using asio::thread_pool; -using asio::yield_context; - -int main(int argc, char* argv[]) -{ - try - { - if (argc < 2) - { - std::cerr << "Usage: parallel_grep \n"; - return 1; - } - - // We use a fixed size pool of threads for reading the input files. The - // number of threads is automatically determined based on the number of - // CPUs available in the system. - thread_pool pool; - - // To prevent the output from being garbled, we use a strand to synchronise - // printing. - strand output_strand(pool.get_executor()); - - // Spawn a new coroutine for each file specified on the command line. - std::string search_string = argv[1]; - for (int argn = 2; argn < argc; ++argn) - { - std::string input_file = argv[argn]; - spawn(pool, - [=](yield_context yield) - { - std::ifstream is(input_file.c_str()); - std::string line; - std::size_t line_num = 0; - while (std::getline(is, line)) - { - // If we find a match, send a message to the output. - if (line.find(search_string) != std::string::npos) - { - dispatch(output_strand, - [=] - { - std::cout << input_file << ':' << line << std::endl; - }); - } - - // Every so often we yield control to another coroutine. - if (++line_num % 10 == 0) - post(yield); - } - }); - } - - // Join the thread pool to wait for all the spawned tasks to complete. - pool.join(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/ssl/client.cpp b/Sources/Vendor/asio/src/examples/cpp11/ssl/client.cpp deleted file mode 100644 index cf26291..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/ssl/client.cpp +++ /dev/null @@ -1,165 +0,0 @@ -// -// client.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include "asio.hpp" -#include "asio/ssl.hpp" - -using asio::ip::tcp; -using std::placeholders::_1; -using std::placeholders::_2; - -enum { max_length = 1024 }; - -class client -{ -public: - client(asio::io_context& io_context, - asio::ssl::context& context, - const tcp::resolver::results_type& endpoints) - : socket_(io_context, context) - { - socket_.set_verify_mode(asio::ssl::verify_peer); - socket_.set_verify_callback( - std::bind(&client::verify_certificate, this, _1, _2)); - - connect(endpoints); - } - -private: - bool verify_certificate(bool preverified, - asio::ssl::verify_context& ctx) - { - // The verify callback can be used to check whether the certificate that is - // being presented is valid for the peer. For example, RFC 2818 describes - // the steps involved in doing this for HTTPS. Consult the OpenSSL - // documentation for more details. Note that the callback is called once - // for each certificate in the certificate chain, starting from the root - // certificate authority. - - // In this example we will simply print the certificate's subject name. - char subject_name[256]; - X509* cert = X509_STORE_CTX_get_current_cert(ctx.native_handle()); - X509_NAME_oneline(X509_get_subject_name(cert), subject_name, 256); - std::cout << "Verifying " << subject_name << "\n"; - - return preverified; - } - - void connect(const tcp::resolver::results_type& endpoints) - { - asio::async_connect(socket_.lowest_layer(), endpoints, - [this](const std::error_code& error, - const tcp::endpoint& /*endpoint*/) - { - if (!error) - { - handshake(); - } - else - { - std::cout << "Connect failed: " << error.message() << "\n"; - } - }); - } - - void handshake() - { - socket_.async_handshake(asio::ssl::stream_base::client, - [this](const std::error_code& error) - { - if (!error) - { - send_request(); - } - else - { - std::cout << "Handshake failed: " << error.message() << "\n"; - } - }); - } - - void send_request() - { - std::cout << "Enter message: "; - std::cin.getline(request_, max_length); - size_t request_length = std::strlen(request_); - - asio::async_write(socket_, - asio::buffer(request_, request_length), - [this](const std::error_code& error, std::size_t length) - { - if (!error) - { - receive_response(length); - } - else - { - std::cout << "Write failed: " << error.message() << "\n"; - } - }); - } - - void receive_response(std::size_t length) - { - asio::async_read(socket_, - asio::buffer(reply_, length), - [this](const std::error_code& error, std::size_t length) - { - if (!error) - { - std::cout << "Reply: "; - std::cout.write(reply_, length); - std::cout << "\n"; - } - else - { - std::cout << "Read failed: " << error.message() << "\n"; - } - }); - } - - asio::ssl::stream socket_; - char request_[max_length]; - char reply_[max_length]; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: client \n"; - return 1; - } - - asio::io_context io_context; - - tcp::resolver resolver(io_context); - auto endpoints = resolver.resolve(argv[1], argv[2]); - - asio::ssl::context ctx(asio::ssl::context::sslv23); - ctx.load_verify_file("ca.pem"); - - client c(io_context, ctx, endpoints); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/ssl/server.cpp b/Sources/Vendor/asio/src/examples/cpp11/ssl/server.cpp deleted file mode 100644 index 4e4609a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/ssl/server.cpp +++ /dev/null @@ -1,143 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" -#include "asio/ssl.hpp" - -using asio::ip::tcp; - -class session : public std::enable_shared_from_this -{ -public: - session(tcp::socket socket, asio::ssl::context& context) - : socket_(std::move(socket), context) - { - } - - void start() - { - do_handshake(); - } - -private: - void do_handshake() - { - auto self(shared_from_this()); - socket_.async_handshake(asio::ssl::stream_base::server, - [this, self](const std::error_code& error) - { - if (!error) - { - do_read(); - } - }); - } - - void do_read() - { - auto self(shared_from_this()); - socket_.async_read_some(asio::buffer(data_), - [this, self](const std::error_code& ec, std::size_t length) - { - if (!ec) - { - do_write(length); - } - }); - } - - void do_write(std::size_t length) - { - auto self(shared_from_this()); - asio::async_write(socket_, asio::buffer(data_, length), - [this, self](const std::error_code& ec, - std::size_t /*length*/) - { - if (!ec) - { - do_read(); - } - }); - } - - asio::ssl::stream socket_; - char data_[1024]; -}; - -class server -{ -public: - server(asio::io_context& io_context, unsigned short port) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)), - context_(asio::ssl::context::sslv23) - { - context_.set_options( - asio::ssl::context::default_workarounds - | asio::ssl::context::no_sslv2 - | asio::ssl::context::single_dh_use); - context_.set_password_callback(std::bind(&server::get_password, this)); - context_.use_certificate_chain_file("server.pem"); - context_.use_private_key_file("server.pem", asio::ssl::context::pem); - context_.use_tmp_dh_file("dh2048.pem"); - - do_accept(); - } - -private: - std::string get_password() const - { - return "test"; - } - - void do_accept() - { - acceptor_.async_accept( - [this](const std::error_code& error, tcp::socket socket) - { - if (!error) - { - std::make_shared(std::move(socket), context_)->start(); - } - - do_accept(); - }); - } - - tcp::acceptor acceptor_; - asio::ssl::context context_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp deleted file mode 100644 index 3c1e7e4..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp +++ /dev/null @@ -1,311 +0,0 @@ -// -// async_tcp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/read_until.hpp" -#include "asio/steady_timer.hpp" -#include "asio/write.hpp" -#include -#include -#include - -using asio::steady_timer; -using asio::ip::tcp; -using std::placeholders::_1; -using std::placeholders::_2; - -// -// This class manages socket timeouts by applying the concept of a deadline. -// Some asynchronous operations are given deadlines by which they must complete. -// Deadlines are enforced by an "actor" that persists for the lifetime of the -// client object: -// -// +----------------+ -// | | -// | check_deadline |<---+ -// | | | -// +----------------+ | async_wait() -// | | -// +---------+ -// -// If the deadline actor determines that the deadline has expired, the socket -// is closed and any outstanding operations are consequently cancelled. -// -// Connection establishment involves trying each endpoint in turn until a -// connection is successful, or the available endpoints are exhausted. If the -// deadline actor closes the socket, the connect actor is woken up and moves to -// the next endpoint. -// -// +---------------+ -// | | -// | start_connect |<---+ -// | | | -// +---------------+ | -// | | -// async_- | +----------------+ -// connect() | | | -// +--->| handle_connect | -// | | -// +----------------+ -// : -// Once a connection is : -// made, the connect : -// actor forks in two - : -// : -// an actor for reading : and an actor for -// inbound messages: : sending heartbeats: -// : -// +------------+ : +-------------+ -// | |<- - - - -+- - - - ->| | -// | start_read | | start_write |<---+ -// | |<---+ | | | -// +------------+ | +-------------+ | async_wait() -// | | | | -// async_- | +-------------+ async_- | +--------------+ -// read_- | | | write() | | | -// until() +--->| handle_read | +--->| handle_write | -// | | | | -// +-------------+ +--------------+ -// -// The input actor reads messages from the socket, where messages are delimited -// by the newline character. The deadline for a complete message is 30 seconds. -// -// The heartbeat actor sends a heartbeat (a message that consists of a single -// newline character) every 10 seconds. In this example, no deadline is applied -// to message sending. -// -class client -{ -public: - client(asio::io_context& io_context) - : socket_(io_context), - deadline_(io_context), - heartbeat_timer_(io_context) - { - } - - // Called by the user of the client class to initiate the connection process. - // The endpoints will have been obtained using a tcp::resolver. - void start(tcp::resolver::results_type endpoints) - { - // Start the connect actor. - endpoints_ = endpoints; - start_connect(endpoints_.begin()); - - // Start the deadline actor. You will note that we're not setting any - // particular deadline here. Instead, the connect and input actors will - // update the deadline prior to each asynchronous operation. - deadline_.async_wait(std::bind(&client::check_deadline, this)); - } - - // This function terminates all the actors to shut down the connection. It - // may be called by the user of the client class, or by the class itself in - // response to graceful termination or an unrecoverable error. - void stop() - { - stopped_ = true; - std::error_code ignored_error; - socket_.close(ignored_error); - deadline_.cancel(); - heartbeat_timer_.cancel(); - } - -private: - void start_connect(tcp::resolver::results_type::iterator endpoint_iter) - { - if (endpoint_iter != endpoints_.end()) - { - std::cout << "Trying " << endpoint_iter->endpoint() << "...\n"; - - // Set a deadline for the connect operation. - deadline_.expires_after(std::chrono::seconds(60)); - - // Start the asynchronous connect operation. - socket_.async_connect(endpoint_iter->endpoint(), - std::bind(&client::handle_connect, - this, _1, endpoint_iter)); - } - else - { - // There are no more endpoints to try. Shut down the client. - stop(); - } - } - - void handle_connect(const std::error_code& error, - tcp::resolver::results_type::iterator endpoint_iter) - { - if (stopped_) - return; - - // The async_connect() function automatically opens the socket at the start - // of the asynchronous operation. If the socket is closed at this time then - // the timeout handler must have run first. - if (!socket_.is_open()) - { - std::cout << "Connect timed out\n"; - - // Try the next available endpoint. - start_connect(++endpoint_iter); - } - - // Check if the connect operation failed before the deadline expired. - else if (error) - { - std::cout << "Connect error: " << error.message() << "\n"; - - // We need to close the socket used in the previous connection attempt - // before starting a new one. - socket_.close(); - - // Try the next available endpoint. - start_connect(++endpoint_iter); - } - - // Otherwise we have successfully established a connection. - else - { - std::cout << "Connected to " << endpoint_iter->endpoint() << "\n"; - - // Start the input actor. - start_read(); - - // Start the heartbeat actor. - start_write(); - } - } - - void start_read() - { - // Set a deadline for the read operation. - deadline_.expires_after(std::chrono::seconds(30)); - - // Start an asynchronous operation to read a newline-delimited message. - asio::async_read_until(socket_, - asio::dynamic_buffer(input_buffer_), '\n', - std::bind(&client::handle_read, this, _1, _2)); - } - - void handle_read(const std::error_code& error, std::size_t n) - { - if (stopped_) - return; - - if (!error) - { - // Extract the newline-delimited message from the buffer. - std::string line(input_buffer_.substr(0, n - 1)); - input_buffer_.erase(0, n); - - // Empty messages are heartbeats and so ignored. - if (!line.empty()) - { - std::cout << "Received: " << line << "\n"; - } - - start_read(); - } - else - { - std::cout << "Error on receive: " << error.message() << "\n"; - - stop(); - } - } - - void start_write() - { - if (stopped_) - return; - - // Start an asynchronous operation to send a heartbeat message. - asio::async_write(socket_, asio::buffer("\n", 1), - std::bind(&client::handle_write, this, _1)); - } - - void handle_write(const std::error_code& error) - { - if (stopped_) - return; - - if (!error) - { - // Wait 10 seconds before sending the next heartbeat. - heartbeat_timer_.expires_after(std::chrono::seconds(10)); - heartbeat_timer_.async_wait(std::bind(&client::start_write, this)); - } - else - { - std::cout << "Error on heartbeat: " << error.message() << "\n"; - - stop(); - } - } - - void check_deadline() - { - if (stopped_) - return; - - // Check whether the deadline has passed. We compare the deadline against - // the current time since a new asynchronous operation may have moved the - // deadline before this actor had a chance to run. - if (deadline_.expiry() <= steady_timer::clock_type::now()) - { - // The deadline has passed. The socket is closed so that any outstanding - // asynchronous operations are cancelled. - socket_.close(); - - // There is no longer an active deadline. The expiry is set to the - // maximum time point so that the actor takes no action until a new - // deadline is set. - deadline_.expires_at(steady_timer::time_point::max()); - } - - // Put the actor back to sleep. - deadline_.async_wait(std::bind(&client::check_deadline, this)); - } - -private: - bool stopped_ = false; - tcp::resolver::results_type endpoints_; - tcp::socket socket_; - std::string input_buffer_; - steady_timer deadline_; - steady_timer heartbeat_timer_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: client \n"; - return 1; - } - - asio::io_context io_context; - tcp::resolver r(io_context); - client c(io_context); - - c.start(r.resolve(argv[1], argv[2])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp deleted file mode 100644 index 766b5b5..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp +++ /dev/null @@ -1,192 +0,0 @@ -// -// blocking_tcp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "asio/buffer.hpp" -#include "asio/connect.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/read_until.hpp" -#include "asio/system_error.hpp" -#include "asio/write.hpp" -#include -#include -#include - -using asio::ip::tcp; - -//---------------------------------------------------------------------- - -// -// This class manages socket timeouts by running the io_context using the timed -// io_context::run_for() member function. Each asynchronous operation is given -// a timeout within which it must complete. The socket operations themselves -// use lambdas as completion handlers. For a given socket operation, the client -// object runs the io_context to block thread execution until the operation -// completes or the timeout is reached. If the io_context::run_for() function -// times out, the socket is closed and the outstanding asynchronous operation -// is cancelled. -// -class client -{ -public: - void connect(const std::string& host, const std::string& service, - std::chrono::steady_clock::duration timeout) - { - // Resolve the host name and service to a list of endpoints. - auto endpoints = tcp::resolver(io_context_).resolve(host, service); - - // Start the asynchronous operation itself. The lambda that is used as a - // callback will update the error variable when the operation completes. - // The blocking_udp_client.cpp example shows how you can use std::bind - // rather than a lambda. - std::error_code error; - asio::async_connect(socket_, endpoints, - [&](const std::error_code& result_error, - const tcp::endpoint& /*result_endpoint*/) - { - error = result_error; - }); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - // Determine whether a connection was successfully established. - if (error) - throw std::system_error(error); - } - - std::string read_line(std::chrono::steady_clock::duration timeout) - { - // Start the asynchronous operation. The lambda that is used as a callback - // will update the error and n variables when the operation completes. The - // blocking_udp_client.cpp example shows how you can use std::bind rather - // than a lambda. - std::error_code error; - std::size_t n = 0; - asio::async_read_until(socket_, - asio::dynamic_buffer(input_buffer_), '\n', - [&](const std::error_code& result_error, - std::size_t result_n) - { - error = result_error; - n = result_n; - }); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - // Determine whether the read completed successfully. - if (error) - throw std::system_error(error); - - std::string line(input_buffer_.substr(0, n - 1)); - input_buffer_.erase(0, n); - return line; - } - - void write_line(const std::string& line, - std::chrono::steady_clock::duration timeout) - { - std::string data = line + "\n"; - - // Start the asynchronous operation itself. The lambda that is used as a - // callback will update the error variable when the operation completes. - // The blocking_udp_client.cpp example shows how you can use std::bind - // rather than a lambda. - std::error_code error; - asio::async_write(socket_, asio::buffer(data), - [&](const std::error_code& result_error, - std::size_t /*result_n*/) - { - error = result_error; - }); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - // Determine whether the read completed successfully. - if (error) - throw std::system_error(error); - } - -private: - void run(std::chrono::steady_clock::duration timeout) - { - // Restart the io_context, as it may have been left in the "stopped" state - // by a previous operation. - io_context_.restart(); - - // Block until the asynchronous operation has completed, or timed out. If - // the pending asynchronous operation is a composed operation, the deadline - // applies to the entire operation, rather than individual operations on - // the socket. - io_context_.run_for(timeout); - - // If the asynchronous operation completed successfully then the io_context - // would have been stopped due to running out of work. If it was not - // stopped, then the io_context::run_for call must have timed out. - if (!io_context_.stopped()) - { - // Close the socket to cancel the outstanding asynchronous operation. - socket_.close(); - - // Run the io_context again until the operation completes. - io_context_.run(); - } - } - - asio::io_context io_context_; - tcp::socket socket_{io_context_}; - std::string input_buffer_; -}; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 4) - { - std::cerr << "Usage: blocking_tcp_client \n"; - return 1; - } - - client c; - c.connect(argv[1], argv[2], std::chrono::seconds(10)); - - auto time_sent = std::chrono::steady_clock::now(); - - c.write_line(argv[3], std::chrono::seconds(10)); - - for (;;) - { - std::string line = c.read_line(std::chrono::seconds(10)); - - // Keep going until we get back the line that was sent. - if (line == argv[3]) - break; - } - - auto time_received = std::chrono::steady_clock::now(); - - std::cout << "Round trip time: "; - std::cout << std::chrono::duration_cast< - std::chrono::microseconds>( - time_received - time_sent).count(); - std::cout << " microseconds\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp deleted file mode 100644 index fb9acbd..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp +++ /dev/null @@ -1,193 +0,0 @@ -// -// blocking_token_tcp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "asio/connect.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/read_until.hpp" -#include "asio/streambuf.hpp" -#include "asio/system_error.hpp" -#include "asio/write.hpp" -#include -#include -#include -#include - -using asio::ip::tcp; - -//---------------------------------------------------------------------- - -// A custom completion token that makes asynchronous operations behave as -// though they are blocking calls with a timeout. -struct close_after -{ - close_after(std::chrono::steady_clock::duration t, tcp::socket& s) - : timeout_(t), socket_(s) - { - } - - // The maximum time to wait for an asynchronous operation to complete. - std::chrono::steady_clock::duration timeout_; - - // The socket to be closed if the operation does not complete in time. - tcp::socket& socket_; -}; - -namespace asio { - -// The async_result template is specialised to allow the close_after token to -// be used with asynchronous operations that have a completion signature of -// void(error_code, T). Generalising this for all completion signature forms is -// left as an exercise for the reader. -template -class async_result -{ -public: - // An asynchronous operation's initiating function automatically creates an - // completion_handler_type object from the token. This function object is - // then called on completion of the asynchronous operation. - class completion_handler_type - { - public: - completion_handler_type(const close_after& token) - : token_(token) - { - } - - void operator()(const std::error_code& error, T t) - { - *error_ = error; - *t_ = t; - } - - private: - friend class async_result; - close_after token_; - std::error_code* error_; - T* t_; - }; - - // The async_result constructor associates the completion handler object with - // the result of the initiating function. - explicit async_result(completion_handler_type& h) - : timeout_(h.token_.timeout_), - socket_(h.token_.socket_) - { - h.error_ = &error_; - h.t_ = &t_; - } - - // The return_type typedef determines the result type of the asynchronous - // operation's initiating function. - typedef T return_type; - - // The get() function is used to obtain the result of the asynchronous - // operation's initiating function. For the close_after completion token, we - // use this function to run the io_context until the operation is complete. - return_type get() - { - asio::io_context& io_context = socket_.get_executor().context(); - - // Restart the io_context, as it may have been left in the "stopped" state - // by a previous operation. - io_context.restart(); - - // Block until the asynchronous operation has completed, or timed out. If - // the pending asynchronous operation is a composed operation, the deadline - // applies to the entire operation, rather than individual operations on - // the socket. - io_context.run_for(timeout_); - - // If the asynchronous operation completed successfully then the io_context - // would have been stopped due to running out of work. If it was not - // stopped, then the io_context::run_for call must have timed out and the - // operation is still incomplete. - if (!io_context.stopped()) - { - // Close the socket to cancel the outstanding asynchronous operation. - socket_.close(); - - // Run the io_context again until the operation completes. - io_context.run(); - } - - // If the operation failed, throw an exception. Otherwise return the result. - return error_ ? throw std::system_error(error_) : t_; - } - -private: - std::chrono::steady_clock::duration timeout_; - tcp::socket& socket_; - std::error_code error_; - T t_; -}; - -} // namespace asio - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 4) - { - std::cerr << "Usage: blocking_tcp_client \n"; - return 1; - } - - asio::io_context io_context; - - // Resolve the host name and service to a list of endpoints. - auto endpoints = tcp::resolver(io_context).resolve(argv[1], argv[2]); - - tcp::socket socket(io_context); - - // Run an asynchronous connect operation with a timeout. - asio::async_connect(socket, endpoints, - close_after(std::chrono::seconds(10), socket)); - - auto time_sent = std::chrono::steady_clock::now(); - - // Run an asynchronous write operation with a timeout. - std::string msg = argv[3] + std::string("\n"); - asio::async_write(socket, asio::buffer(msg), - close_after(std::chrono::seconds(10), socket)); - - for (std::string input_buffer;;) - { - // Run an asynchronous read operation with a timeout. - std::size_t n = asio::async_read_until(socket, - asio::dynamic_buffer(input_buffer), '\n', - close_after(std::chrono::seconds(10), socket)); - - std::string line(input_buffer.substr(0, n - 1)); - input_buffer.erase(0, n); - - // Keep going until we get back the line that was sent. - if (line == argv[3]) - break; - } - - auto time_received = std::chrono::steady_clock::now(); - - std::cout << "Round trip time: "; - std::cout << std::chrono::duration_cast< - std::chrono::microseconds>( - time_received - time_sent).count(); - std::cout << " microseconds\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp deleted file mode 100644 index 9c5b290..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp +++ /dev/null @@ -1,155 +0,0 @@ -// -// blocking_udp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/udp.hpp" -#include -#include -#include - -using asio::ip::udp; -using std::placeholders::_1; -using std::placeholders::_2; - -//---------------------------------------------------------------------- - -// -// This class manages socket timeouts by running the io_context using the timed -// io_context::run_for() member function. Each asynchronous operation is given -// a timeout within which it must complete. The socket operations themselves -// use std::bind to specify the completion handler: -// -// +---------------+ -// | | -// | receive | -// | | -// +---------------+ -// | -// async_- | +----------------+ -// receive() | | | -// +--->| handle_receive | -// | | -// +----------------+ -// -// For a given socket operation, the client object runs the io_context to block -// thread execution until the operation completes or the timeout is reached. If -// the io_context::run_for() function times out, the socket is closed and the -// outstanding asynchronous operation is cancelled. -// -class client -{ -public: - client(const udp::endpoint& listen_endpoint) - : socket_(io_context_, listen_endpoint) - { - } - - std::size_t receive(const asio::mutable_buffer& buffer, - std::chrono::steady_clock::duration timeout, - std::error_code& error) - { - // Start the asynchronous operation. The handle_receive function used as a - // callback will update the error and length variables. - std::size_t length = 0; - socket_.async_receive(asio::buffer(buffer), - std::bind(&client::handle_receive, _1, _2, &error, &length)); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - return length; - } - -private: - void run(std::chrono::steady_clock::duration timeout) - { - // Restart the io_context, as it may have been left in the "stopped" state - // by a previous operation. - io_context_.restart(); - - // Block until the asynchronous operation has completed, or timed out. If - // the pending asynchronous operation is a composed operation, the deadline - // applies to the entire operation, rather than individual operations on - // the socket. - io_context_.run_for(timeout); - - // If the asynchronous operation completed successfully then the io_context - // would have been stopped due to running out of work. If it was not - // stopped, then the io_context::run_for call must have timed out. - if (!io_context_.stopped()) - { - // Cancel the outstanding asynchronous operation. - socket_.cancel(); - - // Run the io_context again until the operation completes. - io_context_.run(); - } - } - - static void handle_receive( - const std::error_code& error, std::size_t length, - std::error_code* out_error, std::size_t* out_length) - { - *out_error = error; - *out_length = length; - } - -private: - asio::io_context io_context_; - udp::socket socket_; -}; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - using namespace std; // For atoi. - - if (argc != 3) - { - std::cerr << "Usage: blocking_udp_client \n"; - return 1; - } - - udp::endpoint listen_endpoint( - asio::ip::make_address(argv[1]), - std::atoi(argv[2])); - - client c(listen_endpoint); - - for (;;) - { - char data[1024]; - std::error_code error; - std::size_t n = c.receive(asio::buffer(data), - std::chrono::seconds(10), error); - - if (error) - { - std::cout << "Receive error: " << error.message() << "\n"; - } - else - { - std::cout << "Received: "; - std::cout.write(data, n); - std::cout << "\n"; - } - } - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/timeouts/server.cpp b/Sources/Vendor/asio/src/examples/cpp11/timeouts/server.cpp deleted file mode 100644 index 2845b58..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/timeouts/server.cpp +++ /dev/null @@ -1,433 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/ip/udp.hpp" -#include "asio/read_until.hpp" -#include "asio/steady_timer.hpp" -#include "asio/write.hpp" - -using asio::steady_timer; -using asio::ip::tcp; -using asio::ip::udp; - -//---------------------------------------------------------------------- - -class subscriber -{ -public: - virtual ~subscriber() = default; - virtual void deliver(const std::string& msg) = 0; -}; - -typedef std::shared_ptr subscriber_ptr; - -//---------------------------------------------------------------------- - -class channel -{ -public: - void join(subscriber_ptr subscriber) - { - subscribers_.insert(subscriber); - } - - void leave(subscriber_ptr subscriber) - { - subscribers_.erase(subscriber); - } - - void deliver(const std::string& msg) - { - for (const auto& s : subscribers_) - { - s->deliver(msg); - } - } - -private: - std::set subscribers_; -}; - -//---------------------------------------------------------------------- - -// -// This class manages socket timeouts by applying the concept of a deadline. -// Some asynchronous operations are given deadlines by which they must complete. -// Deadlines are enforced by two "actors" that persist for the lifetime of the -// session object, one for input and one for output: -// -// +----------------+ +----------------+ -// | | | | -// | check_deadline |<-------+ | check_deadline |<-------+ -// | | | | | | -// +----------------+ | +----------------+ | -// | | | | -// async_wait() | +----------------+ async_wait() | +----------------+ -// on input | | lambda | on output | | lambda | -// deadline +--->| in | deadline +--->| in | -// | check_deadline | | check_deadline | -// +----------------+ +----------------+ -// -// If either deadline actor determines that the corresponding deadline has -// expired, the socket is closed and any outstanding operations are cancelled. -// -// The input actor reads messages from the socket, where messages are delimited -// by the newline character: -// -// +-------------+ -// | | -// | read_line |<----+ -// | | | -// +-------------+ | -// | | -// async_- | +-------------+ -// read_- | | lambda | -// until() +--->| in | -// | read_line | -// +-------------+ -// -// The deadline for receiving a complete message is 30 seconds. If a non-empty -// message is received, it is delivered to all subscribers. If a heartbeat (a -// message that consists of a single newline character) is received, a heartbeat -// is enqueued for the client, provided there are no other messages waiting to -// be sent. -// -// The output actor is responsible for sending messages to the client: -// -// +----------------+ -// | |<---------------------+ -// | await_output | | -// | |<-------+ | -// +----------------+ | | -// | | | | -// | async_- | +----------------+ | -// | wait() | | lambda | | -// | +->| in | | -// | | await_output | | -// | +----------------+ | -// V | -// +--------------+ +--------------+ -// | | async_write() | lambda | -// | write_line |-------------->| in | -// | | | write_line | -// +--------------+ +--------------+ -// -// The output actor first waits for an output message to be enqueued. It does -// this by using a steady_timer as an asynchronous condition variable. The -// steady_timer will be signalled whenever the output queue is non-empty. -// -// Once a message is available, it is sent to the client. The deadline for -// sending a complete message is 30 seconds. After the message is successfully -// sent, the output actor again waits for the output queue to become non-empty. -// -class tcp_session - : public subscriber, - public std::enable_shared_from_this -{ -public: - tcp_session(tcp::socket socket, channel& ch) - : channel_(ch), - socket_(std::move(socket)) - { - input_deadline_.expires_at(steady_timer::time_point::max()); - output_deadline_.expires_at(steady_timer::time_point::max()); - - // The non_empty_output_queue_ steady_timer is set to the maximum time - // point whenever the output queue is empty. This ensures that the output - // actor stays asleep until a message is put into the queue. - non_empty_output_queue_.expires_at(steady_timer::time_point::max()); - } - - // Called by the server object to initiate the four actors. - void start() - { - channel_.join(shared_from_this()); - - read_line(); - check_deadline(input_deadline_); - - await_output(); - check_deadline(output_deadline_); - } - -private: - void stop() - { - channel_.leave(shared_from_this()); - - std::error_code ignored_error; - socket_.close(ignored_error); - input_deadline_.cancel(); - non_empty_output_queue_.cancel(); - output_deadline_.cancel(); - } - - bool stopped() const - { - return !socket_.is_open(); - } - - void deliver(const std::string& msg) override - { - output_queue_.push_back(msg + "\n"); - - // Signal that the output queue contains messages. Modifying the expiry - // will wake the output actor, if it is waiting on the timer. - non_empty_output_queue_.expires_at(steady_timer::time_point::min()); - } - - void read_line() - { - // Set a deadline for the read operation. - input_deadline_.expires_after(std::chrono::seconds(30)); - - // Start an asynchronous operation to read a newline-delimited message. - auto self(shared_from_this()); - asio::async_read_until(socket_, - asio::dynamic_buffer(input_buffer_), '\n', - [this, self](const std::error_code& error, std::size_t n) - { - // Check if the session was stopped while the operation was pending. - if (stopped()) - return; - - if (!error) - { - // Extract the newline-delimited message from the buffer. - std::string msg(input_buffer_.substr(0, n - 1)); - input_buffer_.erase(0, n); - - if (!msg.empty()) - { - channel_.deliver(msg); - } - else - { - - // We received a heartbeat message from the client. If there's - // nothing else being sent or ready to be sent, send a heartbeat - // right back. - if (output_queue_.empty()) - { - output_queue_.push_back("\n"); - - // Signal that the output queue contains messages. Modifying - // the expiry will wake the output actor, if it is waiting on - // the timer. - non_empty_output_queue_.expires_at( - steady_timer::time_point::min()); - } - } - - read_line(); - } - else - { - stop(); - } - }); - } - - void await_output() - { - auto self(shared_from_this()); - non_empty_output_queue_.async_wait( - [this, self](const std::error_code& /*error*/) - { - // Check if the session was stopped while the operation was pending. - if (stopped()) - return; - - if (output_queue_.empty()) - { - // There are no messages that are ready to be sent. The actor goes - // to sleep by waiting on the non_empty_output_queue_ timer. When a - // new message is added, the timer will be modified and the actor - // will wake. - non_empty_output_queue_.expires_at(steady_timer::time_point::max()); - await_output(); - } - else - { - write_line(); - } - }); - } - - void write_line() - { - // Set a deadline for the write operation. - output_deadline_.expires_after(std::chrono::seconds(30)); - - // Start an asynchronous operation to send a message. - auto self(shared_from_this()); - asio::async_write(socket_, - asio::buffer(output_queue_.front()), - [this, self](const std::error_code& error, std::size_t /*n*/) - { - // Check if the session was stopped while the operation was pending. - if (stopped()) - return; - - if (!error) - { - output_queue_.pop_front(); - - await_output(); - } - else - { - stop(); - } - }); - } - - void check_deadline(steady_timer& deadline) - { - auto self(shared_from_this()); - deadline.async_wait( - [this, self, &deadline](const std::error_code& /*error*/) - { - // Check if the session was stopped while the operation was pending. - if (stopped()) - return; - - // Check whether the deadline has passed. We compare the deadline - // against the current time since a new asynchronous operation may - // have moved the deadline before this actor had a chance to run. - if (deadline.expiry() <= steady_timer::clock_type::now()) - { - // The deadline has passed. Stop the session. The other actors will - // terminate as soon as possible. - stop(); - } - else - { - // Put the actor back to sleep. - check_deadline(deadline); - } - }); - } - - channel& channel_; - tcp::socket socket_; - std::string input_buffer_; - steady_timer input_deadline_{socket_.get_executor().context()}; - std::deque output_queue_; - steady_timer non_empty_output_queue_{socket_.get_executor().context()}; - steady_timer output_deadline_{socket_.get_executor().context()}; -}; - -typedef std::shared_ptr tcp_session_ptr; - -//---------------------------------------------------------------------- - -class udp_broadcaster - : public subscriber -{ -public: - udp_broadcaster(asio::io_context& io_context, - const udp::endpoint& broadcast_endpoint) - : socket_(io_context) - { - socket_.connect(broadcast_endpoint); - socket_.set_option(udp::socket::broadcast(true)); - } - -private: - void deliver(const std::string& msg) - { - std::error_code ignored_error; - socket_.send(asio::buffer(msg), 0, ignored_error); - } - - udp::socket socket_; -}; - -//---------------------------------------------------------------------- - -class server -{ -public: - server(asio::io_context& io_context, - const tcp::endpoint& listen_endpoint, - const udp::endpoint& broadcast_endpoint) - : io_context_(io_context), - acceptor_(io_context, listen_endpoint) - { - channel_.join( - std::make_shared( - io_context_, broadcast_endpoint)); - - accept(); - } - -private: - void accept() - { - acceptor_.async_accept( - [this](const std::error_code& error, tcp::socket socket) - { - if (!error) - { - std::make_shared(std::move(socket), channel_)->start(); - } - - accept(); - }); - } - - asio::io_context& io_context_; - tcp::acceptor acceptor_; - channel channel_; -}; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - using namespace std; // For atoi. - - if (argc != 4) - { - std::cerr << "Usage: server \n"; - return 1; - } - - asio::io_context io_context; - - tcp::endpoint listen_endpoint(tcp::v4(), atoi(argv[1])); - - udp::endpoint broadcast_endpoint( - asio::ip::make_address(argv[2]), atoi(argv[3])); - - server s(io_context, listen_endpoint, broadcast_endpoint); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/timers/time_t_timer.cpp b/Sources/Vendor/asio/src/examples/cpp11/timers/time_t_timer.cpp deleted file mode 100644 index fd27381..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/timers/time_t_timer.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// time_t_timer.cpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include - -// A custom implementation of the Clock concept from the standard C++ library. -struct time_t_clock -{ - // The duration type. - typedef std::chrono::steady_clock::duration duration; - - // The duration's underlying arithmetic representation. - typedef duration::rep rep; - - // The ratio representing the duration's tick period. - typedef duration::period period; - - // An absolute time point represented using the clock. - typedef std::chrono::time_point time_point; - - // The clock is not monotonically increasing. - static constexpr bool is_steady = false; - - // Get the current time. - static time_point now() noexcept - { - return time_point() + std::chrono::seconds(std::time(0)); - } -}; - -// The asio::basic_waitable_timer template accepts an optional WaitTraits -// template parameter. The underlying time_t clock has one-second granularity, -// so these traits may be customised to reduce the latency between the clock -// ticking over and a wait operation's completion. When the timeout is near -// (less than one second away) we poll the clock more frequently to detect the -// time change closer to when it occurs. The user can select the appropriate -// trade off between accuracy and the increased CPU cost of polling. In extreme -// cases, a zero duration may be returned to make the timers as accurate as -// possible, albeit with 100% CPU usage. -struct time_t_wait_traits -{ - // Determine how long until the clock should be next polled to determine - // whether the duration has elapsed. - static time_t_clock::duration to_wait_duration( - const time_t_clock::duration& d) - { - if (d > std::chrono::seconds(1)) - return d - std::chrono::seconds(1); - else if (d > std::chrono::seconds(0)) - return std::chrono::milliseconds(10); - else - return std::chrono::seconds(0); - } - - // Determine how long until the clock should be next polled to determine - // whether the absoluate time has been reached. - static time_t_clock::duration to_wait_duration( - const time_t_clock::time_point& t) - { - return to_wait_duration(t - time_t_clock::now()); - } -}; - -typedef asio::basic_waitable_timer< - time_t_clock, time_t_wait_traits> time_t_timer; - -int main() -{ - try - { - asio::io_context io_context; - - time_t_timer timer(io_context); - - timer.expires_after(std::chrono::seconds(5)); - std::cout << "Starting synchronous wait\n"; - timer.wait(); - std::cout << "Finished synchronous wait\n"; - - timer.expires_after(std::chrono::seconds(5)); - std::cout << "Starting asynchronous wait\n"; - timer.async_wait( - [](const std::error_code& /*error*/) - { - std::cout << "timeout\n"; - }); - io_context.run(); - std::cout << "Finished asynchronous wait\n"; - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/Makefile.am b/Sources/Vendor/asio/src/examples/cpp14/Makefile.am deleted file mode 100644 index fb8c356..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/Makefile.am +++ /dev/null @@ -1,48 +0,0 @@ -AUTOMAKE_OPTIONS = subdir-objects - -if SEPARATE_COMPILATION -noinst_LIBRARIES = libasio.a -libasio_a_SOURCES = ../../asio.cpp -if HAVE_OPENSSL -libasio_a_SOURCES += ../../asio_ssl.cpp -endif -LDADD = libasio.a -endif - -noinst_PROGRAMS = \ - echo/async_tcp_echo_server \ - echo/async_udp_echo_server \ - echo/blocking_tcp_echo_client \ - echo/blocking_tcp_echo_server \ - echo/blocking_udp_echo_client \ - echo/blocking_udp_echo_server \ - executors/actor \ - executors/async_1 \ - executors/async_2 \ - executors/bank_account_1 \ - executors/bank_account_2 \ - executors/fork_join \ - executors/pipeline \ - executors/priority_scheduler \ - iostreams/http_client - -AM_CXXFLAGS = -I$(srcdir)/../../../include - -echo_async_tcp_echo_server_SOURCES = echo/async_tcp_echo_server.cpp -echo_async_udp_echo_server_SOURCES = echo/async_udp_echo_server.cpp -echo_blocking_tcp_echo_client_SOURCES = echo/blocking_tcp_echo_client.cpp -echo_blocking_tcp_echo_server_SOURCES = echo/blocking_tcp_echo_server.cpp -echo_blocking_udp_echo_client_SOURCES = echo/blocking_udp_echo_client.cpp -echo_blocking_udp_echo_server_SOURCES = echo/blocking_udp_echo_server.cpp -executors_actor_SOURCES = executors/actor.cpp -executors_async_1_SOURCES = executors/async_1.cpp -executors_async_2_SOURCES = executors/async_2.cpp -executors_bank_account_1_SOURCES = executors/bank_account_1.cpp -executors_bank_account_2_SOURCES = executors/bank_account_2.cpp -executors_fork_join_SOURCES = executors/fork_join.cpp -executors_pipeline_SOURCES = executors/pipeline.cpp -executors_priority_scheduler_SOURCES = executors/priority_scheduler.cpp -iostreams_http_client_SOURCES = iostreams/http_client.cpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in diff --git a/Sources/Vendor/asio/src/examples/cpp14/Makefile.in b/Sources/Vendor/asio/src/examples/cpp14/Makefile.in deleted file mode 100644 index 0aecefd..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/Makefile.in +++ /dev/null @@ -1,908 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__append_1 = ../../asio_ssl.cpp -noinst_PROGRAMS = echo/async_tcp_echo_server$(EXEEXT) \ - echo/async_udp_echo_server$(EXEEXT) \ - echo/blocking_tcp_echo_client$(EXEEXT) \ - echo/blocking_tcp_echo_server$(EXEEXT) \ - echo/blocking_udp_echo_client$(EXEEXT) \ - echo/blocking_udp_echo_server$(EXEEXT) \ - executors/actor$(EXEEXT) executors/async_1$(EXEEXT) \ - executors/async_2$(EXEEXT) executors/bank_account_1$(EXEEXT) \ - executors/bank_account_2$(EXEEXT) executors/fork_join$(EXEEXT) \ - executors/pipeline$(EXEEXT) \ - executors/priority_scheduler$(EXEEXT) \ - iostreams/http_client$(EXEEXT) -subdir = src/examples/cpp14 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -PROGRAMS = $(noinst_PROGRAMS) -LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru -AM_V_AR = $(am__v_AR_@AM_V@) -am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = -libasio_a_AR = $(AR) $(ARFLAGS) -libasio_a_LIBADD = -am__libasio_a_SOURCES_DIST = ../../asio.cpp ../../asio_ssl.cpp -am__dirstamp = $(am__leading_dot)dirstamp -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__objects_1 = ../../asio_ssl.$(OBJEXT) -@SEPARATE_COMPILATION_TRUE@am_libasio_a_OBJECTS = \ -@SEPARATE_COMPILATION_TRUE@ ../../asio.$(OBJEXT) \ -@SEPARATE_COMPILATION_TRUE@ $(am__objects_1) -libasio_a_OBJECTS = $(am_libasio_a_OBJECTS) -am_echo_async_tcp_echo_server_OBJECTS = \ - echo/async_tcp_echo_server.$(OBJEXT) -echo_async_tcp_echo_server_OBJECTS = \ - $(am_echo_async_tcp_echo_server_OBJECTS) -echo_async_tcp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_async_tcp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_async_udp_echo_server_OBJECTS = \ - echo/async_udp_echo_server.$(OBJEXT) -echo_async_udp_echo_server_OBJECTS = \ - $(am_echo_async_udp_echo_server_OBJECTS) -echo_async_udp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_async_udp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_tcp_echo_client_OBJECTS = \ - echo/blocking_tcp_echo_client.$(OBJEXT) -echo_blocking_tcp_echo_client_OBJECTS = \ - $(am_echo_blocking_tcp_echo_client_OBJECTS) -echo_blocking_tcp_echo_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_tcp_echo_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_tcp_echo_server_OBJECTS = \ - echo/blocking_tcp_echo_server.$(OBJEXT) -echo_blocking_tcp_echo_server_OBJECTS = \ - $(am_echo_blocking_tcp_echo_server_OBJECTS) -echo_blocking_tcp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_tcp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_udp_echo_client_OBJECTS = \ - echo/blocking_udp_echo_client.$(OBJEXT) -echo_blocking_udp_echo_client_OBJECTS = \ - $(am_echo_blocking_udp_echo_client_OBJECTS) -echo_blocking_udp_echo_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_udp_echo_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_udp_echo_server_OBJECTS = \ - echo/blocking_udp_echo_server.$(OBJEXT) -echo_blocking_udp_echo_server_OBJECTS = \ - $(am_echo_blocking_udp_echo_server_OBJECTS) -echo_blocking_udp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_udp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_actor_OBJECTS = executors/actor.$(OBJEXT) -executors_actor_OBJECTS = $(am_executors_actor_OBJECTS) -executors_actor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_actor_DEPENDENCIES = libasio.a -am_executors_async_1_OBJECTS = executors/async_1.$(OBJEXT) -executors_async_1_OBJECTS = $(am_executors_async_1_OBJECTS) -executors_async_1_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_async_1_DEPENDENCIES = libasio.a -am_executors_async_2_OBJECTS = executors/async_2.$(OBJEXT) -executors_async_2_OBJECTS = $(am_executors_async_2_OBJECTS) -executors_async_2_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_async_2_DEPENDENCIES = libasio.a -am_executors_bank_account_1_OBJECTS = \ - executors/bank_account_1.$(OBJEXT) -executors_bank_account_1_OBJECTS = \ - $(am_executors_bank_account_1_OBJECTS) -executors_bank_account_1_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_bank_account_1_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_bank_account_2_OBJECTS = \ - executors/bank_account_2.$(OBJEXT) -executors_bank_account_2_OBJECTS = \ - $(am_executors_bank_account_2_OBJECTS) -executors_bank_account_2_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_bank_account_2_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_fork_join_OBJECTS = executors/fork_join.$(OBJEXT) -executors_fork_join_OBJECTS = $(am_executors_fork_join_OBJECTS) -executors_fork_join_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_fork_join_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_pipeline_OBJECTS = executors/pipeline.$(OBJEXT) -executors_pipeline_OBJECTS = $(am_executors_pipeline_OBJECTS) -executors_pipeline_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_pipeline_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_priority_scheduler_OBJECTS = \ - executors/priority_scheduler.$(OBJEXT) -executors_priority_scheduler_OBJECTS = \ - $(am_executors_priority_scheduler_OBJECTS) -executors_priority_scheduler_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_priority_scheduler_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_iostreams_http_client_OBJECTS = iostreams/http_client.$(OBJEXT) -iostreams_http_client_OBJECTS = $(am_iostreams_http_client_OBJECTS) -iostreams_http_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@iostreams_http_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ../../$(DEPDIR)/asio.Po \ - ../../$(DEPDIR)/asio_ssl.Po \ - echo/$(DEPDIR)/async_tcp_echo_server.Po \ - echo/$(DEPDIR)/async_udp_echo_server.Po \ - echo/$(DEPDIR)/blocking_tcp_echo_client.Po \ - echo/$(DEPDIR)/blocking_tcp_echo_server.Po \ - echo/$(DEPDIR)/blocking_udp_echo_client.Po \ - echo/$(DEPDIR)/blocking_udp_echo_server.Po \ - executors/$(DEPDIR)/actor.Po executors/$(DEPDIR)/async_1.Po \ - executors/$(DEPDIR)/async_2.Po \ - executors/$(DEPDIR)/bank_account_1.Po \ - executors/$(DEPDIR)/bank_account_2.Po \ - executors/$(DEPDIR)/fork_join.Po \ - executors/$(DEPDIR)/pipeline.Po \ - executors/$(DEPDIR)/priority_scheduler.Po \ - iostreams/$(DEPDIR)/http_client.Po -am__mv = mv -f -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -AM_V_CXX = $(am__v_CXX_@AM_V@) -am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) -am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = -SOURCES = $(libasio_a_SOURCES) $(echo_async_tcp_echo_server_SOURCES) \ - $(echo_async_udp_echo_server_SOURCES) \ - $(echo_blocking_tcp_echo_client_SOURCES) \ - $(echo_blocking_tcp_echo_server_SOURCES) \ - $(echo_blocking_udp_echo_client_SOURCES) \ - $(echo_blocking_udp_echo_server_SOURCES) \ - $(executors_actor_SOURCES) $(executors_async_1_SOURCES) \ - $(executors_async_2_SOURCES) \ - $(executors_bank_account_1_SOURCES) \ - $(executors_bank_account_2_SOURCES) \ - $(executors_fork_join_SOURCES) $(executors_pipeline_SOURCES) \ - $(executors_priority_scheduler_SOURCES) \ - $(iostreams_http_client_SOURCES) -DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ - $(echo_async_tcp_echo_server_SOURCES) \ - $(echo_async_udp_echo_server_SOURCES) \ - $(echo_blocking_tcp_echo_client_SOURCES) \ - $(echo_blocking_tcp_echo_server_SOURCES) \ - $(echo_blocking_udp_echo_client_SOURCES) \ - $(echo_blocking_udp_echo_server_SOURCES) \ - $(executors_actor_SOURCES) $(executors_async_1_SOURCES) \ - $(executors_async_2_SOURCES) \ - $(executors_bank_account_1_SOURCES) \ - $(executors_bank_account_2_SOURCES) \ - $(executors_fork_join_SOURCES) $(executors_pipeline_SOURCES) \ - $(executors_priority_scheduler_SOURCES) \ - $(iostreams_http_client_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = subdir-objects -@SEPARATE_COMPILATION_TRUE@noinst_LIBRARIES = libasio.a -@SEPARATE_COMPILATION_TRUE@libasio_a_SOURCES = ../../asio.cpp \ -@SEPARATE_COMPILATION_TRUE@ $(am__append_1) -@SEPARATE_COMPILATION_TRUE@LDADD = libasio.a -AM_CXXFLAGS = -I$(srcdir)/../../../include -echo_async_tcp_echo_server_SOURCES = echo/async_tcp_echo_server.cpp -echo_async_udp_echo_server_SOURCES = echo/async_udp_echo_server.cpp -echo_blocking_tcp_echo_client_SOURCES = echo/blocking_tcp_echo_client.cpp -echo_blocking_tcp_echo_server_SOURCES = echo/blocking_tcp_echo_server.cpp -echo_blocking_udp_echo_client_SOURCES = echo/blocking_udp_echo_client.cpp -echo_blocking_udp_echo_server_SOURCES = echo/blocking_udp_echo_server.cpp -executors_actor_SOURCES = executors/actor.cpp -executors_async_1_SOURCES = executors/async_1.cpp -executors_async_2_SOURCES = executors/async_2.cpp -executors_bank_account_1_SOURCES = executors/bank_account_1.cpp -executors_bank_account_2_SOURCES = executors/bank_account_2.cpp -executors_fork_join_SOURCES = executors/fork_join.cpp -executors_pipeline_SOURCES = executors/pipeline.cpp -executors_priority_scheduler_SOURCES = executors/priority_scheduler.cpp -iostreams_http_client_SOURCES = iostreams/http_client.cpp -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in - -all: all-am - -.SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/examples/cpp14/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/examples/cpp14/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) - -clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -../../$(am__dirstamp): - @$(MKDIR_P) ../.. - @: > ../../$(am__dirstamp) -../../$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../../$(DEPDIR) - @: > ../../$(DEPDIR)/$(am__dirstamp) -../../asio.$(OBJEXT): ../../$(am__dirstamp) \ - ../../$(DEPDIR)/$(am__dirstamp) -../../asio_ssl.$(OBJEXT): ../../$(am__dirstamp) \ - ../../$(DEPDIR)/$(am__dirstamp) - -libasio.a: $(libasio_a_OBJECTS) $(libasio_a_DEPENDENCIES) $(EXTRA_libasio_a_DEPENDENCIES) - $(AM_V_at)-rm -f libasio.a - $(AM_V_AR)$(libasio_a_AR) libasio.a $(libasio_a_OBJECTS) $(libasio_a_LIBADD) - $(AM_V_at)$(RANLIB) libasio.a -echo/$(am__dirstamp): - @$(MKDIR_P) echo - @: > echo/$(am__dirstamp) -echo/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) echo/$(DEPDIR) - @: > echo/$(DEPDIR)/$(am__dirstamp) -echo/async_tcp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/async_tcp_echo_server$(EXEEXT): $(echo_async_tcp_echo_server_OBJECTS) $(echo_async_tcp_echo_server_DEPENDENCIES) $(EXTRA_echo_async_tcp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/async_tcp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_async_tcp_echo_server_OBJECTS) $(echo_async_tcp_echo_server_LDADD) $(LIBS) -echo/async_udp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/async_udp_echo_server$(EXEEXT): $(echo_async_udp_echo_server_OBJECTS) $(echo_async_udp_echo_server_DEPENDENCIES) $(EXTRA_echo_async_udp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/async_udp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_async_udp_echo_server_OBJECTS) $(echo_async_udp_echo_server_LDADD) $(LIBS) -echo/blocking_tcp_echo_client.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_tcp_echo_client$(EXEEXT): $(echo_blocking_tcp_echo_client_OBJECTS) $(echo_blocking_tcp_echo_client_DEPENDENCIES) $(EXTRA_echo_blocking_tcp_echo_client_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_tcp_echo_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_tcp_echo_client_OBJECTS) $(echo_blocking_tcp_echo_client_LDADD) $(LIBS) -echo/blocking_tcp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_tcp_echo_server$(EXEEXT): $(echo_blocking_tcp_echo_server_OBJECTS) $(echo_blocking_tcp_echo_server_DEPENDENCIES) $(EXTRA_echo_blocking_tcp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_tcp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_tcp_echo_server_OBJECTS) $(echo_blocking_tcp_echo_server_LDADD) $(LIBS) -echo/blocking_udp_echo_client.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_udp_echo_client$(EXEEXT): $(echo_blocking_udp_echo_client_OBJECTS) $(echo_blocking_udp_echo_client_DEPENDENCIES) $(EXTRA_echo_blocking_udp_echo_client_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_udp_echo_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_udp_echo_client_OBJECTS) $(echo_blocking_udp_echo_client_LDADD) $(LIBS) -echo/blocking_udp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_udp_echo_server$(EXEEXT): $(echo_blocking_udp_echo_server_OBJECTS) $(echo_blocking_udp_echo_server_DEPENDENCIES) $(EXTRA_echo_blocking_udp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_udp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_udp_echo_server_OBJECTS) $(echo_blocking_udp_echo_server_LDADD) $(LIBS) -executors/$(am__dirstamp): - @$(MKDIR_P) executors - @: > executors/$(am__dirstamp) -executors/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) executors/$(DEPDIR) - @: > executors/$(DEPDIR)/$(am__dirstamp) -executors/actor.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/actor$(EXEEXT): $(executors_actor_OBJECTS) $(executors_actor_DEPENDENCIES) $(EXTRA_executors_actor_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/actor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_actor_OBJECTS) $(executors_actor_LDADD) $(LIBS) -executors/async_1.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/async_1$(EXEEXT): $(executors_async_1_OBJECTS) $(executors_async_1_DEPENDENCIES) $(EXTRA_executors_async_1_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/async_1$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_async_1_OBJECTS) $(executors_async_1_LDADD) $(LIBS) -executors/async_2.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/async_2$(EXEEXT): $(executors_async_2_OBJECTS) $(executors_async_2_DEPENDENCIES) $(EXTRA_executors_async_2_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/async_2$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_async_2_OBJECTS) $(executors_async_2_LDADD) $(LIBS) -executors/bank_account_1.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/bank_account_1$(EXEEXT): $(executors_bank_account_1_OBJECTS) $(executors_bank_account_1_DEPENDENCIES) $(EXTRA_executors_bank_account_1_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/bank_account_1$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_bank_account_1_OBJECTS) $(executors_bank_account_1_LDADD) $(LIBS) -executors/bank_account_2.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/bank_account_2$(EXEEXT): $(executors_bank_account_2_OBJECTS) $(executors_bank_account_2_DEPENDENCIES) $(EXTRA_executors_bank_account_2_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/bank_account_2$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_bank_account_2_OBJECTS) $(executors_bank_account_2_LDADD) $(LIBS) -executors/fork_join.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/fork_join$(EXEEXT): $(executors_fork_join_OBJECTS) $(executors_fork_join_DEPENDENCIES) $(EXTRA_executors_fork_join_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/fork_join$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_fork_join_OBJECTS) $(executors_fork_join_LDADD) $(LIBS) -executors/pipeline.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/pipeline$(EXEEXT): $(executors_pipeline_OBJECTS) $(executors_pipeline_DEPENDENCIES) $(EXTRA_executors_pipeline_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/pipeline$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_pipeline_OBJECTS) $(executors_pipeline_LDADD) $(LIBS) -executors/priority_scheduler.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/priority_scheduler$(EXEEXT): $(executors_priority_scheduler_OBJECTS) $(executors_priority_scheduler_DEPENDENCIES) $(EXTRA_executors_priority_scheduler_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/priority_scheduler$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_priority_scheduler_OBJECTS) $(executors_priority_scheduler_LDADD) $(LIBS) -iostreams/$(am__dirstamp): - @$(MKDIR_P) iostreams - @: > iostreams/$(am__dirstamp) -iostreams/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) iostreams/$(DEPDIR) - @: > iostreams/$(DEPDIR)/$(am__dirstamp) -iostreams/http_client.$(OBJEXT): iostreams/$(am__dirstamp) \ - iostreams/$(DEPDIR)/$(am__dirstamp) - -iostreams/http_client$(EXEEXT): $(iostreams_http_client_OBJECTS) $(iostreams_http_client_DEPENDENCIES) $(EXTRA_iostreams_http_client_DEPENDENCIES) iostreams/$(am__dirstamp) - @rm -f iostreams/http_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(iostreams_http_client_OBJECTS) $(iostreams_http_client_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f ../../*.$(OBJEXT) - -rm -f echo/*.$(OBJEXT) - -rm -f executors/*.$(OBJEXT) - -rm -f iostreams/*.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@../../$(DEPDIR)/asio.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@../../$(DEPDIR)/asio_ssl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/async_tcp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/async_udp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_tcp_echo_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_tcp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_udp_echo_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_udp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/actor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/async_1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/async_2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/bank_account_1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/bank_account_2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/fork_join.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/pipeline.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/priority_scheduler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@iostreams/$(DEPDIR)/http_client.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.cpp.o: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) $(LIBRARIES) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f ../../$(DEPDIR)/$(am__dirstamp) - -rm -f ../../$(am__dirstamp) - -rm -f echo/$(DEPDIR)/$(am__dirstamp) - -rm -f echo/$(am__dirstamp) - -rm -f executors/$(DEPDIR)/$(am__dirstamp) - -rm -f executors/$(am__dirstamp) - -rm -f iostreams/$(DEPDIR)/$(am__dirstamp) - -rm -f iostreams/$(am__dirstamp) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -f ../../$(DEPDIR)/asio.Po - -rm -f ../../$(DEPDIR)/asio_ssl.Po - -rm -f echo/$(DEPDIR)/async_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/async_udp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_server.Po - -rm -f executors/$(DEPDIR)/actor.Po - -rm -f executors/$(DEPDIR)/async_1.Po - -rm -f executors/$(DEPDIR)/async_2.Po - -rm -f executors/$(DEPDIR)/bank_account_1.Po - -rm -f executors/$(DEPDIR)/bank_account_2.Po - -rm -f executors/$(DEPDIR)/fork_join.Po - -rm -f executors/$(DEPDIR)/pipeline.Po - -rm -f executors/$(DEPDIR)/priority_scheduler.Po - -rm -f iostreams/$(DEPDIR)/http_client.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ../../$(DEPDIR)/asio.Po - -rm -f ../../$(DEPDIR)/asio_ssl.Po - -rm -f echo/$(DEPDIR)/async_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/async_udp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_server.Po - -rm -f executors/$(DEPDIR)/actor.Po - -rm -f executors/$(DEPDIR)/async_1.Po - -rm -f executors/$(DEPDIR)/async_2.Po - -rm -f executors/$(DEPDIR)/bank_account_1.Po - -rm -f executors/$(DEPDIR)/bank_account_2.Po - -rm -f executors/$(DEPDIR)/fork_join.Po - -rm -f executors/$(DEPDIR)/pipeline.Po - -rm -f executors/$(DEPDIR)/priority_scheduler.Po - -rm -f iostreams/$(DEPDIR)/http_client.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \ - cscopelist-am ctags ctags-am distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp deleted file mode 100644 index f7c3d31..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp +++ /dev/null @@ -1,117 +0,0 @@ -// -// async_tcp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -class session - : public std::enable_shared_from_this -{ -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(asio::buffer(data_, max_length), - [this, self](std::error_code ec, std::size_t length) - { - if (!ec) - { - do_write(length); - } - }); - } - - void do_write(std::size_t length) - { - auto self(shared_from_this()); - asio::async_write(socket_, asio::buffer(data_, length), - [this, self](std::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(asio::io_context& io_context, short port) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)), - socket_(io_context) - { - do_accept(); - } - -private: - void do_accept() - { - acceptor_.async_accept(socket_, - [this](std::error_code ec) - { - if (!ec) - { - std::make_shared(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 \n"; - return 1; - } - - asio::io_context io_context; - - server s(io_context, std::atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp deleted file mode 100644 index 921206f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// -// async_udp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include - -using asio::ip::udp; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : socket_(io_context, udp::endpoint(udp::v4(), port)) - { - do_receive(); - } - - void do_receive() - { - socket_.async_receive_from( - asio::buffer(data_, max_length), sender_endpoint_, - [this](std::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( - asio::buffer(data_, length), sender_endpoint_, - [this](std::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 \n"; - return 1; - } - - asio::io_context io_context; - - server s(io_context, std::atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp b/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp deleted file mode 100644 index 539843a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp +++ /dev/null @@ -1,55 +0,0 @@ -// -// blocking_tcp_echo_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: blocking_tcp_echo_client \n"; - return 1; - } - - asio::io_context io_context; - - tcp::socket s(io_context); - tcp::resolver resolver(io_context); - 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); - asio::write(s, asio::buffer(request, request_length)); - - char reply[max_length]; - size_t reply_length = asio::read(s, - 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/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp deleted file mode 100644 index 4ce6221..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp +++ /dev/null @@ -1,77 +0,0 @@ -// -// blocking_tcp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -const int max_length = 1024; - -void session(tcp::socket sock) -{ - try - { - for (;;) - { - char data[max_length]; - - std::error_code error; - size_t length = sock.read_some(asio::buffer(data), error); - if (error == asio::stream_errc::eof) - break; // Connection closed cleanly by peer. - else if (error) - throw std::system_error(error); // Some other error. - - asio::write(sock, asio::buffer(data, length)); - } - } - catch (std::exception& e) - { - std::cerr << "Exception in thread: " << e.what() << "\n"; - } -} - -void server(asio::io_context& io_context, unsigned short port) -{ - tcp::acceptor a(io_context, tcp::endpoint(tcp::v4(), port)); - for (;;) - { - tcp::socket sock(io_context); - 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 \n"; - return 1; - } - - asio::io_context io_context; - - server(io_context, std::atoi(argv[1])); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp b/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp deleted file mode 100644 index 8d21408..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// blocking_udp_echo_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include - -using asio::ip::udp; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: blocking_udp_echo_client \n"; - return 1; - } - - asio::io_context io_context; - - udp::socket s(io_context, udp::endpoint(udp::v4(), 0)); - - udp::resolver resolver(io_context); - udp::endpoint endpoint = - *resolver.resolve(udp::v4(), argv[1], argv[2]).begin(); - - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t request_length = std::strlen(request); - s.send_to(asio::buffer(request, request_length), endpoint); - - char reply[max_length]; - udp::endpoint sender_endpoint; - size_t reply_length = s.receive_from( - 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/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp deleted file mode 100644 index 2b2c84a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// blocking_udp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include - -using asio::ip::udp; - -enum { max_length = 1024 }; - -void server(asio::io_context& io_context, unsigned short port) -{ - udp::socket sock(io_context, udp::endpoint(udp::v4(), port)); - for (;;) - { - char data[max_length]; - udp::endpoint sender_endpoint; - size_t length = sock.receive_from( - asio::buffer(data, max_length), sender_endpoint); - sock.send_to(asio::buffer(data, length), sender_endpoint); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: blocking_udp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - server(io_context, std::atoi(argv[1])); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/actor.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/actor.cpp deleted file mode 100644 index e2cc9ba..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/actor.cpp +++ /dev/null @@ -1,281 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -using asio::defer; -using asio::executor; -using asio::post; -using asio::strand; -using asio::system_executor; - -//------------------------------------------------------------------------------ -// A tiny actor framework -// ~~~~~~~~~~~~~~~~~~~~~~ - -class actor; - -// Used to identify the sender and recipient of messages. -typedef actor* actor_address; - -// Base class for all registered message handlers. -class message_handler_base -{ -public: - virtual ~message_handler_base() {} - - // Used to determine which message handlers receive an incoming message. - virtual const std::type_info& message_id() const = 0; -}; - -// Base class for a handler for a specific message type. -template -class message_handler : public message_handler_base -{ -public: - // Handle an incoming message. - virtual void handle_message(Message msg, actor_address from) = 0; -}; - -// Concrete message handler for a specific message type. -template -class mf_message_handler : public message_handler -{ -public: - // Construct a message handler to invoke the specified member function. - mf_message_handler(void (Actor::* mf)(Message, actor_address), Actor* a) - : function_(mf), actor_(a) - { - } - - // Used to determine which message handlers receive an incoming message. - virtual const std::type_info& message_id() const - { - return typeid(Message); - } - - // Handle an incoming message. - virtual void handle_message(Message msg, actor_address from) - { - (actor_->*function_)(std::move(msg), from); - } - - // Determine whether the message handler represents the specified function. - bool is_function(void (Actor::* mf)(Message, actor_address)) const - { - return mf == function_; - } - -private: - void (Actor::* function_)(Message, actor_address); - Actor* actor_; -}; - -// Base class for all actors. -class actor -{ -public: - virtual ~actor() - { - } - - // Obtain the actor's address for use as a message sender or recipient. - actor_address address() - { - return this; - } - - // Send a message from one actor to another. - template - friend void send(Message msg, actor_address from, actor_address to) - { - // Execute the message handler in the context of the target's executor. - post(to->executor_, - [=, msg=std::move(msg)] - { - to->call_handler(std::move(msg), from); - }); - } - -protected: - // Construct the actor to use the specified executor for all message handlers. - actor(executor e) - : executor_(std::move(e)) - { - } - - // Register a handler for a specific message type. Duplicates are permitted. - template - void register_handler(void (Actor::* mf)(Message, actor_address)) - { - handlers_.push_back( - std::make_shared>( - mf, static_cast(this))); - } - - // Deregister a handler. Removes only the first matching handler. - template - void deregister_handler(void (Actor::* mf)(Message, actor_address)) - { - const std::type_info& id = typeid(Message); - for (auto iter = handlers_.begin(); iter != handlers_.end(); ++iter) - { - if ((*iter)->message_id() == id) - { - auto mh = static_cast*>(iter->get()); - if (mh->is_function(mf)) - { - handlers_.erase(iter); - return; - } - } - } - } - - // Send a message from within a message handler. - template - void tail_send(Message msg, actor_address to) - { - // Execute the message handler in the context of the target's executor. - defer(to->executor_, - [=, msg=std::move(msg), from=this] - { - to->call_handler(std::move(msg), from); - }); - } - -private: - // Find the matching message handlers, if any, and call them. - template - void call_handler(Message msg, actor_address from) - { - const std::type_info& message_id = typeid(Message); - for (auto& h: handlers_) - { - if (h->message_id() == message_id) - { - auto mh = static_cast*>(h.get()); - mh->handle_message(msg, from); - } - } - } - - // All messages associated with a single actor object should be processed - // non-concurrently. We use a strand to ensure non-concurrent execution even - // if the underlying executor may use multiple threads. - strand executor_; - - std::vector> handlers_; -}; - -// A concrete actor that allows synchronous message retrieval. -template -class receiver : public actor -{ -public: - receiver() - : actor(system_executor()) - { - register_handler(&receiver::message_handler); - } - - // Block until a message has been received. - Message wait() - { - std::unique_lock lock(mutex_); - condition_.wait(lock, [this]{ return !message_queue_.empty(); }); - Message msg(std::move(message_queue_.front())); - message_queue_.pop_front(); - return msg; - } - -private: - // Handle a new message by adding it to the queue and waking a waiter. - void message_handler(Message msg, actor_address /* from */) - { - std::lock_guard lock(mutex_); - message_queue_.push_back(std::move(msg)); - condition_.notify_one(); - } - - std::mutex mutex_; - std::condition_variable condition_; - std::deque message_queue_; -}; - -//------------------------------------------------------------------------------ - -#include -#include - -using asio::thread_pool; - -class member : public actor -{ -public: - explicit member(executor e) - : actor(std::move(e)) - { - register_handler(&member::init_handler); - } - -private: - void init_handler(actor_address next, actor_address from) - { - next_ = next; - caller_ = from; - - register_handler(&member::token_handler); - deregister_handler(&member::init_handler); - } - - void token_handler(int token, actor_address /*from*/) - { - int msg(token); - actor_address to(caller_); - - if (token > 0) - { - msg = token - 1; - to = next_; - } - - tail_send(msg, to); - } - - actor_address next_; - actor_address caller_; -}; - -int main() -{ - const std::size_t num_threads = 16; - const int num_hops = 50000000; - const std::size_t num_actors = 503; - const int token_value = (num_hops + num_actors - 1) / num_actors; - const std::size_t actors_per_thread = num_actors / num_threads; - - struct single_thread_pool : thread_pool { single_thread_pool() : thread_pool(1) {} }; - single_thread_pool pools[num_threads]; - std::vector> members(num_actors); - receiver rcvr; - - // Create the member actors. - for (std::size_t i = 0; i < num_actors; ++i) - members[i] = std::make_shared(pools[(i / actors_per_thread) % num_threads].get_executor()); - - // Initialise the actors by passing each one the address of the next actor in the ring. - for (std::size_t i = num_actors, next_i = 0; i > 0; next_i = --i) - send(members[next_i]->address(), rcvr.address(), members[i - 1]->address()); - - // Send exactly one token to each actor, all with the same initial value, rounding up if required. - for (std::size_t i = 0; i < num_actors; ++i) - send(token_value, rcvr.address(), members[i]->address()); - - // Wait for all signal messages, indicating the tokens have all reached zero. - for (std::size_t i = 0; i < num_actors; ++i) - rcvr.wait(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/async_1.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/async_1.cpp deleted file mode 100644 index d282b74..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/async_1.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include -#include -#include - -using asio::bind_executor; -using asio::dispatch; -using asio::make_work_guard; -using asio::post; -using asio::thread_pool; - -// A function to asynchronously read a single line from an input stream. -template -void async_getline(std::istream& is, Handler handler) -{ - // Create executor_work for the handler's associated executor. - auto work = make_work_guard(handler); - - // Post a function object to do the work asynchronously. - post([&is, work, handler=std::move(handler)]() mutable - { - std::string line; - std::getline(is, line); - - // Pass the result to the handler, via the associated executor. - dispatch(work.get_executor(), - [line=std::move(line), handler=std::move(handler)]() mutable - { - handler(std::move(line)); - }); - }); -} - -int main() -{ - thread_pool pool; - - std::cout << "Enter a line: "; - - async_getline(std::cin, - bind_executor(pool, [](std::string line) - { - std::cout << "Line: " << line << "\n"; - })); - - pool.join(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/async_2.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/async_2.cpp deleted file mode 100644 index b39156d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/async_2.cpp +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include -#include -#include - -using asio::bind_executor; -using asio::dispatch; -using asio::get_associated_executor; -using asio::make_work_guard; -using asio::post; -using asio::thread_pool; - -// A function to asynchronously read a single line from an input stream. -template -void async_getline(std::istream& is, Handler handler) -{ - // Create executor_work for the handler's associated executor. - auto work = make_work_guard(handler); - - // Post a function object to do the work asynchronously. - post([&is, work, handler=std::move(handler)]() mutable - { - std::string line; - std::getline(is, line); - - // Pass the result to the handler, via the associated executor. - dispatch(work.get_executor(), - [line=std::move(line), handler=std::move(handler)]() mutable - { - handler(std::move(line)); - }); - }); -} - -// A function to asynchronously read multiple lines from an input stream. -template -void async_getlines(std::istream& is, std::string init, Handler handler) -{ - // Get the final handler's associated executor. - auto ex = get_associated_executor(handler); - - // Use the associated executor for each operation in the composition. - async_getline(is, - bind_executor(ex, - [&is, lines=std::move(init), handler=std::move(handler)] - (std::string line) mutable - { - if (line.empty()) - handler(lines); - else - async_getlines(is, lines + line + "\n", std::move(handler)); - })); -} - -int main() -{ - thread_pool pool; - - std::cout << "Enter text, terminating with a blank line:\n"; - - async_getlines(std::cin, "", - bind_executor(pool, [](std::string lines) - { - std::cout << "Lines:\n" << lines << "\n"; - })); - - pool.join(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/bank_account_1.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/bank_account_1.cpp deleted file mode 100644 index f85a185..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/bank_account_1.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include - -using asio::post; -using asio::thread_pool; - -// Traditional active object pattern. -// Member functions do not block. - -class bank_account -{ - int balance_ = 0; - mutable thread_pool pool_{1}; - -public: - void deposit(int amount) - { - post(pool_, [=] - { - balance_ += amount; - }); - } - - void withdraw(int amount) - { - post(pool_, [=] - { - if (balance_ >= amount) - balance_ -= amount; - }); - } - - void print_balance() const - { - post(pool_, [=] - { - std::cout << "balance = " << balance_ << "\n"; - }); - } - - ~bank_account() - { - pool_.join(); - } -}; - -int main() -{ - bank_account acct; - acct.deposit(20); - acct.withdraw(10); - acct.print_balance(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/bank_account_2.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/bank_account_2.cpp deleted file mode 100644 index 5233e77..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/bank_account_2.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include -#include -#include - -using asio::post; -using asio::thread_pool; -using asio::use_future; - -// Traditional active object pattern. -// Member functions block until operation is finished. - -class bank_account -{ - int balance_ = 0; - mutable thread_pool pool_{1}; - -public: - void deposit(int amount) - { - post(pool_, - use_future([=] - { - balance_ += amount; - })).get(); - } - - void withdraw(int amount) - { - post(pool_, - use_future([=] - { - if (balance_ >= amount) - balance_ -= amount; - })).get(); - } - - int balance() const - { - return post(pool_, - use_future([=] - { - return balance_; - })).get(); - } -}; - -int main() -{ - bank_account acct; - acct.deposit(20); - acct.withdraw(10); - std::cout << "balance = " << acct.balance() << "\n"; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/fork_join.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/fork_join.cpp deleted file mode 100644 index 56d7cf7..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/fork_join.cpp +++ /dev/null @@ -1,327 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::dispatch; -using asio::execution_context; -using asio::thread_pool; - -// A fixed-size thread pool used to implement fork/join semantics. Functions -// are scheduled using a simple FIFO queue. Implementing work stealing, or -// using a queue based on atomic operations, are left as tasks for the reader. -class fork_join_pool : public execution_context -{ -public: - // The constructor starts a thread pool with the specified number of threads. - // Note that the thread_count is not a fixed limit on the pool's concurrency. - // Additional threads may temporarily be added to the pool if they join a - // fork_executor. - explicit fork_join_pool( - std::size_t thread_count = std::thread::hardware_concurrency() * 2) - : use_count_(1), - threads_(thread_count) - { - try - { - // Ask each thread in the pool to dequeue and execute functions until - // it is time to shut down, i.e. the use count is zero. - for (thread_count_ = 0; thread_count_ < thread_count; ++thread_count_) - { - dispatch(threads_, [&] - { - std::unique_lock lock(mutex_); - while (use_count_ > 0) - if (!execute_next(lock)) - condition_.wait(lock); - }); - } - } - catch (...) - { - stop_threads(); - threads_.join(); - throw; - } - } - - // The destructor waits for the pool to finish executing functions. - ~fork_join_pool() - { - stop_threads(); - threads_.join(); - } - -private: - friend class fork_executor; - - // The base for all functions that are queued in the pool. - struct function_base - { - std::shared_ptr work_count_; - void (*execute_)(std::shared_ptr& p); - }; - - // Execute the next function from the queue, if any. Returns true if a - // function was executed, and false if the queue was empty. - bool execute_next(std::unique_lock& lock) - { - if (queue_.empty()) - return false; - auto p(queue_.front()); - queue_.pop(); - lock.unlock(); - execute(lock, p); - return true; - } - - // Execute a function and decrement the outstanding work. - void execute(std::unique_lock& lock, - std::shared_ptr& p) - { - std::shared_ptr work_count(std::move(p->work_count_)); - try - { - p->execute_(p); - lock.lock(); - do_work_finished(work_count); - } - catch (...) - { - lock.lock(); - do_work_finished(work_count); - throw; - } - } - - // Increment outstanding work. - void do_work_started(const std::shared_ptr& work_count) noexcept - { - if (++(*work_count) == 1) - ++use_count_; - } - - // Decrement outstanding work. Notify waiting threads if we run out. - void do_work_finished(const std::shared_ptr& work_count) noexcept - { - if (--(*work_count) == 0) - { - --use_count_; - condition_.notify_all(); - } - } - - // Dispatch a function, executing it immediately if the queue is already - // loaded. Otherwise adds the function to the queue and wakes a thread. - void do_dispatch(std::shared_ptr p, - const std::shared_ptr& work_count) - { - std::unique_lock lock(mutex_); - if (queue_.size() > thread_count_ * 16) - { - do_work_started(work_count); - lock.unlock(); - execute(lock, p); - } - else - { - queue_.push(p); - do_work_started(work_count); - condition_.notify_one(); - } - } - - // Add a function to the queue and wake a thread. - void do_post(std::shared_ptr p, - const std::shared_ptr& work_count) - { - std::lock_guard lock(mutex_); - queue_.push(p); - do_work_started(work_count); - condition_.notify_one(); - } - - // Ask all threads to shut down. - void stop_threads() - { - std::lock_guard lock(mutex_); - --use_count_; - condition_.notify_all(); - } - - std::mutex mutex_; - std::condition_variable condition_; - std::queue> queue_; - std::size_t use_count_; - std::size_t thread_count_; - thread_pool threads_; -}; - -// A class that satisfies the Executor requirements. Every function or piece of -// work associated with a fork_executor is part of a single, joinable group. -class fork_executor -{ -public: - fork_executor(fork_join_pool& ctx) - : context_(ctx), - work_count_(std::make_shared(0)) - { - } - - fork_join_pool& context() const noexcept - { - return context_; - } - - void on_work_started() const noexcept - { - std::lock_guard lock(context_.mutex_); - context_.do_work_started(work_count_); - } - - void on_work_finished() const noexcept - { - std::lock_guard lock(context_.mutex_); - context_.do_work_finished(work_count_); - } - - template - void dispatch(Func&& f, const Alloc& a) const - { - auto p(std::allocate_shared>( - typename std::allocator_traits::template rebind_alloc(a), - std::move(f), work_count_)); - context_.do_dispatch(p, work_count_); - } - - template - void post(Func f, const Alloc& a) const - { - auto p(std::allocate_shared>( - typename std::allocator_traits::template rebind_alloc(a), - std::move(f), work_count_)); - context_.do_post(p, work_count_); - } - - template - void defer(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - friend bool operator==(const fork_executor& a, - const fork_executor& b) noexcept - { - return a.work_count_ == b.work_count_; - } - - friend bool operator!=(const fork_executor& a, - const fork_executor& b) noexcept - { - return a.work_count_ != b.work_count_; - } - - // Block until all work associated with the executor is complete. While it is - // waiting, the thread may be borrowed to execute functions from the queue. - void join() const - { - std::unique_lock lock(context_.mutex_); - while (*work_count_ > 0) - if (!context_.execute_next(lock)) - context_.condition_.wait(lock); - } - -private: - template - struct function : fork_join_pool::function_base - { - explicit function(Func f, const std::shared_ptr& w) - : function_(std::move(f)) - { - work_count_ = w; - execute_ = [](std::shared_ptr& p) - { - Func tmp(std::move(static_cast(p.get())->function_)); - p.reset(); - tmp(); - }; - } - - Func function_; - }; - - fork_join_pool& context_; - std::shared_ptr work_count_; -}; - -// Helper class to automatically join a fork_executor when exiting a scope. -class join_guard -{ -public: - explicit join_guard(const fork_executor& ex) : ex_(ex) {} - join_guard(const join_guard&) = delete; - join_guard(join_guard&&) = delete; - ~join_guard() { ex_.join(); } - -private: - fork_executor ex_; -}; - -//------------------------------------------------------------------------------ - -#include -#include -#include -#include - -fork_join_pool pool; - -template -void fork_join_sort(Iterator begin, Iterator end) -{ - std::size_t n = end - begin; - if (n > 32768) - { - { - fork_executor fork(pool); - join_guard join(fork); - dispatch(fork, [=]{ fork_join_sort(begin, begin + n / 2); }); - dispatch(fork, [=]{ fork_join_sort(begin + n / 2, end); }); - } - std::inplace_merge(begin, begin + n / 2, end); - } - else - { - std::sort(begin, end); - } -} - -int main(int argc, char* argv[]) -{ - if (argc != 2) - { - std::cerr << "Usage: fork_join \n"; - return 1; - } - - std::vector vec(std::atoll(argv[1])); - std::iota(vec.begin(), vec.end(), 0); - - std::random_device rd; - std::mt19937 g(rd()); - std::shuffle(vec.begin(), vec.end(), g); - - std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now(); - - fork_join_sort(vec.begin(), vec.end()); - - std::chrono::steady_clock::duration elapsed = std::chrono::steady_clock::now() - start; - - std::cout << "sort took "; - std::cout << std::chrono::duration_cast(elapsed).count(); - std::cout << " microseconds" << std::endl; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/pipeline.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/pipeline.cpp deleted file mode 100644 index d86cfc1..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/pipeline.cpp +++ /dev/null @@ -1,294 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::execution_context; -using asio::executor_binder; -using asio::get_associated_executor; -using asio::post; -using asio::system_executor; -using asio::use_future; -using asio::use_service; - -// An executor that launches a new thread for each function submitted to it. -// This class satisfies the Executor requirements. -class thread_executor -{ -private: - // Service to track all threads started through a thread_executor. - class thread_bag : public execution_context::service - { - public: - typedef thread_bag key_type; - - explicit thread_bag(execution_context& ctx) - : execution_context::service(ctx) - { - } - - void add_thread(std::thread&& t) - { - std::unique_lock lock(mutex_); - threads_.push_back(std::move(t)); - } - - private: - virtual void shutdown() - { - for (auto& t : threads_) - t.join(); - } - - std::mutex mutex_; - std::vector threads_; - }; - -public: - execution_context& context() const noexcept - { - return system_executor().context(); - } - - void on_work_started() const noexcept - { - // This executor doesn't count work. - } - - void on_work_finished() const noexcept - { - // This executor doesn't count work. - } - - template - void dispatch(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - template - void post(Func f, const Alloc&) const - { - thread_bag& bag = use_service(context()); - bag.add_thread(std::thread(std::move(f))); - } - - template - void defer(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - friend bool operator==(const thread_executor&, - const thread_executor&) noexcept - { - return true; - } - - friend bool operator!=(const thread_executor&, - const thread_executor&) noexcept - { - return false; - } -}; - -// Base class for all thread-safe queue implementations. -class queue_impl_base -{ - template friend class queue_front; - template friend class queue_back; - std::mutex mutex_; - std::condition_variable condition_; - bool stop_ = false; -}; - -// Underlying implementation of a thread-safe queue, shared between the -// queue_front and queue_back classes. -template -class queue_impl : public queue_impl_base -{ - template friend class queue_front; - template friend class queue_back; - std::queue queue_; -}; - -// The front end of a queue between consecutive pipeline stages. -template -class queue_front -{ -public: - typedef T value_type; - - explicit queue_front(std::shared_ptr> impl) - : impl_(impl) - { - } - - void push(T t) - { - std::unique_lock lock(impl_->mutex_); - impl_->queue_.push(std::move(t)); - impl_->condition_.notify_one(); - } - - void stop() - { - std::unique_lock lock(impl_->mutex_); - impl_->stop_ = true; - impl_->condition_.notify_one(); - } - -private: - std::shared_ptr> impl_; -}; - -// The back end of a queue between consecutive pipeline stages. -template -class queue_back -{ -public: - typedef T value_type; - - explicit queue_back(std::shared_ptr> impl) - : impl_(impl) - { - } - - bool pop(T& t) - { - std::unique_lock lock(impl_->mutex_); - while (impl_->queue_.empty() && !impl_->stop_) - impl_->condition_.wait(lock); - if (!impl_->queue_.empty()) - { - t = impl_->queue_.front(); - impl_->queue_.pop(); - return true; - } - return false; - } - -private: - std::shared_ptr> impl_; -}; - -// Launch the last stage in a pipeline. -template -std::future pipeline(queue_back in, F f) -{ - // Get the function's associated executor, defaulting to thread_executor. - auto ex = get_associated_executor(f, thread_executor()); - - // Run the function, and as we're the last stage return a future so that the - // caller can wait for the pipeline to finish. - return post(ex, use_future([in, f = std::move(f)]() mutable { f(in); })); -} - -// Launch an intermediate stage in a pipeline. -template -std::future pipeline(queue_back in, F f, Tail... t) -{ - // Determine the output queue type. - typedef typename executor_binder::second_argument_type::value_type output_value_type; - - // Create the output queue and its implementation. - auto out_impl = std::make_shared>(); - queue_front out(out_impl); - queue_back next_in(out_impl); - - // Get the function's associated executor, defaulting to thread_executor. - auto ex = get_associated_executor(f, thread_executor()); - - // Run the function. - post(ex, [in, out, f = std::move(f)]() mutable - { - f(in, out); - out.stop(); - }); - - // Launch the rest of the pipeline. - return pipeline(next_in, std::move(t)...); -} - -// Launch the first stage in a pipeline. -template -std::future pipeline(F f, Tail... t) -{ - // Determine the output queue type. - typedef typename executor_binder::argument_type::value_type output_value_type; - - // Create the output queue and its implementation. - auto out_impl = std::make_shared>(); - queue_front out(out_impl); - queue_back next_in(out_impl); - - // Get the function's associated executor, defaulting to thread_executor. - auto ex = get_associated_executor(f, thread_executor()); - - // Run the function. - post(ex, [out, f = std::move(f)]() mutable - { - f(out); - out.stop(); - }); - - // Launch the rest of the pipeline. - return pipeline(next_in, std::move(t)...); -} - -//------------------------------------------------------------------------------ - -#include -#include -#include - -using asio::bind_executor; -using asio::thread_pool; - -void reader(queue_front out) -{ - std::string line; - while (std::getline(std::cin, line)) - out.push(line); -} - -void filter(queue_back in, queue_front out) -{ - std::string line; - while (in.pop(line)) - if (line.length() > 5) - out.push(line); -} - -void upper(queue_back in, queue_front out) -{ - std::string line; - while (in.pop(line)) - { - std::string new_line; - for (char c : line) - new_line.push_back(std::toupper(c)); - out.push(new_line); - } -} - -void writer(queue_back in) -{ - std::size_t count = 0; - std::string line; - while (in.pop(line)) - std::cout << count++ << ": " << line << std::endl; -} - -int main() -{ - thread_pool pool; - - auto f = pipeline(reader, filter, bind_executor(pool, upper), writer); - f.wait(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/priority_scheduler.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/priority_scheduler.cpp deleted file mode 100644 index 3b28af1..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/priority_scheduler.cpp +++ /dev/null @@ -1,167 +0,0 @@ -#include -#include -#include -#include -#include -#include - -using asio::dispatch; -using asio::execution_context; - -class priority_scheduler : public execution_context -{ -public: - // A class that satisfies the Executor requirements. - class executor_type - { - public: - executor_type(priority_scheduler& ctx, int pri) noexcept - : context_(ctx), priority_(pri) - { - } - - priority_scheduler& context() const noexcept - { - return context_; - } - - void on_work_started() const noexcept - { - // This executor doesn't count work. Instead, the scheduler simply runs - // until explicitly stopped. - } - - void on_work_finished() const noexcept - { - // This executor doesn't count work. Instead, the scheduler simply runs - // until explicitly stopped. - } - - template - void dispatch(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - template - void post(Func f, const Alloc& a) const - { - auto p(std::allocate_shared>( - typename std::allocator_traits< - Alloc>::template rebind_alloc(a), - priority_, std::move(f))); - std::lock_guard lock(context_.mutex_); - context_.queue_.push(p); - context_.condition_.notify_one(); - } - - template - void defer(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - friend bool operator==(const executor_type& a, - const executor_type& b) noexcept - { - return &a.context_ == &b.context_; - } - - friend bool operator!=(const executor_type& a, - const executor_type& b) noexcept - { - return &a.context_ != &b.context_; - } - - private: - priority_scheduler& context_; - int priority_; - }; - - executor_type get_executor(int pri = 0) noexcept - { - return executor_type(*const_cast(this), pri); - } - - void run() - { - std::unique_lock lock(mutex_); - for (;;) - { - condition_.wait(lock, [&]{ return stopped_ || !queue_.empty(); }); - if (stopped_) - return; - auto p(queue_.top()); - queue_.pop(); - lock.unlock(); - p->execute_(p); - lock.lock(); - } - } - - void stop() - { - std::lock_guard lock(mutex_); - stopped_ = true; - condition_.notify_all(); - } - -private: - struct item_base - { - int priority_; - void (*execute_)(std::shared_ptr&); - }; - - template - struct item : item_base - { - item(int pri, Func f) : function_(std::move(f)) - { - priority_ = pri; - execute_ = [](std::shared_ptr& p) - { - Func tmp(std::move(static_cast(p.get())->function_)); - p.reset(); - tmp(); - }; - } - - Func function_; - }; - - struct item_comp - { - bool operator()( - const std::shared_ptr& a, - const std::shared_ptr& b) - { - return a->priority_ < b->priority_; - } - }; - - std::mutex mutex_; - std::condition_variable condition_; - std::priority_queue< - std::shared_ptr, - std::vector>, - item_comp> queue_; - bool stopped_ = false; -}; - -int main() -{ - priority_scheduler sched; - auto low = sched.get_executor(0); - auto med = sched.get_executor(1); - auto high = sched.get_executor(2); - dispatch(low, []{ std::cout << "1\n"; }); - dispatch(low, []{ std::cout << "11\n"; }); - dispatch(med, []{ std::cout << "2\n"; }); - dispatch(med, []{ std::cout << "22\n"; }); - dispatch(high, []{ std::cout << "3\n"; }); - dispatch(high, []{ std::cout << "33\n"; }); - dispatch(high, []{ std::cout << "333\n"; }); - dispatch(sched.get_executor(-1), [&]{ sched.stop(); }); - sched.run(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/iostreams/http_client.cpp b/Sources/Vendor/asio/src/examples/cpp14/iostreams/http_client.cpp deleted file mode 100644 index b6fb983..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/iostreams/http_client.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// http_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cout << "Usage: http_client \n"; - std::cout << "Example:\n"; - std::cout << " http_client www.boost.org /LICENSE_1_0.txt\n"; - return 1; - } - - asio::ip::tcp::iostream s; - - // The entire sequence of I/O operations must complete within 60 seconds. - // If an expiry occurs, the socket is automatically closed and the stream - // becomes bad. - s.expires_after(std::chrono::seconds(60)); - - // Establish a connection to the server. - s.connect(argv[1], "http"); - if (!s) - { - std::cout << "Unable to connect: " << s.error().message() << "\n"; - return 1; - } - - // Send the request. We specify the "Connection: close" header so that the - // server will close the socket after transmitting the response. This will - // allow us to treat all data up until the EOF as the content. - s << "GET " << argv[2] << " HTTP/1.0\r\n"; - s << "Host: " << argv[1] << "\r\n"; - s << "Accept: */*\r\n"; - s << "Connection: close\r\n\r\n"; - - // By default, the stream is tied with itself. This means that the stream - // automatically flush the buffered output before attempting a read. It is - // not necessary not explicitly flush the stream at this point. - - // Check that response is OK. - std::string http_version; - s >> http_version; - unsigned int status_code; - s >> status_code; - std::string status_message; - std::getline(s, status_message); - if (!s || http_version.substr(0, 5) != "HTTP/") - { - std::cout << "Invalid response\n"; - return 1; - } - if (status_code != 200) - { - std::cout << "Response returned with status code " << status_code << "\n"; - return 1; - } - - // Process the response headers, which are terminated by a blank line. - std::string header; - while (std::getline(s, header) && header != "\r") - std::cout << header << "\n"; - std::cout << "\n"; - - // Write the remaining data to output. - std::cout << s.rdbuf(); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp17/Makefile.am b/Sources/Vendor/asio/src/examples/cpp17/Makefile.am deleted file mode 100644 index 2e09098..0000000 --- a/Sources/Vendor/asio/src/examples/cpp17/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -EXTRA_DIST = \ - coroutines_ts/chat_server.cpp \ - coroutines_ts/double_buffered_echo_server.cpp \ - coroutines_ts/echo_server.cpp \ - coroutines_ts/range_based_for.cpp \ - coroutines_ts/refactored_echo_server.cpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in diff --git a/Sources/Vendor/asio/src/examples/cpp17/Makefile.in b/Sources/Vendor/asio/src/examples/cpp17/Makefile.in deleted file mode 100644 index f5679a5..0000000 --- a/Sources/Vendor/asio/src/examples/cpp17/Makefile.in +++ /dev/null @@ -1,423 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/examples/cpp17 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -EXTRA_DIST = \ - coroutines_ts/chat_server.cpp \ - coroutines_ts/double_buffered_echo_server.cpp \ - coroutines_ts/echo_server.cpp \ - coroutines_ts/range_based_for.cpp \ - coroutines_ts/refactored_echo_server.cpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/examples/cpp17/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/examples/cpp17/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -tags TAGS: - -ctags CTAGS: - -cscope cscopelist: - - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ - ctags-am distclean distclean-generic distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp b/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp deleted file mode 100644 index 634d1bc..0000000 --- a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp +++ /dev/null @@ -1,224 +0,0 @@ -// -// chat_server.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; -using asio::experimental::awaitable; -using asio::experimental::co_spawn; -using asio::experimental::detached; -using asio::experimental::redirect_error; -namespace this_coro = asio::experimental::this_coro; - -//---------------------------------------------------------------------- - -class chat_participant -{ -public: - virtual ~chat_participant() {} - virtual void deliver(const std::string& msg) = 0; -}; - -typedef std::shared_ptr 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 std::string& 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 participants_; - enum { max_recent_msgs = 100 }; - std::deque recent_msgs_; -}; - -//---------------------------------------------------------------------- - -class chat_session - : public chat_participant, - public std::enable_shared_from_this -{ -public: - chat_session(tcp::socket socket, chat_room& room) - : socket_(std::move(socket)), - timer_(socket_.get_executor().context()), - room_(room) - { - timer_.expires_at(std::chrono::steady_clock::time_point::max()); - } - - void start() - { - room_.join(shared_from_this()); - - co_spawn(socket_.get_executor(), - [self = shared_from_this()]{ return self->reader(); }, - detached); - - co_spawn(socket_.get_executor(), - [self = shared_from_this()]{ return self->writer(); }, - detached); - } - - void deliver(const std::string& msg) - { - write_msgs_.push_back(msg); - timer_.cancel_one(); - } - -private: - awaitable reader() - { - auto token = co_await this_coro::token(); - - try - { - for (std::string read_msg;;) - { - std::size_t n = co_await asio::async_read_until(socket_, - asio::dynamic_buffer(read_msg, 1024), "\n", token); - - room_.deliver(read_msg.substr(0, n)); - read_msg.erase(0, n); - } - } - catch (std::exception&) - { - stop(); - } - } - - awaitable writer() - { - auto token = co_await this_coro::token(); - - try - { - while (socket_.is_open()) - { - if (write_msgs_.empty()) - { - asio::error_code ec; - co_await timer_.async_wait(redirect_error(token, ec)); - } - else - { - co_await asio::async_write(socket_, - asio::buffer(write_msgs_.front()), token); - write_msgs_.pop_front(); - } - } - } - catch (std::exception&) - { - stop(); - } - } - - void stop() - { - room_.leave(shared_from_this()); - socket_.close(); - timer_.cancel(); - } - - tcp::socket socket_; - asio::steady_timer timer_; - chat_room& room_; - std::deque write_msgs_; -}; - -//---------------------------------------------------------------------- - -awaitable listener(tcp::acceptor acceptor) -{ - auto token = co_await this_coro::token(); - - chat_room room; - - for (;;) - { - std::make_shared( - co_await acceptor.async_accept(token), - room - )->start(); - } -} - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - if (argc < 2) - { - std::cerr << "Usage: chat_server [ ...]\n"; - return 1; - } - - asio::io_context io_context(1); - - for (int i = 1; i < argc; ++i) - { - unsigned short port = std::atoi(argv[i]); - co_spawn(io_context, - [&]{ return listener(tcp::acceptor(io_context, {tcp::v4(), port})); }, - detached); - } - - asio::signal_set signals(io_context, SIGINT, SIGTERM); - signals.async_wait([&](auto, auto){ io_context.stop(); }); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/double_buffered_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/double_buffered_echo_server.cpp deleted file mode 100644 index 3db4f7d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/double_buffered_echo_server.cpp +++ /dev/null @@ -1,97 +0,0 @@ -// -// double_buffered_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; -using asio::experimental::co_spawn; -using asio::experimental::detached; -namespace this_coro = asio::experimental::this_coro; - -template - using awaitable = asio::experimental::awaitable< - T, asio::io_context::executor_type>; - -awaitable echo(tcp::socket s) -{ - auto token = co_await this_coro::token(); - - try - { - char data1[1024]; - char data2[1024]; - - char* p1 = data1; - char* p2 = data2; - - // Perform initial read into first buffer. - size_t n = co_await s.async_read_some(asio::buffer(p1, 1024), token); - - for (;;) - { - // Swap received data to other buffer and initiate write operation. - std::swap(p1, p2); - auto write_result = asio::async_write(s, asio::buffer(p2, n), token); - - // Perform next read while write operation is in progress. - n = co_await s.async_read_some(asio::buffer(p1, 1024), token); - - // Wait for write operation to complete before proceeding. - co_await write_result; - } - } - catch (std::exception& e) - { - std::printf("echo Exception: %s\n", e.what()); - } -} - -awaitable listener() -{ - auto executor = co_await this_coro::executor(); - auto token = co_await this_coro::token(); - - tcp::acceptor acceptor(executor.context(), {tcp::v4(), 55555}); - for (;;) - { - tcp::socket socket = co_await acceptor.async_accept(token); - co_spawn(executor, - [socket = std::move(socket)]() mutable - { - return echo(std::move(socket)); - }, - detached); - } -} - -int main() -{ - try - { - asio::io_context io_context(1); - - asio::signal_set signals(io_context, SIGINT, SIGTERM); - signals.async_wait([&](auto, auto){ io_context.stop(); }); - - co_spawn(io_context, listener, detached); - - io_context.run(); - } - catch (std::exception& e) - { - std::printf("Exception: %s\n", e.what()); - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp deleted file mode 100644 index 043f1ec..0000000 --- a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp +++ /dev/null @@ -1,82 +0,0 @@ -// -// echo_server.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; -using asio::experimental::co_spawn; -using asio::experimental::detached; -namespace this_coro = asio::experimental::this_coro; - -template - using awaitable = asio::experimental::awaitable< - T, asio::io_context::executor_type>; - -awaitable echo(tcp::socket socket) -{ - auto token = co_await this_coro::token(); - - try - { - char data[1024]; - for (;;) - { - std::size_t n = co_await socket.async_read_some(asio::buffer(data), token); - co_await async_write(socket, asio::buffer(data, n), token); - } - } - catch (std::exception& e) - { - std::printf("echo Exception: %s\n", e.what()); - } -} - -awaitable listener() -{ - auto executor = co_await this_coro::executor(); - auto token = co_await this_coro::token(); - - tcp::acceptor acceptor(executor.context(), {tcp::v4(), 55555}); - for (;;) - { - tcp::socket socket = co_await acceptor.async_accept(token); - co_spawn(executor, - [socket = std::move(socket)]() mutable - { - return echo(std::move(socket)); - }, - detached); - } -} - -int main() -{ - try - { - asio::io_context io_context(1); - - asio::signal_set signals(io_context, SIGINT, SIGTERM); - signals.async_wait([&](auto, auto){ io_context.stop(); }); - - co_spawn(io_context, listener, detached); - - io_context.run(); - } - catch (std::exception& e) - { - std::printf("Exception: %s\n", e.what()); - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp b/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp deleted file mode 100644 index f5435bb..0000000 --- a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp +++ /dev/null @@ -1,111 +0,0 @@ -// -// range_based_for.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; -using asio::experimental::awaitable; -using asio::experimental::co_spawn; -using asio::experimental::detached; -namespace this_coro = asio::experimental::this_coro; - -class connection_iter -{ - friend class connections; - tcp::acceptor* acceptor_ = nullptr; - tcp::socket socket_; - - connection_iter(tcp::acceptor& a, tcp::socket s) - : acceptor_(&a), socket_(std::move(s)) {} - -public: - tcp::socket operator*() - { - return std::move(socket_); - } - - awaitable operator++() - { - auto token = co_await this_coro::token(); - socket_ = co_await acceptor_->async_accept(token); - } - - bool operator==(const connection_iter&) const noexcept - { - return false; - } - - bool operator!=(const connection_iter&) const noexcept - { - return true; - } -}; - -class connections -{ - tcp::acceptor& acceptor_; - -public: - explicit connections(tcp::acceptor& a) : acceptor_(a) {} - - awaitable begin() - { - auto token = co_await this_coro::token(); - tcp::socket s = co_await acceptor_.async_accept(token); - co_return connection_iter(acceptor_, std::move(s)); - } - - connection_iter end() - { - return connection_iter(acceptor_, - tcp::socket(acceptor_.get_executor().context())); - } -}; - -awaitable listener(tcp::acceptor acceptor) -{ - auto token = co_await this_coro::token(); - - for co_await (tcp::socket s : connections(acceptor)) - { - co_await asio::async_write(s, asio::buffer("hello\r\n", 7), token); - } -} - -int main() -{ - try - { - asio::io_context io_context(1); - - asio::signal_set signals(io_context, SIGINT, SIGTERM); - signals.async_wait([&](auto, auto){ io_context.stop(); }); - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - co_spawn(io_context, - [acceptor = std::move(acceptor)]() mutable - { - return listener(std::move(acceptor)); - }, - detached); - - io_context.run(); - } - catch (std::exception& e) - { - std::printf("Exception: %s\n", e.what()); - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp deleted file mode 100644 index 429bed5..0000000 --- a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// refactored_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; -using asio::experimental::co_spawn; -using asio::experimental::detached; -namespace this_coro = asio::experimental::this_coro; - -template - using awaitable = asio::experimental::awaitable< - T, asio::io_context::executor_type>; - -awaitable echo_once(tcp::socket& socket) -{ - auto token = co_await this_coro::token(); - - char data[128]; - std::size_t n = co_await socket.async_read_some(asio::buffer(data), token); - co_await async_write(socket, asio::buffer(data, n), token); -} - -awaitable echo(tcp::socket socket) -{ - try - { - for (;;) - { - // The asynchronous operations to echo a single chunk of data have been - // refactored into a separate function. When this function is called, the - // operations are still performed in the context of the current - // coroutine, and the behaviour is functionally equivalent. - co_await echo_once(socket); - } - } - catch (std::exception& e) - { - std::printf("echo Exception: %s\n", e.what()); - } -} - -awaitable listener() -{ - auto executor = co_await this_coro::executor(); - auto token = co_await this_coro::token(); - - tcp::acceptor acceptor(executor.context(), {tcp::v4(), 55555}); - for (;;) - { - tcp::socket socket = co_await acceptor.async_accept(token); - co_spawn(executor, - [socket = std::move(socket)]() mutable - { - return echo(std::move(socket)); - }, - detached); - } -} - -int main() -{ - try - { - asio::io_context io_context(1); - - asio::signal_set signals(io_context, SIGINT, SIGTERM); - signals.async_wait([&](auto, auto){ io_context.stop(); }); - - co_spawn(io_context, listener, detached); - - io_context.run(); - } - catch (std::exception& e) - { - std::printf("Exception: %s\n", e.what()); - } -} diff --git a/Sources/Vendor/asio/src/tests/Makefile.am b/Sources/Vendor/asio/src/tests/Makefile.am deleted file mode 100644 index fe5e1d8..0000000 --- a/Sources/Vendor/asio/src/tests/Makefile.am +++ /dev/null @@ -1,446 +0,0 @@ -AUTOMAKE_OPTIONS = subdir-objects - -if SEPARATE_COMPILATION -noinst_LIBRARIES = libasio.a -libasio_a_SOURCES = ../asio.cpp -if HAVE_OPENSSL -libasio_a_SOURCES += ../asio_ssl.cpp -endif -LDADD = libasio.a -endif - -check_PROGRAMS = \ - unit/associated_allocator \ - unit/associated_executor \ - unit/async_result \ - unit/basic_datagram_socket \ - unit/basic_deadline_timer \ - unit/basic_raw_socket \ - unit/basic_seq_packet_socket \ - unit/basic_serial_port \ - unit/basic_signal_set \ - unit/basic_socket_acceptor \ - unit/basic_stream_socket \ - unit/basic_streambuf \ - unit/basic_waitable_timer \ - unit/bind_executor \ - unit/buffered_read_stream \ - unit/buffered_stream \ - unit/buffered_write_stream \ - unit/buffer \ - unit/buffers_iterator \ - unit/completion_condition \ - unit/connect \ - unit/coroutine \ - unit/datagram_socket_service \ - unit/deadline_timer_service \ - unit/deadline_timer \ - unit/defer \ - unit/dispatch \ - unit/error \ - unit/execution_context \ - unit/executor \ - unit/executor_work_guard \ - unit/generic/basic_endpoint \ - unit/generic/datagram_protocol \ - unit/generic/raw_protocol \ - unit/generic/seq_packet_protocol \ - unit/generic/stream_protocol \ - unit/high_resolution_timer \ - unit/io_context \ - unit/ip/address \ - unit/ip/address_v4 \ - unit/ip/address_v4_iterator \ - unit/ip/address_v4_range \ - unit/ip/address_v6 \ - unit/ip/address_v6_iterator \ - unit/ip/address_v6_range \ - unit/ip/basic_endpoint \ - unit/ip/basic_resolver \ - unit/ip/basic_resolver_entry \ - unit/ip/basic_resolver_iterator \ - unit/ip/basic_resolver_query \ - unit/ip/host_name \ - unit/ip/icmp \ - unit/ip/multicast \ - unit/ip/network_v4 \ - unit/ip/network_v6 \ - unit/ip/resolver_query_base \ - unit/ip/resolver_service \ - unit/ip/tcp \ - unit/ip/udp \ - unit/ip/unicast \ - unit/ip/v6_only \ - unit/is_read_buffered \ - unit/is_write_buffered \ - unit/local/basic_endpoint \ - unit/local/connect_pair \ - unit/local/datagram_protocol \ - unit/local/stream_protocol \ - unit/packaged_task \ - unit/placeholders \ - unit/posix/basic_descriptor \ - unit/posix/basic_stream_descriptor \ - unit/posix/descriptor \ - unit/posix/descriptor_base \ - unit/posix/stream_descriptor \ - unit/posix/stream_descriptor_service \ - unit/post \ - unit/raw_socket_service \ - unit/read \ - unit/read_at \ - unit/read_until \ - unit/seq_packet_socket_service \ - unit/serial_port \ - unit/serial_port_base \ - unit/serial_port_service \ - unit/signal_set \ - unit/signal_set_service \ - unit/socket_acceptor_service \ - unit/socket_base \ - unit/steady_timer \ - unit/strand \ - unit/stream_socket_service \ - unit/streambuf \ - unit/system_context \ - unit/system_executor \ - unit/system_timer \ - unit/thread \ - unit/time_traits \ - unit/ts/buffer \ - unit/ts/executor \ - unit/ts/internet \ - unit/ts/io_context \ - unit/ts/net \ - unit/ts/netfwd \ - unit/ts/socket \ - unit/ts/timer \ - unit/use_future \ - unit/uses_executor \ - unit/wait_traits \ - unit/waitable_timer_service \ - unit/windows/basic_handle \ - unit/windows/basic_object_handle \ - unit/windows/basic_random_access_handle \ - unit/windows/basic_stream_handle \ - unit/windows/object_handle \ - unit/windows/object_handle_service \ - unit/windows/overlapped_handle \ - unit/windows/overlapped_ptr \ - unit/windows/random_access_handle \ - unit/windows/random_access_handle_service \ - unit/windows/stream_handle \ - unit/windows/stream_handle_service \ - unit/write \ - unit/write_at - -if !STANDALONE -noinst_PROGRAMS = \ - latency/tcp_client \ - latency/tcp_server \ - latency/udp_client \ - latency/udp_server \ - performance/client \ - performance/server -endif - -if HAVE_OPENSSL -check_PROGRAMS += \ - unit/ssl/context_base \ - unit/ssl/context \ - unit/ssl/error \ - unit/ssl/rfc2818_verification \ - unit/ssl/stream_base \ - unit/ssl/stream -endif - -TESTS = \ - unit/associated_allocator \ - unit/associated_executor \ - unit/async_result \ - unit/basic_datagram_socket \ - unit/basic_deadline_timer \ - unit/basic_raw_socket \ - unit/basic_seq_packet_socket \ - unit/basic_serial_port \ - unit/basic_signal_set \ - unit/basic_socket_acceptor \ - unit/basic_stream_socket \ - unit/basic_streambuf \ - unit/basic_waitable_timer \ - unit/bind_executor \ - unit/buffered_read_stream \ - unit/buffered_stream \ - unit/buffered_write_stream \ - unit/buffer \ - unit/buffers_iterator \ - unit/completion_condition \ - unit/connect \ - unit/datagram_socket_service \ - unit/deadline_timer_service \ - unit/deadline_timer \ - unit/defer \ - unit/dispatch \ - unit/error \ - unit/execution_context \ - unit/executor \ - unit/executor_work_guard \ - unit/high_resolution_timer \ - unit/io_context \ - unit/ip/address \ - unit/ip/address_v4 \ - unit/ip/address_v4_iterator \ - unit/ip/address_v4_range \ - unit/ip/address_v6 \ - unit/ip/address_v6_iterator \ - unit/ip/address_v6_range \ - unit/ip/basic_endpoint \ - unit/ip/basic_resolver \ - unit/ip/basic_resolver_entry \ - unit/ip/basic_resolver_iterator \ - unit/ip/basic_resolver_query \ - unit/ip/host_name \ - unit/ip/icmp \ - unit/ip/multicast \ - unit/ip/network_v4 \ - unit/ip/network_v6 \ - unit/ip/resolver_query_base \ - unit/ip/resolver_service \ - unit/ip/tcp \ - unit/ip/udp \ - unit/ip/unicast \ - unit/ip/v6_only \ - unit/is_read_buffered \ - unit/is_write_buffered \ - unit/local/basic_endpoint \ - unit/local/connect_pair \ - unit/local/datagram_protocol \ - unit/local/stream_protocol \ - unit/packaged_task \ - unit/placeholders \ - unit/posix/basic_descriptor \ - unit/posix/basic_stream_descriptor \ - unit/posix/descriptor\ - unit/posix/descriptor_base \ - unit/posix/stream_descriptor \ - unit/posix/stream_descriptor_service \ - unit/post \ - unit/raw_socket_service \ - unit/read \ - unit/read_at \ - unit/read_until \ - unit/seq_packet_socket_service \ - unit/serial_port \ - unit/serial_port_base \ - unit/serial_port_service \ - unit/signal_set \ - unit/signal_set_service \ - unit/socket_acceptor_service \ - unit/socket_base \ - unit/steady_timer \ - unit/strand \ - unit/stream_socket_service \ - unit/streambuf \ - unit/system_context \ - unit/system_executor \ - unit/system_timer \ - unit/thread \ - unit/time_traits \ - unit/ts/buffer \ - unit/ts/executor \ - unit/ts/internet \ - unit/ts/io_context \ - unit/ts/net \ - unit/ts/netfwd \ - unit/ts/socket \ - unit/ts/timer \ - unit/use_future \ - unit/uses_executor \ - unit/wait_traits \ - unit/waitable_timer_service \ - unit/windows/basic_handle \ - unit/windows/basic_object_handle \ - unit/windows/basic_random_access_handle \ - unit/windows/basic_stream_handle \ - unit/windows/object_handle \ - unit/windows/object_handle_service \ - unit/windows/overlapped_handle \ - unit/windows/overlapped_ptr \ - unit/windows/random_access_handle \ - unit/windows/random_access_handle_service \ - unit/windows/stream_handle \ - unit/windows/stream_handle_service \ - unit/write \ - unit/write_at - -if HAVE_OPENSSL -TESTS += \ - unit/ssl/context_base \ - unit/ssl/context \ - unit/ssl/error \ - unit/ssl/rfc2818_verification \ - unit/ssl/stream_base \ - unit/ssl/stream -endif - -noinst_HEADERS = \ - latency/high_res_clock.hpp \ - unit/unit_test.hpp - -AM_CXXFLAGS = -I$(srcdir)/../../include - -if !STANDALONE -latency_tcp_client_SOURCES = latency/tcp_client.cpp -latency_tcp_server_SOURCES = latency/tcp_server.cpp -latency_udp_client_SOURCES = latency/udp_client.cpp -latency_udp_server_SOURCES = latency/udp_server.cpp -performance_client_SOURCES = performance/client.cpp -performance_server_SOURCES = performance/server.cpp -endif - -unit_associated_allocator_SOURCES = unit/associated_allocator.cpp -unit_associated_executor_SOURCES = unit/associated_executor.cpp -unit_async_result_SOURCES = unit/async_result.cpp -unit_basic_datagram_socket_SOURCES = unit/basic_datagram_socket.cpp -unit_basic_deadline_timer_SOURCES = unit/basic_deadline_timer.cpp -unit_basic_raw_socket_SOURCES = unit/basic_raw_socket.cpp -unit_basic_seq_packet_socket_SOURCES = unit/basic_seq_packet_socket.cpp -unit_basic_serial_port_SOURCES = unit/basic_serial_port.cpp -unit_basic_signal_set_SOURCES = unit/basic_signal_set.cpp -unit_basic_socket_acceptor_SOURCES = unit/basic_socket_acceptor.cpp -unit_basic_stream_socket_SOURCES = unit/basic_stream_socket.cpp -unit_basic_streambuf_SOURCES = unit/basic_streambuf.cpp -unit_basic_waitable_timer_SOURCES = unit/basic_waitable_timer.cpp -unit_bind_executor_SOURCES = unit/bind_executor.cpp -unit_buffer_SOURCES = unit/buffer.cpp -unit_buffers_iterator_SOURCES = unit/buffers_iterator.cpp -unit_buffered_read_stream_SOURCES = unit/buffered_read_stream.cpp -unit_buffered_stream_SOURCES = unit/buffered_stream.cpp -unit_buffered_write_stream_SOURCES = unit/buffered_write_stream.cpp -unit_completion_condition_SOURCES = unit/completion_condition.cpp -unit_connect_SOURCES = unit/connect.cpp -unit_coroutine_SOURCES = unit/coroutine.cpp -unit_datagram_socket_service_SOURCES = unit/datagram_socket_service.cpp -unit_deadline_timer_service_SOURCES = unit/deadline_timer_service.cpp -unit_deadline_timer_SOURCES = unit/deadline_timer.cpp -unit_defer_SOURCES = unit/defer.cpp -unit_dispatch_SOURCES = unit/dispatch.cpp -unit_error_SOURCES = unit/error.cpp -unit_execution_context_SOURCES = unit/execution_context.cpp -unit_executor_SOURCES = unit/executor.cpp -unit_executor_work_guard_SOURCES = unit/executor_work_guard.cpp -unit_generic_basic_endpoint_SOURCES = unit/generic/basic_endpoint.cpp -unit_generic_datagram_protocol_SOURCES = unit/generic/datagram_protocol.cpp -unit_generic_raw_protocol_SOURCES = unit/generic/raw_protocol.cpp -unit_generic_seq_packet_protocol_SOURCES = unit/generic/seq_packet_protocol.cpp -unit_generic_stream_protocol_SOURCES = unit/generic/stream_protocol.cpp -unit_high_resolution_timer_SOURCES = unit/high_resolution_timer.cpp -unit_io_context_SOURCES = unit/io_context.cpp -unit_ip_address_SOURCES = unit/ip/address.cpp -unit_ip_address_v4_SOURCES = unit/ip/address_v4.cpp -unit_ip_address_v4_iterator_SOURCES = unit/ip/address_v4_iterator.cpp -unit_ip_address_v4_range_SOURCES = unit/ip/address_v4_range.cpp -unit_ip_address_v6_SOURCES = unit/ip/address_v6.cpp -unit_ip_address_v6_iterator_SOURCES = unit/ip/address_v6_iterator.cpp -unit_ip_address_v6_range_SOURCES = unit/ip/address_v6_range.cpp -unit_ip_basic_endpoint_SOURCES = unit/ip/basic_endpoint.cpp -unit_ip_basic_resolver_SOURCES = unit/ip/basic_resolver.cpp -unit_ip_basic_resolver_entry_SOURCES = unit/ip/basic_resolver_entry.cpp -unit_ip_basic_resolver_iterator_SOURCES = unit/ip/basic_resolver_iterator.cpp -unit_ip_basic_resolver_query_SOURCES = unit/ip/basic_resolver_query.cpp -unit_ip_host_name_SOURCES = unit/ip/host_name.cpp -unit_ip_icmp_SOURCES = unit/ip/icmp.cpp -unit_ip_multicast_SOURCES = unit/ip/multicast.cpp -unit_ip_network_v4_SOURCES = unit/ip/network_v4.cpp -unit_ip_network_v6_SOURCES = unit/ip/network_v6.cpp -unit_ip_resolver_query_base_SOURCES = unit/ip/resolver_query_base.cpp -unit_ip_resolver_service_SOURCES = unit/ip/resolver_service.cpp -unit_ip_tcp_SOURCES = unit/ip/tcp.cpp -unit_ip_udp_SOURCES = unit/ip/udp.cpp -unit_ip_unicast_SOURCES = unit/ip/unicast.cpp -unit_ip_v6_only_SOURCES = unit/ip/v6_only.cpp -unit_is_read_buffered_SOURCES = unit/is_read_buffered.cpp -unit_is_write_buffered_SOURCES = unit/is_write_buffered.cpp -unit_local_basic_endpoint_SOURCES = unit/local/basic_endpoint.cpp -unit_local_connect_pair_SOURCES = unit/local/connect_pair.cpp -unit_local_datagram_protocol_SOURCES = unit/local/datagram_protocol.cpp -unit_local_stream_protocol_SOURCES = unit/local/stream_protocol.cpp -unit_packaged_task_SOURCES = unit/packaged_task.cpp -unit_placeholders_SOURCES = unit/placeholders.cpp -unit_posix_basic_descriptor_SOURCES = unit/posix/basic_descriptor.cpp -unit_posix_basic_stream_descriptor_SOURCES = unit/posix/basic_stream_descriptor.cpp -unit_posix_descriptor_SOURCES = unit/posix/descriptor.cpp -unit_posix_descriptor_base_SOURCES = unit/posix/descriptor_base.cpp -unit_posix_stream_descriptor_SOURCES = unit/posix/stream_descriptor.cpp -unit_posix_stream_descriptor_service_SOURCES = unit/posix/stream_descriptor_service.cpp -unit_post_SOURCES = unit/post.cpp -unit_raw_socket_service_SOURCES = unit/raw_socket_service.cpp -unit_read_SOURCES = unit/read.cpp -unit_read_at_SOURCES = unit/read_at.cpp -unit_read_until_SOURCES = unit/read_until.cpp -unit_seq_packet_socket_service_SOURCES = unit/seq_packet_socket_service.cpp -unit_serial_port_SOURCES = unit/serial_port.cpp -unit_serial_port_base_SOURCES = unit/serial_port_base.cpp -unit_serial_port_service_SOURCES = unit/serial_port_service.cpp -unit_signal_set_SOURCES = unit/signal_set.cpp -unit_signal_set_service_SOURCES = unit/signal_set_service.cpp -unit_socket_acceptor_service_SOURCES = unit/socket_acceptor_service.cpp -unit_socket_base_SOURCES = unit/socket_base.cpp -unit_steady_timer_SOURCES = unit/steady_timer.cpp -unit_strand_SOURCES = unit/strand.cpp -unit_stream_socket_service_SOURCES = unit/stream_socket_service.cpp -unit_streambuf_SOURCES = unit/streambuf.cpp -unit_system_context_SOURCES = unit/system_context.cpp -unit_system_executor_SOURCES = unit/system_executor.cpp -unit_system_timer_SOURCES = unit/system_timer.cpp -unit_thread_SOURCES = unit/thread.cpp -unit_time_traits_SOURCES = unit/time_traits.cpp -unit_ts_buffer_SOURCES = unit/ts/buffer.cpp -unit_ts_executor_SOURCES = unit/ts/executor.cpp -unit_ts_internet_SOURCES = unit/ts/internet.cpp -unit_ts_io_context_SOURCES = unit/ts/io_context.cpp -unit_ts_net_SOURCES = unit/ts/net.cpp -unit_ts_netfwd_SOURCES = unit/ts/netfwd.cpp -unit_ts_socket_SOURCES = unit/ts/socket.cpp -unit_ts_timer_SOURCES = unit/ts/timer.cpp -unit_use_future_SOURCES = unit/use_future.cpp -unit_uses_executor_SOURCES = unit/uses_executor.cpp -unit_wait_traits_SOURCES = unit/wait_traits.cpp -unit_waitable_timer_service_SOURCES = unit/waitable_timer_service.cpp -unit_windows_basic_handle_SOURCES = unit/windows/basic_handle.cpp -unit_windows_basic_object_handle_SOURCES = unit/windows/basic_object_handle.cpp -unit_windows_basic_random_access_handle_SOURCES = unit/windows/basic_random_access_handle.cpp -unit_windows_basic_stream_handle_SOURCES = unit/windows/basic_stream_handle.cpp -unit_windows_object_handle_SOURCES = unit/windows/object_handle.cpp -unit_windows_object_handle_service_SOURCES = unit/windows/object_handle_service.cpp -unit_windows_overlapped_handle_SOURCES = unit/windows/overlapped_handle.cpp -unit_windows_overlapped_ptr_SOURCES = unit/windows/overlapped_ptr.cpp -unit_windows_random_access_handle_SOURCES = unit/windows/random_access_handle.cpp -unit_windows_random_access_handle_service_SOURCES = unit/windows/random_access_handle_service.cpp -unit_windows_stream_handle_SOURCES = unit/windows/stream_handle.cpp -unit_windows_stream_handle_service_SOURCES = unit/windows/stream_handle_service.cpp -unit_write_SOURCES = unit/write.cpp -unit_write_at_SOURCES = unit/write_at.cpp - -if HAVE_OPENSSL -unit_ssl_context_base_SOURCES = unit/ssl/context_base.cpp -unit_ssl_context_SOURCES = unit/ssl/context.cpp -unit_ssl_error_SOURCES = unit/ssl/error.cpp -unit_ssl_stream_base_SOURCES = unit/ssl/stream_base.cpp -unit_ssl_rfc2818_verification_SOURCES = unit/ssl/rfc2818_verification.cpp -unit_ssl_stream_SOURCES = unit/ssl/stream.cpp -endif - -EXTRA_DIST = \ - latency/allocator.hpp \ - performance/handler_allocator.hpp \ - unit/archetypes/async_ops.hpp \ - unit/archetypes/async_result.hpp \ - unit/archetypes/deprecated_async_result.hpp \ - unit/archetypes/deprecated_async_ops.hpp \ - unit/archetypes/gettable_socket_option.hpp \ - unit/archetypes/io_control_command.hpp \ - unit/archetypes/settable_socket_option.hpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in diff --git a/Sources/Vendor/asio/src/tests/Makefile.in b/Sources/Vendor/asio/src/tests/Makefile.in deleted file mode 100644 index 9ae8d87..0000000 --- a/Sources/Vendor/asio/src/tests/Makefile.in +++ /dev/null @@ -1,4580 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__append_1 = ../asio_ssl.cpp -check_PROGRAMS = unit/associated_allocator$(EXEEXT) \ - unit/associated_executor$(EXEEXT) unit/async_result$(EXEEXT) \ - unit/basic_datagram_socket$(EXEEXT) \ - unit/basic_deadline_timer$(EXEEXT) \ - unit/basic_raw_socket$(EXEEXT) \ - unit/basic_seq_packet_socket$(EXEEXT) \ - unit/basic_serial_port$(EXEEXT) unit/basic_signal_set$(EXEEXT) \ - unit/basic_socket_acceptor$(EXEEXT) \ - unit/basic_stream_socket$(EXEEXT) \ - unit/basic_streambuf$(EXEEXT) \ - unit/basic_waitable_timer$(EXEEXT) unit/bind_executor$(EXEEXT) \ - unit/buffered_read_stream$(EXEEXT) \ - unit/buffered_stream$(EXEEXT) \ - unit/buffered_write_stream$(EXEEXT) unit/buffer$(EXEEXT) \ - unit/buffers_iterator$(EXEEXT) \ - unit/completion_condition$(EXEEXT) unit/connect$(EXEEXT) \ - unit/coroutine$(EXEEXT) unit/datagram_socket_service$(EXEEXT) \ - unit/deadline_timer_service$(EXEEXT) \ - unit/deadline_timer$(EXEEXT) unit/defer$(EXEEXT) \ - unit/dispatch$(EXEEXT) unit/error$(EXEEXT) \ - unit/execution_context$(EXEEXT) unit/executor$(EXEEXT) \ - unit/executor_work_guard$(EXEEXT) \ - unit/generic/basic_endpoint$(EXEEXT) \ - unit/generic/datagram_protocol$(EXEEXT) \ - unit/generic/raw_protocol$(EXEEXT) \ - unit/generic/seq_packet_protocol$(EXEEXT) \ - unit/generic/stream_protocol$(EXEEXT) \ - unit/high_resolution_timer$(EXEEXT) unit/io_context$(EXEEXT) \ - unit/ip/address$(EXEEXT) unit/ip/address_v4$(EXEEXT) \ - unit/ip/address_v4_iterator$(EXEEXT) \ - unit/ip/address_v4_range$(EXEEXT) unit/ip/address_v6$(EXEEXT) \ - unit/ip/address_v6_iterator$(EXEEXT) \ - unit/ip/address_v6_range$(EXEEXT) \ - unit/ip/basic_endpoint$(EXEEXT) \ - unit/ip/basic_resolver$(EXEEXT) \ - unit/ip/basic_resolver_entry$(EXEEXT) \ - unit/ip/basic_resolver_iterator$(EXEEXT) \ - unit/ip/basic_resolver_query$(EXEEXT) \ - unit/ip/host_name$(EXEEXT) unit/ip/icmp$(EXEEXT) \ - unit/ip/multicast$(EXEEXT) unit/ip/network_v4$(EXEEXT) \ - unit/ip/network_v6$(EXEEXT) \ - unit/ip/resolver_query_base$(EXEEXT) \ - unit/ip/resolver_service$(EXEEXT) unit/ip/tcp$(EXEEXT) \ - unit/ip/udp$(EXEEXT) unit/ip/unicast$(EXEEXT) \ - unit/ip/v6_only$(EXEEXT) unit/is_read_buffered$(EXEEXT) \ - unit/is_write_buffered$(EXEEXT) \ - unit/local/basic_endpoint$(EXEEXT) \ - unit/local/connect_pair$(EXEEXT) \ - unit/local/datagram_protocol$(EXEEXT) \ - unit/local/stream_protocol$(EXEEXT) \ - unit/packaged_task$(EXEEXT) unit/placeholders$(EXEEXT) \ - unit/posix/basic_descriptor$(EXEEXT) \ - unit/posix/basic_stream_descriptor$(EXEEXT) \ - unit/posix/descriptor$(EXEEXT) \ - unit/posix/descriptor_base$(EXEEXT) \ - unit/posix/stream_descriptor$(EXEEXT) \ - unit/posix/stream_descriptor_service$(EXEEXT) \ - unit/post$(EXEEXT) unit/raw_socket_service$(EXEEXT) \ - unit/read$(EXEEXT) unit/read_at$(EXEEXT) \ - unit/read_until$(EXEEXT) \ - unit/seq_packet_socket_service$(EXEEXT) \ - unit/serial_port$(EXEEXT) unit/serial_port_base$(EXEEXT) \ - unit/serial_port_service$(EXEEXT) unit/signal_set$(EXEEXT) \ - unit/signal_set_service$(EXEEXT) \ - unit/socket_acceptor_service$(EXEEXT) \ - unit/socket_base$(EXEEXT) unit/steady_timer$(EXEEXT) \ - unit/strand$(EXEEXT) unit/stream_socket_service$(EXEEXT) \ - unit/streambuf$(EXEEXT) unit/system_context$(EXEEXT) \ - unit/system_executor$(EXEEXT) unit/system_timer$(EXEEXT) \ - unit/thread$(EXEEXT) unit/time_traits$(EXEEXT) \ - unit/ts/buffer$(EXEEXT) unit/ts/executor$(EXEEXT) \ - unit/ts/internet$(EXEEXT) unit/ts/io_context$(EXEEXT) \ - unit/ts/net$(EXEEXT) unit/ts/netfwd$(EXEEXT) \ - unit/ts/socket$(EXEEXT) unit/ts/timer$(EXEEXT) \ - unit/use_future$(EXEEXT) unit/uses_executor$(EXEEXT) \ - unit/wait_traits$(EXEEXT) unit/waitable_timer_service$(EXEEXT) \ - unit/windows/basic_handle$(EXEEXT) \ - unit/windows/basic_object_handle$(EXEEXT) \ - unit/windows/basic_random_access_handle$(EXEEXT) \ - unit/windows/basic_stream_handle$(EXEEXT) \ - unit/windows/object_handle$(EXEEXT) \ - unit/windows/object_handle_service$(EXEEXT) \ - unit/windows/overlapped_handle$(EXEEXT) \ - unit/windows/overlapped_ptr$(EXEEXT) \ - unit/windows/random_access_handle$(EXEEXT) \ - unit/windows/random_access_handle_service$(EXEEXT) \ - unit/windows/stream_handle$(EXEEXT) \ - unit/windows/stream_handle_service$(EXEEXT) \ - unit/write$(EXEEXT) unit/write_at$(EXEEXT) $(am__EXEEXT_1) -@STANDALONE_FALSE@noinst_PROGRAMS = latency/tcp_client$(EXEEXT) \ -@STANDALONE_FALSE@ latency/tcp_server$(EXEEXT) \ -@STANDALONE_FALSE@ latency/udp_client$(EXEEXT) \ -@STANDALONE_FALSE@ latency/udp_server$(EXEEXT) \ -@STANDALONE_FALSE@ performance/client$(EXEEXT) \ -@STANDALONE_FALSE@ performance/server$(EXEEXT) -@HAVE_OPENSSL_TRUE@am__append_2 = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/context_base \ -@HAVE_OPENSSL_TRUE@ unit/ssl/context \ -@HAVE_OPENSSL_TRUE@ unit/ssl/error \ -@HAVE_OPENSSL_TRUE@ unit/ssl/rfc2818_verification \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream_base \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream - -TESTS = unit/associated_allocator$(EXEEXT) \ - unit/associated_executor$(EXEEXT) unit/async_result$(EXEEXT) \ - unit/basic_datagram_socket$(EXEEXT) \ - unit/basic_deadline_timer$(EXEEXT) \ - unit/basic_raw_socket$(EXEEXT) \ - unit/basic_seq_packet_socket$(EXEEXT) \ - unit/basic_serial_port$(EXEEXT) unit/basic_signal_set$(EXEEXT) \ - unit/basic_socket_acceptor$(EXEEXT) \ - unit/basic_stream_socket$(EXEEXT) \ - unit/basic_streambuf$(EXEEXT) \ - unit/basic_waitable_timer$(EXEEXT) unit/bind_executor$(EXEEXT) \ - unit/buffered_read_stream$(EXEEXT) \ - unit/buffered_stream$(EXEEXT) \ - unit/buffered_write_stream$(EXEEXT) unit/buffer$(EXEEXT) \ - unit/buffers_iterator$(EXEEXT) \ - unit/completion_condition$(EXEEXT) unit/connect$(EXEEXT) \ - unit/datagram_socket_service$(EXEEXT) \ - unit/deadline_timer_service$(EXEEXT) \ - unit/deadline_timer$(EXEEXT) unit/defer$(EXEEXT) \ - unit/dispatch$(EXEEXT) unit/error$(EXEEXT) \ - unit/execution_context$(EXEEXT) unit/executor$(EXEEXT) \ - unit/executor_work_guard$(EXEEXT) \ - unit/high_resolution_timer$(EXEEXT) unit/io_context$(EXEEXT) \ - unit/ip/address$(EXEEXT) unit/ip/address_v4$(EXEEXT) \ - unit/ip/address_v4_iterator$(EXEEXT) \ - unit/ip/address_v4_range$(EXEEXT) unit/ip/address_v6$(EXEEXT) \ - unit/ip/address_v6_iterator$(EXEEXT) \ - unit/ip/address_v6_range$(EXEEXT) \ - unit/ip/basic_endpoint$(EXEEXT) \ - unit/ip/basic_resolver$(EXEEXT) \ - unit/ip/basic_resolver_entry$(EXEEXT) \ - unit/ip/basic_resolver_iterator$(EXEEXT) \ - unit/ip/basic_resolver_query$(EXEEXT) \ - unit/ip/host_name$(EXEEXT) unit/ip/icmp$(EXEEXT) \ - unit/ip/multicast$(EXEEXT) unit/ip/network_v4$(EXEEXT) \ - unit/ip/network_v6$(EXEEXT) \ - unit/ip/resolver_query_base$(EXEEXT) \ - unit/ip/resolver_service$(EXEEXT) unit/ip/tcp$(EXEEXT) \ - unit/ip/udp$(EXEEXT) unit/ip/unicast$(EXEEXT) \ - unit/ip/v6_only$(EXEEXT) unit/is_read_buffered$(EXEEXT) \ - unit/is_write_buffered$(EXEEXT) \ - unit/local/basic_endpoint$(EXEEXT) \ - unit/local/connect_pair$(EXEEXT) \ - unit/local/datagram_protocol$(EXEEXT) \ - unit/local/stream_protocol$(EXEEXT) \ - unit/packaged_task$(EXEEXT) unit/placeholders$(EXEEXT) \ - unit/posix/basic_descriptor$(EXEEXT) \ - unit/posix/basic_stream_descriptor$(EXEEXT) \ - unit/posix/descriptor$(EXEEXT) \ - unit/posix/descriptor_base$(EXEEXT) \ - unit/posix/stream_descriptor$(EXEEXT) \ - unit/posix/stream_descriptor_service$(EXEEXT) \ - unit/post$(EXEEXT) unit/raw_socket_service$(EXEEXT) \ - unit/read$(EXEEXT) unit/read_at$(EXEEXT) \ - unit/read_until$(EXEEXT) \ - unit/seq_packet_socket_service$(EXEEXT) \ - unit/serial_port$(EXEEXT) unit/serial_port_base$(EXEEXT) \ - unit/serial_port_service$(EXEEXT) unit/signal_set$(EXEEXT) \ - unit/signal_set_service$(EXEEXT) \ - unit/socket_acceptor_service$(EXEEXT) \ - unit/socket_base$(EXEEXT) unit/steady_timer$(EXEEXT) \ - unit/strand$(EXEEXT) unit/stream_socket_service$(EXEEXT) \ - unit/streambuf$(EXEEXT) unit/system_context$(EXEEXT) \ - unit/system_executor$(EXEEXT) unit/system_timer$(EXEEXT) \ - unit/thread$(EXEEXT) unit/time_traits$(EXEEXT) \ - unit/ts/buffer$(EXEEXT) unit/ts/executor$(EXEEXT) \ - unit/ts/internet$(EXEEXT) unit/ts/io_context$(EXEEXT) \ - unit/ts/net$(EXEEXT) unit/ts/netfwd$(EXEEXT) \ - unit/ts/socket$(EXEEXT) unit/ts/timer$(EXEEXT) \ - unit/use_future$(EXEEXT) unit/uses_executor$(EXEEXT) \ - unit/wait_traits$(EXEEXT) unit/waitable_timer_service$(EXEEXT) \ - unit/windows/basic_handle$(EXEEXT) \ - unit/windows/basic_object_handle$(EXEEXT) \ - unit/windows/basic_random_access_handle$(EXEEXT) \ - unit/windows/basic_stream_handle$(EXEEXT) \ - unit/windows/object_handle$(EXEEXT) \ - unit/windows/object_handle_service$(EXEEXT) \ - unit/windows/overlapped_handle$(EXEEXT) \ - unit/windows/overlapped_ptr$(EXEEXT) \ - unit/windows/random_access_handle$(EXEEXT) \ - unit/windows/random_access_handle_service$(EXEEXT) \ - unit/windows/stream_handle$(EXEEXT) \ - unit/windows/stream_handle_service$(EXEEXT) \ - unit/write$(EXEEXT) unit/write_at$(EXEEXT) $(am__EXEEXT_1) -@HAVE_OPENSSL_TRUE@am__append_3 = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/context_base \ -@HAVE_OPENSSL_TRUE@ unit/ssl/context \ -@HAVE_OPENSSL_TRUE@ unit/ssl/error \ -@HAVE_OPENSSL_TRUE@ unit/ssl/rfc2818_verification \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream_base \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream - -subdir = src/tests -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -@HAVE_OPENSSL_TRUE@am__EXEEXT_1 = unit/ssl/context_base$(EXEEXT) \ -@HAVE_OPENSSL_TRUE@ unit/ssl/context$(EXEEXT) \ -@HAVE_OPENSSL_TRUE@ unit/ssl/error$(EXEEXT) \ -@HAVE_OPENSSL_TRUE@ unit/ssl/rfc2818_verification$(EXEEXT) \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream_base$(EXEEXT) \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream$(EXEEXT) -PROGRAMS = $(noinst_PROGRAMS) -LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru -AM_V_AR = $(am__v_AR_@AM_V@) -am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = -libasio_a_AR = $(AR) $(ARFLAGS) -libasio_a_LIBADD = -am__libasio_a_SOURCES_DIST = ../asio.cpp ../asio_ssl.cpp -am__dirstamp = $(am__leading_dot)dirstamp -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__objects_1 = ../asio_ssl.$(OBJEXT) -@SEPARATE_COMPILATION_TRUE@am_libasio_a_OBJECTS = ../asio.$(OBJEXT) \ -@SEPARATE_COMPILATION_TRUE@ $(am__objects_1) -libasio_a_OBJECTS = $(am_libasio_a_OBJECTS) -am__latency_tcp_client_SOURCES_DIST = latency/tcp_client.cpp -@STANDALONE_FALSE@am_latency_tcp_client_OBJECTS = \ -@STANDALONE_FALSE@ latency/tcp_client.$(OBJEXT) -latency_tcp_client_OBJECTS = $(am_latency_tcp_client_OBJECTS) -latency_tcp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@latency_tcp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__latency_tcp_server_SOURCES_DIST = latency/tcp_server.cpp -@STANDALONE_FALSE@am_latency_tcp_server_OBJECTS = \ -@STANDALONE_FALSE@ latency/tcp_server.$(OBJEXT) -latency_tcp_server_OBJECTS = $(am_latency_tcp_server_OBJECTS) -latency_tcp_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@latency_tcp_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__latency_udp_client_SOURCES_DIST = latency/udp_client.cpp -@STANDALONE_FALSE@am_latency_udp_client_OBJECTS = \ -@STANDALONE_FALSE@ latency/udp_client.$(OBJEXT) -latency_udp_client_OBJECTS = $(am_latency_udp_client_OBJECTS) -latency_udp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@latency_udp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__latency_udp_server_SOURCES_DIST = latency/udp_server.cpp -@STANDALONE_FALSE@am_latency_udp_server_OBJECTS = \ -@STANDALONE_FALSE@ latency/udp_server.$(OBJEXT) -latency_udp_server_OBJECTS = $(am_latency_udp_server_OBJECTS) -latency_udp_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@latency_udp_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__performance_client_SOURCES_DIST = performance/client.cpp -@STANDALONE_FALSE@am_performance_client_OBJECTS = \ -@STANDALONE_FALSE@ performance/client.$(OBJEXT) -performance_client_OBJECTS = $(am_performance_client_OBJECTS) -performance_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@performance_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__performance_server_SOURCES_DIST = performance/server.cpp -@STANDALONE_FALSE@am_performance_server_OBJECTS = \ -@STANDALONE_FALSE@ performance/server.$(OBJEXT) -performance_server_OBJECTS = $(am_performance_server_OBJECTS) -performance_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@performance_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_associated_allocator_OBJECTS = \ - unit/associated_allocator.$(OBJEXT) -unit_associated_allocator_OBJECTS = \ - $(am_unit_associated_allocator_OBJECTS) -unit_associated_allocator_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_associated_allocator_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_associated_executor_OBJECTS = \ - unit/associated_executor.$(OBJEXT) -unit_associated_executor_OBJECTS = \ - $(am_unit_associated_executor_OBJECTS) -unit_associated_executor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_associated_executor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_async_result_OBJECTS = unit/async_result.$(OBJEXT) -unit_async_result_OBJECTS = $(am_unit_async_result_OBJECTS) -unit_async_result_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_async_result_DEPENDENCIES = libasio.a -am_unit_basic_datagram_socket_OBJECTS = \ - unit/basic_datagram_socket.$(OBJEXT) -unit_basic_datagram_socket_OBJECTS = \ - $(am_unit_basic_datagram_socket_OBJECTS) -unit_basic_datagram_socket_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_datagram_socket_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_deadline_timer_OBJECTS = \ - unit/basic_deadline_timer.$(OBJEXT) -unit_basic_deadline_timer_OBJECTS = \ - $(am_unit_basic_deadline_timer_OBJECTS) -unit_basic_deadline_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_deadline_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_raw_socket_OBJECTS = unit/basic_raw_socket.$(OBJEXT) -unit_basic_raw_socket_OBJECTS = $(am_unit_basic_raw_socket_OBJECTS) -unit_basic_raw_socket_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_raw_socket_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_seq_packet_socket_OBJECTS = \ - unit/basic_seq_packet_socket.$(OBJEXT) -unit_basic_seq_packet_socket_OBJECTS = \ - $(am_unit_basic_seq_packet_socket_OBJECTS) -unit_basic_seq_packet_socket_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_seq_packet_socket_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_serial_port_OBJECTS = unit/basic_serial_port.$(OBJEXT) -unit_basic_serial_port_OBJECTS = $(am_unit_basic_serial_port_OBJECTS) -unit_basic_serial_port_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_serial_port_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_signal_set_OBJECTS = unit/basic_signal_set.$(OBJEXT) -unit_basic_signal_set_OBJECTS = $(am_unit_basic_signal_set_OBJECTS) -unit_basic_signal_set_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_signal_set_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_socket_acceptor_OBJECTS = \ - unit/basic_socket_acceptor.$(OBJEXT) -unit_basic_socket_acceptor_OBJECTS = \ - $(am_unit_basic_socket_acceptor_OBJECTS) -unit_basic_socket_acceptor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_socket_acceptor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_stream_socket_OBJECTS = \ - unit/basic_stream_socket.$(OBJEXT) -unit_basic_stream_socket_OBJECTS = \ - $(am_unit_basic_stream_socket_OBJECTS) -unit_basic_stream_socket_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_stream_socket_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_streambuf_OBJECTS = unit/basic_streambuf.$(OBJEXT) -unit_basic_streambuf_OBJECTS = $(am_unit_basic_streambuf_OBJECTS) -unit_basic_streambuf_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_streambuf_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_waitable_timer_OBJECTS = \ - unit/basic_waitable_timer.$(OBJEXT) -unit_basic_waitable_timer_OBJECTS = \ - $(am_unit_basic_waitable_timer_OBJECTS) -unit_basic_waitable_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_waitable_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_bind_executor_OBJECTS = unit/bind_executor.$(OBJEXT) -unit_bind_executor_OBJECTS = $(am_unit_bind_executor_OBJECTS) -unit_bind_executor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_bind_executor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_buffer_OBJECTS = unit/buffer.$(OBJEXT) -unit_buffer_OBJECTS = $(am_unit_buffer_OBJECTS) -unit_buffer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_buffer_DEPENDENCIES = libasio.a -am_unit_buffered_read_stream_OBJECTS = \ - unit/buffered_read_stream.$(OBJEXT) -unit_buffered_read_stream_OBJECTS = \ - $(am_unit_buffered_read_stream_OBJECTS) -unit_buffered_read_stream_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_buffered_read_stream_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_buffered_stream_OBJECTS = unit/buffered_stream.$(OBJEXT) -unit_buffered_stream_OBJECTS = $(am_unit_buffered_stream_OBJECTS) -unit_buffered_stream_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_buffered_stream_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_buffered_write_stream_OBJECTS = \ - unit/buffered_write_stream.$(OBJEXT) -unit_buffered_write_stream_OBJECTS = \ - $(am_unit_buffered_write_stream_OBJECTS) -unit_buffered_write_stream_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_buffered_write_stream_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_buffers_iterator_OBJECTS = unit/buffers_iterator.$(OBJEXT) -unit_buffers_iterator_OBJECTS = $(am_unit_buffers_iterator_OBJECTS) -unit_buffers_iterator_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_buffers_iterator_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_completion_condition_OBJECTS = \ - unit/completion_condition.$(OBJEXT) -unit_completion_condition_OBJECTS = \ - $(am_unit_completion_condition_OBJECTS) -unit_completion_condition_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_completion_condition_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_connect_OBJECTS = unit/connect.$(OBJEXT) -unit_connect_OBJECTS = $(am_unit_connect_OBJECTS) -unit_connect_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_connect_DEPENDENCIES = libasio.a -am_unit_coroutine_OBJECTS = unit/coroutine.$(OBJEXT) -unit_coroutine_OBJECTS = $(am_unit_coroutine_OBJECTS) -unit_coroutine_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_coroutine_DEPENDENCIES = libasio.a -am_unit_datagram_socket_service_OBJECTS = \ - unit/datagram_socket_service.$(OBJEXT) -unit_datagram_socket_service_OBJECTS = \ - $(am_unit_datagram_socket_service_OBJECTS) -unit_datagram_socket_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_datagram_socket_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_deadline_timer_OBJECTS = unit/deadline_timer.$(OBJEXT) -unit_deadline_timer_OBJECTS = $(am_unit_deadline_timer_OBJECTS) -unit_deadline_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_deadline_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_deadline_timer_service_OBJECTS = \ - unit/deadline_timer_service.$(OBJEXT) -unit_deadline_timer_service_OBJECTS = \ - $(am_unit_deadline_timer_service_OBJECTS) -unit_deadline_timer_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_deadline_timer_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_defer_OBJECTS = unit/defer.$(OBJEXT) -unit_defer_OBJECTS = $(am_unit_defer_OBJECTS) -unit_defer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_defer_DEPENDENCIES = libasio.a -am_unit_dispatch_OBJECTS = unit/dispatch.$(OBJEXT) -unit_dispatch_OBJECTS = $(am_unit_dispatch_OBJECTS) -unit_dispatch_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_dispatch_DEPENDENCIES = libasio.a -am_unit_error_OBJECTS = unit/error.$(OBJEXT) -unit_error_OBJECTS = $(am_unit_error_OBJECTS) -unit_error_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_error_DEPENDENCIES = libasio.a -am_unit_execution_context_OBJECTS = unit/execution_context.$(OBJEXT) -unit_execution_context_OBJECTS = $(am_unit_execution_context_OBJECTS) -unit_execution_context_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_context_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_executor_OBJECTS = unit/executor.$(OBJEXT) -unit_executor_OBJECTS = $(am_unit_executor_OBJECTS) -unit_executor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_executor_DEPENDENCIES = libasio.a -am_unit_executor_work_guard_OBJECTS = \ - unit/executor_work_guard.$(OBJEXT) -unit_executor_work_guard_OBJECTS = \ - $(am_unit_executor_work_guard_OBJECTS) -unit_executor_work_guard_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_executor_work_guard_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_generic_basic_endpoint_OBJECTS = \ - unit/generic/basic_endpoint.$(OBJEXT) -unit_generic_basic_endpoint_OBJECTS = \ - $(am_unit_generic_basic_endpoint_OBJECTS) -unit_generic_basic_endpoint_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_generic_basic_endpoint_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_generic_datagram_protocol_OBJECTS = \ - unit/generic/datagram_protocol.$(OBJEXT) -unit_generic_datagram_protocol_OBJECTS = \ - $(am_unit_generic_datagram_protocol_OBJECTS) -unit_generic_datagram_protocol_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_generic_datagram_protocol_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_generic_raw_protocol_OBJECTS = \ - unit/generic/raw_protocol.$(OBJEXT) -unit_generic_raw_protocol_OBJECTS = \ - $(am_unit_generic_raw_protocol_OBJECTS) -unit_generic_raw_protocol_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_generic_raw_protocol_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_generic_seq_packet_protocol_OBJECTS = \ - unit/generic/seq_packet_protocol.$(OBJEXT) -unit_generic_seq_packet_protocol_OBJECTS = \ - $(am_unit_generic_seq_packet_protocol_OBJECTS) -unit_generic_seq_packet_protocol_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_generic_seq_packet_protocol_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_generic_stream_protocol_OBJECTS = \ - unit/generic/stream_protocol.$(OBJEXT) -unit_generic_stream_protocol_OBJECTS = \ - $(am_unit_generic_stream_protocol_OBJECTS) -unit_generic_stream_protocol_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_generic_stream_protocol_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_high_resolution_timer_OBJECTS = \ - unit/high_resolution_timer.$(OBJEXT) -unit_high_resolution_timer_OBJECTS = \ - $(am_unit_high_resolution_timer_OBJECTS) -unit_high_resolution_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_high_resolution_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_io_context_OBJECTS = unit/io_context.$(OBJEXT) -unit_io_context_OBJECTS = $(am_unit_io_context_OBJECTS) -unit_io_context_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_io_context_DEPENDENCIES = libasio.a -am_unit_ip_address_OBJECTS = unit/ip/address.$(OBJEXT) -unit_ip_address_OBJECTS = $(am_unit_ip_address_OBJECTS) -unit_ip_address_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_address_DEPENDENCIES = libasio.a -am_unit_ip_address_v4_OBJECTS = unit/ip/address_v4.$(OBJEXT) -unit_ip_address_v4_OBJECTS = $(am_unit_ip_address_v4_OBJECTS) -unit_ip_address_v4_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_address_v4_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_address_v4_iterator_OBJECTS = \ - unit/ip/address_v4_iterator.$(OBJEXT) -unit_ip_address_v4_iterator_OBJECTS = \ - $(am_unit_ip_address_v4_iterator_OBJECTS) -unit_ip_address_v4_iterator_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_address_v4_iterator_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_address_v4_range_OBJECTS = \ - unit/ip/address_v4_range.$(OBJEXT) -unit_ip_address_v4_range_OBJECTS = \ - $(am_unit_ip_address_v4_range_OBJECTS) -unit_ip_address_v4_range_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_address_v4_range_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_address_v6_OBJECTS = unit/ip/address_v6.$(OBJEXT) -unit_ip_address_v6_OBJECTS = $(am_unit_ip_address_v6_OBJECTS) -unit_ip_address_v6_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_address_v6_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_address_v6_iterator_OBJECTS = \ - unit/ip/address_v6_iterator.$(OBJEXT) -unit_ip_address_v6_iterator_OBJECTS = \ - $(am_unit_ip_address_v6_iterator_OBJECTS) -unit_ip_address_v6_iterator_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_address_v6_iterator_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_address_v6_range_OBJECTS = \ - unit/ip/address_v6_range.$(OBJEXT) -unit_ip_address_v6_range_OBJECTS = \ - $(am_unit_ip_address_v6_range_OBJECTS) -unit_ip_address_v6_range_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_address_v6_range_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_basic_endpoint_OBJECTS = unit/ip/basic_endpoint.$(OBJEXT) -unit_ip_basic_endpoint_OBJECTS = $(am_unit_ip_basic_endpoint_OBJECTS) -unit_ip_basic_endpoint_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_basic_endpoint_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_basic_resolver_OBJECTS = unit/ip/basic_resolver.$(OBJEXT) -unit_ip_basic_resolver_OBJECTS = $(am_unit_ip_basic_resolver_OBJECTS) -unit_ip_basic_resolver_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_basic_resolver_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_basic_resolver_entry_OBJECTS = \ - unit/ip/basic_resolver_entry.$(OBJEXT) -unit_ip_basic_resolver_entry_OBJECTS = \ - $(am_unit_ip_basic_resolver_entry_OBJECTS) -unit_ip_basic_resolver_entry_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_basic_resolver_entry_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_basic_resolver_iterator_OBJECTS = \ - unit/ip/basic_resolver_iterator.$(OBJEXT) -unit_ip_basic_resolver_iterator_OBJECTS = \ - $(am_unit_ip_basic_resolver_iterator_OBJECTS) -unit_ip_basic_resolver_iterator_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_basic_resolver_iterator_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_basic_resolver_query_OBJECTS = \ - unit/ip/basic_resolver_query.$(OBJEXT) -unit_ip_basic_resolver_query_OBJECTS = \ - $(am_unit_ip_basic_resolver_query_OBJECTS) -unit_ip_basic_resolver_query_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_basic_resolver_query_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_host_name_OBJECTS = unit/ip/host_name.$(OBJEXT) -unit_ip_host_name_OBJECTS = $(am_unit_ip_host_name_OBJECTS) -unit_ip_host_name_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_host_name_DEPENDENCIES = libasio.a -am_unit_ip_icmp_OBJECTS = unit/ip/icmp.$(OBJEXT) -unit_ip_icmp_OBJECTS = $(am_unit_ip_icmp_OBJECTS) -unit_ip_icmp_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_icmp_DEPENDENCIES = libasio.a -am_unit_ip_multicast_OBJECTS = unit/ip/multicast.$(OBJEXT) -unit_ip_multicast_OBJECTS = $(am_unit_ip_multicast_OBJECTS) -unit_ip_multicast_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_multicast_DEPENDENCIES = libasio.a -am_unit_ip_network_v4_OBJECTS = unit/ip/network_v4.$(OBJEXT) -unit_ip_network_v4_OBJECTS = $(am_unit_ip_network_v4_OBJECTS) -unit_ip_network_v4_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_network_v4_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_network_v6_OBJECTS = unit/ip/network_v6.$(OBJEXT) -unit_ip_network_v6_OBJECTS = $(am_unit_ip_network_v6_OBJECTS) -unit_ip_network_v6_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_network_v6_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_resolver_query_base_OBJECTS = \ - unit/ip/resolver_query_base.$(OBJEXT) -unit_ip_resolver_query_base_OBJECTS = \ - $(am_unit_ip_resolver_query_base_OBJECTS) -unit_ip_resolver_query_base_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_resolver_query_base_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_resolver_service_OBJECTS = \ - unit/ip/resolver_service.$(OBJEXT) -unit_ip_resolver_service_OBJECTS = \ - $(am_unit_ip_resolver_service_OBJECTS) -unit_ip_resolver_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_resolver_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_tcp_OBJECTS = unit/ip/tcp.$(OBJEXT) -unit_ip_tcp_OBJECTS = $(am_unit_ip_tcp_OBJECTS) -unit_ip_tcp_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_tcp_DEPENDENCIES = libasio.a -am_unit_ip_udp_OBJECTS = unit/ip/udp.$(OBJEXT) -unit_ip_udp_OBJECTS = $(am_unit_ip_udp_OBJECTS) -unit_ip_udp_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_udp_DEPENDENCIES = libasio.a -am_unit_ip_unicast_OBJECTS = unit/ip/unicast.$(OBJEXT) -unit_ip_unicast_OBJECTS = $(am_unit_ip_unicast_OBJECTS) -unit_ip_unicast_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_unicast_DEPENDENCIES = libasio.a -am_unit_ip_v6_only_OBJECTS = unit/ip/v6_only.$(OBJEXT) -unit_ip_v6_only_OBJECTS = $(am_unit_ip_v6_only_OBJECTS) -unit_ip_v6_only_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_v6_only_DEPENDENCIES = libasio.a -am_unit_is_read_buffered_OBJECTS = unit/is_read_buffered.$(OBJEXT) -unit_is_read_buffered_OBJECTS = $(am_unit_is_read_buffered_OBJECTS) -unit_is_read_buffered_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_is_read_buffered_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_is_write_buffered_OBJECTS = unit/is_write_buffered.$(OBJEXT) -unit_is_write_buffered_OBJECTS = $(am_unit_is_write_buffered_OBJECTS) -unit_is_write_buffered_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_is_write_buffered_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_local_basic_endpoint_OBJECTS = \ - unit/local/basic_endpoint.$(OBJEXT) -unit_local_basic_endpoint_OBJECTS = \ - $(am_unit_local_basic_endpoint_OBJECTS) -unit_local_basic_endpoint_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_local_basic_endpoint_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_local_connect_pair_OBJECTS = \ - unit/local/connect_pair.$(OBJEXT) -unit_local_connect_pair_OBJECTS = \ - $(am_unit_local_connect_pair_OBJECTS) -unit_local_connect_pair_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_local_connect_pair_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_local_datagram_protocol_OBJECTS = \ - unit/local/datagram_protocol.$(OBJEXT) -unit_local_datagram_protocol_OBJECTS = \ - $(am_unit_local_datagram_protocol_OBJECTS) -unit_local_datagram_protocol_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_local_datagram_protocol_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_local_stream_protocol_OBJECTS = \ - unit/local/stream_protocol.$(OBJEXT) -unit_local_stream_protocol_OBJECTS = \ - $(am_unit_local_stream_protocol_OBJECTS) -unit_local_stream_protocol_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_local_stream_protocol_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_packaged_task_OBJECTS = unit/packaged_task.$(OBJEXT) -unit_packaged_task_OBJECTS = $(am_unit_packaged_task_OBJECTS) -unit_packaged_task_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_packaged_task_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_placeholders_OBJECTS = unit/placeholders.$(OBJEXT) -unit_placeholders_OBJECTS = $(am_unit_placeholders_OBJECTS) -unit_placeholders_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_placeholders_DEPENDENCIES = libasio.a -am_unit_posix_basic_descriptor_OBJECTS = \ - unit/posix/basic_descriptor.$(OBJEXT) -unit_posix_basic_descriptor_OBJECTS = \ - $(am_unit_posix_basic_descriptor_OBJECTS) -unit_posix_basic_descriptor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_posix_basic_descriptor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_posix_basic_stream_descriptor_OBJECTS = \ - unit/posix/basic_stream_descriptor.$(OBJEXT) -unit_posix_basic_stream_descriptor_OBJECTS = \ - $(am_unit_posix_basic_stream_descriptor_OBJECTS) -unit_posix_basic_stream_descriptor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_posix_basic_stream_descriptor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_posix_descriptor_OBJECTS = unit/posix/descriptor.$(OBJEXT) -unit_posix_descriptor_OBJECTS = $(am_unit_posix_descriptor_OBJECTS) -unit_posix_descriptor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_posix_descriptor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_posix_descriptor_base_OBJECTS = \ - unit/posix/descriptor_base.$(OBJEXT) -unit_posix_descriptor_base_OBJECTS = \ - $(am_unit_posix_descriptor_base_OBJECTS) -unit_posix_descriptor_base_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_posix_descriptor_base_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_posix_stream_descriptor_OBJECTS = \ - unit/posix/stream_descriptor.$(OBJEXT) -unit_posix_stream_descriptor_OBJECTS = \ - $(am_unit_posix_stream_descriptor_OBJECTS) -unit_posix_stream_descriptor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_posix_stream_descriptor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_posix_stream_descriptor_service_OBJECTS = \ - unit/posix/stream_descriptor_service.$(OBJEXT) -unit_posix_stream_descriptor_service_OBJECTS = \ - $(am_unit_posix_stream_descriptor_service_OBJECTS) -unit_posix_stream_descriptor_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_posix_stream_descriptor_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_post_OBJECTS = unit/post.$(OBJEXT) -unit_post_OBJECTS = $(am_unit_post_OBJECTS) -unit_post_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_post_DEPENDENCIES = libasio.a -am_unit_raw_socket_service_OBJECTS = \ - unit/raw_socket_service.$(OBJEXT) -unit_raw_socket_service_OBJECTS = \ - $(am_unit_raw_socket_service_OBJECTS) -unit_raw_socket_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_raw_socket_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_read_OBJECTS = unit/read.$(OBJEXT) -unit_read_OBJECTS = $(am_unit_read_OBJECTS) -unit_read_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_read_DEPENDENCIES = libasio.a -am_unit_read_at_OBJECTS = unit/read_at.$(OBJEXT) -unit_read_at_OBJECTS = $(am_unit_read_at_OBJECTS) -unit_read_at_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_read_at_DEPENDENCIES = libasio.a -am_unit_read_until_OBJECTS = unit/read_until.$(OBJEXT) -unit_read_until_OBJECTS = $(am_unit_read_until_OBJECTS) -unit_read_until_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_read_until_DEPENDENCIES = libasio.a -am_unit_seq_packet_socket_service_OBJECTS = \ - unit/seq_packet_socket_service.$(OBJEXT) -unit_seq_packet_socket_service_OBJECTS = \ - $(am_unit_seq_packet_socket_service_OBJECTS) -unit_seq_packet_socket_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_seq_packet_socket_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_serial_port_OBJECTS = unit/serial_port.$(OBJEXT) -unit_serial_port_OBJECTS = $(am_unit_serial_port_OBJECTS) -unit_serial_port_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_serial_port_DEPENDENCIES = libasio.a -am_unit_serial_port_base_OBJECTS = unit/serial_port_base.$(OBJEXT) -unit_serial_port_base_OBJECTS = $(am_unit_serial_port_base_OBJECTS) -unit_serial_port_base_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_serial_port_base_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_serial_port_service_OBJECTS = \ - unit/serial_port_service.$(OBJEXT) -unit_serial_port_service_OBJECTS = \ - $(am_unit_serial_port_service_OBJECTS) -unit_serial_port_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_serial_port_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_signal_set_OBJECTS = unit/signal_set.$(OBJEXT) -unit_signal_set_OBJECTS = $(am_unit_signal_set_OBJECTS) -unit_signal_set_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_signal_set_DEPENDENCIES = libasio.a -am_unit_signal_set_service_OBJECTS = \ - unit/signal_set_service.$(OBJEXT) -unit_signal_set_service_OBJECTS = \ - $(am_unit_signal_set_service_OBJECTS) -unit_signal_set_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_signal_set_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_socket_acceptor_service_OBJECTS = \ - unit/socket_acceptor_service.$(OBJEXT) -unit_socket_acceptor_service_OBJECTS = \ - $(am_unit_socket_acceptor_service_OBJECTS) -unit_socket_acceptor_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_socket_acceptor_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_socket_base_OBJECTS = unit/socket_base.$(OBJEXT) -unit_socket_base_OBJECTS = $(am_unit_socket_base_OBJECTS) -unit_socket_base_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_socket_base_DEPENDENCIES = libasio.a -am__unit_ssl_context_SOURCES_DIST = unit/ssl/context.cpp -@HAVE_OPENSSL_TRUE@am_unit_ssl_context_OBJECTS = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/context.$(OBJEXT) -unit_ssl_context_OBJECTS = $(am_unit_ssl_context_OBJECTS) -unit_ssl_context_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ssl_context_DEPENDENCIES = libasio.a -am__unit_ssl_context_base_SOURCES_DIST = unit/ssl/context_base.cpp -@HAVE_OPENSSL_TRUE@am_unit_ssl_context_base_OBJECTS = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/context_base.$(OBJEXT) -unit_ssl_context_base_OBJECTS = $(am_unit_ssl_context_base_OBJECTS) -unit_ssl_context_base_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ssl_context_base_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__unit_ssl_error_SOURCES_DIST = unit/ssl/error.cpp -@HAVE_OPENSSL_TRUE@am_unit_ssl_error_OBJECTS = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/error.$(OBJEXT) -unit_ssl_error_OBJECTS = $(am_unit_ssl_error_OBJECTS) -unit_ssl_error_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ssl_error_DEPENDENCIES = libasio.a -am__unit_ssl_rfc2818_verification_SOURCES_DIST = \ - unit/ssl/rfc2818_verification.cpp -@HAVE_OPENSSL_TRUE@am_unit_ssl_rfc2818_verification_OBJECTS = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/rfc2818_verification.$(OBJEXT) -unit_ssl_rfc2818_verification_OBJECTS = \ - $(am_unit_ssl_rfc2818_verification_OBJECTS) -unit_ssl_rfc2818_verification_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ssl_rfc2818_verification_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__unit_ssl_stream_SOURCES_DIST = unit/ssl/stream.cpp -@HAVE_OPENSSL_TRUE@am_unit_ssl_stream_OBJECTS = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream.$(OBJEXT) -unit_ssl_stream_OBJECTS = $(am_unit_ssl_stream_OBJECTS) -unit_ssl_stream_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ssl_stream_DEPENDENCIES = libasio.a -am__unit_ssl_stream_base_SOURCES_DIST = unit/ssl/stream_base.cpp -@HAVE_OPENSSL_TRUE@am_unit_ssl_stream_base_OBJECTS = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream_base.$(OBJEXT) -unit_ssl_stream_base_OBJECTS = $(am_unit_ssl_stream_base_OBJECTS) -unit_ssl_stream_base_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ssl_stream_base_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_steady_timer_OBJECTS = unit/steady_timer.$(OBJEXT) -unit_steady_timer_OBJECTS = $(am_unit_steady_timer_OBJECTS) -unit_steady_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_steady_timer_DEPENDENCIES = libasio.a -am_unit_strand_OBJECTS = unit/strand.$(OBJEXT) -unit_strand_OBJECTS = $(am_unit_strand_OBJECTS) -unit_strand_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_strand_DEPENDENCIES = libasio.a -am_unit_stream_socket_service_OBJECTS = \ - unit/stream_socket_service.$(OBJEXT) -unit_stream_socket_service_OBJECTS = \ - $(am_unit_stream_socket_service_OBJECTS) -unit_stream_socket_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_stream_socket_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_streambuf_OBJECTS = unit/streambuf.$(OBJEXT) -unit_streambuf_OBJECTS = $(am_unit_streambuf_OBJECTS) -unit_streambuf_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_streambuf_DEPENDENCIES = libasio.a -am_unit_system_context_OBJECTS = unit/system_context.$(OBJEXT) -unit_system_context_OBJECTS = $(am_unit_system_context_OBJECTS) -unit_system_context_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_system_context_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_system_executor_OBJECTS = unit/system_executor.$(OBJEXT) -unit_system_executor_OBJECTS = $(am_unit_system_executor_OBJECTS) -unit_system_executor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_system_executor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_system_timer_OBJECTS = unit/system_timer.$(OBJEXT) -unit_system_timer_OBJECTS = $(am_unit_system_timer_OBJECTS) -unit_system_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_system_timer_DEPENDENCIES = libasio.a -am_unit_thread_OBJECTS = unit/thread.$(OBJEXT) -unit_thread_OBJECTS = $(am_unit_thread_OBJECTS) -unit_thread_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_thread_DEPENDENCIES = libasio.a -am_unit_time_traits_OBJECTS = unit/time_traits.$(OBJEXT) -unit_time_traits_OBJECTS = $(am_unit_time_traits_OBJECTS) -unit_time_traits_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_time_traits_DEPENDENCIES = libasio.a -am_unit_ts_buffer_OBJECTS = unit/ts/buffer.$(OBJEXT) -unit_ts_buffer_OBJECTS = $(am_unit_ts_buffer_OBJECTS) -unit_ts_buffer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_buffer_DEPENDENCIES = libasio.a -am_unit_ts_executor_OBJECTS = unit/ts/executor.$(OBJEXT) -unit_ts_executor_OBJECTS = $(am_unit_ts_executor_OBJECTS) -unit_ts_executor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_executor_DEPENDENCIES = libasio.a -am_unit_ts_internet_OBJECTS = unit/ts/internet.$(OBJEXT) -unit_ts_internet_OBJECTS = $(am_unit_ts_internet_OBJECTS) -unit_ts_internet_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_internet_DEPENDENCIES = libasio.a -am_unit_ts_io_context_OBJECTS = unit/ts/io_context.$(OBJEXT) -unit_ts_io_context_OBJECTS = $(am_unit_ts_io_context_OBJECTS) -unit_ts_io_context_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_io_context_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ts_net_OBJECTS = unit/ts/net.$(OBJEXT) -unit_ts_net_OBJECTS = $(am_unit_ts_net_OBJECTS) -unit_ts_net_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_net_DEPENDENCIES = libasio.a -am_unit_ts_netfwd_OBJECTS = unit/ts/netfwd.$(OBJEXT) -unit_ts_netfwd_OBJECTS = $(am_unit_ts_netfwd_OBJECTS) -unit_ts_netfwd_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_netfwd_DEPENDENCIES = libasio.a -am_unit_ts_socket_OBJECTS = unit/ts/socket.$(OBJEXT) -unit_ts_socket_OBJECTS = $(am_unit_ts_socket_OBJECTS) -unit_ts_socket_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_socket_DEPENDENCIES = libasio.a -am_unit_ts_timer_OBJECTS = unit/ts/timer.$(OBJEXT) -unit_ts_timer_OBJECTS = $(am_unit_ts_timer_OBJECTS) -unit_ts_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_timer_DEPENDENCIES = libasio.a -am_unit_use_future_OBJECTS = unit/use_future.$(OBJEXT) -unit_use_future_OBJECTS = $(am_unit_use_future_OBJECTS) -unit_use_future_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_use_future_DEPENDENCIES = libasio.a -am_unit_uses_executor_OBJECTS = unit/uses_executor.$(OBJEXT) -unit_uses_executor_OBJECTS = $(am_unit_uses_executor_OBJECTS) -unit_uses_executor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_uses_executor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_wait_traits_OBJECTS = unit/wait_traits.$(OBJEXT) -unit_wait_traits_OBJECTS = $(am_unit_wait_traits_OBJECTS) -unit_wait_traits_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_wait_traits_DEPENDENCIES = libasio.a -am_unit_waitable_timer_service_OBJECTS = \ - unit/waitable_timer_service.$(OBJEXT) -unit_waitable_timer_service_OBJECTS = \ - $(am_unit_waitable_timer_service_OBJECTS) -unit_waitable_timer_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_waitable_timer_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_basic_handle_OBJECTS = \ - unit/windows/basic_handle.$(OBJEXT) -unit_windows_basic_handle_OBJECTS = \ - $(am_unit_windows_basic_handle_OBJECTS) -unit_windows_basic_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_basic_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_basic_object_handle_OBJECTS = \ - unit/windows/basic_object_handle.$(OBJEXT) -unit_windows_basic_object_handle_OBJECTS = \ - $(am_unit_windows_basic_object_handle_OBJECTS) -unit_windows_basic_object_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_basic_object_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_basic_random_access_handle_OBJECTS = \ - unit/windows/basic_random_access_handle.$(OBJEXT) -unit_windows_basic_random_access_handle_OBJECTS = \ - $(am_unit_windows_basic_random_access_handle_OBJECTS) -unit_windows_basic_random_access_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_basic_random_access_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_basic_stream_handle_OBJECTS = \ - unit/windows/basic_stream_handle.$(OBJEXT) -unit_windows_basic_stream_handle_OBJECTS = \ - $(am_unit_windows_basic_stream_handle_OBJECTS) -unit_windows_basic_stream_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_basic_stream_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_object_handle_OBJECTS = \ - unit/windows/object_handle.$(OBJEXT) -unit_windows_object_handle_OBJECTS = \ - $(am_unit_windows_object_handle_OBJECTS) -unit_windows_object_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_object_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_object_handle_service_OBJECTS = \ - unit/windows/object_handle_service.$(OBJEXT) -unit_windows_object_handle_service_OBJECTS = \ - $(am_unit_windows_object_handle_service_OBJECTS) -unit_windows_object_handle_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_object_handle_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_overlapped_handle_OBJECTS = \ - unit/windows/overlapped_handle.$(OBJEXT) -unit_windows_overlapped_handle_OBJECTS = \ - $(am_unit_windows_overlapped_handle_OBJECTS) -unit_windows_overlapped_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_overlapped_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_overlapped_ptr_OBJECTS = \ - unit/windows/overlapped_ptr.$(OBJEXT) -unit_windows_overlapped_ptr_OBJECTS = \ - $(am_unit_windows_overlapped_ptr_OBJECTS) -unit_windows_overlapped_ptr_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_overlapped_ptr_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_random_access_handle_OBJECTS = \ - unit/windows/random_access_handle.$(OBJEXT) -unit_windows_random_access_handle_OBJECTS = \ - $(am_unit_windows_random_access_handle_OBJECTS) -unit_windows_random_access_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_random_access_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_random_access_handle_service_OBJECTS = \ - unit/windows/random_access_handle_service.$(OBJEXT) -unit_windows_random_access_handle_service_OBJECTS = \ - $(am_unit_windows_random_access_handle_service_OBJECTS) -unit_windows_random_access_handle_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_random_access_handle_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_stream_handle_OBJECTS = \ - unit/windows/stream_handle.$(OBJEXT) -unit_windows_stream_handle_OBJECTS = \ - $(am_unit_windows_stream_handle_OBJECTS) -unit_windows_stream_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_stream_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_stream_handle_service_OBJECTS = \ - unit/windows/stream_handle_service.$(OBJEXT) -unit_windows_stream_handle_service_OBJECTS = \ - $(am_unit_windows_stream_handle_service_OBJECTS) -unit_windows_stream_handle_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_stream_handle_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_write_OBJECTS = unit/write.$(OBJEXT) -unit_write_OBJECTS = $(am_unit_write_OBJECTS) -unit_write_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_write_DEPENDENCIES = libasio.a -am_unit_write_at_OBJECTS = unit/write_at.$(OBJEXT) -unit_write_at_OBJECTS = $(am_unit_write_at_OBJECTS) -unit_write_at_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_write_at_DEPENDENCIES = libasio.a -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ../$(DEPDIR)/asio.Po ../$(DEPDIR)/asio_ssl.Po \ - latency/$(DEPDIR)/tcp_client.Po \ - latency/$(DEPDIR)/tcp_server.Po \ - latency/$(DEPDIR)/udp_client.Po \ - latency/$(DEPDIR)/udp_server.Po \ - performance/$(DEPDIR)/client.Po \ - performance/$(DEPDIR)/server.Po \ - unit/$(DEPDIR)/associated_allocator.Po \ - unit/$(DEPDIR)/associated_executor.Po \ - unit/$(DEPDIR)/async_result.Po \ - unit/$(DEPDIR)/basic_datagram_socket.Po \ - unit/$(DEPDIR)/basic_deadline_timer.Po \ - unit/$(DEPDIR)/basic_raw_socket.Po \ - unit/$(DEPDIR)/basic_seq_packet_socket.Po \ - unit/$(DEPDIR)/basic_serial_port.Po \ - unit/$(DEPDIR)/basic_signal_set.Po \ - unit/$(DEPDIR)/basic_socket_acceptor.Po \ - unit/$(DEPDIR)/basic_stream_socket.Po \ - unit/$(DEPDIR)/basic_streambuf.Po \ - unit/$(DEPDIR)/basic_waitable_timer.Po \ - unit/$(DEPDIR)/bind_executor.Po unit/$(DEPDIR)/buffer.Po \ - unit/$(DEPDIR)/buffered_read_stream.Po \ - unit/$(DEPDIR)/buffered_stream.Po \ - unit/$(DEPDIR)/buffered_write_stream.Po \ - unit/$(DEPDIR)/buffers_iterator.Po \ - unit/$(DEPDIR)/completion_condition.Po \ - unit/$(DEPDIR)/connect.Po unit/$(DEPDIR)/coroutine.Po \ - unit/$(DEPDIR)/datagram_socket_service.Po \ - unit/$(DEPDIR)/deadline_timer.Po \ - unit/$(DEPDIR)/deadline_timer_service.Po \ - unit/$(DEPDIR)/defer.Po unit/$(DEPDIR)/dispatch.Po \ - unit/$(DEPDIR)/error.Po unit/$(DEPDIR)/execution_context.Po \ - unit/$(DEPDIR)/executor.Po \ - unit/$(DEPDIR)/executor_work_guard.Po \ - unit/$(DEPDIR)/high_resolution_timer.Po \ - unit/$(DEPDIR)/io_context.Po \ - unit/$(DEPDIR)/is_read_buffered.Po \ - unit/$(DEPDIR)/is_write_buffered.Po \ - unit/$(DEPDIR)/packaged_task.Po unit/$(DEPDIR)/placeholders.Po \ - unit/$(DEPDIR)/post.Po unit/$(DEPDIR)/raw_socket_service.Po \ - unit/$(DEPDIR)/read.Po unit/$(DEPDIR)/read_at.Po \ - unit/$(DEPDIR)/read_until.Po \ - unit/$(DEPDIR)/seq_packet_socket_service.Po \ - unit/$(DEPDIR)/serial_port.Po \ - unit/$(DEPDIR)/serial_port_base.Po \ - unit/$(DEPDIR)/serial_port_service.Po \ - unit/$(DEPDIR)/signal_set.Po \ - unit/$(DEPDIR)/signal_set_service.Po \ - unit/$(DEPDIR)/socket_acceptor_service.Po \ - unit/$(DEPDIR)/socket_base.Po unit/$(DEPDIR)/steady_timer.Po \ - unit/$(DEPDIR)/strand.Po \ - unit/$(DEPDIR)/stream_socket_service.Po \ - unit/$(DEPDIR)/streambuf.Po unit/$(DEPDIR)/system_context.Po \ - unit/$(DEPDIR)/system_executor.Po \ - unit/$(DEPDIR)/system_timer.Po unit/$(DEPDIR)/thread.Po \ - unit/$(DEPDIR)/time_traits.Po unit/$(DEPDIR)/use_future.Po \ - unit/$(DEPDIR)/uses_executor.Po unit/$(DEPDIR)/wait_traits.Po \ - unit/$(DEPDIR)/waitable_timer_service.Po \ - unit/$(DEPDIR)/write.Po unit/$(DEPDIR)/write_at.Po \ - unit/generic/$(DEPDIR)/basic_endpoint.Po \ - unit/generic/$(DEPDIR)/datagram_protocol.Po \ - unit/generic/$(DEPDIR)/raw_protocol.Po \ - unit/generic/$(DEPDIR)/seq_packet_protocol.Po \ - unit/generic/$(DEPDIR)/stream_protocol.Po \ - unit/ip/$(DEPDIR)/address.Po unit/ip/$(DEPDIR)/address_v4.Po \ - unit/ip/$(DEPDIR)/address_v4_iterator.Po \ - unit/ip/$(DEPDIR)/address_v4_range.Po \ - unit/ip/$(DEPDIR)/address_v6.Po \ - unit/ip/$(DEPDIR)/address_v6_iterator.Po \ - unit/ip/$(DEPDIR)/address_v6_range.Po \ - unit/ip/$(DEPDIR)/basic_endpoint.Po \ - unit/ip/$(DEPDIR)/basic_resolver.Po \ - unit/ip/$(DEPDIR)/basic_resolver_entry.Po \ - unit/ip/$(DEPDIR)/basic_resolver_iterator.Po \ - unit/ip/$(DEPDIR)/basic_resolver_query.Po \ - unit/ip/$(DEPDIR)/host_name.Po unit/ip/$(DEPDIR)/icmp.Po \ - unit/ip/$(DEPDIR)/multicast.Po unit/ip/$(DEPDIR)/network_v4.Po \ - unit/ip/$(DEPDIR)/network_v6.Po \ - unit/ip/$(DEPDIR)/resolver_query_base.Po \ - unit/ip/$(DEPDIR)/resolver_service.Po unit/ip/$(DEPDIR)/tcp.Po \ - unit/ip/$(DEPDIR)/udp.Po unit/ip/$(DEPDIR)/unicast.Po \ - unit/ip/$(DEPDIR)/v6_only.Po \ - unit/local/$(DEPDIR)/basic_endpoint.Po \ - unit/local/$(DEPDIR)/connect_pair.Po \ - unit/local/$(DEPDIR)/datagram_protocol.Po \ - unit/local/$(DEPDIR)/stream_protocol.Po \ - unit/posix/$(DEPDIR)/basic_descriptor.Po \ - unit/posix/$(DEPDIR)/basic_stream_descriptor.Po \ - unit/posix/$(DEPDIR)/descriptor.Po \ - unit/posix/$(DEPDIR)/descriptor_base.Po \ - unit/posix/$(DEPDIR)/stream_descriptor.Po \ - unit/posix/$(DEPDIR)/stream_descriptor_service.Po \ - unit/ssl/$(DEPDIR)/context.Po \ - unit/ssl/$(DEPDIR)/context_base.Po unit/ssl/$(DEPDIR)/error.Po \ - unit/ssl/$(DEPDIR)/rfc2818_verification.Po \ - unit/ssl/$(DEPDIR)/stream.Po unit/ssl/$(DEPDIR)/stream_base.Po \ - unit/ts/$(DEPDIR)/buffer.Po unit/ts/$(DEPDIR)/executor.Po \ - unit/ts/$(DEPDIR)/internet.Po unit/ts/$(DEPDIR)/io_context.Po \ - unit/ts/$(DEPDIR)/net.Po unit/ts/$(DEPDIR)/netfwd.Po \ - unit/ts/$(DEPDIR)/socket.Po unit/ts/$(DEPDIR)/timer.Po \ - unit/windows/$(DEPDIR)/basic_handle.Po \ - unit/windows/$(DEPDIR)/basic_object_handle.Po \ - unit/windows/$(DEPDIR)/basic_random_access_handle.Po \ - unit/windows/$(DEPDIR)/basic_stream_handle.Po \ - unit/windows/$(DEPDIR)/object_handle.Po \ - unit/windows/$(DEPDIR)/object_handle_service.Po \ - unit/windows/$(DEPDIR)/overlapped_handle.Po \ - unit/windows/$(DEPDIR)/overlapped_ptr.Po \ - unit/windows/$(DEPDIR)/random_access_handle.Po \ - unit/windows/$(DEPDIR)/random_access_handle_service.Po \ - unit/windows/$(DEPDIR)/stream_handle.Po \ - unit/windows/$(DEPDIR)/stream_handle_service.Po -am__mv = mv -f -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -AM_V_CXX = $(am__v_CXX_@AM_V@) -am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) -am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = -SOURCES = $(libasio_a_SOURCES) $(latency_tcp_client_SOURCES) \ - $(latency_tcp_server_SOURCES) $(latency_udp_client_SOURCES) \ - $(latency_udp_server_SOURCES) $(performance_client_SOURCES) \ - $(performance_server_SOURCES) \ - $(unit_associated_allocator_SOURCES) \ - $(unit_associated_executor_SOURCES) \ - $(unit_async_result_SOURCES) \ - $(unit_basic_datagram_socket_SOURCES) \ - $(unit_basic_deadline_timer_SOURCES) \ - $(unit_basic_raw_socket_SOURCES) \ - $(unit_basic_seq_packet_socket_SOURCES) \ - $(unit_basic_serial_port_SOURCES) \ - $(unit_basic_signal_set_SOURCES) \ - $(unit_basic_socket_acceptor_SOURCES) \ - $(unit_basic_stream_socket_SOURCES) \ - $(unit_basic_streambuf_SOURCES) \ - $(unit_basic_waitable_timer_SOURCES) \ - $(unit_bind_executor_SOURCES) $(unit_buffer_SOURCES) \ - $(unit_buffered_read_stream_SOURCES) \ - $(unit_buffered_stream_SOURCES) \ - $(unit_buffered_write_stream_SOURCES) \ - $(unit_buffers_iterator_SOURCES) \ - $(unit_completion_condition_SOURCES) $(unit_connect_SOURCES) \ - $(unit_coroutine_SOURCES) \ - $(unit_datagram_socket_service_SOURCES) \ - $(unit_deadline_timer_SOURCES) \ - $(unit_deadline_timer_service_SOURCES) $(unit_defer_SOURCES) \ - $(unit_dispatch_SOURCES) $(unit_error_SOURCES) \ - $(unit_execution_context_SOURCES) $(unit_executor_SOURCES) \ - $(unit_executor_work_guard_SOURCES) \ - $(unit_generic_basic_endpoint_SOURCES) \ - $(unit_generic_datagram_protocol_SOURCES) \ - $(unit_generic_raw_protocol_SOURCES) \ - $(unit_generic_seq_packet_protocol_SOURCES) \ - $(unit_generic_stream_protocol_SOURCES) \ - $(unit_high_resolution_timer_SOURCES) \ - $(unit_io_context_SOURCES) $(unit_ip_address_SOURCES) \ - $(unit_ip_address_v4_SOURCES) \ - $(unit_ip_address_v4_iterator_SOURCES) \ - $(unit_ip_address_v4_range_SOURCES) \ - $(unit_ip_address_v6_SOURCES) \ - $(unit_ip_address_v6_iterator_SOURCES) \ - $(unit_ip_address_v6_range_SOURCES) \ - $(unit_ip_basic_endpoint_SOURCES) \ - $(unit_ip_basic_resolver_SOURCES) \ - $(unit_ip_basic_resolver_entry_SOURCES) \ - $(unit_ip_basic_resolver_iterator_SOURCES) \ - $(unit_ip_basic_resolver_query_SOURCES) \ - $(unit_ip_host_name_SOURCES) $(unit_ip_icmp_SOURCES) \ - $(unit_ip_multicast_SOURCES) $(unit_ip_network_v4_SOURCES) \ - $(unit_ip_network_v6_SOURCES) \ - $(unit_ip_resolver_query_base_SOURCES) \ - $(unit_ip_resolver_service_SOURCES) $(unit_ip_tcp_SOURCES) \ - $(unit_ip_udp_SOURCES) $(unit_ip_unicast_SOURCES) \ - $(unit_ip_v6_only_SOURCES) $(unit_is_read_buffered_SOURCES) \ - $(unit_is_write_buffered_SOURCES) \ - $(unit_local_basic_endpoint_SOURCES) \ - $(unit_local_connect_pair_SOURCES) \ - $(unit_local_datagram_protocol_SOURCES) \ - $(unit_local_stream_protocol_SOURCES) \ - $(unit_packaged_task_SOURCES) $(unit_placeholders_SOURCES) \ - $(unit_posix_basic_descriptor_SOURCES) \ - $(unit_posix_basic_stream_descriptor_SOURCES) \ - $(unit_posix_descriptor_SOURCES) \ - $(unit_posix_descriptor_base_SOURCES) \ - $(unit_posix_stream_descriptor_SOURCES) \ - $(unit_posix_stream_descriptor_service_SOURCES) \ - $(unit_post_SOURCES) $(unit_raw_socket_service_SOURCES) \ - $(unit_read_SOURCES) $(unit_read_at_SOURCES) \ - $(unit_read_until_SOURCES) \ - $(unit_seq_packet_socket_service_SOURCES) \ - $(unit_serial_port_SOURCES) $(unit_serial_port_base_SOURCES) \ - $(unit_serial_port_service_SOURCES) $(unit_signal_set_SOURCES) \ - $(unit_signal_set_service_SOURCES) \ - $(unit_socket_acceptor_service_SOURCES) \ - $(unit_socket_base_SOURCES) $(unit_ssl_context_SOURCES) \ - $(unit_ssl_context_base_SOURCES) $(unit_ssl_error_SOURCES) \ - $(unit_ssl_rfc2818_verification_SOURCES) \ - $(unit_ssl_stream_SOURCES) $(unit_ssl_stream_base_SOURCES) \ - $(unit_steady_timer_SOURCES) $(unit_strand_SOURCES) \ - $(unit_stream_socket_service_SOURCES) \ - $(unit_streambuf_SOURCES) $(unit_system_context_SOURCES) \ - $(unit_system_executor_SOURCES) $(unit_system_timer_SOURCES) \ - $(unit_thread_SOURCES) $(unit_time_traits_SOURCES) \ - $(unit_ts_buffer_SOURCES) $(unit_ts_executor_SOURCES) \ - $(unit_ts_internet_SOURCES) $(unit_ts_io_context_SOURCES) \ - $(unit_ts_net_SOURCES) $(unit_ts_netfwd_SOURCES) \ - $(unit_ts_socket_SOURCES) $(unit_ts_timer_SOURCES) \ - $(unit_use_future_SOURCES) $(unit_uses_executor_SOURCES) \ - $(unit_wait_traits_SOURCES) \ - $(unit_waitable_timer_service_SOURCES) \ - $(unit_windows_basic_handle_SOURCES) \ - $(unit_windows_basic_object_handle_SOURCES) \ - $(unit_windows_basic_random_access_handle_SOURCES) \ - $(unit_windows_basic_stream_handle_SOURCES) \ - $(unit_windows_object_handle_SOURCES) \ - $(unit_windows_object_handle_service_SOURCES) \ - $(unit_windows_overlapped_handle_SOURCES) \ - $(unit_windows_overlapped_ptr_SOURCES) \ - $(unit_windows_random_access_handle_SOURCES) \ - $(unit_windows_random_access_handle_service_SOURCES) \ - $(unit_windows_stream_handle_SOURCES) \ - $(unit_windows_stream_handle_service_SOURCES) \ - $(unit_write_SOURCES) $(unit_write_at_SOURCES) -DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ - $(am__latency_tcp_client_SOURCES_DIST) \ - $(am__latency_tcp_server_SOURCES_DIST) \ - $(am__latency_udp_client_SOURCES_DIST) \ - $(am__latency_udp_server_SOURCES_DIST) \ - $(am__performance_client_SOURCES_DIST) \ - $(am__performance_server_SOURCES_DIST) \ - $(unit_associated_allocator_SOURCES) \ - $(unit_associated_executor_SOURCES) \ - $(unit_async_result_SOURCES) \ - $(unit_basic_datagram_socket_SOURCES) \ - $(unit_basic_deadline_timer_SOURCES) \ - $(unit_basic_raw_socket_SOURCES) \ - $(unit_basic_seq_packet_socket_SOURCES) \ - $(unit_basic_serial_port_SOURCES) \ - $(unit_basic_signal_set_SOURCES) \ - $(unit_basic_socket_acceptor_SOURCES) \ - $(unit_basic_stream_socket_SOURCES) \ - $(unit_basic_streambuf_SOURCES) \ - $(unit_basic_waitable_timer_SOURCES) \ - $(unit_bind_executor_SOURCES) $(unit_buffer_SOURCES) \ - $(unit_buffered_read_stream_SOURCES) \ - $(unit_buffered_stream_SOURCES) \ - $(unit_buffered_write_stream_SOURCES) \ - $(unit_buffers_iterator_SOURCES) \ - $(unit_completion_condition_SOURCES) $(unit_connect_SOURCES) \ - $(unit_coroutine_SOURCES) \ - $(unit_datagram_socket_service_SOURCES) \ - $(unit_deadline_timer_SOURCES) \ - $(unit_deadline_timer_service_SOURCES) $(unit_defer_SOURCES) \ - $(unit_dispatch_SOURCES) $(unit_error_SOURCES) \ - $(unit_execution_context_SOURCES) $(unit_executor_SOURCES) \ - $(unit_executor_work_guard_SOURCES) \ - $(unit_generic_basic_endpoint_SOURCES) \ - $(unit_generic_datagram_protocol_SOURCES) \ - $(unit_generic_raw_protocol_SOURCES) \ - $(unit_generic_seq_packet_protocol_SOURCES) \ - $(unit_generic_stream_protocol_SOURCES) \ - $(unit_high_resolution_timer_SOURCES) \ - $(unit_io_context_SOURCES) $(unit_ip_address_SOURCES) \ - $(unit_ip_address_v4_SOURCES) \ - $(unit_ip_address_v4_iterator_SOURCES) \ - $(unit_ip_address_v4_range_SOURCES) \ - $(unit_ip_address_v6_SOURCES) \ - $(unit_ip_address_v6_iterator_SOURCES) \ - $(unit_ip_address_v6_range_SOURCES) \ - $(unit_ip_basic_endpoint_SOURCES) \ - $(unit_ip_basic_resolver_SOURCES) \ - $(unit_ip_basic_resolver_entry_SOURCES) \ - $(unit_ip_basic_resolver_iterator_SOURCES) \ - $(unit_ip_basic_resolver_query_SOURCES) \ - $(unit_ip_host_name_SOURCES) $(unit_ip_icmp_SOURCES) \ - $(unit_ip_multicast_SOURCES) $(unit_ip_network_v4_SOURCES) \ - $(unit_ip_network_v6_SOURCES) \ - $(unit_ip_resolver_query_base_SOURCES) \ - $(unit_ip_resolver_service_SOURCES) $(unit_ip_tcp_SOURCES) \ - $(unit_ip_udp_SOURCES) $(unit_ip_unicast_SOURCES) \ - $(unit_ip_v6_only_SOURCES) $(unit_is_read_buffered_SOURCES) \ - $(unit_is_write_buffered_SOURCES) \ - $(unit_local_basic_endpoint_SOURCES) \ - $(unit_local_connect_pair_SOURCES) \ - $(unit_local_datagram_protocol_SOURCES) \ - $(unit_local_stream_protocol_SOURCES) \ - $(unit_packaged_task_SOURCES) $(unit_placeholders_SOURCES) \ - $(unit_posix_basic_descriptor_SOURCES) \ - $(unit_posix_basic_stream_descriptor_SOURCES) \ - $(unit_posix_descriptor_SOURCES) \ - $(unit_posix_descriptor_base_SOURCES) \ - $(unit_posix_stream_descriptor_SOURCES) \ - $(unit_posix_stream_descriptor_service_SOURCES) \ - $(unit_post_SOURCES) $(unit_raw_socket_service_SOURCES) \ - $(unit_read_SOURCES) $(unit_read_at_SOURCES) \ - $(unit_read_until_SOURCES) \ - $(unit_seq_packet_socket_service_SOURCES) \ - $(unit_serial_port_SOURCES) $(unit_serial_port_base_SOURCES) \ - $(unit_serial_port_service_SOURCES) $(unit_signal_set_SOURCES) \ - $(unit_signal_set_service_SOURCES) \ - $(unit_socket_acceptor_service_SOURCES) \ - $(unit_socket_base_SOURCES) \ - $(am__unit_ssl_context_SOURCES_DIST) \ - $(am__unit_ssl_context_base_SOURCES_DIST) \ - $(am__unit_ssl_error_SOURCES_DIST) \ - $(am__unit_ssl_rfc2818_verification_SOURCES_DIST) \ - $(am__unit_ssl_stream_SOURCES_DIST) \ - $(am__unit_ssl_stream_base_SOURCES_DIST) \ - $(unit_steady_timer_SOURCES) $(unit_strand_SOURCES) \ - $(unit_stream_socket_service_SOURCES) \ - $(unit_streambuf_SOURCES) $(unit_system_context_SOURCES) \ - $(unit_system_executor_SOURCES) $(unit_system_timer_SOURCES) \ - $(unit_thread_SOURCES) $(unit_time_traits_SOURCES) \ - $(unit_ts_buffer_SOURCES) $(unit_ts_executor_SOURCES) \ - $(unit_ts_internet_SOURCES) $(unit_ts_io_context_SOURCES) \ - $(unit_ts_net_SOURCES) $(unit_ts_netfwd_SOURCES) \ - $(unit_ts_socket_SOURCES) $(unit_ts_timer_SOURCES) \ - $(unit_use_future_SOURCES) $(unit_uses_executor_SOURCES) \ - $(unit_wait_traits_SOURCES) \ - $(unit_waitable_timer_service_SOURCES) \ - $(unit_windows_basic_handle_SOURCES) \ - $(unit_windows_basic_object_handle_SOURCES) \ - $(unit_windows_basic_random_access_handle_SOURCES) \ - $(unit_windows_basic_stream_handle_SOURCES) \ - $(unit_windows_object_handle_SOURCES) \ - $(unit_windows_object_handle_service_SOURCES) \ - $(unit_windows_overlapped_handle_SOURCES) \ - $(unit_windows_overlapped_ptr_SOURCES) \ - $(unit_windows_random_access_handle_SOURCES) \ - $(unit_windows_random_access_handle_service_SOURCES) \ - $(unit_windows_stream_handle_SOURCES) \ - $(unit_windows_stream_handle_service_SOURCES) \ - $(unit_write_SOURCES) $(unit_write_at_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -HEADERS = $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red=''; \ - grn=''; \ - lgn=''; \ - blu=''; \ - mgn=''; \ - brg=''; \ - std=''; \ - fi; \ -} -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ - $(top_srcdir)/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = subdir-objects -@SEPARATE_COMPILATION_TRUE@noinst_LIBRARIES = libasio.a -@SEPARATE_COMPILATION_TRUE@libasio_a_SOURCES = ../asio.cpp \ -@SEPARATE_COMPILATION_TRUE@ $(am__append_1) -@SEPARATE_COMPILATION_TRUE@LDADD = libasio.a -noinst_HEADERS = \ - latency/high_res_clock.hpp \ - unit/unit_test.hpp - -AM_CXXFLAGS = -I$(srcdir)/../../include -@STANDALONE_FALSE@latency_tcp_client_SOURCES = latency/tcp_client.cpp -@STANDALONE_FALSE@latency_tcp_server_SOURCES = latency/tcp_server.cpp -@STANDALONE_FALSE@latency_udp_client_SOURCES = latency/udp_client.cpp -@STANDALONE_FALSE@latency_udp_server_SOURCES = latency/udp_server.cpp -@STANDALONE_FALSE@performance_client_SOURCES = performance/client.cpp -@STANDALONE_FALSE@performance_server_SOURCES = performance/server.cpp -unit_associated_allocator_SOURCES = unit/associated_allocator.cpp -unit_associated_executor_SOURCES = unit/associated_executor.cpp -unit_async_result_SOURCES = unit/async_result.cpp -unit_basic_datagram_socket_SOURCES = unit/basic_datagram_socket.cpp -unit_basic_deadline_timer_SOURCES = unit/basic_deadline_timer.cpp -unit_basic_raw_socket_SOURCES = unit/basic_raw_socket.cpp -unit_basic_seq_packet_socket_SOURCES = unit/basic_seq_packet_socket.cpp -unit_basic_serial_port_SOURCES = unit/basic_serial_port.cpp -unit_basic_signal_set_SOURCES = unit/basic_signal_set.cpp -unit_basic_socket_acceptor_SOURCES = unit/basic_socket_acceptor.cpp -unit_basic_stream_socket_SOURCES = unit/basic_stream_socket.cpp -unit_basic_streambuf_SOURCES = unit/basic_streambuf.cpp -unit_basic_waitable_timer_SOURCES = unit/basic_waitable_timer.cpp -unit_bind_executor_SOURCES = unit/bind_executor.cpp -unit_buffer_SOURCES = unit/buffer.cpp -unit_buffers_iterator_SOURCES = unit/buffers_iterator.cpp -unit_buffered_read_stream_SOURCES = unit/buffered_read_stream.cpp -unit_buffered_stream_SOURCES = unit/buffered_stream.cpp -unit_buffered_write_stream_SOURCES = unit/buffered_write_stream.cpp -unit_completion_condition_SOURCES = unit/completion_condition.cpp -unit_connect_SOURCES = unit/connect.cpp -unit_coroutine_SOURCES = unit/coroutine.cpp -unit_datagram_socket_service_SOURCES = unit/datagram_socket_service.cpp -unit_deadline_timer_service_SOURCES = unit/deadline_timer_service.cpp -unit_deadline_timer_SOURCES = unit/deadline_timer.cpp -unit_defer_SOURCES = unit/defer.cpp -unit_dispatch_SOURCES = unit/dispatch.cpp -unit_error_SOURCES = unit/error.cpp -unit_execution_context_SOURCES = unit/execution_context.cpp -unit_executor_SOURCES = unit/executor.cpp -unit_executor_work_guard_SOURCES = unit/executor_work_guard.cpp -unit_generic_basic_endpoint_SOURCES = unit/generic/basic_endpoint.cpp -unit_generic_datagram_protocol_SOURCES = unit/generic/datagram_protocol.cpp -unit_generic_raw_protocol_SOURCES = unit/generic/raw_protocol.cpp -unit_generic_seq_packet_protocol_SOURCES = unit/generic/seq_packet_protocol.cpp -unit_generic_stream_protocol_SOURCES = unit/generic/stream_protocol.cpp -unit_high_resolution_timer_SOURCES = unit/high_resolution_timer.cpp -unit_io_context_SOURCES = unit/io_context.cpp -unit_ip_address_SOURCES = unit/ip/address.cpp -unit_ip_address_v4_SOURCES = unit/ip/address_v4.cpp -unit_ip_address_v4_iterator_SOURCES = unit/ip/address_v4_iterator.cpp -unit_ip_address_v4_range_SOURCES = unit/ip/address_v4_range.cpp -unit_ip_address_v6_SOURCES = unit/ip/address_v6.cpp -unit_ip_address_v6_iterator_SOURCES = unit/ip/address_v6_iterator.cpp -unit_ip_address_v6_range_SOURCES = unit/ip/address_v6_range.cpp -unit_ip_basic_endpoint_SOURCES = unit/ip/basic_endpoint.cpp -unit_ip_basic_resolver_SOURCES = unit/ip/basic_resolver.cpp -unit_ip_basic_resolver_entry_SOURCES = unit/ip/basic_resolver_entry.cpp -unit_ip_basic_resolver_iterator_SOURCES = unit/ip/basic_resolver_iterator.cpp -unit_ip_basic_resolver_query_SOURCES = unit/ip/basic_resolver_query.cpp -unit_ip_host_name_SOURCES = unit/ip/host_name.cpp -unit_ip_icmp_SOURCES = unit/ip/icmp.cpp -unit_ip_multicast_SOURCES = unit/ip/multicast.cpp -unit_ip_network_v4_SOURCES = unit/ip/network_v4.cpp -unit_ip_network_v6_SOURCES = unit/ip/network_v6.cpp -unit_ip_resolver_query_base_SOURCES = unit/ip/resolver_query_base.cpp -unit_ip_resolver_service_SOURCES = unit/ip/resolver_service.cpp -unit_ip_tcp_SOURCES = unit/ip/tcp.cpp -unit_ip_udp_SOURCES = unit/ip/udp.cpp -unit_ip_unicast_SOURCES = unit/ip/unicast.cpp -unit_ip_v6_only_SOURCES = unit/ip/v6_only.cpp -unit_is_read_buffered_SOURCES = unit/is_read_buffered.cpp -unit_is_write_buffered_SOURCES = unit/is_write_buffered.cpp -unit_local_basic_endpoint_SOURCES = unit/local/basic_endpoint.cpp -unit_local_connect_pair_SOURCES = unit/local/connect_pair.cpp -unit_local_datagram_protocol_SOURCES = unit/local/datagram_protocol.cpp -unit_local_stream_protocol_SOURCES = unit/local/stream_protocol.cpp -unit_packaged_task_SOURCES = unit/packaged_task.cpp -unit_placeholders_SOURCES = unit/placeholders.cpp -unit_posix_basic_descriptor_SOURCES = unit/posix/basic_descriptor.cpp -unit_posix_basic_stream_descriptor_SOURCES = unit/posix/basic_stream_descriptor.cpp -unit_posix_descriptor_SOURCES = unit/posix/descriptor.cpp -unit_posix_descriptor_base_SOURCES = unit/posix/descriptor_base.cpp -unit_posix_stream_descriptor_SOURCES = unit/posix/stream_descriptor.cpp -unit_posix_stream_descriptor_service_SOURCES = unit/posix/stream_descriptor_service.cpp -unit_post_SOURCES = unit/post.cpp -unit_raw_socket_service_SOURCES = unit/raw_socket_service.cpp -unit_read_SOURCES = unit/read.cpp -unit_read_at_SOURCES = unit/read_at.cpp -unit_read_until_SOURCES = unit/read_until.cpp -unit_seq_packet_socket_service_SOURCES = unit/seq_packet_socket_service.cpp -unit_serial_port_SOURCES = unit/serial_port.cpp -unit_serial_port_base_SOURCES = unit/serial_port_base.cpp -unit_serial_port_service_SOURCES = unit/serial_port_service.cpp -unit_signal_set_SOURCES = unit/signal_set.cpp -unit_signal_set_service_SOURCES = unit/signal_set_service.cpp -unit_socket_acceptor_service_SOURCES = unit/socket_acceptor_service.cpp -unit_socket_base_SOURCES = unit/socket_base.cpp -unit_steady_timer_SOURCES = unit/steady_timer.cpp -unit_strand_SOURCES = unit/strand.cpp -unit_stream_socket_service_SOURCES = unit/stream_socket_service.cpp -unit_streambuf_SOURCES = unit/streambuf.cpp -unit_system_context_SOURCES = unit/system_context.cpp -unit_system_executor_SOURCES = unit/system_executor.cpp -unit_system_timer_SOURCES = unit/system_timer.cpp -unit_thread_SOURCES = unit/thread.cpp -unit_time_traits_SOURCES = unit/time_traits.cpp -unit_ts_buffer_SOURCES = unit/ts/buffer.cpp -unit_ts_executor_SOURCES = unit/ts/executor.cpp -unit_ts_internet_SOURCES = unit/ts/internet.cpp -unit_ts_io_context_SOURCES = unit/ts/io_context.cpp -unit_ts_net_SOURCES = unit/ts/net.cpp -unit_ts_netfwd_SOURCES = unit/ts/netfwd.cpp -unit_ts_socket_SOURCES = unit/ts/socket.cpp -unit_ts_timer_SOURCES = unit/ts/timer.cpp -unit_use_future_SOURCES = unit/use_future.cpp -unit_uses_executor_SOURCES = unit/uses_executor.cpp -unit_wait_traits_SOURCES = unit/wait_traits.cpp -unit_waitable_timer_service_SOURCES = unit/waitable_timer_service.cpp -unit_windows_basic_handle_SOURCES = unit/windows/basic_handle.cpp -unit_windows_basic_object_handle_SOURCES = unit/windows/basic_object_handle.cpp -unit_windows_basic_random_access_handle_SOURCES = unit/windows/basic_random_access_handle.cpp -unit_windows_basic_stream_handle_SOURCES = unit/windows/basic_stream_handle.cpp -unit_windows_object_handle_SOURCES = unit/windows/object_handle.cpp -unit_windows_object_handle_service_SOURCES = unit/windows/object_handle_service.cpp -unit_windows_overlapped_handle_SOURCES = unit/windows/overlapped_handle.cpp -unit_windows_overlapped_ptr_SOURCES = unit/windows/overlapped_ptr.cpp -unit_windows_random_access_handle_SOURCES = unit/windows/random_access_handle.cpp -unit_windows_random_access_handle_service_SOURCES = unit/windows/random_access_handle_service.cpp -unit_windows_stream_handle_SOURCES = unit/windows/stream_handle.cpp -unit_windows_stream_handle_service_SOURCES = unit/windows/stream_handle_service.cpp -unit_write_SOURCES = unit/write.cpp -unit_write_at_SOURCES = unit/write_at.cpp -@HAVE_OPENSSL_TRUE@unit_ssl_context_base_SOURCES = unit/ssl/context_base.cpp -@HAVE_OPENSSL_TRUE@unit_ssl_context_SOURCES = unit/ssl/context.cpp -@HAVE_OPENSSL_TRUE@unit_ssl_error_SOURCES = unit/ssl/error.cpp -@HAVE_OPENSSL_TRUE@unit_ssl_stream_base_SOURCES = unit/ssl/stream_base.cpp -@HAVE_OPENSSL_TRUE@unit_ssl_rfc2818_verification_SOURCES = unit/ssl/rfc2818_verification.cpp -@HAVE_OPENSSL_TRUE@unit_ssl_stream_SOURCES = unit/ssl/stream.cpp -EXTRA_DIST = \ - latency/allocator.hpp \ - performance/handler_allocator.hpp \ - unit/archetypes/async_ops.hpp \ - unit/archetypes/async_result.hpp \ - unit/archetypes/deprecated_async_result.hpp \ - unit/archetypes/deprecated_async_ops.hpp \ - unit/archetypes/gettable_socket_option.hpp \ - unit/archetypes/io_control_command.hpp \ - unit/archetypes/settable_socket_option.hpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in - -all: all-am - -.SUFFIXES: -.SUFFIXES: .cpp .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/tests/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/tests/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS) - -clean-noinstPROGRAMS: - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) - -clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -../$(am__dirstamp): - @$(MKDIR_P) .. - @: > ../$(am__dirstamp) -../$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../$(DEPDIR) - @: > ../$(DEPDIR)/$(am__dirstamp) -../asio.$(OBJEXT): ../$(am__dirstamp) ../$(DEPDIR)/$(am__dirstamp) -../asio_ssl.$(OBJEXT): ../$(am__dirstamp) ../$(DEPDIR)/$(am__dirstamp) - -libasio.a: $(libasio_a_OBJECTS) $(libasio_a_DEPENDENCIES) $(EXTRA_libasio_a_DEPENDENCIES) - $(AM_V_at)-rm -f libasio.a - $(AM_V_AR)$(libasio_a_AR) libasio.a $(libasio_a_OBJECTS) $(libasio_a_LIBADD) - $(AM_V_at)$(RANLIB) libasio.a -latency/$(am__dirstamp): - @$(MKDIR_P) latency - @: > latency/$(am__dirstamp) -latency/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) latency/$(DEPDIR) - @: > latency/$(DEPDIR)/$(am__dirstamp) -latency/tcp_client.$(OBJEXT): latency/$(am__dirstamp) \ - latency/$(DEPDIR)/$(am__dirstamp) - -latency/tcp_client$(EXEEXT): $(latency_tcp_client_OBJECTS) $(latency_tcp_client_DEPENDENCIES) $(EXTRA_latency_tcp_client_DEPENDENCIES) latency/$(am__dirstamp) - @rm -f latency/tcp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(latency_tcp_client_OBJECTS) $(latency_tcp_client_LDADD) $(LIBS) -latency/tcp_server.$(OBJEXT): latency/$(am__dirstamp) \ - latency/$(DEPDIR)/$(am__dirstamp) - -latency/tcp_server$(EXEEXT): $(latency_tcp_server_OBJECTS) $(latency_tcp_server_DEPENDENCIES) $(EXTRA_latency_tcp_server_DEPENDENCIES) latency/$(am__dirstamp) - @rm -f latency/tcp_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(latency_tcp_server_OBJECTS) $(latency_tcp_server_LDADD) $(LIBS) -latency/udp_client.$(OBJEXT): latency/$(am__dirstamp) \ - latency/$(DEPDIR)/$(am__dirstamp) - -latency/udp_client$(EXEEXT): $(latency_udp_client_OBJECTS) $(latency_udp_client_DEPENDENCIES) $(EXTRA_latency_udp_client_DEPENDENCIES) latency/$(am__dirstamp) - @rm -f latency/udp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(latency_udp_client_OBJECTS) $(latency_udp_client_LDADD) $(LIBS) -latency/udp_server.$(OBJEXT): latency/$(am__dirstamp) \ - latency/$(DEPDIR)/$(am__dirstamp) - -latency/udp_server$(EXEEXT): $(latency_udp_server_OBJECTS) $(latency_udp_server_DEPENDENCIES) $(EXTRA_latency_udp_server_DEPENDENCIES) latency/$(am__dirstamp) - @rm -f latency/udp_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(latency_udp_server_OBJECTS) $(latency_udp_server_LDADD) $(LIBS) -performance/$(am__dirstamp): - @$(MKDIR_P) performance - @: > performance/$(am__dirstamp) -performance/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) performance/$(DEPDIR) - @: > performance/$(DEPDIR)/$(am__dirstamp) -performance/client.$(OBJEXT): performance/$(am__dirstamp) \ - performance/$(DEPDIR)/$(am__dirstamp) - -performance/client$(EXEEXT): $(performance_client_OBJECTS) $(performance_client_DEPENDENCIES) $(EXTRA_performance_client_DEPENDENCIES) performance/$(am__dirstamp) - @rm -f performance/client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(performance_client_OBJECTS) $(performance_client_LDADD) $(LIBS) -performance/server.$(OBJEXT): performance/$(am__dirstamp) \ - performance/$(DEPDIR)/$(am__dirstamp) - -performance/server$(EXEEXT): $(performance_server_OBJECTS) $(performance_server_DEPENDENCIES) $(EXTRA_performance_server_DEPENDENCIES) performance/$(am__dirstamp) - @rm -f performance/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(performance_server_OBJECTS) $(performance_server_LDADD) $(LIBS) -unit/$(am__dirstamp): - @$(MKDIR_P) unit - @: > unit/$(am__dirstamp) -unit/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/$(DEPDIR) - @: > unit/$(DEPDIR)/$(am__dirstamp) -unit/associated_allocator.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/associated_allocator$(EXEEXT): $(unit_associated_allocator_OBJECTS) $(unit_associated_allocator_DEPENDENCIES) $(EXTRA_unit_associated_allocator_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/associated_allocator$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_associated_allocator_OBJECTS) $(unit_associated_allocator_LDADD) $(LIBS) -unit/associated_executor.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/associated_executor$(EXEEXT): $(unit_associated_executor_OBJECTS) $(unit_associated_executor_DEPENDENCIES) $(EXTRA_unit_associated_executor_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/associated_executor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_associated_executor_OBJECTS) $(unit_associated_executor_LDADD) $(LIBS) -unit/async_result.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/async_result$(EXEEXT): $(unit_async_result_OBJECTS) $(unit_async_result_DEPENDENCIES) $(EXTRA_unit_async_result_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/async_result$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_async_result_OBJECTS) $(unit_async_result_LDADD) $(LIBS) -unit/basic_datagram_socket.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_datagram_socket$(EXEEXT): $(unit_basic_datagram_socket_OBJECTS) $(unit_basic_datagram_socket_DEPENDENCIES) $(EXTRA_unit_basic_datagram_socket_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_datagram_socket$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_datagram_socket_OBJECTS) $(unit_basic_datagram_socket_LDADD) $(LIBS) -unit/basic_deadline_timer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_deadline_timer$(EXEEXT): $(unit_basic_deadline_timer_OBJECTS) $(unit_basic_deadline_timer_DEPENDENCIES) $(EXTRA_unit_basic_deadline_timer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_deadline_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_deadline_timer_OBJECTS) $(unit_basic_deadline_timer_LDADD) $(LIBS) -unit/basic_raw_socket.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_raw_socket$(EXEEXT): $(unit_basic_raw_socket_OBJECTS) $(unit_basic_raw_socket_DEPENDENCIES) $(EXTRA_unit_basic_raw_socket_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_raw_socket$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_raw_socket_OBJECTS) $(unit_basic_raw_socket_LDADD) $(LIBS) -unit/basic_seq_packet_socket.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_seq_packet_socket$(EXEEXT): $(unit_basic_seq_packet_socket_OBJECTS) $(unit_basic_seq_packet_socket_DEPENDENCIES) $(EXTRA_unit_basic_seq_packet_socket_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_seq_packet_socket$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_seq_packet_socket_OBJECTS) $(unit_basic_seq_packet_socket_LDADD) $(LIBS) -unit/basic_serial_port.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_serial_port$(EXEEXT): $(unit_basic_serial_port_OBJECTS) $(unit_basic_serial_port_DEPENDENCIES) $(EXTRA_unit_basic_serial_port_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_serial_port$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_serial_port_OBJECTS) $(unit_basic_serial_port_LDADD) $(LIBS) -unit/basic_signal_set.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_signal_set$(EXEEXT): $(unit_basic_signal_set_OBJECTS) $(unit_basic_signal_set_DEPENDENCIES) $(EXTRA_unit_basic_signal_set_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_signal_set$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_signal_set_OBJECTS) $(unit_basic_signal_set_LDADD) $(LIBS) -unit/basic_socket_acceptor.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_socket_acceptor$(EXEEXT): $(unit_basic_socket_acceptor_OBJECTS) $(unit_basic_socket_acceptor_DEPENDENCIES) $(EXTRA_unit_basic_socket_acceptor_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_socket_acceptor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_socket_acceptor_OBJECTS) $(unit_basic_socket_acceptor_LDADD) $(LIBS) -unit/basic_stream_socket.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_stream_socket$(EXEEXT): $(unit_basic_stream_socket_OBJECTS) $(unit_basic_stream_socket_DEPENDENCIES) $(EXTRA_unit_basic_stream_socket_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_stream_socket$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_stream_socket_OBJECTS) $(unit_basic_stream_socket_LDADD) $(LIBS) -unit/basic_streambuf.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_streambuf$(EXEEXT): $(unit_basic_streambuf_OBJECTS) $(unit_basic_streambuf_DEPENDENCIES) $(EXTRA_unit_basic_streambuf_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_streambuf$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_streambuf_OBJECTS) $(unit_basic_streambuf_LDADD) $(LIBS) -unit/basic_waitable_timer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_waitable_timer$(EXEEXT): $(unit_basic_waitable_timer_OBJECTS) $(unit_basic_waitable_timer_DEPENDENCIES) $(EXTRA_unit_basic_waitable_timer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_waitable_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_waitable_timer_OBJECTS) $(unit_basic_waitable_timer_LDADD) $(LIBS) -unit/bind_executor.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/bind_executor$(EXEEXT): $(unit_bind_executor_OBJECTS) $(unit_bind_executor_DEPENDENCIES) $(EXTRA_unit_bind_executor_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/bind_executor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_bind_executor_OBJECTS) $(unit_bind_executor_LDADD) $(LIBS) -unit/buffer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/buffer$(EXEEXT): $(unit_buffer_OBJECTS) $(unit_buffer_DEPENDENCIES) $(EXTRA_unit_buffer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/buffer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_buffer_OBJECTS) $(unit_buffer_LDADD) $(LIBS) -unit/buffered_read_stream.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/buffered_read_stream$(EXEEXT): $(unit_buffered_read_stream_OBJECTS) $(unit_buffered_read_stream_DEPENDENCIES) $(EXTRA_unit_buffered_read_stream_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/buffered_read_stream$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_buffered_read_stream_OBJECTS) $(unit_buffered_read_stream_LDADD) $(LIBS) -unit/buffered_stream.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/buffered_stream$(EXEEXT): $(unit_buffered_stream_OBJECTS) $(unit_buffered_stream_DEPENDENCIES) $(EXTRA_unit_buffered_stream_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/buffered_stream$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_buffered_stream_OBJECTS) $(unit_buffered_stream_LDADD) $(LIBS) -unit/buffered_write_stream.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/buffered_write_stream$(EXEEXT): $(unit_buffered_write_stream_OBJECTS) $(unit_buffered_write_stream_DEPENDENCIES) $(EXTRA_unit_buffered_write_stream_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/buffered_write_stream$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_buffered_write_stream_OBJECTS) $(unit_buffered_write_stream_LDADD) $(LIBS) -unit/buffers_iterator.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/buffers_iterator$(EXEEXT): $(unit_buffers_iterator_OBJECTS) $(unit_buffers_iterator_DEPENDENCIES) $(EXTRA_unit_buffers_iterator_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/buffers_iterator$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_buffers_iterator_OBJECTS) $(unit_buffers_iterator_LDADD) $(LIBS) -unit/completion_condition.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/completion_condition$(EXEEXT): $(unit_completion_condition_OBJECTS) $(unit_completion_condition_DEPENDENCIES) $(EXTRA_unit_completion_condition_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/completion_condition$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_completion_condition_OBJECTS) $(unit_completion_condition_LDADD) $(LIBS) -unit/connect.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/connect$(EXEEXT): $(unit_connect_OBJECTS) $(unit_connect_DEPENDENCIES) $(EXTRA_unit_connect_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/connect$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_connect_OBJECTS) $(unit_connect_LDADD) $(LIBS) -unit/coroutine.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/coroutine$(EXEEXT): $(unit_coroutine_OBJECTS) $(unit_coroutine_DEPENDENCIES) $(EXTRA_unit_coroutine_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/coroutine$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_coroutine_OBJECTS) $(unit_coroutine_LDADD) $(LIBS) -unit/datagram_socket_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/datagram_socket_service$(EXEEXT): $(unit_datagram_socket_service_OBJECTS) $(unit_datagram_socket_service_DEPENDENCIES) $(EXTRA_unit_datagram_socket_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/datagram_socket_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_datagram_socket_service_OBJECTS) $(unit_datagram_socket_service_LDADD) $(LIBS) -unit/deadline_timer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/deadline_timer$(EXEEXT): $(unit_deadline_timer_OBJECTS) $(unit_deadline_timer_DEPENDENCIES) $(EXTRA_unit_deadline_timer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/deadline_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_deadline_timer_OBJECTS) $(unit_deadline_timer_LDADD) $(LIBS) -unit/deadline_timer_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/deadline_timer_service$(EXEEXT): $(unit_deadline_timer_service_OBJECTS) $(unit_deadline_timer_service_DEPENDENCIES) $(EXTRA_unit_deadline_timer_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/deadline_timer_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_deadline_timer_service_OBJECTS) $(unit_deadline_timer_service_LDADD) $(LIBS) -unit/defer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/defer$(EXEEXT): $(unit_defer_OBJECTS) $(unit_defer_DEPENDENCIES) $(EXTRA_unit_defer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/defer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_defer_OBJECTS) $(unit_defer_LDADD) $(LIBS) -unit/dispatch.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/dispatch$(EXEEXT): $(unit_dispatch_OBJECTS) $(unit_dispatch_DEPENDENCIES) $(EXTRA_unit_dispatch_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/dispatch$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_dispatch_OBJECTS) $(unit_dispatch_LDADD) $(LIBS) -unit/error.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/error$(EXEEXT): $(unit_error_OBJECTS) $(unit_error_DEPENDENCIES) $(EXTRA_unit_error_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/error$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_error_OBJECTS) $(unit_error_LDADD) $(LIBS) -unit/execution_context.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/execution_context$(EXEEXT): $(unit_execution_context_OBJECTS) $(unit_execution_context_DEPENDENCIES) $(EXTRA_unit_execution_context_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/execution_context$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_context_OBJECTS) $(unit_execution_context_LDADD) $(LIBS) -unit/executor.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/executor$(EXEEXT): $(unit_executor_OBJECTS) $(unit_executor_DEPENDENCIES) $(EXTRA_unit_executor_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/executor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_executor_OBJECTS) $(unit_executor_LDADD) $(LIBS) -unit/executor_work_guard.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/executor_work_guard$(EXEEXT): $(unit_executor_work_guard_OBJECTS) $(unit_executor_work_guard_DEPENDENCIES) $(EXTRA_unit_executor_work_guard_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/executor_work_guard$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_executor_work_guard_OBJECTS) $(unit_executor_work_guard_LDADD) $(LIBS) -unit/generic/$(am__dirstamp): - @$(MKDIR_P) unit/generic - @: > unit/generic/$(am__dirstamp) -unit/generic/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/generic/$(DEPDIR) - @: > unit/generic/$(DEPDIR)/$(am__dirstamp) -unit/generic/basic_endpoint.$(OBJEXT): unit/generic/$(am__dirstamp) \ - unit/generic/$(DEPDIR)/$(am__dirstamp) - -unit/generic/basic_endpoint$(EXEEXT): $(unit_generic_basic_endpoint_OBJECTS) $(unit_generic_basic_endpoint_DEPENDENCIES) $(EXTRA_unit_generic_basic_endpoint_DEPENDENCIES) unit/generic/$(am__dirstamp) - @rm -f unit/generic/basic_endpoint$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_generic_basic_endpoint_OBJECTS) $(unit_generic_basic_endpoint_LDADD) $(LIBS) -unit/generic/datagram_protocol.$(OBJEXT): \ - unit/generic/$(am__dirstamp) \ - unit/generic/$(DEPDIR)/$(am__dirstamp) - -unit/generic/datagram_protocol$(EXEEXT): $(unit_generic_datagram_protocol_OBJECTS) $(unit_generic_datagram_protocol_DEPENDENCIES) $(EXTRA_unit_generic_datagram_protocol_DEPENDENCIES) unit/generic/$(am__dirstamp) - @rm -f unit/generic/datagram_protocol$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_generic_datagram_protocol_OBJECTS) $(unit_generic_datagram_protocol_LDADD) $(LIBS) -unit/generic/raw_protocol.$(OBJEXT): unit/generic/$(am__dirstamp) \ - unit/generic/$(DEPDIR)/$(am__dirstamp) - -unit/generic/raw_protocol$(EXEEXT): $(unit_generic_raw_protocol_OBJECTS) $(unit_generic_raw_protocol_DEPENDENCIES) $(EXTRA_unit_generic_raw_protocol_DEPENDENCIES) unit/generic/$(am__dirstamp) - @rm -f unit/generic/raw_protocol$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_generic_raw_protocol_OBJECTS) $(unit_generic_raw_protocol_LDADD) $(LIBS) -unit/generic/seq_packet_protocol.$(OBJEXT): \ - unit/generic/$(am__dirstamp) \ - unit/generic/$(DEPDIR)/$(am__dirstamp) - -unit/generic/seq_packet_protocol$(EXEEXT): $(unit_generic_seq_packet_protocol_OBJECTS) $(unit_generic_seq_packet_protocol_DEPENDENCIES) $(EXTRA_unit_generic_seq_packet_protocol_DEPENDENCIES) unit/generic/$(am__dirstamp) - @rm -f unit/generic/seq_packet_protocol$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_generic_seq_packet_protocol_OBJECTS) $(unit_generic_seq_packet_protocol_LDADD) $(LIBS) -unit/generic/stream_protocol.$(OBJEXT): unit/generic/$(am__dirstamp) \ - unit/generic/$(DEPDIR)/$(am__dirstamp) - -unit/generic/stream_protocol$(EXEEXT): $(unit_generic_stream_protocol_OBJECTS) $(unit_generic_stream_protocol_DEPENDENCIES) $(EXTRA_unit_generic_stream_protocol_DEPENDENCIES) unit/generic/$(am__dirstamp) - @rm -f unit/generic/stream_protocol$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_generic_stream_protocol_OBJECTS) $(unit_generic_stream_protocol_LDADD) $(LIBS) -unit/high_resolution_timer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/high_resolution_timer$(EXEEXT): $(unit_high_resolution_timer_OBJECTS) $(unit_high_resolution_timer_DEPENDENCIES) $(EXTRA_unit_high_resolution_timer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/high_resolution_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_high_resolution_timer_OBJECTS) $(unit_high_resolution_timer_LDADD) $(LIBS) -unit/io_context.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/io_context$(EXEEXT): $(unit_io_context_OBJECTS) $(unit_io_context_DEPENDENCIES) $(EXTRA_unit_io_context_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/io_context$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_io_context_OBJECTS) $(unit_io_context_LDADD) $(LIBS) -unit/ip/$(am__dirstamp): - @$(MKDIR_P) unit/ip - @: > unit/ip/$(am__dirstamp) -unit/ip/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/ip/$(DEPDIR) - @: > unit/ip/$(DEPDIR)/$(am__dirstamp) -unit/ip/address.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/address$(EXEEXT): $(unit_ip_address_OBJECTS) $(unit_ip_address_DEPENDENCIES) $(EXTRA_unit_ip_address_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/address$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_address_OBJECTS) $(unit_ip_address_LDADD) $(LIBS) -unit/ip/address_v4.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/address_v4$(EXEEXT): $(unit_ip_address_v4_OBJECTS) $(unit_ip_address_v4_DEPENDENCIES) $(EXTRA_unit_ip_address_v4_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/address_v4$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_address_v4_OBJECTS) $(unit_ip_address_v4_LDADD) $(LIBS) -unit/ip/address_v4_iterator.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/address_v4_iterator$(EXEEXT): $(unit_ip_address_v4_iterator_OBJECTS) $(unit_ip_address_v4_iterator_DEPENDENCIES) $(EXTRA_unit_ip_address_v4_iterator_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/address_v4_iterator$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_address_v4_iterator_OBJECTS) $(unit_ip_address_v4_iterator_LDADD) $(LIBS) -unit/ip/address_v4_range.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/address_v4_range$(EXEEXT): $(unit_ip_address_v4_range_OBJECTS) $(unit_ip_address_v4_range_DEPENDENCIES) $(EXTRA_unit_ip_address_v4_range_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/address_v4_range$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_address_v4_range_OBJECTS) $(unit_ip_address_v4_range_LDADD) $(LIBS) -unit/ip/address_v6.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/address_v6$(EXEEXT): $(unit_ip_address_v6_OBJECTS) $(unit_ip_address_v6_DEPENDENCIES) $(EXTRA_unit_ip_address_v6_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/address_v6$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_address_v6_OBJECTS) $(unit_ip_address_v6_LDADD) $(LIBS) -unit/ip/address_v6_iterator.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/address_v6_iterator$(EXEEXT): $(unit_ip_address_v6_iterator_OBJECTS) $(unit_ip_address_v6_iterator_DEPENDENCIES) $(EXTRA_unit_ip_address_v6_iterator_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/address_v6_iterator$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_address_v6_iterator_OBJECTS) $(unit_ip_address_v6_iterator_LDADD) $(LIBS) -unit/ip/address_v6_range.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/address_v6_range$(EXEEXT): $(unit_ip_address_v6_range_OBJECTS) $(unit_ip_address_v6_range_DEPENDENCIES) $(EXTRA_unit_ip_address_v6_range_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/address_v6_range$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_address_v6_range_OBJECTS) $(unit_ip_address_v6_range_LDADD) $(LIBS) -unit/ip/basic_endpoint.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/basic_endpoint$(EXEEXT): $(unit_ip_basic_endpoint_OBJECTS) $(unit_ip_basic_endpoint_DEPENDENCIES) $(EXTRA_unit_ip_basic_endpoint_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/basic_endpoint$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_basic_endpoint_OBJECTS) $(unit_ip_basic_endpoint_LDADD) $(LIBS) -unit/ip/basic_resolver.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/basic_resolver$(EXEEXT): $(unit_ip_basic_resolver_OBJECTS) $(unit_ip_basic_resolver_DEPENDENCIES) $(EXTRA_unit_ip_basic_resolver_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/basic_resolver$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_basic_resolver_OBJECTS) $(unit_ip_basic_resolver_LDADD) $(LIBS) -unit/ip/basic_resolver_entry.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/basic_resolver_entry$(EXEEXT): $(unit_ip_basic_resolver_entry_OBJECTS) $(unit_ip_basic_resolver_entry_DEPENDENCIES) $(EXTRA_unit_ip_basic_resolver_entry_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/basic_resolver_entry$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_basic_resolver_entry_OBJECTS) $(unit_ip_basic_resolver_entry_LDADD) $(LIBS) -unit/ip/basic_resolver_iterator.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/basic_resolver_iterator$(EXEEXT): $(unit_ip_basic_resolver_iterator_OBJECTS) $(unit_ip_basic_resolver_iterator_DEPENDENCIES) $(EXTRA_unit_ip_basic_resolver_iterator_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/basic_resolver_iterator$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_basic_resolver_iterator_OBJECTS) $(unit_ip_basic_resolver_iterator_LDADD) $(LIBS) -unit/ip/basic_resolver_query.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/basic_resolver_query$(EXEEXT): $(unit_ip_basic_resolver_query_OBJECTS) $(unit_ip_basic_resolver_query_DEPENDENCIES) $(EXTRA_unit_ip_basic_resolver_query_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/basic_resolver_query$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_basic_resolver_query_OBJECTS) $(unit_ip_basic_resolver_query_LDADD) $(LIBS) -unit/ip/host_name.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/host_name$(EXEEXT): $(unit_ip_host_name_OBJECTS) $(unit_ip_host_name_DEPENDENCIES) $(EXTRA_unit_ip_host_name_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/host_name$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_host_name_OBJECTS) $(unit_ip_host_name_LDADD) $(LIBS) -unit/ip/icmp.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/icmp$(EXEEXT): $(unit_ip_icmp_OBJECTS) $(unit_ip_icmp_DEPENDENCIES) $(EXTRA_unit_ip_icmp_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/icmp$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_icmp_OBJECTS) $(unit_ip_icmp_LDADD) $(LIBS) -unit/ip/multicast.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/multicast$(EXEEXT): $(unit_ip_multicast_OBJECTS) $(unit_ip_multicast_DEPENDENCIES) $(EXTRA_unit_ip_multicast_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/multicast$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_multicast_OBJECTS) $(unit_ip_multicast_LDADD) $(LIBS) -unit/ip/network_v4.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/network_v4$(EXEEXT): $(unit_ip_network_v4_OBJECTS) $(unit_ip_network_v4_DEPENDENCIES) $(EXTRA_unit_ip_network_v4_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/network_v4$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_network_v4_OBJECTS) $(unit_ip_network_v4_LDADD) $(LIBS) -unit/ip/network_v6.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/network_v6$(EXEEXT): $(unit_ip_network_v6_OBJECTS) $(unit_ip_network_v6_DEPENDENCIES) $(EXTRA_unit_ip_network_v6_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/network_v6$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_network_v6_OBJECTS) $(unit_ip_network_v6_LDADD) $(LIBS) -unit/ip/resolver_query_base.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/resolver_query_base$(EXEEXT): $(unit_ip_resolver_query_base_OBJECTS) $(unit_ip_resolver_query_base_DEPENDENCIES) $(EXTRA_unit_ip_resolver_query_base_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/resolver_query_base$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_resolver_query_base_OBJECTS) $(unit_ip_resolver_query_base_LDADD) $(LIBS) -unit/ip/resolver_service.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/resolver_service$(EXEEXT): $(unit_ip_resolver_service_OBJECTS) $(unit_ip_resolver_service_DEPENDENCIES) $(EXTRA_unit_ip_resolver_service_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/resolver_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_resolver_service_OBJECTS) $(unit_ip_resolver_service_LDADD) $(LIBS) -unit/ip/tcp.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/tcp$(EXEEXT): $(unit_ip_tcp_OBJECTS) $(unit_ip_tcp_DEPENDENCIES) $(EXTRA_unit_ip_tcp_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/tcp$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_tcp_OBJECTS) $(unit_ip_tcp_LDADD) $(LIBS) -unit/ip/udp.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/udp$(EXEEXT): $(unit_ip_udp_OBJECTS) $(unit_ip_udp_DEPENDENCIES) $(EXTRA_unit_ip_udp_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/udp$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_udp_OBJECTS) $(unit_ip_udp_LDADD) $(LIBS) -unit/ip/unicast.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/unicast$(EXEEXT): $(unit_ip_unicast_OBJECTS) $(unit_ip_unicast_DEPENDENCIES) $(EXTRA_unit_ip_unicast_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/unicast$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_unicast_OBJECTS) $(unit_ip_unicast_LDADD) $(LIBS) -unit/ip/v6_only.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/v6_only$(EXEEXT): $(unit_ip_v6_only_OBJECTS) $(unit_ip_v6_only_DEPENDENCIES) $(EXTRA_unit_ip_v6_only_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/v6_only$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_v6_only_OBJECTS) $(unit_ip_v6_only_LDADD) $(LIBS) -unit/is_read_buffered.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/is_read_buffered$(EXEEXT): $(unit_is_read_buffered_OBJECTS) $(unit_is_read_buffered_DEPENDENCIES) $(EXTRA_unit_is_read_buffered_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/is_read_buffered$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_is_read_buffered_OBJECTS) $(unit_is_read_buffered_LDADD) $(LIBS) -unit/is_write_buffered.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/is_write_buffered$(EXEEXT): $(unit_is_write_buffered_OBJECTS) $(unit_is_write_buffered_DEPENDENCIES) $(EXTRA_unit_is_write_buffered_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/is_write_buffered$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_is_write_buffered_OBJECTS) $(unit_is_write_buffered_LDADD) $(LIBS) -unit/local/$(am__dirstamp): - @$(MKDIR_P) unit/local - @: > unit/local/$(am__dirstamp) -unit/local/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/local/$(DEPDIR) - @: > unit/local/$(DEPDIR)/$(am__dirstamp) -unit/local/basic_endpoint.$(OBJEXT): unit/local/$(am__dirstamp) \ - unit/local/$(DEPDIR)/$(am__dirstamp) - -unit/local/basic_endpoint$(EXEEXT): $(unit_local_basic_endpoint_OBJECTS) $(unit_local_basic_endpoint_DEPENDENCIES) $(EXTRA_unit_local_basic_endpoint_DEPENDENCIES) unit/local/$(am__dirstamp) - @rm -f unit/local/basic_endpoint$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_local_basic_endpoint_OBJECTS) $(unit_local_basic_endpoint_LDADD) $(LIBS) -unit/local/connect_pair.$(OBJEXT): unit/local/$(am__dirstamp) \ - unit/local/$(DEPDIR)/$(am__dirstamp) - -unit/local/connect_pair$(EXEEXT): $(unit_local_connect_pair_OBJECTS) $(unit_local_connect_pair_DEPENDENCIES) $(EXTRA_unit_local_connect_pair_DEPENDENCIES) unit/local/$(am__dirstamp) - @rm -f unit/local/connect_pair$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_local_connect_pair_OBJECTS) $(unit_local_connect_pair_LDADD) $(LIBS) -unit/local/datagram_protocol.$(OBJEXT): unit/local/$(am__dirstamp) \ - unit/local/$(DEPDIR)/$(am__dirstamp) - -unit/local/datagram_protocol$(EXEEXT): $(unit_local_datagram_protocol_OBJECTS) $(unit_local_datagram_protocol_DEPENDENCIES) $(EXTRA_unit_local_datagram_protocol_DEPENDENCIES) unit/local/$(am__dirstamp) - @rm -f unit/local/datagram_protocol$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_local_datagram_protocol_OBJECTS) $(unit_local_datagram_protocol_LDADD) $(LIBS) -unit/local/stream_protocol.$(OBJEXT): unit/local/$(am__dirstamp) \ - unit/local/$(DEPDIR)/$(am__dirstamp) - -unit/local/stream_protocol$(EXEEXT): $(unit_local_stream_protocol_OBJECTS) $(unit_local_stream_protocol_DEPENDENCIES) $(EXTRA_unit_local_stream_protocol_DEPENDENCIES) unit/local/$(am__dirstamp) - @rm -f unit/local/stream_protocol$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_local_stream_protocol_OBJECTS) $(unit_local_stream_protocol_LDADD) $(LIBS) -unit/packaged_task.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/packaged_task$(EXEEXT): $(unit_packaged_task_OBJECTS) $(unit_packaged_task_DEPENDENCIES) $(EXTRA_unit_packaged_task_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/packaged_task$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_packaged_task_OBJECTS) $(unit_packaged_task_LDADD) $(LIBS) -unit/placeholders.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/placeholders$(EXEEXT): $(unit_placeholders_OBJECTS) $(unit_placeholders_DEPENDENCIES) $(EXTRA_unit_placeholders_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/placeholders$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_placeholders_OBJECTS) $(unit_placeholders_LDADD) $(LIBS) -unit/posix/$(am__dirstamp): - @$(MKDIR_P) unit/posix - @: > unit/posix/$(am__dirstamp) -unit/posix/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/posix/$(DEPDIR) - @: > unit/posix/$(DEPDIR)/$(am__dirstamp) -unit/posix/basic_descriptor.$(OBJEXT): unit/posix/$(am__dirstamp) \ - unit/posix/$(DEPDIR)/$(am__dirstamp) - -unit/posix/basic_descriptor$(EXEEXT): $(unit_posix_basic_descriptor_OBJECTS) $(unit_posix_basic_descriptor_DEPENDENCIES) $(EXTRA_unit_posix_basic_descriptor_DEPENDENCIES) unit/posix/$(am__dirstamp) - @rm -f unit/posix/basic_descriptor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_posix_basic_descriptor_OBJECTS) $(unit_posix_basic_descriptor_LDADD) $(LIBS) -unit/posix/basic_stream_descriptor.$(OBJEXT): \ - unit/posix/$(am__dirstamp) \ - unit/posix/$(DEPDIR)/$(am__dirstamp) - -unit/posix/basic_stream_descriptor$(EXEEXT): $(unit_posix_basic_stream_descriptor_OBJECTS) $(unit_posix_basic_stream_descriptor_DEPENDENCIES) $(EXTRA_unit_posix_basic_stream_descriptor_DEPENDENCIES) unit/posix/$(am__dirstamp) - @rm -f unit/posix/basic_stream_descriptor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_posix_basic_stream_descriptor_OBJECTS) $(unit_posix_basic_stream_descriptor_LDADD) $(LIBS) -unit/posix/descriptor.$(OBJEXT): unit/posix/$(am__dirstamp) \ - unit/posix/$(DEPDIR)/$(am__dirstamp) - -unit/posix/descriptor$(EXEEXT): $(unit_posix_descriptor_OBJECTS) $(unit_posix_descriptor_DEPENDENCIES) $(EXTRA_unit_posix_descriptor_DEPENDENCIES) unit/posix/$(am__dirstamp) - @rm -f unit/posix/descriptor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_posix_descriptor_OBJECTS) $(unit_posix_descriptor_LDADD) $(LIBS) -unit/posix/descriptor_base.$(OBJEXT): unit/posix/$(am__dirstamp) \ - unit/posix/$(DEPDIR)/$(am__dirstamp) - -unit/posix/descriptor_base$(EXEEXT): $(unit_posix_descriptor_base_OBJECTS) $(unit_posix_descriptor_base_DEPENDENCIES) $(EXTRA_unit_posix_descriptor_base_DEPENDENCIES) unit/posix/$(am__dirstamp) - @rm -f unit/posix/descriptor_base$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_posix_descriptor_base_OBJECTS) $(unit_posix_descriptor_base_LDADD) $(LIBS) -unit/posix/stream_descriptor.$(OBJEXT): unit/posix/$(am__dirstamp) \ - unit/posix/$(DEPDIR)/$(am__dirstamp) - -unit/posix/stream_descriptor$(EXEEXT): $(unit_posix_stream_descriptor_OBJECTS) $(unit_posix_stream_descriptor_DEPENDENCIES) $(EXTRA_unit_posix_stream_descriptor_DEPENDENCIES) unit/posix/$(am__dirstamp) - @rm -f unit/posix/stream_descriptor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_posix_stream_descriptor_OBJECTS) $(unit_posix_stream_descriptor_LDADD) $(LIBS) -unit/posix/stream_descriptor_service.$(OBJEXT): \ - unit/posix/$(am__dirstamp) \ - unit/posix/$(DEPDIR)/$(am__dirstamp) - -unit/posix/stream_descriptor_service$(EXEEXT): $(unit_posix_stream_descriptor_service_OBJECTS) $(unit_posix_stream_descriptor_service_DEPENDENCIES) $(EXTRA_unit_posix_stream_descriptor_service_DEPENDENCIES) unit/posix/$(am__dirstamp) - @rm -f unit/posix/stream_descriptor_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_posix_stream_descriptor_service_OBJECTS) $(unit_posix_stream_descriptor_service_LDADD) $(LIBS) -unit/post.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/post$(EXEEXT): $(unit_post_OBJECTS) $(unit_post_DEPENDENCIES) $(EXTRA_unit_post_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/post$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_post_OBJECTS) $(unit_post_LDADD) $(LIBS) -unit/raw_socket_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/raw_socket_service$(EXEEXT): $(unit_raw_socket_service_OBJECTS) $(unit_raw_socket_service_DEPENDENCIES) $(EXTRA_unit_raw_socket_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/raw_socket_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_raw_socket_service_OBJECTS) $(unit_raw_socket_service_LDADD) $(LIBS) -unit/read.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/read$(EXEEXT): $(unit_read_OBJECTS) $(unit_read_DEPENDENCIES) $(EXTRA_unit_read_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/read$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_read_OBJECTS) $(unit_read_LDADD) $(LIBS) -unit/read_at.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/read_at$(EXEEXT): $(unit_read_at_OBJECTS) $(unit_read_at_DEPENDENCIES) $(EXTRA_unit_read_at_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/read_at$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_read_at_OBJECTS) $(unit_read_at_LDADD) $(LIBS) -unit/read_until.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/read_until$(EXEEXT): $(unit_read_until_OBJECTS) $(unit_read_until_DEPENDENCIES) $(EXTRA_unit_read_until_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/read_until$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_read_until_OBJECTS) $(unit_read_until_LDADD) $(LIBS) -unit/seq_packet_socket_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/seq_packet_socket_service$(EXEEXT): $(unit_seq_packet_socket_service_OBJECTS) $(unit_seq_packet_socket_service_DEPENDENCIES) $(EXTRA_unit_seq_packet_socket_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/seq_packet_socket_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_seq_packet_socket_service_OBJECTS) $(unit_seq_packet_socket_service_LDADD) $(LIBS) -unit/serial_port.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/serial_port$(EXEEXT): $(unit_serial_port_OBJECTS) $(unit_serial_port_DEPENDENCIES) $(EXTRA_unit_serial_port_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/serial_port$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_serial_port_OBJECTS) $(unit_serial_port_LDADD) $(LIBS) -unit/serial_port_base.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/serial_port_base$(EXEEXT): $(unit_serial_port_base_OBJECTS) $(unit_serial_port_base_DEPENDENCIES) $(EXTRA_unit_serial_port_base_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/serial_port_base$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_serial_port_base_OBJECTS) $(unit_serial_port_base_LDADD) $(LIBS) -unit/serial_port_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/serial_port_service$(EXEEXT): $(unit_serial_port_service_OBJECTS) $(unit_serial_port_service_DEPENDENCIES) $(EXTRA_unit_serial_port_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/serial_port_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_serial_port_service_OBJECTS) $(unit_serial_port_service_LDADD) $(LIBS) -unit/signal_set.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/signal_set$(EXEEXT): $(unit_signal_set_OBJECTS) $(unit_signal_set_DEPENDENCIES) $(EXTRA_unit_signal_set_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/signal_set$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_signal_set_OBJECTS) $(unit_signal_set_LDADD) $(LIBS) -unit/signal_set_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/signal_set_service$(EXEEXT): $(unit_signal_set_service_OBJECTS) $(unit_signal_set_service_DEPENDENCIES) $(EXTRA_unit_signal_set_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/signal_set_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_signal_set_service_OBJECTS) $(unit_signal_set_service_LDADD) $(LIBS) -unit/socket_acceptor_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/socket_acceptor_service$(EXEEXT): $(unit_socket_acceptor_service_OBJECTS) $(unit_socket_acceptor_service_DEPENDENCIES) $(EXTRA_unit_socket_acceptor_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/socket_acceptor_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_socket_acceptor_service_OBJECTS) $(unit_socket_acceptor_service_LDADD) $(LIBS) -unit/socket_base.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/socket_base$(EXEEXT): $(unit_socket_base_OBJECTS) $(unit_socket_base_DEPENDENCIES) $(EXTRA_unit_socket_base_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/socket_base$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_socket_base_OBJECTS) $(unit_socket_base_LDADD) $(LIBS) -unit/ssl/$(am__dirstamp): - @$(MKDIR_P) unit/ssl - @: > unit/ssl/$(am__dirstamp) -unit/ssl/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/ssl/$(DEPDIR) - @: > unit/ssl/$(DEPDIR)/$(am__dirstamp) -unit/ssl/context.$(OBJEXT): unit/ssl/$(am__dirstamp) \ - unit/ssl/$(DEPDIR)/$(am__dirstamp) - -unit/ssl/context$(EXEEXT): $(unit_ssl_context_OBJECTS) $(unit_ssl_context_DEPENDENCIES) $(EXTRA_unit_ssl_context_DEPENDENCIES) unit/ssl/$(am__dirstamp) - @rm -f unit/ssl/context$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ssl_context_OBJECTS) $(unit_ssl_context_LDADD) $(LIBS) -unit/ssl/context_base.$(OBJEXT): unit/ssl/$(am__dirstamp) \ - unit/ssl/$(DEPDIR)/$(am__dirstamp) - -unit/ssl/context_base$(EXEEXT): $(unit_ssl_context_base_OBJECTS) $(unit_ssl_context_base_DEPENDENCIES) $(EXTRA_unit_ssl_context_base_DEPENDENCIES) unit/ssl/$(am__dirstamp) - @rm -f unit/ssl/context_base$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ssl_context_base_OBJECTS) $(unit_ssl_context_base_LDADD) $(LIBS) -unit/ssl/error.$(OBJEXT): unit/ssl/$(am__dirstamp) \ - unit/ssl/$(DEPDIR)/$(am__dirstamp) - -unit/ssl/error$(EXEEXT): $(unit_ssl_error_OBJECTS) $(unit_ssl_error_DEPENDENCIES) $(EXTRA_unit_ssl_error_DEPENDENCIES) unit/ssl/$(am__dirstamp) - @rm -f unit/ssl/error$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ssl_error_OBJECTS) $(unit_ssl_error_LDADD) $(LIBS) -unit/ssl/rfc2818_verification.$(OBJEXT): unit/ssl/$(am__dirstamp) \ - unit/ssl/$(DEPDIR)/$(am__dirstamp) - -unit/ssl/rfc2818_verification$(EXEEXT): $(unit_ssl_rfc2818_verification_OBJECTS) $(unit_ssl_rfc2818_verification_DEPENDENCIES) $(EXTRA_unit_ssl_rfc2818_verification_DEPENDENCIES) unit/ssl/$(am__dirstamp) - @rm -f unit/ssl/rfc2818_verification$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ssl_rfc2818_verification_OBJECTS) $(unit_ssl_rfc2818_verification_LDADD) $(LIBS) -unit/ssl/stream.$(OBJEXT): unit/ssl/$(am__dirstamp) \ - unit/ssl/$(DEPDIR)/$(am__dirstamp) - -unit/ssl/stream$(EXEEXT): $(unit_ssl_stream_OBJECTS) $(unit_ssl_stream_DEPENDENCIES) $(EXTRA_unit_ssl_stream_DEPENDENCIES) unit/ssl/$(am__dirstamp) - @rm -f unit/ssl/stream$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ssl_stream_OBJECTS) $(unit_ssl_stream_LDADD) $(LIBS) -unit/ssl/stream_base.$(OBJEXT): unit/ssl/$(am__dirstamp) \ - unit/ssl/$(DEPDIR)/$(am__dirstamp) - -unit/ssl/stream_base$(EXEEXT): $(unit_ssl_stream_base_OBJECTS) $(unit_ssl_stream_base_DEPENDENCIES) $(EXTRA_unit_ssl_stream_base_DEPENDENCIES) unit/ssl/$(am__dirstamp) - @rm -f unit/ssl/stream_base$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ssl_stream_base_OBJECTS) $(unit_ssl_stream_base_LDADD) $(LIBS) -unit/steady_timer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/steady_timer$(EXEEXT): $(unit_steady_timer_OBJECTS) $(unit_steady_timer_DEPENDENCIES) $(EXTRA_unit_steady_timer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/steady_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_steady_timer_OBJECTS) $(unit_steady_timer_LDADD) $(LIBS) -unit/strand.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/strand$(EXEEXT): $(unit_strand_OBJECTS) $(unit_strand_DEPENDENCIES) $(EXTRA_unit_strand_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/strand$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_strand_OBJECTS) $(unit_strand_LDADD) $(LIBS) -unit/stream_socket_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/stream_socket_service$(EXEEXT): $(unit_stream_socket_service_OBJECTS) $(unit_stream_socket_service_DEPENDENCIES) $(EXTRA_unit_stream_socket_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/stream_socket_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_stream_socket_service_OBJECTS) $(unit_stream_socket_service_LDADD) $(LIBS) -unit/streambuf.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/streambuf$(EXEEXT): $(unit_streambuf_OBJECTS) $(unit_streambuf_DEPENDENCIES) $(EXTRA_unit_streambuf_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/streambuf$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_streambuf_OBJECTS) $(unit_streambuf_LDADD) $(LIBS) -unit/system_context.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/system_context$(EXEEXT): $(unit_system_context_OBJECTS) $(unit_system_context_DEPENDENCIES) $(EXTRA_unit_system_context_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/system_context$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_system_context_OBJECTS) $(unit_system_context_LDADD) $(LIBS) -unit/system_executor.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/system_executor$(EXEEXT): $(unit_system_executor_OBJECTS) $(unit_system_executor_DEPENDENCIES) $(EXTRA_unit_system_executor_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/system_executor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_system_executor_OBJECTS) $(unit_system_executor_LDADD) $(LIBS) -unit/system_timer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/system_timer$(EXEEXT): $(unit_system_timer_OBJECTS) $(unit_system_timer_DEPENDENCIES) $(EXTRA_unit_system_timer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/system_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_system_timer_OBJECTS) $(unit_system_timer_LDADD) $(LIBS) -unit/thread.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/thread$(EXEEXT): $(unit_thread_OBJECTS) $(unit_thread_DEPENDENCIES) $(EXTRA_unit_thread_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/thread$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_thread_OBJECTS) $(unit_thread_LDADD) $(LIBS) -unit/time_traits.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/time_traits$(EXEEXT): $(unit_time_traits_OBJECTS) $(unit_time_traits_DEPENDENCIES) $(EXTRA_unit_time_traits_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/time_traits$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_time_traits_OBJECTS) $(unit_time_traits_LDADD) $(LIBS) -unit/ts/$(am__dirstamp): - @$(MKDIR_P) unit/ts - @: > unit/ts/$(am__dirstamp) -unit/ts/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/ts/$(DEPDIR) - @: > unit/ts/$(DEPDIR)/$(am__dirstamp) -unit/ts/buffer.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/buffer$(EXEEXT): $(unit_ts_buffer_OBJECTS) $(unit_ts_buffer_DEPENDENCIES) $(EXTRA_unit_ts_buffer_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/buffer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_buffer_OBJECTS) $(unit_ts_buffer_LDADD) $(LIBS) -unit/ts/executor.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/executor$(EXEEXT): $(unit_ts_executor_OBJECTS) $(unit_ts_executor_DEPENDENCIES) $(EXTRA_unit_ts_executor_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/executor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_executor_OBJECTS) $(unit_ts_executor_LDADD) $(LIBS) -unit/ts/internet.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/internet$(EXEEXT): $(unit_ts_internet_OBJECTS) $(unit_ts_internet_DEPENDENCIES) $(EXTRA_unit_ts_internet_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/internet$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_internet_OBJECTS) $(unit_ts_internet_LDADD) $(LIBS) -unit/ts/io_context.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/io_context$(EXEEXT): $(unit_ts_io_context_OBJECTS) $(unit_ts_io_context_DEPENDENCIES) $(EXTRA_unit_ts_io_context_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/io_context$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_io_context_OBJECTS) $(unit_ts_io_context_LDADD) $(LIBS) -unit/ts/net.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/net$(EXEEXT): $(unit_ts_net_OBJECTS) $(unit_ts_net_DEPENDENCIES) $(EXTRA_unit_ts_net_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/net$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_net_OBJECTS) $(unit_ts_net_LDADD) $(LIBS) -unit/ts/netfwd.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/netfwd$(EXEEXT): $(unit_ts_netfwd_OBJECTS) $(unit_ts_netfwd_DEPENDENCIES) $(EXTRA_unit_ts_netfwd_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/netfwd$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_netfwd_OBJECTS) $(unit_ts_netfwd_LDADD) $(LIBS) -unit/ts/socket.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/socket$(EXEEXT): $(unit_ts_socket_OBJECTS) $(unit_ts_socket_DEPENDENCIES) $(EXTRA_unit_ts_socket_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/socket$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_socket_OBJECTS) $(unit_ts_socket_LDADD) $(LIBS) -unit/ts/timer.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/timer$(EXEEXT): $(unit_ts_timer_OBJECTS) $(unit_ts_timer_DEPENDENCIES) $(EXTRA_unit_ts_timer_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_timer_OBJECTS) $(unit_ts_timer_LDADD) $(LIBS) -unit/use_future.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/use_future$(EXEEXT): $(unit_use_future_OBJECTS) $(unit_use_future_DEPENDENCIES) $(EXTRA_unit_use_future_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/use_future$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_use_future_OBJECTS) $(unit_use_future_LDADD) $(LIBS) -unit/uses_executor.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/uses_executor$(EXEEXT): $(unit_uses_executor_OBJECTS) $(unit_uses_executor_DEPENDENCIES) $(EXTRA_unit_uses_executor_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/uses_executor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_uses_executor_OBJECTS) $(unit_uses_executor_LDADD) $(LIBS) -unit/wait_traits.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/wait_traits$(EXEEXT): $(unit_wait_traits_OBJECTS) $(unit_wait_traits_DEPENDENCIES) $(EXTRA_unit_wait_traits_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/wait_traits$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_wait_traits_OBJECTS) $(unit_wait_traits_LDADD) $(LIBS) -unit/waitable_timer_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/waitable_timer_service$(EXEEXT): $(unit_waitable_timer_service_OBJECTS) $(unit_waitable_timer_service_DEPENDENCIES) $(EXTRA_unit_waitable_timer_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/waitable_timer_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_waitable_timer_service_OBJECTS) $(unit_waitable_timer_service_LDADD) $(LIBS) -unit/windows/$(am__dirstamp): - @$(MKDIR_P) unit/windows - @: > unit/windows/$(am__dirstamp) -unit/windows/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/windows/$(DEPDIR) - @: > unit/windows/$(DEPDIR)/$(am__dirstamp) -unit/windows/basic_handle.$(OBJEXT): unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/basic_handle$(EXEEXT): $(unit_windows_basic_handle_OBJECTS) $(unit_windows_basic_handle_DEPENDENCIES) $(EXTRA_unit_windows_basic_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/basic_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_basic_handle_OBJECTS) $(unit_windows_basic_handle_LDADD) $(LIBS) -unit/windows/basic_object_handle.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/basic_object_handle$(EXEEXT): $(unit_windows_basic_object_handle_OBJECTS) $(unit_windows_basic_object_handle_DEPENDENCIES) $(EXTRA_unit_windows_basic_object_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/basic_object_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_basic_object_handle_OBJECTS) $(unit_windows_basic_object_handle_LDADD) $(LIBS) -unit/windows/basic_random_access_handle.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/basic_random_access_handle$(EXEEXT): $(unit_windows_basic_random_access_handle_OBJECTS) $(unit_windows_basic_random_access_handle_DEPENDENCIES) $(EXTRA_unit_windows_basic_random_access_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/basic_random_access_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_basic_random_access_handle_OBJECTS) $(unit_windows_basic_random_access_handle_LDADD) $(LIBS) -unit/windows/basic_stream_handle.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/basic_stream_handle$(EXEEXT): $(unit_windows_basic_stream_handle_OBJECTS) $(unit_windows_basic_stream_handle_DEPENDENCIES) $(EXTRA_unit_windows_basic_stream_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/basic_stream_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_basic_stream_handle_OBJECTS) $(unit_windows_basic_stream_handle_LDADD) $(LIBS) -unit/windows/object_handle.$(OBJEXT): unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/object_handle$(EXEEXT): $(unit_windows_object_handle_OBJECTS) $(unit_windows_object_handle_DEPENDENCIES) $(EXTRA_unit_windows_object_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/object_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_object_handle_OBJECTS) $(unit_windows_object_handle_LDADD) $(LIBS) -unit/windows/object_handle_service.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/object_handle_service$(EXEEXT): $(unit_windows_object_handle_service_OBJECTS) $(unit_windows_object_handle_service_DEPENDENCIES) $(EXTRA_unit_windows_object_handle_service_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/object_handle_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_object_handle_service_OBJECTS) $(unit_windows_object_handle_service_LDADD) $(LIBS) -unit/windows/overlapped_handle.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/overlapped_handle$(EXEEXT): $(unit_windows_overlapped_handle_OBJECTS) $(unit_windows_overlapped_handle_DEPENDENCIES) $(EXTRA_unit_windows_overlapped_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/overlapped_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_overlapped_handle_OBJECTS) $(unit_windows_overlapped_handle_LDADD) $(LIBS) -unit/windows/overlapped_ptr.$(OBJEXT): unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/overlapped_ptr$(EXEEXT): $(unit_windows_overlapped_ptr_OBJECTS) $(unit_windows_overlapped_ptr_DEPENDENCIES) $(EXTRA_unit_windows_overlapped_ptr_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/overlapped_ptr$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_overlapped_ptr_OBJECTS) $(unit_windows_overlapped_ptr_LDADD) $(LIBS) -unit/windows/random_access_handle.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/random_access_handle$(EXEEXT): $(unit_windows_random_access_handle_OBJECTS) $(unit_windows_random_access_handle_DEPENDENCIES) $(EXTRA_unit_windows_random_access_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/random_access_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_random_access_handle_OBJECTS) $(unit_windows_random_access_handle_LDADD) $(LIBS) -unit/windows/random_access_handle_service.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/random_access_handle_service$(EXEEXT): $(unit_windows_random_access_handle_service_OBJECTS) $(unit_windows_random_access_handle_service_DEPENDENCIES) $(EXTRA_unit_windows_random_access_handle_service_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/random_access_handle_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_random_access_handle_service_OBJECTS) $(unit_windows_random_access_handle_service_LDADD) $(LIBS) -unit/windows/stream_handle.$(OBJEXT): unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/stream_handle$(EXEEXT): $(unit_windows_stream_handle_OBJECTS) $(unit_windows_stream_handle_DEPENDENCIES) $(EXTRA_unit_windows_stream_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/stream_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_stream_handle_OBJECTS) $(unit_windows_stream_handle_LDADD) $(LIBS) -unit/windows/stream_handle_service.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/stream_handle_service$(EXEEXT): $(unit_windows_stream_handle_service_OBJECTS) $(unit_windows_stream_handle_service_DEPENDENCIES) $(EXTRA_unit_windows_stream_handle_service_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/stream_handle_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_stream_handle_service_OBJECTS) $(unit_windows_stream_handle_service_LDADD) $(LIBS) -unit/write.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/write$(EXEEXT): $(unit_write_OBJECTS) $(unit_write_DEPENDENCIES) $(EXTRA_unit_write_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/write$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_write_OBJECTS) $(unit_write_LDADD) $(LIBS) -unit/write_at.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/write_at$(EXEEXT): $(unit_write_at_OBJECTS) $(unit_write_at_DEPENDENCIES) $(EXTRA_unit_write_at_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/write_at$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_write_at_OBJECTS) $(unit_write_at_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f ../*.$(OBJEXT) - -rm -f latency/*.$(OBJEXT) - -rm -f performance/*.$(OBJEXT) - -rm -f unit/*.$(OBJEXT) - -rm -f unit/generic/*.$(OBJEXT) - -rm -f unit/ip/*.$(OBJEXT) - -rm -f unit/local/*.$(OBJEXT) - -rm -f unit/posix/*.$(OBJEXT) - -rm -f unit/ssl/*.$(OBJEXT) - -rm -f unit/ts/*.$(OBJEXT) - -rm -f unit/windows/*.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@../$(DEPDIR)/asio.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@../$(DEPDIR)/asio_ssl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@latency/$(DEPDIR)/tcp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@latency/$(DEPDIR)/tcp_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@latency/$(DEPDIR)/udp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@latency/$(DEPDIR)/udp_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@performance/$(DEPDIR)/client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@performance/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/associated_allocator.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/associated_executor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/async_result.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_datagram_socket.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_deadline_timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_raw_socket.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_seq_packet_socket.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_serial_port.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_signal_set.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_socket_acceptor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_stream_socket.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_streambuf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_waitable_timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/bind_executor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffered_read_stream.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffered_stream.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffered_write_stream.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffers_iterator.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/completion_condition.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/connect.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/coroutine.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/datagram_socket_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/deadline_timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/deadline_timer_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/defer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/dispatch.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/error.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/execution_context.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/executor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/executor_work_guard.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/high_resolution_timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/io_context.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/is_read_buffered.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/is_write_buffered.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/packaged_task.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/placeholders.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/post.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/raw_socket_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/read.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/read_at.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/read_until.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/seq_packet_socket_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/serial_port.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/serial_port_base.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/serial_port_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/signal_set.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/signal_set_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/socket_acceptor_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/socket_base.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/steady_timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/strand.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/stream_socket_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/streambuf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/system_context.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/system_executor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/system_timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/thread.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/time_traits.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/use_future.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/uses_executor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/wait_traits.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/waitable_timer_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/write.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/write_at.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/generic/$(DEPDIR)/basic_endpoint.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/generic/$(DEPDIR)/datagram_protocol.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/generic/$(DEPDIR)/raw_protocol.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/generic/$(DEPDIR)/seq_packet_protocol.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/generic/$(DEPDIR)/stream_protocol.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/address.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/address_v4.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/address_v4_iterator.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/address_v4_range.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/address_v6.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/address_v6_iterator.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/address_v6_range.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/basic_endpoint.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/basic_resolver.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/basic_resolver_entry.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/basic_resolver_iterator.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/basic_resolver_query.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/host_name.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/icmp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/multicast.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/network_v4.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/network_v6.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/resolver_query_base.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/resolver_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/tcp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/udp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/unicast.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/v6_only.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/basic_endpoint.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/connect_pair.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/datagram_protocol.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/stream_protocol.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/basic_descriptor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/basic_stream_descriptor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/descriptor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/descriptor_base.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/stream_descriptor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/stream_descriptor_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ssl/$(DEPDIR)/context.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ssl/$(DEPDIR)/context_base.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ssl/$(DEPDIR)/error.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ssl/$(DEPDIR)/rfc2818_verification.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ssl/$(DEPDIR)/stream.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ssl/$(DEPDIR)/stream_base.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/buffer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/executor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/internet.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/io_context.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/net.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/netfwd.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/socket.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/basic_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/basic_object_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/basic_random_access_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/basic_stream_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/object_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/object_handle_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/overlapped_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/overlapped_ptr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/random_access_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/random_access_handle_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/stream_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/stream_handle_service.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.cpp.o: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -unit/associated_allocator.log: unit/associated_allocator$(EXEEXT) - @p='unit/associated_allocator$(EXEEXT)'; \ - b='unit/associated_allocator'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/associated_executor.log: unit/associated_executor$(EXEEXT) - @p='unit/associated_executor$(EXEEXT)'; \ - b='unit/associated_executor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/async_result.log: unit/async_result$(EXEEXT) - @p='unit/async_result$(EXEEXT)'; \ - b='unit/async_result'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_datagram_socket.log: unit/basic_datagram_socket$(EXEEXT) - @p='unit/basic_datagram_socket$(EXEEXT)'; \ - b='unit/basic_datagram_socket'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_deadline_timer.log: unit/basic_deadline_timer$(EXEEXT) - @p='unit/basic_deadline_timer$(EXEEXT)'; \ - b='unit/basic_deadline_timer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_raw_socket.log: unit/basic_raw_socket$(EXEEXT) - @p='unit/basic_raw_socket$(EXEEXT)'; \ - b='unit/basic_raw_socket'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_seq_packet_socket.log: unit/basic_seq_packet_socket$(EXEEXT) - @p='unit/basic_seq_packet_socket$(EXEEXT)'; \ - b='unit/basic_seq_packet_socket'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_serial_port.log: unit/basic_serial_port$(EXEEXT) - @p='unit/basic_serial_port$(EXEEXT)'; \ - b='unit/basic_serial_port'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_signal_set.log: unit/basic_signal_set$(EXEEXT) - @p='unit/basic_signal_set$(EXEEXT)'; \ - b='unit/basic_signal_set'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_socket_acceptor.log: unit/basic_socket_acceptor$(EXEEXT) - @p='unit/basic_socket_acceptor$(EXEEXT)'; \ - b='unit/basic_socket_acceptor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_stream_socket.log: unit/basic_stream_socket$(EXEEXT) - @p='unit/basic_stream_socket$(EXEEXT)'; \ - b='unit/basic_stream_socket'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_streambuf.log: unit/basic_streambuf$(EXEEXT) - @p='unit/basic_streambuf$(EXEEXT)'; \ - b='unit/basic_streambuf'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_waitable_timer.log: unit/basic_waitable_timer$(EXEEXT) - @p='unit/basic_waitable_timer$(EXEEXT)'; \ - b='unit/basic_waitable_timer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/bind_executor.log: unit/bind_executor$(EXEEXT) - @p='unit/bind_executor$(EXEEXT)'; \ - b='unit/bind_executor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/buffered_read_stream.log: unit/buffered_read_stream$(EXEEXT) - @p='unit/buffered_read_stream$(EXEEXT)'; \ - b='unit/buffered_read_stream'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/buffered_stream.log: unit/buffered_stream$(EXEEXT) - @p='unit/buffered_stream$(EXEEXT)'; \ - b='unit/buffered_stream'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/buffered_write_stream.log: unit/buffered_write_stream$(EXEEXT) - @p='unit/buffered_write_stream$(EXEEXT)'; \ - b='unit/buffered_write_stream'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/buffer.log: unit/buffer$(EXEEXT) - @p='unit/buffer$(EXEEXT)'; \ - b='unit/buffer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/buffers_iterator.log: unit/buffers_iterator$(EXEEXT) - @p='unit/buffers_iterator$(EXEEXT)'; \ - b='unit/buffers_iterator'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/completion_condition.log: unit/completion_condition$(EXEEXT) - @p='unit/completion_condition$(EXEEXT)'; \ - b='unit/completion_condition'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/connect.log: unit/connect$(EXEEXT) - @p='unit/connect$(EXEEXT)'; \ - b='unit/connect'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/datagram_socket_service.log: unit/datagram_socket_service$(EXEEXT) - @p='unit/datagram_socket_service$(EXEEXT)'; \ - b='unit/datagram_socket_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/deadline_timer_service.log: unit/deadline_timer_service$(EXEEXT) - @p='unit/deadline_timer_service$(EXEEXT)'; \ - b='unit/deadline_timer_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/deadline_timer.log: unit/deadline_timer$(EXEEXT) - @p='unit/deadline_timer$(EXEEXT)'; \ - b='unit/deadline_timer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/defer.log: unit/defer$(EXEEXT) - @p='unit/defer$(EXEEXT)'; \ - b='unit/defer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/dispatch.log: unit/dispatch$(EXEEXT) - @p='unit/dispatch$(EXEEXT)'; \ - b='unit/dispatch'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/error.log: unit/error$(EXEEXT) - @p='unit/error$(EXEEXT)'; \ - b='unit/error'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution_context.log: unit/execution_context$(EXEEXT) - @p='unit/execution_context$(EXEEXT)'; \ - b='unit/execution_context'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/executor.log: unit/executor$(EXEEXT) - @p='unit/executor$(EXEEXT)'; \ - b='unit/executor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/executor_work_guard.log: unit/executor_work_guard$(EXEEXT) - @p='unit/executor_work_guard$(EXEEXT)'; \ - b='unit/executor_work_guard'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/high_resolution_timer.log: unit/high_resolution_timer$(EXEEXT) - @p='unit/high_resolution_timer$(EXEEXT)'; \ - b='unit/high_resolution_timer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/io_context.log: unit/io_context$(EXEEXT) - @p='unit/io_context$(EXEEXT)'; \ - b='unit/io_context'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/address.log: unit/ip/address$(EXEEXT) - @p='unit/ip/address$(EXEEXT)'; \ - b='unit/ip/address'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/address_v4.log: unit/ip/address_v4$(EXEEXT) - @p='unit/ip/address_v4$(EXEEXT)'; \ - b='unit/ip/address_v4'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/address_v4_iterator.log: unit/ip/address_v4_iterator$(EXEEXT) - @p='unit/ip/address_v4_iterator$(EXEEXT)'; \ - b='unit/ip/address_v4_iterator'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/address_v4_range.log: unit/ip/address_v4_range$(EXEEXT) - @p='unit/ip/address_v4_range$(EXEEXT)'; \ - b='unit/ip/address_v4_range'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/address_v6.log: unit/ip/address_v6$(EXEEXT) - @p='unit/ip/address_v6$(EXEEXT)'; \ - b='unit/ip/address_v6'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/address_v6_iterator.log: unit/ip/address_v6_iterator$(EXEEXT) - @p='unit/ip/address_v6_iterator$(EXEEXT)'; \ - b='unit/ip/address_v6_iterator'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/address_v6_range.log: unit/ip/address_v6_range$(EXEEXT) - @p='unit/ip/address_v6_range$(EXEEXT)'; \ - b='unit/ip/address_v6_range'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/basic_endpoint.log: unit/ip/basic_endpoint$(EXEEXT) - @p='unit/ip/basic_endpoint$(EXEEXT)'; \ - b='unit/ip/basic_endpoint'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/basic_resolver.log: unit/ip/basic_resolver$(EXEEXT) - @p='unit/ip/basic_resolver$(EXEEXT)'; \ - b='unit/ip/basic_resolver'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/basic_resolver_entry.log: unit/ip/basic_resolver_entry$(EXEEXT) - @p='unit/ip/basic_resolver_entry$(EXEEXT)'; \ - b='unit/ip/basic_resolver_entry'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/basic_resolver_iterator.log: unit/ip/basic_resolver_iterator$(EXEEXT) - @p='unit/ip/basic_resolver_iterator$(EXEEXT)'; \ - b='unit/ip/basic_resolver_iterator'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/basic_resolver_query.log: unit/ip/basic_resolver_query$(EXEEXT) - @p='unit/ip/basic_resolver_query$(EXEEXT)'; \ - b='unit/ip/basic_resolver_query'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/host_name.log: unit/ip/host_name$(EXEEXT) - @p='unit/ip/host_name$(EXEEXT)'; \ - b='unit/ip/host_name'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/icmp.log: unit/ip/icmp$(EXEEXT) - @p='unit/ip/icmp$(EXEEXT)'; \ - b='unit/ip/icmp'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/multicast.log: unit/ip/multicast$(EXEEXT) - @p='unit/ip/multicast$(EXEEXT)'; \ - b='unit/ip/multicast'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/network_v4.log: unit/ip/network_v4$(EXEEXT) - @p='unit/ip/network_v4$(EXEEXT)'; \ - b='unit/ip/network_v4'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/network_v6.log: unit/ip/network_v6$(EXEEXT) - @p='unit/ip/network_v6$(EXEEXT)'; \ - b='unit/ip/network_v6'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/resolver_query_base.log: unit/ip/resolver_query_base$(EXEEXT) - @p='unit/ip/resolver_query_base$(EXEEXT)'; \ - b='unit/ip/resolver_query_base'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/resolver_service.log: unit/ip/resolver_service$(EXEEXT) - @p='unit/ip/resolver_service$(EXEEXT)'; \ - b='unit/ip/resolver_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/tcp.log: unit/ip/tcp$(EXEEXT) - @p='unit/ip/tcp$(EXEEXT)'; \ - b='unit/ip/tcp'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/udp.log: unit/ip/udp$(EXEEXT) - @p='unit/ip/udp$(EXEEXT)'; \ - b='unit/ip/udp'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/unicast.log: unit/ip/unicast$(EXEEXT) - @p='unit/ip/unicast$(EXEEXT)'; \ - b='unit/ip/unicast'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/v6_only.log: unit/ip/v6_only$(EXEEXT) - @p='unit/ip/v6_only$(EXEEXT)'; \ - b='unit/ip/v6_only'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/is_read_buffered.log: unit/is_read_buffered$(EXEEXT) - @p='unit/is_read_buffered$(EXEEXT)'; \ - b='unit/is_read_buffered'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/is_write_buffered.log: unit/is_write_buffered$(EXEEXT) - @p='unit/is_write_buffered$(EXEEXT)'; \ - b='unit/is_write_buffered'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/local/basic_endpoint.log: unit/local/basic_endpoint$(EXEEXT) - @p='unit/local/basic_endpoint$(EXEEXT)'; \ - b='unit/local/basic_endpoint'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/local/connect_pair.log: unit/local/connect_pair$(EXEEXT) - @p='unit/local/connect_pair$(EXEEXT)'; \ - b='unit/local/connect_pair'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/local/datagram_protocol.log: unit/local/datagram_protocol$(EXEEXT) - @p='unit/local/datagram_protocol$(EXEEXT)'; \ - b='unit/local/datagram_protocol'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/local/stream_protocol.log: unit/local/stream_protocol$(EXEEXT) - @p='unit/local/stream_protocol$(EXEEXT)'; \ - b='unit/local/stream_protocol'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/packaged_task.log: unit/packaged_task$(EXEEXT) - @p='unit/packaged_task$(EXEEXT)'; \ - b='unit/packaged_task'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/placeholders.log: unit/placeholders$(EXEEXT) - @p='unit/placeholders$(EXEEXT)'; \ - b='unit/placeholders'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/posix/basic_descriptor.log: unit/posix/basic_descriptor$(EXEEXT) - @p='unit/posix/basic_descriptor$(EXEEXT)'; \ - b='unit/posix/basic_descriptor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/posix/basic_stream_descriptor.log: unit/posix/basic_stream_descriptor$(EXEEXT) - @p='unit/posix/basic_stream_descriptor$(EXEEXT)'; \ - b='unit/posix/basic_stream_descriptor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/posix/descriptor.log: unit/posix/descriptor$(EXEEXT) - @p='unit/posix/descriptor$(EXEEXT)'; \ - b='unit/posix/descriptor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/posix/descriptor_base.log: unit/posix/descriptor_base$(EXEEXT) - @p='unit/posix/descriptor_base$(EXEEXT)'; \ - b='unit/posix/descriptor_base'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/posix/stream_descriptor.log: unit/posix/stream_descriptor$(EXEEXT) - @p='unit/posix/stream_descriptor$(EXEEXT)'; \ - b='unit/posix/stream_descriptor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/posix/stream_descriptor_service.log: unit/posix/stream_descriptor_service$(EXEEXT) - @p='unit/posix/stream_descriptor_service$(EXEEXT)'; \ - b='unit/posix/stream_descriptor_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/post.log: unit/post$(EXEEXT) - @p='unit/post$(EXEEXT)'; \ - b='unit/post'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/raw_socket_service.log: unit/raw_socket_service$(EXEEXT) - @p='unit/raw_socket_service$(EXEEXT)'; \ - b='unit/raw_socket_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/read.log: unit/read$(EXEEXT) - @p='unit/read$(EXEEXT)'; \ - b='unit/read'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/read_at.log: unit/read_at$(EXEEXT) - @p='unit/read_at$(EXEEXT)'; \ - b='unit/read_at'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/read_until.log: unit/read_until$(EXEEXT) - @p='unit/read_until$(EXEEXT)'; \ - b='unit/read_until'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/seq_packet_socket_service.log: unit/seq_packet_socket_service$(EXEEXT) - @p='unit/seq_packet_socket_service$(EXEEXT)'; \ - b='unit/seq_packet_socket_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/serial_port.log: unit/serial_port$(EXEEXT) - @p='unit/serial_port$(EXEEXT)'; \ - b='unit/serial_port'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/serial_port_base.log: unit/serial_port_base$(EXEEXT) - @p='unit/serial_port_base$(EXEEXT)'; \ - b='unit/serial_port_base'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/serial_port_service.log: unit/serial_port_service$(EXEEXT) - @p='unit/serial_port_service$(EXEEXT)'; \ - b='unit/serial_port_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/signal_set.log: unit/signal_set$(EXEEXT) - @p='unit/signal_set$(EXEEXT)'; \ - b='unit/signal_set'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/signal_set_service.log: unit/signal_set_service$(EXEEXT) - @p='unit/signal_set_service$(EXEEXT)'; \ - b='unit/signal_set_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/socket_acceptor_service.log: unit/socket_acceptor_service$(EXEEXT) - @p='unit/socket_acceptor_service$(EXEEXT)'; \ - b='unit/socket_acceptor_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/socket_base.log: unit/socket_base$(EXEEXT) - @p='unit/socket_base$(EXEEXT)'; \ - b='unit/socket_base'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/steady_timer.log: unit/steady_timer$(EXEEXT) - @p='unit/steady_timer$(EXEEXT)'; \ - b='unit/steady_timer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/strand.log: unit/strand$(EXEEXT) - @p='unit/strand$(EXEEXT)'; \ - b='unit/strand'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/stream_socket_service.log: unit/stream_socket_service$(EXEEXT) - @p='unit/stream_socket_service$(EXEEXT)'; \ - b='unit/stream_socket_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/streambuf.log: unit/streambuf$(EXEEXT) - @p='unit/streambuf$(EXEEXT)'; \ - b='unit/streambuf'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/system_context.log: unit/system_context$(EXEEXT) - @p='unit/system_context$(EXEEXT)'; \ - b='unit/system_context'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/system_executor.log: unit/system_executor$(EXEEXT) - @p='unit/system_executor$(EXEEXT)'; \ - b='unit/system_executor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/system_timer.log: unit/system_timer$(EXEEXT) - @p='unit/system_timer$(EXEEXT)'; \ - b='unit/system_timer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/thread.log: unit/thread$(EXEEXT) - @p='unit/thread$(EXEEXT)'; \ - b='unit/thread'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/time_traits.log: unit/time_traits$(EXEEXT) - @p='unit/time_traits$(EXEEXT)'; \ - b='unit/time_traits'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/buffer.log: unit/ts/buffer$(EXEEXT) - @p='unit/ts/buffer$(EXEEXT)'; \ - b='unit/ts/buffer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/executor.log: unit/ts/executor$(EXEEXT) - @p='unit/ts/executor$(EXEEXT)'; \ - b='unit/ts/executor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/internet.log: unit/ts/internet$(EXEEXT) - @p='unit/ts/internet$(EXEEXT)'; \ - b='unit/ts/internet'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/io_context.log: unit/ts/io_context$(EXEEXT) - @p='unit/ts/io_context$(EXEEXT)'; \ - b='unit/ts/io_context'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/net.log: unit/ts/net$(EXEEXT) - @p='unit/ts/net$(EXEEXT)'; \ - b='unit/ts/net'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/netfwd.log: unit/ts/netfwd$(EXEEXT) - @p='unit/ts/netfwd$(EXEEXT)'; \ - b='unit/ts/netfwd'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/socket.log: unit/ts/socket$(EXEEXT) - @p='unit/ts/socket$(EXEEXT)'; \ - b='unit/ts/socket'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/timer.log: unit/ts/timer$(EXEEXT) - @p='unit/ts/timer$(EXEEXT)'; \ - b='unit/ts/timer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/use_future.log: unit/use_future$(EXEEXT) - @p='unit/use_future$(EXEEXT)'; \ - b='unit/use_future'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/uses_executor.log: unit/uses_executor$(EXEEXT) - @p='unit/uses_executor$(EXEEXT)'; \ - b='unit/uses_executor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/wait_traits.log: unit/wait_traits$(EXEEXT) - @p='unit/wait_traits$(EXEEXT)'; \ - b='unit/wait_traits'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/waitable_timer_service.log: unit/waitable_timer_service$(EXEEXT) - @p='unit/waitable_timer_service$(EXEEXT)'; \ - b='unit/waitable_timer_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/basic_handle.log: unit/windows/basic_handle$(EXEEXT) - @p='unit/windows/basic_handle$(EXEEXT)'; \ - b='unit/windows/basic_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/basic_object_handle.log: unit/windows/basic_object_handle$(EXEEXT) - @p='unit/windows/basic_object_handle$(EXEEXT)'; \ - b='unit/windows/basic_object_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/basic_random_access_handle.log: unit/windows/basic_random_access_handle$(EXEEXT) - @p='unit/windows/basic_random_access_handle$(EXEEXT)'; \ - b='unit/windows/basic_random_access_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/basic_stream_handle.log: unit/windows/basic_stream_handle$(EXEEXT) - @p='unit/windows/basic_stream_handle$(EXEEXT)'; \ - b='unit/windows/basic_stream_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/object_handle.log: unit/windows/object_handle$(EXEEXT) - @p='unit/windows/object_handle$(EXEEXT)'; \ - b='unit/windows/object_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/object_handle_service.log: unit/windows/object_handle_service$(EXEEXT) - @p='unit/windows/object_handle_service$(EXEEXT)'; \ - b='unit/windows/object_handle_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/overlapped_handle.log: unit/windows/overlapped_handle$(EXEEXT) - @p='unit/windows/overlapped_handle$(EXEEXT)'; \ - b='unit/windows/overlapped_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/overlapped_ptr.log: unit/windows/overlapped_ptr$(EXEEXT) - @p='unit/windows/overlapped_ptr$(EXEEXT)'; \ - b='unit/windows/overlapped_ptr'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/random_access_handle.log: unit/windows/random_access_handle$(EXEEXT) - @p='unit/windows/random_access_handle$(EXEEXT)'; \ - b='unit/windows/random_access_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/random_access_handle_service.log: unit/windows/random_access_handle_service$(EXEEXT) - @p='unit/windows/random_access_handle_service$(EXEEXT)'; \ - b='unit/windows/random_access_handle_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/stream_handle.log: unit/windows/stream_handle$(EXEEXT) - @p='unit/windows/stream_handle$(EXEEXT)'; \ - b='unit/windows/stream_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/stream_handle_service.log: unit/windows/stream_handle_service$(EXEEXT) - @p='unit/windows/stream_handle_service$(EXEEXT)'; \ - b='unit/windows/stream_handle_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/write.log: unit/write$(EXEEXT) - @p='unit/write$(EXEEXT)'; \ - b='unit/write'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/write_at.log: unit/write_at$(EXEEXT) - @p='unit/write_at$(EXEEXT)'; \ - b='unit/write_at'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ssl/context_base.log: unit/ssl/context_base$(EXEEXT) - @p='unit/ssl/context_base$(EXEEXT)'; \ - b='unit/ssl/context_base'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ssl/context.log: unit/ssl/context$(EXEEXT) - @p='unit/ssl/context$(EXEEXT)'; \ - b='unit/ssl/context'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ssl/error.log: unit/ssl/error$(EXEEXT) - @p='unit/ssl/error$(EXEEXT)'; \ - b='unit/ssl/error'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ssl/rfc2818_verification.log: unit/ssl/rfc2818_verification$(EXEEXT) - @p='unit/ssl/rfc2818_verification$(EXEEXT)'; \ - b='unit/ssl/rfc2818_verification'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ssl/stream_base.log: unit/ssl/stream_base$(EXEEXT) - @p='unit/ssl/stream_base$(EXEEXT)'; \ - b='unit/ssl/stream_base'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ssl/stream.log: unit/ssl/stream$(EXEEXT) - @p='unit/ssl/stream$(EXEEXT)'; \ - b='unit/ssl/stream'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(PROGRAMS) $(LIBRARIES) $(HEADERS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f ../$(DEPDIR)/$(am__dirstamp) - -rm -f ../$(am__dirstamp) - -rm -f latency/$(DEPDIR)/$(am__dirstamp) - -rm -f latency/$(am__dirstamp) - -rm -f performance/$(DEPDIR)/$(am__dirstamp) - -rm -f performance/$(am__dirstamp) - -rm -f unit/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/$(am__dirstamp) - -rm -f unit/generic/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/generic/$(am__dirstamp) - -rm -f unit/ip/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/ip/$(am__dirstamp) - -rm -f unit/local/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/local/$(am__dirstamp) - -rm -f unit/posix/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/posix/$(am__dirstamp) - -rm -f unit/ssl/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/ssl/$(am__dirstamp) - -rm -f unit/ts/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/ts/$(am__dirstamp) - -rm -f unit/windows/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/windows/$(am__dirstamp) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-noinstLIBRARIES \ - clean-noinstPROGRAMS mostlyclean-am - -distclean: distclean-am - -rm -f ../$(DEPDIR)/asio.Po - -rm -f ../$(DEPDIR)/asio_ssl.Po - -rm -f latency/$(DEPDIR)/tcp_client.Po - -rm -f latency/$(DEPDIR)/tcp_server.Po - -rm -f latency/$(DEPDIR)/udp_client.Po - -rm -f latency/$(DEPDIR)/udp_server.Po - -rm -f performance/$(DEPDIR)/client.Po - -rm -f performance/$(DEPDIR)/server.Po - -rm -f unit/$(DEPDIR)/associated_allocator.Po - -rm -f unit/$(DEPDIR)/associated_executor.Po - -rm -f unit/$(DEPDIR)/async_result.Po - -rm -f unit/$(DEPDIR)/basic_datagram_socket.Po - -rm -f unit/$(DEPDIR)/basic_deadline_timer.Po - -rm -f unit/$(DEPDIR)/basic_raw_socket.Po - -rm -f unit/$(DEPDIR)/basic_seq_packet_socket.Po - -rm -f unit/$(DEPDIR)/basic_serial_port.Po - -rm -f unit/$(DEPDIR)/basic_signal_set.Po - -rm -f unit/$(DEPDIR)/basic_socket_acceptor.Po - -rm -f unit/$(DEPDIR)/basic_stream_socket.Po - -rm -f unit/$(DEPDIR)/basic_streambuf.Po - -rm -f unit/$(DEPDIR)/basic_waitable_timer.Po - -rm -f unit/$(DEPDIR)/bind_executor.Po - -rm -f unit/$(DEPDIR)/buffer.Po - -rm -f unit/$(DEPDIR)/buffered_read_stream.Po - -rm -f unit/$(DEPDIR)/buffered_stream.Po - -rm -f unit/$(DEPDIR)/buffered_write_stream.Po - -rm -f unit/$(DEPDIR)/buffers_iterator.Po - -rm -f unit/$(DEPDIR)/completion_condition.Po - -rm -f unit/$(DEPDIR)/connect.Po - -rm -f unit/$(DEPDIR)/coroutine.Po - -rm -f unit/$(DEPDIR)/datagram_socket_service.Po - -rm -f unit/$(DEPDIR)/deadline_timer.Po - -rm -f unit/$(DEPDIR)/deadline_timer_service.Po - -rm -f unit/$(DEPDIR)/defer.Po - -rm -f unit/$(DEPDIR)/dispatch.Po - -rm -f unit/$(DEPDIR)/error.Po - -rm -f unit/$(DEPDIR)/execution_context.Po - -rm -f unit/$(DEPDIR)/executor.Po - -rm -f unit/$(DEPDIR)/executor_work_guard.Po - -rm -f unit/$(DEPDIR)/high_resolution_timer.Po - -rm -f unit/$(DEPDIR)/io_context.Po - -rm -f unit/$(DEPDIR)/is_read_buffered.Po - -rm -f unit/$(DEPDIR)/is_write_buffered.Po - -rm -f unit/$(DEPDIR)/packaged_task.Po - -rm -f unit/$(DEPDIR)/placeholders.Po - -rm -f unit/$(DEPDIR)/post.Po - -rm -f unit/$(DEPDIR)/raw_socket_service.Po - -rm -f unit/$(DEPDIR)/read.Po - -rm -f unit/$(DEPDIR)/read_at.Po - -rm -f unit/$(DEPDIR)/read_until.Po - -rm -f unit/$(DEPDIR)/seq_packet_socket_service.Po - -rm -f unit/$(DEPDIR)/serial_port.Po - -rm -f unit/$(DEPDIR)/serial_port_base.Po - -rm -f unit/$(DEPDIR)/serial_port_service.Po - -rm -f unit/$(DEPDIR)/signal_set.Po - -rm -f unit/$(DEPDIR)/signal_set_service.Po - -rm -f unit/$(DEPDIR)/socket_acceptor_service.Po - -rm -f unit/$(DEPDIR)/socket_base.Po - -rm -f unit/$(DEPDIR)/steady_timer.Po - -rm -f unit/$(DEPDIR)/strand.Po - -rm -f unit/$(DEPDIR)/stream_socket_service.Po - -rm -f unit/$(DEPDIR)/streambuf.Po - -rm -f unit/$(DEPDIR)/system_context.Po - -rm -f unit/$(DEPDIR)/system_executor.Po - -rm -f unit/$(DEPDIR)/system_timer.Po - -rm -f unit/$(DEPDIR)/thread.Po - -rm -f unit/$(DEPDIR)/time_traits.Po - -rm -f unit/$(DEPDIR)/use_future.Po - -rm -f unit/$(DEPDIR)/uses_executor.Po - -rm -f unit/$(DEPDIR)/wait_traits.Po - -rm -f unit/$(DEPDIR)/waitable_timer_service.Po - -rm -f unit/$(DEPDIR)/write.Po - -rm -f unit/$(DEPDIR)/write_at.Po - -rm -f unit/generic/$(DEPDIR)/basic_endpoint.Po - -rm -f unit/generic/$(DEPDIR)/datagram_protocol.Po - -rm -f unit/generic/$(DEPDIR)/raw_protocol.Po - -rm -f unit/generic/$(DEPDIR)/seq_packet_protocol.Po - -rm -f unit/generic/$(DEPDIR)/stream_protocol.Po - -rm -f unit/ip/$(DEPDIR)/address.Po - -rm -f unit/ip/$(DEPDIR)/address_v4.Po - -rm -f unit/ip/$(DEPDIR)/address_v4_iterator.Po - -rm -f unit/ip/$(DEPDIR)/address_v4_range.Po - -rm -f unit/ip/$(DEPDIR)/address_v6.Po - -rm -f unit/ip/$(DEPDIR)/address_v6_iterator.Po - -rm -f unit/ip/$(DEPDIR)/address_v6_range.Po - -rm -f unit/ip/$(DEPDIR)/basic_endpoint.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver_entry.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver_iterator.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver_query.Po - -rm -f unit/ip/$(DEPDIR)/host_name.Po - -rm -f unit/ip/$(DEPDIR)/icmp.Po - -rm -f unit/ip/$(DEPDIR)/multicast.Po - -rm -f unit/ip/$(DEPDIR)/network_v4.Po - -rm -f unit/ip/$(DEPDIR)/network_v6.Po - -rm -f unit/ip/$(DEPDIR)/resolver_query_base.Po - -rm -f unit/ip/$(DEPDIR)/resolver_service.Po - -rm -f unit/ip/$(DEPDIR)/tcp.Po - -rm -f unit/ip/$(DEPDIR)/udp.Po - -rm -f unit/ip/$(DEPDIR)/unicast.Po - -rm -f unit/ip/$(DEPDIR)/v6_only.Po - -rm -f unit/local/$(DEPDIR)/basic_endpoint.Po - -rm -f unit/local/$(DEPDIR)/connect_pair.Po - -rm -f unit/local/$(DEPDIR)/datagram_protocol.Po - -rm -f unit/local/$(DEPDIR)/stream_protocol.Po - -rm -f unit/posix/$(DEPDIR)/basic_descriptor.Po - -rm -f unit/posix/$(DEPDIR)/basic_stream_descriptor.Po - -rm -f unit/posix/$(DEPDIR)/descriptor.Po - -rm -f unit/posix/$(DEPDIR)/descriptor_base.Po - -rm -f unit/posix/$(DEPDIR)/stream_descriptor.Po - -rm -f unit/posix/$(DEPDIR)/stream_descriptor_service.Po - -rm -f unit/ssl/$(DEPDIR)/context.Po - -rm -f unit/ssl/$(DEPDIR)/context_base.Po - -rm -f unit/ssl/$(DEPDIR)/error.Po - -rm -f unit/ssl/$(DEPDIR)/rfc2818_verification.Po - -rm -f unit/ssl/$(DEPDIR)/stream.Po - -rm -f unit/ssl/$(DEPDIR)/stream_base.Po - -rm -f unit/ts/$(DEPDIR)/buffer.Po - -rm -f unit/ts/$(DEPDIR)/executor.Po - -rm -f unit/ts/$(DEPDIR)/internet.Po - -rm -f unit/ts/$(DEPDIR)/io_context.Po - -rm -f unit/ts/$(DEPDIR)/net.Po - -rm -f unit/ts/$(DEPDIR)/netfwd.Po - -rm -f unit/ts/$(DEPDIR)/socket.Po - -rm -f unit/ts/$(DEPDIR)/timer.Po - -rm -f unit/windows/$(DEPDIR)/basic_handle.Po - -rm -f unit/windows/$(DEPDIR)/basic_object_handle.Po - -rm -f unit/windows/$(DEPDIR)/basic_random_access_handle.Po - -rm -f unit/windows/$(DEPDIR)/basic_stream_handle.Po - -rm -f unit/windows/$(DEPDIR)/object_handle.Po - -rm -f unit/windows/$(DEPDIR)/object_handle_service.Po - -rm -f unit/windows/$(DEPDIR)/overlapped_handle.Po - -rm -f unit/windows/$(DEPDIR)/overlapped_ptr.Po - -rm -f unit/windows/$(DEPDIR)/random_access_handle.Po - -rm -f unit/windows/$(DEPDIR)/random_access_handle_service.Po - -rm -f unit/windows/$(DEPDIR)/stream_handle.Po - -rm -f unit/windows/$(DEPDIR)/stream_handle_service.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ../$(DEPDIR)/asio.Po - -rm -f ../$(DEPDIR)/asio_ssl.Po - -rm -f latency/$(DEPDIR)/tcp_client.Po - -rm -f latency/$(DEPDIR)/tcp_server.Po - -rm -f latency/$(DEPDIR)/udp_client.Po - -rm -f latency/$(DEPDIR)/udp_server.Po - -rm -f performance/$(DEPDIR)/client.Po - -rm -f performance/$(DEPDIR)/server.Po - -rm -f unit/$(DEPDIR)/associated_allocator.Po - -rm -f unit/$(DEPDIR)/associated_executor.Po - -rm -f unit/$(DEPDIR)/async_result.Po - -rm -f unit/$(DEPDIR)/basic_datagram_socket.Po - -rm -f unit/$(DEPDIR)/basic_deadline_timer.Po - -rm -f unit/$(DEPDIR)/basic_raw_socket.Po - -rm -f unit/$(DEPDIR)/basic_seq_packet_socket.Po - -rm -f unit/$(DEPDIR)/basic_serial_port.Po - -rm -f unit/$(DEPDIR)/basic_signal_set.Po - -rm -f unit/$(DEPDIR)/basic_socket_acceptor.Po - -rm -f unit/$(DEPDIR)/basic_stream_socket.Po - -rm -f unit/$(DEPDIR)/basic_streambuf.Po - -rm -f unit/$(DEPDIR)/basic_waitable_timer.Po - -rm -f unit/$(DEPDIR)/bind_executor.Po - -rm -f unit/$(DEPDIR)/buffer.Po - -rm -f unit/$(DEPDIR)/buffered_read_stream.Po - -rm -f unit/$(DEPDIR)/buffered_stream.Po - -rm -f unit/$(DEPDIR)/buffered_write_stream.Po - -rm -f unit/$(DEPDIR)/buffers_iterator.Po - -rm -f unit/$(DEPDIR)/completion_condition.Po - -rm -f unit/$(DEPDIR)/connect.Po - -rm -f unit/$(DEPDIR)/coroutine.Po - -rm -f unit/$(DEPDIR)/datagram_socket_service.Po - -rm -f unit/$(DEPDIR)/deadline_timer.Po - -rm -f unit/$(DEPDIR)/deadline_timer_service.Po - -rm -f unit/$(DEPDIR)/defer.Po - -rm -f unit/$(DEPDIR)/dispatch.Po - -rm -f unit/$(DEPDIR)/error.Po - -rm -f unit/$(DEPDIR)/execution_context.Po - -rm -f unit/$(DEPDIR)/executor.Po - -rm -f unit/$(DEPDIR)/executor_work_guard.Po - -rm -f unit/$(DEPDIR)/high_resolution_timer.Po - -rm -f unit/$(DEPDIR)/io_context.Po - -rm -f unit/$(DEPDIR)/is_read_buffered.Po - -rm -f unit/$(DEPDIR)/is_write_buffered.Po - -rm -f unit/$(DEPDIR)/packaged_task.Po - -rm -f unit/$(DEPDIR)/placeholders.Po - -rm -f unit/$(DEPDIR)/post.Po - -rm -f unit/$(DEPDIR)/raw_socket_service.Po - -rm -f unit/$(DEPDIR)/read.Po - -rm -f unit/$(DEPDIR)/read_at.Po - -rm -f unit/$(DEPDIR)/read_until.Po - -rm -f unit/$(DEPDIR)/seq_packet_socket_service.Po - -rm -f unit/$(DEPDIR)/serial_port.Po - -rm -f unit/$(DEPDIR)/serial_port_base.Po - -rm -f unit/$(DEPDIR)/serial_port_service.Po - -rm -f unit/$(DEPDIR)/signal_set.Po - -rm -f unit/$(DEPDIR)/signal_set_service.Po - -rm -f unit/$(DEPDIR)/socket_acceptor_service.Po - -rm -f unit/$(DEPDIR)/socket_base.Po - -rm -f unit/$(DEPDIR)/steady_timer.Po - -rm -f unit/$(DEPDIR)/strand.Po - -rm -f unit/$(DEPDIR)/stream_socket_service.Po - -rm -f unit/$(DEPDIR)/streambuf.Po - -rm -f unit/$(DEPDIR)/system_context.Po - -rm -f unit/$(DEPDIR)/system_executor.Po - -rm -f unit/$(DEPDIR)/system_timer.Po - -rm -f unit/$(DEPDIR)/thread.Po - -rm -f unit/$(DEPDIR)/time_traits.Po - -rm -f unit/$(DEPDIR)/use_future.Po - -rm -f unit/$(DEPDIR)/uses_executor.Po - -rm -f unit/$(DEPDIR)/wait_traits.Po - -rm -f unit/$(DEPDIR)/waitable_timer_service.Po - -rm -f unit/$(DEPDIR)/write.Po - -rm -f unit/$(DEPDIR)/write_at.Po - -rm -f unit/generic/$(DEPDIR)/basic_endpoint.Po - -rm -f unit/generic/$(DEPDIR)/datagram_protocol.Po - -rm -f unit/generic/$(DEPDIR)/raw_protocol.Po - -rm -f unit/generic/$(DEPDIR)/seq_packet_protocol.Po - -rm -f unit/generic/$(DEPDIR)/stream_protocol.Po - -rm -f unit/ip/$(DEPDIR)/address.Po - -rm -f unit/ip/$(DEPDIR)/address_v4.Po - -rm -f unit/ip/$(DEPDIR)/address_v4_iterator.Po - -rm -f unit/ip/$(DEPDIR)/address_v4_range.Po - -rm -f unit/ip/$(DEPDIR)/address_v6.Po - -rm -f unit/ip/$(DEPDIR)/address_v6_iterator.Po - -rm -f unit/ip/$(DEPDIR)/address_v6_range.Po - -rm -f unit/ip/$(DEPDIR)/basic_endpoint.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver_entry.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver_iterator.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver_query.Po - -rm -f unit/ip/$(DEPDIR)/host_name.Po - -rm -f unit/ip/$(DEPDIR)/icmp.Po - -rm -f unit/ip/$(DEPDIR)/multicast.Po - -rm -f unit/ip/$(DEPDIR)/network_v4.Po - -rm -f unit/ip/$(DEPDIR)/network_v6.Po - -rm -f unit/ip/$(DEPDIR)/resolver_query_base.Po - -rm -f unit/ip/$(DEPDIR)/resolver_service.Po - -rm -f unit/ip/$(DEPDIR)/tcp.Po - -rm -f unit/ip/$(DEPDIR)/udp.Po - -rm -f unit/ip/$(DEPDIR)/unicast.Po - -rm -f unit/ip/$(DEPDIR)/v6_only.Po - -rm -f unit/local/$(DEPDIR)/basic_endpoint.Po - -rm -f unit/local/$(DEPDIR)/connect_pair.Po - -rm -f unit/local/$(DEPDIR)/datagram_protocol.Po - -rm -f unit/local/$(DEPDIR)/stream_protocol.Po - -rm -f unit/posix/$(DEPDIR)/basic_descriptor.Po - -rm -f unit/posix/$(DEPDIR)/basic_stream_descriptor.Po - -rm -f unit/posix/$(DEPDIR)/descriptor.Po - -rm -f unit/posix/$(DEPDIR)/descriptor_base.Po - -rm -f unit/posix/$(DEPDIR)/stream_descriptor.Po - -rm -f unit/posix/$(DEPDIR)/stream_descriptor_service.Po - -rm -f unit/ssl/$(DEPDIR)/context.Po - -rm -f unit/ssl/$(DEPDIR)/context_base.Po - -rm -f unit/ssl/$(DEPDIR)/error.Po - -rm -f unit/ssl/$(DEPDIR)/rfc2818_verification.Po - -rm -f unit/ssl/$(DEPDIR)/stream.Po - -rm -f unit/ssl/$(DEPDIR)/stream_base.Po - -rm -f unit/ts/$(DEPDIR)/buffer.Po - -rm -f unit/ts/$(DEPDIR)/executor.Po - -rm -f unit/ts/$(DEPDIR)/internet.Po - -rm -f unit/ts/$(DEPDIR)/io_context.Po - -rm -f unit/ts/$(DEPDIR)/net.Po - -rm -f unit/ts/$(DEPDIR)/netfwd.Po - -rm -f unit/ts/$(DEPDIR)/socket.Po - -rm -f unit/ts/$(DEPDIR)/timer.Po - -rm -f unit/windows/$(DEPDIR)/basic_handle.Po - -rm -f unit/windows/$(DEPDIR)/basic_object_handle.Po - -rm -f unit/windows/$(DEPDIR)/basic_random_access_handle.Po - -rm -f unit/windows/$(DEPDIR)/basic_stream_handle.Po - -rm -f unit/windows/$(DEPDIR)/object_handle.Po - -rm -f unit/windows/$(DEPDIR)/object_handle_service.Po - -rm -f unit/windows/$(DEPDIR)/overlapped_handle.Po - -rm -f unit/windows/$(DEPDIR)/overlapped_ptr.Po - -rm -f unit/windows/$(DEPDIR)/random_access_handle.Po - -rm -f unit/windows/$(DEPDIR)/random_access_handle_service.Po - -rm -f unit/windows/$(DEPDIR)/stream_handle.Po - -rm -f unit/windows/$(DEPDIR)/stream_handle_service.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic \ - clean-noinstLIBRARIES clean-noinstPROGRAMS cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/src/tests/latency/allocator.hpp b/Sources/Vendor/asio/src/tests/latency/allocator.hpp deleted file mode 100644 index c79af45..0000000 --- a/Sources/Vendor/asio/src/tests/latency/allocator.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// allocator.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 ALLOCATOR_HPP -#define ALLOCATOR_HPP - -#include - -// Represents a single connection from a client. -class allocator -{ -public: - allocator() - : in_use_(false) - { - } - - void* allocate(std::size_t n) - { - if (in_use_ || n >= 1024) - return ::operator new(n); - in_use_ = true; - return static_cast(&space_); - } - - void deallocate(void* p) - { - if (p != static_cast(&space_)) - ::operator delete(p); - else - in_use_ = false; - } - -private: - allocator(const allocator&); - allocator& operator=(const allocator&); - - // Whether the reusable memory space is currently in use. - bool in_use_; - - // The reusable memory space made available by the allocator. - boost::aligned_storage<1024>::type space_; -}; - -#endif // ALLOCATOR_HPP diff --git a/Sources/Vendor/asio/src/tests/latency/high_res_clock.hpp b/Sources/Vendor/asio/src/tests/latency/high_res_clock.hpp deleted file mode 100644 index 642d52b..0000000 --- a/Sources/Vendor/asio/src/tests/latency/high_res_clock.hpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// high_res_clock.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 HIGH_RES_CLOCK_HPP -#define HIGH_RES_CLOCK_HPP - -#include -#include - -#if defined(ASIO_WINDOWS) - -inline boost::uint64_t high_res_clock() -{ - LARGE_INTEGER i; - QueryPerformanceCounter(&i); - return i.QuadPart; -} - -#elif defined(__GNUC__) && defined(__x86_64__) - -inline boost::uint64_t high_res_clock() -{ - unsigned long low, high; - __asm__ __volatile__("rdtsc" : "=a" (low), "=d" (high)); - return (((boost::uint64_t)high) << 32) | low; -} - -#else - -#include - -inline boost::uint64_t high_res_clock() -{ - boost::posix_time::ptime now = - boost::posix_time::microsec_clock::universal_time(); - - boost::posix_time::ptime epoch( - boost::gregorian::date(1970, 1, 1), - boost::posix_time::seconds(0)); - - return (now - epoch).total_microseconds(); -} - -#endif - -#endif // HIGH_RES_CLOCK_HPP diff --git a/Sources/Vendor/asio/src/tests/latency/tcp_client.cpp b/Sources/Vendor/asio/src/tests/latency/tcp_client.cpp deleted file mode 100644 index 38ac423..0000000 --- a/Sources/Vendor/asio/src/tests/latency/tcp_client.cpp +++ /dev/null @@ -1,124 +0,0 @@ -// -// tcp_client.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include "high_res_clock.hpp" - -using asio::ip::tcp; -using boost::posix_time::ptime; -using boost::posix_time::microsec_clock; - -const int num_samples = 100000; - -struct transfer_all -{ - typedef std::size_t result_type; - std::size_t operator()(const asio::error_code& ec, std::size_t) - { - return (ec && ec != asio::error::would_block) ? 0 : ~0; - } -}; - -int main(int argc, char* argv[]) -{ - if (argc != 6) - { - std::fprintf(stderr, - "Usage: tcp_client " - " {spin|block}\n"); - return 1; - } - - const char* ip = argv[1]; - unsigned short port = static_cast(std::atoi(argv[2])); - int num_connections = std::atoi(argv[3]); - std::size_t buf_size = static_cast(std::atoi(argv[4])); - bool spin = (std::strcmp(argv[5], "spin") == 0); - - asio::io_context io_context; - std::vector > sockets; - - for (int i = 0; i < num_connections; ++i) - { - boost::shared_ptr s(new tcp::socket(io_context)); - - tcp::endpoint target(asio::ip::make_address(ip), port); - s->connect(target); - - s->set_option(tcp::no_delay(true)); - - if (spin) - { - s->non_blocking(true); - } - - sockets.push_back(s); - } - - std::vector write_buf(buf_size); - std::vector read_buf(buf_size); - - ptime start = microsec_clock::universal_time(); - boost::uint64_t start_hr = high_res_clock(); - - boost::uint64_t samples[num_samples]; - for (int i = 0; i < num_samples; ++i) - { - tcp::socket& socket = *sockets[i % num_connections]; - - boost::uint64_t t = high_res_clock(); - - asio::error_code ec; - asio::write(socket, - asio::buffer(write_buf), - transfer_all(), ec); - - asio::read(socket, - asio::buffer(read_buf), - transfer_all(), ec); - - samples[i] = high_res_clock() - t; - } - - ptime stop = microsec_clock::universal_time(); - boost::uint64_t stop_hr = high_res_clock(); - boost::uint64_t elapsed_usec = (stop - start).total_microseconds(); - boost::uint64_t elapsed_hr = stop_hr - start_hr; - double scale = 1.0 * elapsed_usec / elapsed_hr; - - std::sort(samples, samples + num_samples); - std::printf(" 0.0%%\t%f\n", samples[0] * scale); - std::printf(" 0.1%%\t%f\n", samples[num_samples / 1000 - 1] * scale); - std::printf(" 1.0%%\t%f\n", samples[num_samples / 100 - 1] * scale); - std::printf(" 10.0%%\t%f\n", samples[num_samples / 10 - 1] * scale); - std::printf(" 20.0%%\t%f\n", samples[num_samples * 2 / 10 - 1] * scale); - std::printf(" 30.0%%\t%f\n", samples[num_samples * 3 / 10 - 1] * scale); - std::printf(" 40.0%%\t%f\n", samples[num_samples * 4 / 10 - 1] * scale); - std::printf(" 50.0%%\t%f\n", samples[num_samples * 5 / 10 - 1] * scale); - std::printf(" 60.0%%\t%f\n", samples[num_samples * 6 / 10 - 1] * scale); - std::printf(" 70.0%%\t%f\n", samples[num_samples * 7 / 10 - 1] * scale); - std::printf(" 80.0%%\t%f\n", samples[num_samples * 8 / 10 - 1] * scale); - std::printf(" 90.0%%\t%f\n", samples[num_samples * 9 / 10 - 1] * scale); - std::printf(" 99.0%%\t%f\n", samples[num_samples * 99 / 100 - 1] * scale); - std::printf(" 99.9%%\t%f\n", samples[num_samples * 999 / 1000 - 1] * scale); - std::printf("100.0%%\t%f\n", samples[num_samples - 1] * scale); - - double total = 0.0; - for (int i = 0; i < num_samples; ++i) total += samples[i] * scale; - std::printf(" mean\t%f\n", total / num_samples); -} diff --git a/Sources/Vendor/asio/src/tests/latency/tcp_server.cpp b/Sources/Vendor/asio/src/tests/latency/tcp_server.cpp deleted file mode 100644 index b981ce8..0000000 --- a/Sources/Vendor/asio/src/tests/latency/tcp_server.cpp +++ /dev/null @@ -1,114 +0,0 @@ -// -// tcp_server.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -#include - -class tcp_server : asio::coroutine -{ -public: - tcp_server(tcp::acceptor& acceptor, std::size_t buf_size) : - acceptor_(acceptor), - socket_(acceptor_.get_executor().context()), - buffer_(buf_size) - { - } - - void operator()(asio::error_code ec, std::size_t n = 0) - { - reenter (this) for (;;) - { - yield acceptor_.async_accept(socket_, ref(this)); - - while (!ec) - { - yield asio::async_read(socket_, - asio::buffer(buffer_), ref(this)); - - if (!ec) - { - for (std::size_t i = 0; i < n; ++i) buffer_[i] = ~buffer_[i]; - - yield asio::async_write(socket_, - asio::buffer(buffer_), ref(this)); - } - } - - socket_.close(); - } - } - - struct ref - { - explicit ref(tcp_server* p) - : p_(p) - { - } - - void operator()(asio::error_code ec, std::size_t n = 0) - { - (*p_)(ec, n); - } - - private: - tcp_server* p_; - }; - -private: - tcp::acceptor& acceptor_; - tcp::socket socket_; - std::vector buffer_; - tcp::endpoint sender_; -}; - -#include - -int main(int argc, char* argv[]) -{ - if (argc != 5) - { - std::fprintf(stderr, - "Usage: tcp_server " - " {spin|block}\n"); - return 1; - } - - unsigned short port = static_cast(std::atoi(argv[1])); - int max_connections = std::atoi(argv[2]); - std::size_t buf_size = std::atoi(argv[3]); - bool spin = (std::strcmp(argv[4], "spin") == 0); - - asio::io_context io_context(1); - tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4(), port)); - std::vector > servers; - - for (int i = 0; i < max_connections; ++i) - { - boost::shared_ptr s(new tcp_server(acceptor, buf_size)); - servers.push_back(s); - (*s)(asio::error_code()); - } - - if (spin) - for (;;) io_context.poll(); - else - io_context.run(); -} diff --git a/Sources/Vendor/asio/src/tests/latency/udp_client.cpp b/Sources/Vendor/asio/src/tests/latency/udp_client.cpp deleted file mode 100644 index dc0e492..0000000 --- a/Sources/Vendor/asio/src/tests/latency/udp_client.cpp +++ /dev/null @@ -1,104 +0,0 @@ -// -// udp_client.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include "high_res_clock.hpp" - -using asio::ip::udp; -using boost::posix_time::ptime; -using boost::posix_time::microsec_clock; - -const int num_samples = 100000; - -int main(int argc, char* argv[]) -{ - if (argc != 6) - { - std::fprintf(stderr, - "Usage: udp_client " - " {spin|block}\n"); - return 1; - } - - const char* ip = argv[1]; - unsigned short first_port = static_cast(std::atoi(argv[2])); - unsigned short num_ports = static_cast(std::atoi(argv[3])); - std::size_t buf_size = static_cast(std::atoi(argv[4])); - bool spin = (std::strcmp(argv[5], "spin") == 0); - - asio::io_context io_context; - - udp::socket socket(io_context, udp::endpoint(udp::v4(), 0)); - - if (spin) - { - socket.non_blocking(true); - } - - udp::endpoint target(asio::ip::make_address(ip), first_port); - unsigned short last_port = first_port + num_ports - 1; - std::vector write_buf(buf_size); - std::vector read_buf(buf_size); - - ptime start = microsec_clock::universal_time(); - boost::uint64_t start_hr = high_res_clock(); - - boost::uint64_t samples[num_samples]; - for (int i = 0; i < num_samples; ++i) - { - boost::uint64_t t = high_res_clock(); - - asio::error_code ec; - socket.send_to(asio::buffer(write_buf), target, 0, ec); - - do socket.receive(asio::buffer(read_buf), 0, ec); - while (ec == asio::error::would_block); - - samples[i] = high_res_clock() - t; - - if (target.port() == last_port) - target.port(first_port); - else - target.port(target.port() + 1); - } - - ptime stop = microsec_clock::universal_time(); - boost::uint64_t stop_hr = high_res_clock(); - boost::uint64_t elapsed_usec = (stop - start).total_microseconds(); - boost::uint64_t elapsed_hr = stop_hr - start_hr; - double scale = 1.0 * elapsed_usec / elapsed_hr; - - std::sort(samples, samples + num_samples); - std::printf(" 0.0%%\t%f\n", samples[0] * scale); - std::printf(" 0.1%%\t%f\n", samples[num_samples / 1000 - 1] * scale); - std::printf(" 1.0%%\t%f\n", samples[num_samples / 100 - 1] * scale); - std::printf(" 10.0%%\t%f\n", samples[num_samples / 10 - 1] * scale); - std::printf(" 20.0%%\t%f\n", samples[num_samples * 2 / 10 - 1] * scale); - std::printf(" 30.0%%\t%f\n", samples[num_samples * 3 / 10 - 1] * scale); - std::printf(" 40.0%%\t%f\n", samples[num_samples * 4 / 10 - 1] * scale); - std::printf(" 50.0%%\t%f\n", samples[num_samples * 5 / 10 - 1] * scale); - std::printf(" 60.0%%\t%f\n", samples[num_samples * 6 / 10 - 1] * scale); - std::printf(" 70.0%%\t%f\n", samples[num_samples * 7 / 10 - 1] * scale); - std::printf(" 80.0%%\t%f\n", samples[num_samples * 8 / 10 - 1] * scale); - std::printf(" 90.0%%\t%f\n", samples[num_samples * 9 / 10 - 1] * scale); - std::printf(" 99.0%%\t%f\n", samples[num_samples * 99 / 100 - 1] * scale); - std::printf(" 99.9%%\t%f\n", samples[num_samples * 999 / 1000 - 1] * scale); - std::printf("100.0%%\t%f\n", samples[num_samples - 1] * scale); - - double total = 0.0; - for (int i = 0; i < num_samples; ++i) total += samples[i] * scale; - std::printf(" mean\t%f\n", total / num_samples); -} diff --git a/Sources/Vendor/asio/src/tests/latency/udp_server.cpp b/Sources/Vendor/asio/src/tests/latency/udp_server.cpp deleted file mode 100644 index b4c7e1b..0000000 --- a/Sources/Vendor/asio/src/tests/latency/udp_server.cpp +++ /dev/null @@ -1,125 +0,0 @@ -// -// udp_server.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include -#include -#include -#include -#include -#include "allocator.hpp" - -using asio::ip::udp; - -#include - -class udp_server : asio::coroutine -{ -public: - udp_server(asio::io_context& io_context, - unsigned short port, std::size_t buf_size) : - socket_(io_context, udp::endpoint(udp::v4(), port)), - buffer_(buf_size) - { - } - - void operator()(asio::error_code ec, std::size_t n = 0) - { - reenter (this) for (;;) - { - yield socket_.async_receive_from( - asio::buffer(buffer_), - sender_, ref(this)); - - if (!ec) - { - for (std::size_t i = 0; i < n; ++i) buffer_[i] = ~buffer_[i]; - socket_.send_to(asio::buffer(buffer_, n), sender_, 0, ec); - } - } - } - - friend void* asio_handler_allocate(std::size_t n, udp_server* s) - { - return s->allocator_.allocate(n); - } - - friend void asio_handler_deallocate(void* p, std::size_t, udp_server* s) - { - s->allocator_.deallocate(p); - } - - struct ref - { - explicit ref(udp_server* p) - : p_(p) - { - } - - void operator()(asio::error_code ec, std::size_t n = 0) - { - (*p_)(ec, n); - } - - private: - udp_server* p_; - - friend void* asio_handler_allocate(std::size_t n, ref* r) - { - return asio_handler_allocate(n, r->p_); - } - - friend void asio_handler_deallocate(void* p, std::size_t n, ref* r) - { - asio_handler_deallocate(p, n, r->p_); - } - }; - -private: - udp::socket socket_; - std::vector buffer_; - udp::endpoint sender_; - allocator allocator_; -}; - -#include - -int main(int argc, char* argv[]) -{ - if (argc != 5) - { - std::fprintf(stderr, - "Usage: udp_server " - " {spin|block}\n"); - return 1; - } - - unsigned short first_port = static_cast(std::atoi(argv[1])); - unsigned short num_ports = static_cast(std::atoi(argv[2])); - std::size_t buf_size = std::atoi(argv[3]); - bool spin = (std::strcmp(argv[4], "spin") == 0); - - asio::io_context io_context(1); - std::vector > servers; - - for (unsigned short i = 0; i < num_ports; ++i) - { - unsigned short port = first_port + i; - boost::shared_ptr s(new udp_server(io_context, port, buf_size)); - servers.push_back(s); - (*s)(asio::error_code()); - } - - if (spin) - for (;;) io_context.poll(); - else - io_context.run(); -} diff --git a/Sources/Vendor/asio/src/tests/performance/client.cpp b/Sources/Vendor/asio/src/tests/performance/client.cpp deleted file mode 100644 index dd35c52..0000000 --- a/Sources/Vendor/asio/src/tests/performance/client.cpp +++ /dev/null @@ -1,286 +0,0 @@ -// -// client.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 "asio.hpp" -#include -#include -#include -#include -#include -#include -#include "handler_allocator.hpp" - -class stats -{ -public: - stats() - : mutex_(), - total_bytes_written_(0), - total_bytes_read_(0) - { - } - - void add(size_t bytes_written, size_t bytes_read) - { - asio::detail::mutex::scoped_lock lock(mutex_); - total_bytes_written_ += bytes_written; - total_bytes_read_ += bytes_read; - } - - void print() - { - asio::detail::mutex::scoped_lock lock(mutex_); - std::cout << total_bytes_written_ << " total bytes written\n"; - std::cout << total_bytes_read_ << " total bytes read\n"; - } - -private: - asio::detail::mutex mutex_; - size_t total_bytes_written_; - size_t total_bytes_read_; -}; - -class session -{ -public: - session(asio::io_context& ioc, size_t block_size, stats& s) - : strand_(ioc), - socket_(ioc), - block_size_(block_size), - read_data_(new char[block_size]), - read_data_length_(0), - write_data_(new char[block_size]), - unwritten_count_(0), - bytes_written_(0), - bytes_read_(0), - stats_(s) - { - for (size_t i = 0; i < block_size_; ++i) - write_data_[i] = static_cast(i % 128); - } - - ~session() - { - stats_.add(bytes_written_, bytes_read_); - - delete[] read_data_; - delete[] write_data_; - } - - void start(asio::ip::tcp::resolver::results_type endpoints) - { - asio::async_connect(socket_, endpoints, - asio::bind_executor(strand_, - boost::bind(&session::handle_connect, this, - asio::placeholders::error))); - } - - void stop() - { - asio::post(strand_, boost::bind(&session::close_socket, this)); - } - -private: - void handle_connect(const asio::error_code& err) - { - if (!err) - { - asio::error_code set_option_err; - asio::ip::tcp::no_delay no_delay(true); - socket_.set_option(no_delay, set_option_err); - if (!set_option_err) - { - ++unwritten_count_; - async_write(socket_, asio::buffer(write_data_, block_size_), - asio::bind_executor(strand_, - make_custom_alloc_handler(write_allocator_, - boost::bind(&session::handle_write, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)))); - socket_.async_read_some(asio::buffer(read_data_, block_size_), - asio::bind_executor(strand_, - make_custom_alloc_handler(read_allocator_, - boost::bind(&session::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)))); - } - } - } - - void handle_read(const asio::error_code& err, size_t length) - { - if (!err) - { - bytes_read_ += length; - - read_data_length_ = length; - ++unwritten_count_; - if (unwritten_count_ == 1) - { - std::swap(read_data_, write_data_); - async_write(socket_, asio::buffer(write_data_, read_data_length_), - asio::bind_executor(strand_, - make_custom_alloc_handler(write_allocator_, - boost::bind(&session::handle_write, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)))); - socket_.async_read_some(asio::buffer(read_data_, block_size_), - asio::bind_executor(strand_, - make_custom_alloc_handler(read_allocator_, - boost::bind(&session::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)))); - } - } - } - - void handle_write(const asio::error_code& err, size_t length) - { - if (!err && length > 0) - { - bytes_written_ += length; - - --unwritten_count_; - if (unwritten_count_ == 1) - { - std::swap(read_data_, write_data_); - async_write(socket_, asio::buffer(write_data_, read_data_length_), - asio::bind_executor(strand_, - make_custom_alloc_handler(write_allocator_, - boost::bind(&session::handle_write, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)))); - socket_.async_read_some(asio::buffer(read_data_, block_size_), - asio::bind_executor(strand_, - make_custom_alloc_handler(read_allocator_, - boost::bind(&session::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)))); - } - } - } - - void close_socket() - { - socket_.close(); - } - -private: - asio::io_context::strand strand_; - asio::ip::tcp::socket socket_; - size_t block_size_; - char* read_data_; - size_t read_data_length_; - char* write_data_; - int unwritten_count_; - size_t bytes_written_; - size_t bytes_read_; - stats& stats_; - handler_allocator read_allocator_; - handler_allocator write_allocator_; -}; - -class client -{ -public: - client(asio::io_context& ioc, - const asio::ip::tcp::resolver::results_type endpoints, - size_t block_size, size_t session_count, int timeout) - : io_context_(ioc), - stop_timer_(ioc), - sessions_(), - stats_() - { - stop_timer_.expires_after(asio::chrono::seconds(timeout)); - stop_timer_.async_wait(boost::bind(&client::handle_timeout, this)); - - for (size_t i = 0; i < session_count; ++i) - { - session* new_session = new session(io_context_, block_size, stats_); - new_session->start(endpoints); - sessions_.push_back(new_session); - } - } - - ~client() - { - while (!sessions_.empty()) - { - delete sessions_.front(); - sessions_.pop_front(); - } - - stats_.print(); - } - - void handle_timeout() - { - std::for_each(sessions_.begin(), sessions_.end(), - boost::mem_fn(&session::stop)); - } - -private: - asio::io_context& io_context_; - asio::steady_timer stop_timer_; - std::list sessions_; - stats stats_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 7) - { - std::cerr << "Usage: client "; - std::cerr << "